我想知道是否有人可以给我一些有关 power shell 脚本的指导,因为我对它还不熟悉。
我负责重命名一些未加入域的机器,因此我编写了下面的内容,以从 CSV 中执行此操作。
# MASTER SCRIPT TO RENAME REMOTE
$CSV = Import-Csv "C:\test1\rename.CSV"
Invoke-Command -ComputerName $CSV.ComputerName -Credential $Credential -ScriptBlock {
Rename-Computer -ComputerName $CSV.ComputerName -NewName $CSV.NewName -Force
Restart-Computer -force -Credential Admin
Write-Host "Please wait while computer restarts" -ForegroundColor Red -BackgroundColor Black
}
脚本提示我输入管理员密码,然后返回错误“无法验证参数‘ComputerName’上的参数”。我知道该值(IP 地址)是正确的。
CSV 值标头正确命名为“ComputerName”,文件路径正确。机器按照脚本中的要求正确重启。
答案1
您需要循环遍历 .CSV 中的行。
像这样的事情应该可以做到:
$CSV = Import-Csv "C:\test1\rename.CSV"
$CSV |Foreach-Object {
Invoke-Command -ComputerName $Using:_.ComputerName -Credential $Credential -ScriptBlock {
Rename-Computer -ComputerName $Using:_.ComputerName -NewName $Using:_.NewName -Force
Restart-Computer -force -Credential Admin
Write-Host "Please wait while computer restarts" -ForegroundColor Red -BackgroundColor Black
}
}