我通过读取哈希表来部署带有Powershell的NetworkDrives,如下所示:

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

[...]

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

[...] =之间有一些代码。

现在,我想对DMZ中的NetworkDrives做同样的事情。不幸的是,在那里我需要4个值。 “字母,路径,用户名和密码”

我不能由此创建一个哈希表。我还有什么其他选择?

应该是这样的
    $DMZDrives = @(
    "u:" "\\SERVER1\SHARE" "domain\administrator" "$PW";
    "r:" "\\SERVER2\SHARE" "domain\administrator" "$PW";
    "w:" "\\SERVER3\SHARE" "domain\administrator" "$PW";
    )

最佳答案

我建议您使用PsCustomObject:

$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'}
)
$DMZDrives的输出:
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)
}

关于powershell - 在一行中创建具有4个值的变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33627270/

10-15 10:17