我有一个powershell脚本,用于验证每个Windows映像中的多个测试。但是,当我使用此脚本时,以下特定测试需要使用域凭据才能成功运行!
任何人都可以帮我修理吗?
if (($ImageName -like "*dev*") -or ($ImageName -like "*bare*"))
{
#$ADE1 = Invoke-Expression ('C:\ade\bin\ade.exe | select-string -pattern "begintrans"') | out-string ; $ADE = $ADE1.trim().split("")[1]
Invoke-Expression ('C:\ade\bin\ade.exe | select-string -pattern "begintrans"') > C:\Temp\ade_check.txt
$ADE1 = Get-Content C:\Temp\ade_check.txt | Select-String "begintrans" | out-string ; $ADE = $ADE1.trim().split(" ")[1]
if ($ADE -eq "begintrans")
{
$ADE = "ADE Success"
echo "ADE = ADE Success"
}
if ($ADE -eq $null){
$ADE = "ADE Failed"
echo "ADE = ADE Failed"
}
}
else
{
if (($ImageName -like "*simple*") -or ($ImageName -like "*BareOS*")){
$ADE = "BareOS, ADE Not Installed"
echo "ADE = BareOS, ADE Not Installed"
}
}
答案 0 :(得分:0)
正如@vonPryz所建议的,在经过身份验证的远程会话中运行脚本可能是最好的选择。关于您需要Get-Credential
来实例化远程会话并询问用户名和密码,至少有两个选项:
PSCredential
PSCredential
此处描述了从明文密码创建凭据: Creating a PS Credential from a Clear Text Password in Powershell
你基本上跑:
PS C:\> $password = "P@ssw0rd" | ConvertTo-SecureString -asPlainText -Force
PS C:\> $username = "EdgarSchnittenfittich"
PS C:\> $credential = New-Object System.Management.Automation.PSCredential($username,$password)
拥有PSCredential
对象后,您可以通过Export-CliXml
以加密形式将其导出。要导入您的凭据,只需发出Import-CliXml
。凭据以加密形式存储,并带有不透明的加密密钥,用于导出凭据的当前用户。这意味着以后只有同一个用户才能再次导入凭据。
示例:
$cred = Get-PSCredential;
$cred | Export-CliXml C:\TEMP\Credentials.xml;
$importedCredentials = Import-CliXml C:\TEMP\Credentials.xml;
Enter-PSSession
或Invoke-Command
轻松运行任何脚本。