为什么在 Orchestrator 2012 中使用变量时 Powershell 脚本失败?
Why does Powershell script fail when using variables in Orchestrator 2012?
我 运行 在我的计算机上本地安装 System Center 2012 Orchestrator Runbook Designer。我正在尝试 运行 一个 Powershell 脚本,它只是查看特定的 AD 帐户是否已经存在。
此脚本有效(即用户存在):
$User = powershell {
import-module activedirectory
Get-ADUser -Filter "samaccountname -eq 'username'" -properties samaccountname | select samaccountname
}
if ($User) { $Trace += "User exists" }
else {$Trace += "User does not exist" }
但是当我尝试放入一个变量时,它失败了(即用户不存在)。
$TestUser = 'username'
$User = powershell {
import-module activedirectory
Get-ADUser -Filter "samaccountname -eq '$TestUser'" -properties samaccountname | select samaccountname
}
if ($User) { $Trace += "User exists" }
else {$Trace += "User does not exist" }
您正在调用中启动一个新的 powershell 实例。在该范围内 $TestUser 不存在。除非有某些令人信服的理由,否则直接调用 Get-ADUser 而无需调用新的 powershell 实例,如下所示,它应该可以工作。
import-module activedirectory
$TestUser = 'username'
$User = Get-ADUser -Filter "samaccountname -eq '$TestUser'" -properties samaccountname |select samaccountname
if ($User) { $Trace += "User exists" }
else {$Trace += "User does not exist" }
我 运行 在我的计算机上本地安装 System Center 2012 Orchestrator Runbook Designer。我正在尝试 运行 一个 Powershell 脚本,它只是查看特定的 AD 帐户是否已经存在。
此脚本有效(即用户存在):
$User = powershell {
import-module activedirectory
Get-ADUser -Filter "samaccountname -eq 'username'" -properties samaccountname | select samaccountname
}
if ($User) { $Trace += "User exists" }
else {$Trace += "User does not exist" }
但是当我尝试放入一个变量时,它失败了(即用户不存在)。
$TestUser = 'username'
$User = powershell {
import-module activedirectory
Get-ADUser -Filter "samaccountname -eq '$TestUser'" -properties samaccountname | select samaccountname
}
if ($User) { $Trace += "User exists" }
else {$Trace += "User does not exist" }
您正在调用中启动一个新的 powershell 实例。在该范围内 $TestUser 不存在。除非有某些令人信服的理由,否则直接调用 Get-ADUser 而无需调用新的 powershell 实例,如下所示,它应该可以工作。
import-module activedirectory
$TestUser = 'username'
$User = Get-ADUser -Filter "samaccountname -eq '$TestUser'" -properties samaccountname |select samaccountname
if ($User) { $Trace += "User exists" }
else {$Trace += "User does not exist" }