Powershell 未加载 CSV 值

Powershell 未加载 CSV 值

我想知道是否有人可以给我一些有关 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
    }
}

相关内容