Я пытаюсь настроить рабочий процесс, который добавляет учетные записи администратора в группы безопасности на основе выбранных серверов и многострочное текстовое поле для имен пользователей (одно имя пользователя в строке).
Оба они регистрируются и передаются в мой PowerShellНастраиваемая активность, и я разделяю содержимое каждой переменной следующим образом:
$ServerNames = "${current.variables.server_target_servers.getDisplayValue()}"
$ServerNames = $ServerNames.Split(', ',[System.StringSplitOptions]::RemoveEmptyEntries)
$UserNames = "${current.variables.server_admin_accounts}"
$UserNames = $UserNames.Split("`n",[System.StringSplitOptions]::RemoveEmptyEntries)
Серверы работают нормально, и я могу перебирать их без проблем.
Если я добавляю одного пользователя, онможет быть добавлен ко всем серверам, но если я добавлю более одного пользователя в многострочное текстовое поле, он вдруг не будет найден.
Я попытался использовать эти две строки (в цикле ForEach, следовательно,$ UserName вместо $ UserNames:
$ADUserObj = Get-ADUser -Filter "samaccountname -eq '$UserName'"
$ADUserObj = Get-ADUser -Filter {SamAccountName -like "$UserName"}
Чтобы проверить, что у меня есть имя пользователя в моей переменной $ UserNames, я попробовал эту строку:
ForEach ($UserName in $UserNames) {Send-MailMessage -from "AdminScript@domain.com -to "me@domain.com" -subject "Username" -body "$UserName" -SmtpServer "smtp.domain.com"}
И, как и ожидалось, я получилэлектронное письмо для каждого пользователя в отдельном письме. Но, тем не менее, я получаю сообщение об ошибке «Пользователь не найден».
Любые идеи, кто-нибудь? (Я также опубликовал это в сообществе разработчиков ServiceNow, но это кажется актуальнымВота также)