![使用 powershell 进行用户身份验证](https://linux22.com/image/664920/%E4%BD%BF%E7%94%A8%20powershell%20%E8%BF%9B%E8%A1%8C%E7%94%A8%E6%88%B7%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我有以下简单脚本,用于将一些文件推送到多台 Win7 和 Server2008 机器。在大多数情况下,本地用户没有密码。但是脚本失败了,因为我试图通过管理员共享 (c$) 进行写入。在 ip.txt 中为每台主机传递用户的最简单方法是什么?
此外,如果我在域中,修改脚本以使用用户和密码进行身份验证是多么简单。
Write-Host 'Deploy Tools'
$reader = [System.IO.File]::OpenText("c:\scripts\ip.txt")
try {
for(;;) {
$line = $reader.ReadLine()
if ($line -eq $null) { break }
echo "**** files being copied to: $line ****"
xcopy c:\scripts\tools \\$line\c$\windows\system32\ /Y
}
}
finally {
$reader.Close()
}
答案1
由于您已经调用了非 PowerShell 命令(xcopy
),因此您也可以调用另一个命令:
net use \\$server\c$ /user:$username $password
xcopy c:\scripts\tools \\$server\c$\windows\system32\ /Y
至于在输入文件中存储用户名和密码,您可以使用 CSV 格式和Import-Csv
cmdlet 轻松地完成。
另请参阅这个 StackOverflow 问题。