2015-11-10 18 views
2

我部署具有的powershell NetworkDrives通過讀取哈希表這樣創建具有4個值變量:在一行

$ITDrives = @{ 
    "l:" = "\\server\share"; 
    "m:" = "\\server\share"; 
    "o:" = "\\server\share"; 
    "p:" = "\\server\share"; 
    "v:" = "\\server\share"; 
} 

[...] 

$map.MapNetworkDrive($_.Name, $_.Value, $true) 

[...] =有一些代碼之間。

現在我想爲DMD中的NetworkDrives做同樣的事情。不幸的是,我需要4個值。 「信,路徑,用戶名和密碼」

我無法創建一個哈希表。我還有什麼其他選擇?

應該是這樣的

$DMZDrives = @(
    "u:" "\\SERVER1\SHARE" "domain\administrator" "$PW"; 
    "r:" "\\SERVER2\SHARE" "domain\administrator" "$PW"; 
    "w:" "\\SERVER3\SHARE" "domain\administrator" "$PW"; 
    ) 
+0

'ConvertFrom-Csv'? – PetSerAl

+0

是的,我也想到了。但我不喜歡使用任何csv,xml或其他東西。我寧願把它放在我的代碼的頭部,如果這是可能的 – SimonS

回答

4

我建議你用PsCustomObject工作:

輸出 $DMZDrives
$DMZDrives = @(
    [PSCustomObject]@{Letter='u:'; Path='\\SERVER1\SHARE'; Username='domain\administrator'; Password='yourPassword'}  
    [PSCustomObject]@{Letter='r:'; Path='\\SERVER2\SHARE'; Username='domain\administrator'; Password='yourPassword'} 
    [PSCustomObject]@{Letter='w:'; Path='\\SERVER3\SHARE'; Username='domain\administrator'; Password='yourPassword'} 
) 

Letter Path   Username    Password  
------ ----   --------    --------  
u:  \\SERVER1\SHARE domain\administrator yourPassword 
r:  \\SERVER2\SHARE domain\administrator yourPassword 
w:  \\SERVER3\SHARE domain\administrator yourPassword 

現在你有一個清單您想要的對象,並可以使用衆所周知的過濾器,例如:

$DMZDrives | where Letter -eq 'u:' 

還是環比他們並映射網絡驅動器:

$DMZDrives | % { 
    $map.MapNetworkDrive($_.Letter, $_.Path, $true, $_.Username, $_.Password) 
} 
+0

完美。謝謝! – SimonS

+1

順便提一下,如果您執行import-csv並將結果放入沒有指定類型的變量中,則會獲得一組自定義對象。 –