Почему происходит сбой сценария Powershell при использовании переменных в Orchestrator 2012? - PullRequest
0 голосов
/ 25 января 2019

Я использую 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" }

1 Ответ

0 голосов
/ 25 января 2019

Вы запускаете новый экземпляр 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" }
...