Windows 如何在Powershell的每个循环中保存凭据

Windows 如何在Powershell的每个循环中保存凭据,windows,powershell,server,credentials,Windows,Powershell,Server,Credentials,有没有办法保存我的凭据,这样它就不会一直询问每个循环?比如,将其隔离在foreach循环之外。我尝试删除-凭据并将其添加到外部,但这会导致未经授权的访问错误。我似乎不明白。抱歉,如果这个问题看起来很愚蠢,我是新来的Powershell Import-Module ActiveDirectory $ServerList = Get-Content "C:\servers.txt" foreach($ServerName in $ServerList){ "$ServerName" "====

有没有办法保存我的凭据,这样它就不会一直询问每个循环?比如,将其隔离在foreach循环之外。我尝试删除
-凭据
并将其添加到外部,但这会导致未经授权的访问错误。我似乎不明白。抱歉,如果这个问题看起来很愚蠢,我是新来的Powershell

Import-Module ActiveDirectory

$ServerList = Get-Content "C:\servers.txt"

foreach($ServerName in $ServerList){

"$ServerName"
"=========="
Get-WmiObject -Class Win32_UserAccount -Computer $ServerName -Filter "LocalAccount='True'" -credential CORPORATE\usmenm03adm| Select Name

" "

}

是,使用
Get Credential
读取凭据一次,并将其存储在变量中:

Import-Module ActiveDirectory

$ServerList = Get-Content "C:\servers.txt"
$MyCredential = Get-Credential -UserName "CORPORATE\usmenm03adm" -Message "Enter WMI credentials"

foreach ($ServerName in $ServerList) {

    "$ServerName"
    "=========="
    Get-WmiObject -Class Win32_UserAccount -Computer $ServerName -Filter "LocalAccount='True'" -Credential $MyCredential | Select-Object Name

    " "
}

是,使用
Get Credential
读取凭据一次,并将其存储在变量中:

Import-Module ActiveDirectory

$ServerList = Get-Content "C:\servers.txt"
$MyCredential = Get-Credential -UserName "CORPORATE\usmenm03adm" -Message "Enter WMI credentials"

foreach ($ServerName in $ServerList) {

    "$ServerName"
    "=========="
    Get-WmiObject -Class Win32_UserAccount -Computer $ServerName -Filter "LocalAccount='True'" -Credential $MyCredential | Select-Object Name

    " "
}

您可以在循环外部定义凭证。 我像下面那样编辑了你的脚本

Import-Module ActiveDirectory

$ServerList = Get-Content "C:\servers.txt"

$cred=Get-Credential

foreach($ServerName in $ServerList){

"$ServerName"
"=========="
Get-WmiObject -Class Win32_UserAccount -Computer $ServerName -Filter "LocalAccount='True'" -credential $cred | Select Name

" "
}

您可以在循环外部定义凭证。 我像下面那样编辑了你的脚本

Import-Module ActiveDirectory

$ServerList = Get-Content "C:\servers.txt"

$cred=Get-Credential

foreach($ServerName in $ServerList){

"$ServerName"
"=========="
Get-WmiObject -Class Win32_UserAccount -Computer $ServerName -Filter "LocalAccount='True'" -credential $cred | Select Name

" "
}

奇怪的是,对这个答案投反对票,1分钟后对类似的答案投反对票!?我已经把它们调平了。让社区决定哪一个最有帮助。我希望这个社区能够分享知识,帮助其他成员!选票是next@Venkatakrishnan-是的,应该是的,但这很奇怪。也许有人不喜欢TesselatingHeckler的答案,更喜欢你的答案,但这不应该导致否决票。嗨,我测试了两个答案,似乎这个答案仍然循环我的证书。不过还是要谢谢你:)@KentMarionVG-除了命名变量,两个答案都是一样的?!我很好奇为什么这对你不起作用?!奇怪的是,对这个答案投反对票,1分钟后对类似的答案投反对票!?我已经把它们调平了。让社区决定哪一个最有帮助。我希望这个社区能够分享知识,帮助其他成员!选票是next@Venkatakrishnan-是的,应该是的,但这很奇怪。也许有人不喜欢TesselatingHeckler的答案,更喜欢你的答案,但这不应该导致否决票。嗨,我测试了两个答案,似乎这个答案仍然循环我的证书。不过还是要谢谢你:)@KentMarionVG-除了命名变量,两个答案都是一样的?!我很好奇为什么这对你不起作用?!