【问题标题】:Unlocking an AD user with Powershell使用 Powershell 解锁 AD 用户
【发布时间】:2015-08-20 23:04:32
【问题描述】:

我是 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 中以交互方式逐行运行此代码,它将解锁帐户。如果我运行一个脚本只询问用户是否被锁定,它会给我一个答案。如果我从以域管理员身份登录的计算机运行上述脚本,它将运行并解锁用户。

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

【问题讨论】:

    标签: powershell


    【解决方案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”
    

    【讨论】:

    • 谢谢。我试试看。
    • 成功了!非常感谢。鉴于我正在发出 Powershell 命令,你能告诉我为什么我没有“使用” PSSession 吗?为什么“Invoke-Command”使用 PSSession,但我的命令没有?如果您有解释的资源,我会很想阅读它。再次感谢。
    • New-PSSession 仅创建一个远程会话(您应该将其存储在变量btw。),它不使用它。如果您使用了Enter-PSSession,它会创建一个会话并将您的控制台连接到远程计算机,但Enter-PSSession 是用于交互式使用而不是用于脚本,所以我更喜欢使用Invoke-Command 和会话变量(我存储的)以指定应在其上调用命令的计算机/会话。 technet.microsoft.com/en-us/library/hh849717.aspxtechnet.microsoft.com/en-us/library/hh847839.aspx
    • 感谢 Frode F。我想我开始明白了。感谢您花时间解释。
    【解决方案2】:

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

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

    【讨论】:

    • 谢谢。如果我使用脚本,我想我需要指明计算机或服务器名称。
    • 这取决于。如果 ActiveDirectory 模块在本地可用,则不可用。如果未安装 RSAT,那么我建议您使用隐式远程处理来访问该模块。有关详细信息,请参阅technet.microsoft.com/en-us/magazine/ff720181.aspx
    • 感谢 Adrian R。我会阅读您引用的文章。感谢您花时间提供帮助。我正在开始学习曲线。
    猜你喜欢
    • 2019-02-08
    • 2011-02-04
    • 2022-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 2020-04-02
    相关资源
    最近更新 更多