使用Powershell解锁AD用户

时间:2015-08-20 12:11:56

标签: powershell

我是Powershell的新手,我正在努力使脚本工作。我在这里读过很多关于溢出和其他地方的文章,并没有看到我做错了什么。任何帮助将不胜感激。

我正在尝试创建一个脚本,在我登录到计算机本地管理员时远程解锁AD用户。这是我的剧本:

Import-module Activedirectory
New-PSSession  -ComputerName <Remote ComputerName> -Credential
    <domain admin credential>
Import-Module Activedirectory
Unlock-ADAccount
Read-host “Press any key”

我尝试从作为本地管理员登录的计算机执行此操作,但是通过域管理员凭据。该脚本在Powershell中以管理员身份运行。输入我的域密码并指出要解锁的用户后,我收到的消息是:“访问权限不足以执行操作”。

如果我在Powershell中以交互方式逐行运行此代码,它将解锁帐户。如果我运行一个脚本只询问用户是否被锁定,它会给我一个答案。如果我从作为域管理员登录的计算机上运行上述脚本,它将运行并解锁用户。

我不明白为什么当我以本地管理员身份登录时它不会运行,因为我正在传递域管理员凭据。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

您正在创建PSSession,但未使用它。尝试这样的事情(未经测试):

$computer = "test1"
$cred = Get-Credential
$user = Read-Host User to unlock
$sess = New-PSSession -ComputerName $computer -Credential $cred
Invoke-Command -Scriptblock { param($ADuser) Import-Module Activedirectory; Unlock-ADAccount -Identity $ADuser } -ArgumentList $user -Session $sess
Read-host “Press any key”

答案 1 :(得分:0)

虽然您可以创建PSSession,但如果您安装了RSAT并且可以访问ActiveDirectory模块,则无需执行此操作。相反,只需在每个AD cmdlet上使用凭证参数。例如,要使用备用凭据解锁用户帐户,请使用以下命令:

Unlock-ADAccount -Identity username -Credential (get-credential)