我需要将服务器上的本地管理员名称和密码更改为.csv
中包含的名称和密码CSV文件包含一个列表,其中包含所有信息,其中每行的服务器,管理员名称和密码不同
csv由三列组成 - Server,Admin,PW
如何使用Powershell完成这项工作?
我知道我可以使用它来设置它们,但它们需要按照每个csv行。
foreach ($strComputer in get-content c:\Servers.txt)
{
$Admin=[adsi]("WinNT://" + $strComputer + "/Administrator, user")
$Admin.psbase.rename("Newname")
$Admin.SetPassword("NewPW")
答案 0 :(得分:1)
试试这个(未经测试):
import-csv c:\servers.txt | % {
$Admin=[adsi]("WinNT://" + $($_.Server) + "/Administrator, user")
$Admin.psbase.rename($($_.Admin))
$Admin.SetPassword($($_.PW))
$Admin.SetInfo() # I think it's needed
}
答案 1 :(得分:1)
您可以使用Import-Csv而不是get-content。然后,您可以使用标题名称来处理变量。 假设你有一个像:
这样的文件Server,Admin,PW
bla1,bla2,bla3
blaA,blaB,blaC
的输出
foreach ($line in Import-Csv c:\Servers.txt) { echo $line.server }
将是:
bla1
blaA
只是为了完成你的代码,试试这个例子:
foreach ($line in Import-Csv c:\Servers.txt)
{
$Admin=[adsi]("WinNT://" + $line.Server + "/Administrator, user")
$Admin.psbase.rename($line.Admin)
$Admin.SetPassword($line.PW)
}