哈希表-按照它们的输入顺序进行排序



我这里有一个哈希表,它最终会输出到Excel电子表格中,但问题似乎是系统默认情况下对哈希表进行排序的方式。我希望它按输入的顺序返回机器,它们目前的工作方式是弹出一个框,然后粘贴所有机器名称,使它们在foreach循环之前都在内存中。我以前是按照最长的正常运行时间来排序的,但现在它需要与它们的输入方式相同。我最初的想法是创建另一个哈希表,并按照与$machineList变量相同的顺序捕获它们,但这甚至可能会让我处于相同的位置。我试着搜索,但找不到哈希表默认排序方式的信息。

有什么想法吗?

$machineUptime = @{}
foreach($machine in $machineList){
    if(Test-Connection $machine -Count 1 -Quiet){
        try{
            $logonUser = #gets the logged on user
            $systemUptime = #gets the wmi property for uptime
            if($logonUser -eq $null){
                $logonUser = "No Users Logged on"
            }
            $machineUptime[$machine] = "$systemUptime - $logonUser"
        }
        catch{
            Write-Error $_
            $machineUptime[$machine] = "Error retrieving uptime"
        }
    }
    else{
        $machineUptime[$machine] = "Offline"
    }
}

$machineUptime创建为有序哈希表(前提是您有PowerShell v3或更新版本):

$machineUptime = [ordered]@{}

最新更新