0

我需要将服务器上的本地管理员名称和密码更改为 .csv 中包含的名称和密码

CSV 文件包含一个包含所有信息的列表,其中每行的服务器、管理员名称和密码都不同

csv 以三列为首 - 服务器、管理员、密码

使用 Powershell 怎么能做到这一点?

我知道我可以使用它来设置它们,但它们需要按照每个 csv 行。

foreach ($strComputer in get-content  c:\Servers.txt)
{

$Admin=[adsi]("WinNT://" + $strComputer + "/Administrator, user")
$Admin.psbase.rename("Newname")
$Admin.SetPassword("NewPW")
4

2 回答 2

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)
}
于 2013-01-07T15:37:56.623 回答
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
}
于 2013-01-07T15:34:16.830 回答