【问题标题】:Running foreach loop in powershell prompts for credentials every loop?在powershell中运行foreach循环会提示每个循环输入凭据?
【发布时间】:2022-07-06 23:42:25
【问题描述】:

我已经实现了一个简短的 Powershell sn-p 来批量重命名我的域中的计算机。它读取包含两列 OldName 和 NewName 的 CSV 文件,并在列表中循环以更改名称。

这在纸上有效,但是每次我运行脚本时,它都会提示我为它循环通过的每台计算机输入密码。有没有办法对整个脚本只使用一次我的凭据?谢谢。

$a = Import-Csv C:\File.csv -Header OldName, NewName
Foreach ($Computer in $a) {Rename-Computer -ComputerName $Computer.OldName -NewName $Computer.NewName -DomainCredential Domain\Admin01 -Force -Restart}

【问题讨论】:

    标签: powershell


    【解决方案1】:

    简单的解决方案是在运行循环之前存储您的PSCredential object 并将该对象提供给 cmdlet。您可以使用Get-Credential 作为请求凭据的简单替代方法:

    $Csv  = Import-Csv C:\File.csv -Header OldName, NewName
    $cred = Get-Credential -Credential Domain\Admin01
    foreach($Computer in $Csv) {
        Rename-Computer -ComputerName $Computer.OldName -NewName $Computer.NewName -DomainCredential $cred -Force -Restart
    }
    

    【讨论】:

      猜你喜欢
      • 2018-09-15
      • 1970-01-01
      • 1970-01-01
      • 2019-09-19
      • 2020-03-03
      • 1970-01-01
      • 2017-03-10
      • 2016-08-05
      • 1970-01-01
      相关资源
      最近更新 更多