Как обработать каждую строку в текстовом поле Mutli Line с помощью PowerShell? - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь настроить рабочий процесс, который добавляет учетные записи администратора в группы безопасности на основе выбранных серверов и многострочное текстовое поле для имен пользователей (одно имя пользователя в строке).

Оба они регистрируются и передаются в мой 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, но это кажется актуальнымВота также)

...