Выполнить и установить параметры в файле сценария PowerShell - PullRequest
0 голосов
/ 10 января 2019

Я пытаюсь запустить файл ps1, отправив один параметр. Этот скрипт предназначен для разблокировки аккаунта в AD.

Мой файл ps1:

Param([string]$user="")
Get-ADUser -Properties * -Filter {mail -like "$user"} |
    Unlock-ADAccount |
    Sync-ADObject -Destination "AZUDCMO01"

И я назвал это с помощью:

PS C:\Users\fornecedor.bmc01> .\bmc_unlock_ad.ps1 "andreza.perez@grupomoura.com"

Ошибка не возвращается, но учетная запись по-прежнему заблокирована.

Кто-нибудь пробовал этот способ разблокировки аккаунтов?

1 Ответ

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

Для этого вы вообще не хотите использовать параметр -Properties *. Все, что вам нужно, это получить объект ADUser с достаточным количеством свойств, чтобы можно было отправить его по конвейеру. Get-ADUser возвращает более чем достаточно свойств для этого.

Сказав это, вы отправляете из командлета Unlock-ADAccount в Sync-ADObject командлет, но ...
согласно документам , командлет Unlock-ADAccount по умолчанию ничего не возвращает. Для этой части вам нужно добавить параметр -PassThru.

Попробуйте это:

Param([string]$user="")

Get-ADUser -Filter {mail -like "$user"} |
    Unlock-ADAccount -PassThru |
    Sync-ADObject -Destination "AZUDCMO01"
...