2016-04-14 24 views
1

Burada bir karma tablo var ve sonunda bir Excel elektronik tablosuna çıktı alıyorum, ancak sorunun varsayılan olarak sistem karma tablosunu ayırması gibi görünüyor. Makinelerin girildikleri sırayla döndürülmesini istiyorum, şu anda çalıştığı şekilde bir kutu açılır ve tüm makine adlarına yapıştırırsınız böylece foreach döngüsünden önce bellekte kalırlar. Bunu daha önce en uzun çalışma süresine göre sıralamaktaydım, ancak şimdi giriş yaptıkları gibi olması gerekiyor. İlk düşüncem başka bir hash tablosu oluşturmak ve onları $machineList değişkenine göre aynı sırada yakalamak, ama bu beni aynı konumda bırakabilir. Arama yapmayı denedim, ancak karma tabloların sıralandığı şekilde bilgi bulamadım.Karma Tablo - Nasıl girdi olduklarına göre sırala

Herhangi bir fikrin var mı? Elbette, böyle 5 dakika sonra Bulunan

$machineUptime = [ordered]@{} 

cevap

5

(sen PowerShell v3 veya daha yeni olması koşuluyla) sıralı Hashtable olarak $machineUptime oluşturun. Teşekkürler!
+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

[sipariş] is PowerShell 3.0+ – Matt

+0

@Matt Gerçekten öyle. –