我在计算机上本地运行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" }
答案 0 :(得分:1)
您正在呼叫中启动一个新的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" }