我遇到了一个小问题,我使用PowerShell生成了Runbook。 其中一个使用类似于此
的构建连接到VmwareTempFunction{
connects to vmware using VMuser1 credentials
runs code etc...
All is well
return $TempVariable
}
$TempVariable = Invoke-Command -ScriptBlock ${function:TempFunction} -ComputerName localhost
一切正常。
问题在于,当我引入一个名为InfoArray的全局数组,它在路上存储信息,并希望使用其他凭据将其写入不同的服务器时,它无法声明“Invoke-Command:不支持Using变量”在脚本函数或过滤器“
以下是我介绍的代码:
#Append gathered log information to log
$strScriptUser = "domain\FileUser"
$strPass = "Password01"
$PSS = ConvertTo-SecureString $strPass -AsPlainText -Force
$cred = new-object system.management.automation.PSCredential $strScriptUser, $PSS
Start-Job -ScriptBlock { Add-Content $using:Logfile $using:InfoArray } -Credential $cred
return $TempVariable
}
关于如何解决这个问题的任何想法? 以下不起作用
Start-Job -ScriptBlock { Add-Content $Logfile $InfoArray } -Credential $cred
此致 AKR
答案 0 :(得分:1)
将它们作为参数传递给此脚本块,因为它不支持使用。
Start-Job -ScriptBlock {
param($logfile,$infoArray)
Add-Content $Logfile $InfoArray
} -Credential $cred -ArgumentList @($logfile,$infoArray)
答案 1 :(得分:0)
我试图在不使用-computername localhost的情况下调用,这导致它通过PS脚本工作。
挑战在于我无法直接在系统中心协调器中将PowerCLi pssnapin作为64位加载,并且必须调用才能使其正常工作。
最后,似乎工作的是使用服务器名称而不是localhost运行该函数。
$TempVariable = Invoke-Command -ScriptBlock ${function:TempFunction} -computerName *ServerName*