【问题标题】:i'am trying to remove a user from a local group throught AD (powershell)我正在尝试通过 AD(powershell)从本地组中删除用户
【发布时间】:2019-09-24 10:18:51
【问题描述】:

我正在尝试开发一个脚本,从本地管理员组中删除域用户(我可以使用广告中的计算机管理,但它是一个图形界面,我需要使用命令来完成)现在我正在使用调用命令来远程连接到机器并从本地管理员组中删除其用户。

我正在使用这个命令:Invoke-Command -ComputerName $line2.split(";")[0] -ScriptBlock { net localgroup "administrators" $using:notadmin /DELETE } -Credential $Cred

如果机器不在线,我需要等到它在线,我正在搜索如何通过广告从本地组(例如管理员)中删除用户

有命令吗?

【问题讨论】:

  • 你试过Remove-LocalGroupMember吗?
  • 在我的情况下,这个命令需要从它自己的客户端使用,我需要从 AD 执行我的脚本(从该主机上的管理员组中删除域用户)
  • 当然,执行此操作的任何命令都需要在本地运行,因为这是定义本地组的位置,如果它处于脱机状态,那么无论使用哪种方法,您都需要等待它又是在线做任何事。如果您的意思是希望它在机器联机时自动发生,那么启动脚本下方的 Restricted Groups 选项将是您唯一的选择。

标签: powershell active-directory


【解决方案1】:

我看到了两种方法: 如果您想使用组策略,您可以检查: 受限组。

https://www.petri.com/manage-local-active-directory-groups-using-group-policy-restricted-groups

另一种选择是在您的脚本中加入Test-Connection,验证计算机是否在线。如果是 - 执行脚本,如果不是,将其存储在另一个具有离线机器的列表中。 然后稍后针对脱机计算机列表运行脚本......依此类推,直到所有计算机都被覆盖。

附:是的,正如评论中所建议的,如果您的 powershell 版本支持它,请考虑使用 remove-localgroupmember。

同样,视情况而定。 希望能帮助到你!

【讨论】:

  • 在我的情况下,我需要开发一个 powershell 脚本来从机器上的本地管理员组中删除域用户 x 该脚本将有权从 AD 服务器执行(我的问题是我找不到从机器 x 管理员组 remotrly 删除域帐户的命令,PS:我可以以图形方式执行),在 Remov-localgroupmember 情况下,我需要从机器 x 执行 cmdlet,所以它不是我需要的
  • 再次,您可以使用 Invoke-command 在远程计算机上执行。如帖子中所述,您可以过滤离线计算机。再次运行此离线列表计算机时,列表会越来越短,直到所有计算机都被覆盖。
【解决方案2】:
$RemoteComputer = "yourComputer"

$Computer = [ADSI]("WinNT://$RemoteComputer,computer")
$Group = $Computer.PSBase.Children.Find("Administrators")

ForEach ($User in (Get-Content 
"c:\users\administrator.domain\desktop\localadmin.txt"))
{   $Group.Remove("WinNT://$User")
}

我厌倦了这段代码,它真的帮助了我 thnx 的帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多