Разблокировка аккаунта от powershell ISE готовый скрипт - PullRequest
0 голосов
/ 15 октября 2018

Я был занят созданием сценария, в котором объявлена ​​переменная, содержащая информацию о пользователе, которую вы можете ввести в приглашении.Я подумал об этом, когда увидел, что разблокировать учетную запись нельзя с помощью адреса электронной почты (имя входа после 2000).Но я не могу понять, что я делаю неправильно.

Это код, который я сейчас запускаю.

Import-Module ActiveDirectory
[void][System.Reflection.Assembly]::LoadWithPartialName('Microsoft.VisualBasic')
$name = [Microsoft.VisualBasic.Interaction]::InputBox("Enter your name", "Name", "$env:username")
$Test = Get-ADUser -Filter { EmailAddress -eq $name } | Select SamAccountName
Unlock-ADAccount -Identity $Test

Ошибка, которую я получаю,

Unlock-ADAccount : Object reference not set to an instance of an object.
At C:\Users\Admcbl\Documents\Powershell.ps1:5 char:1
+ Unlock-ADAccount -Identity $Test
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Microsoft.Activ...ement.ADAccount:ADAccount) [Unlock-ADAccount], NullReferenceException
    + FullyQualifiedErrorId : Object reference not set to an instance of an object.,Microsoft.ActiveDirectory.Management.Commands.UnlockADAccount

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Здесь может быть более простое решение для вас.Обратите внимание, что я переключил фильтр, поэтому @domain.com не требуется

Import-Module ActiveDirectory

$name = Read-Host -Prompt "Enter Username "

Get-ADUser -Filter {SamAccountName -eq $name} | 
    Unlock-ADAccount
0 голосов
/ 15 октября 2018

Вам следует обратиться к свойству SamAccountName $Test:

Unlock-ADAccount -Identity $Test.SamAccountName

Но почему бы просто не передать трубку учетной записи на Unlock-ADAccount?Как это:

Get-ADUser -Filter { EmailAddress -eq $name } | Unlock-ADAccount
...