2016-04-14 17 views
1

ここにハッシュテーブルがあり、最終的にはExcelスプレッドシートに出力していますが、この問題はシステムがデフォルトでハッシュテーブルを並べ替える方法のようです。私はそれが入力されているのと同じ順序でマシンを返すようにしたい、彼らは現在働いている方法はボックスがポップアップし、すべてのマシン名に貼り付けて、foreachループの前にすべてメモリにある。私は以前これを最長の稼働時間でソートしていましたが、現在は入力されたのと同じ方法である必要があります。私の最初の考えは、別のハッシュテーブルを作成して、同じ順番で別のハッシュテーブルを作成して、$machineList変数と同じようにキャプチャすることです。検索しようとしましたが、ハッシュテーブルが並べ替えるデフォルトの方法に関する情報が見つかりませんでした。ハッシュテーブル - 入力順の並べ替え

アイデア?もちろん、このような5分後に発見された

$machineUptime = [ordered]@{} 

答えて

5

は(あなたはPowerShellのV3以降を持って)注文したハッシュテーブルとして $machineUptimeを作成します。ありがとう!
+0

$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" } } 
nkasco

+1

[注文]はPowerShell 3.0+です。 – Matt

+0

@Matt確かにそうです。 –

関連する問題