AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 49405
Accepted
Flyer
Flyer
Asked: 2009-08-04 09:19:43 +0800 CST2009-08-04 09:19:43 +0800 CST 2009-08-04 09:19:43 +0800 CST

命令行列出 Windows Active Directory 组中的用户?

  • 772

是否有命令行方式列出特定 Active Directory 组中的所有用户?

我可以通过转到管理计算机-->本地用户/组-->组并双击组来查看组中的人员。

我只需要一个命令行方式来检索数据,这样我就可以做一些其他的自动化任务。

windows active-directory
  • 9 9 个回答
  • 1201442 Views

9 个回答

  • Voted
  1. asdasddfg
    2010-01-05T12:11:26+08:002010-01-05T12:11:26+08:00

    这是命令提示符的另一种方式,但不确定如何自动化,因为您必须解析输出:

    如果组是“全局安全组”:

    net group <your_groupname> /domain
    

    如果您正在寻找“域本地安全组”:

    net localgroup <your_groupname> /domain
    
    • 287
  2. Ryan Fisher
    2009-08-04T11:09:55+08:002009-08-04T11:09:55+08:00

    这是 ds 命令的一个版本,我发现它通常更有用,特别是如果您有一个复杂的 OU 结构并且不一定知道组的完整可分辨名称。

    dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand
    

    或者如果您知道组的 CN,通常与 SAM ID 相同,如果名称中有空格,请引用:

    dsquery group -name "Group Account Name" | dsget group -members -expand
    

    如评论中所述,默认情况下,ds* 命令(dsquery、dsget、dsadd、dsrm)仅在域控制器上可用。但是,您可以从 Windows Server 安装介质上的支持工具安装管理工具包,或从 Microsoft 下载站点下载。

    您还可以使用 PowerShell 执行这些查询。PowerShell 已作为 Server 2008、2008 R2 和 Windows 7 的可安装功能提供,但您需要下载 WinRM 框架才能在 XP 或 Vista 上安装它。

    要在 PowerShell 中访问任何特定于 AD 的 cmdlet,您还需要至少执行以下安装之一:

    • 对于 Win 7 和 2008 R2 客户端,您可以安装Remote Server Admin Tools。RSAT 还要求您已在Server 2008 R2域控制器上安装 Active Directory Web 服务功能,或为任何Server 2003/2008 DC安装Active Directory 管理网关服务。
    • 对于任何 XP 或更高版本的客户端,请下载并安装Quest ActiveRoles Management Shell for Active Directory。Quest 工具不需要对您的 DC 进行任何额外的更改。
    • 50
  3. Best Answer
    pQd
    2009-08-04T09:22:48+08:002009-08-04T09:22:48+08:00

    尝试

    dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members
    
    • 39
  4. pk.
    2011-03-25T08:41:04+08:002011-03-25T08:41:04+08:00

    对于不需要 Quest AD 加载项的 PowerShell 解决方案,请尝试以下操作

    Import-Module ActiveDirectory
    
    Get-ADGroupMember "Domain Admins" -recursive | Select-Object name
    

    这也将枚举嵌套组。如果您不想这样做,请删除-recursive开关。

    • 29
  5. deajan
    2012-10-09T01:37:33+08:002012-10-09T01:37:33+08:00

    在服务器和客户端上工作的一种非常简单的方法:

    NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"
    

    如果用户在 YOURGROUPNAME 组中,则返回 1,否则返回 0

    然后您可以使用 %ERRORLEVEL% 值(如果用户在组中,则为 0,如果不是,则为 1),例如

    IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE
    
    • 18
  6. Gordon Bell
    2009-08-04T12:51:34+08:002009-08-04T12:51:34+08:00

    使用 PowerShell 和 Quest Software 的针对 Active Directory 的免费 ActiveRoles 命令行管理程序,您可以使用:

    (Get-QADGroup "GroupName").Members

    http://www.quest.com/powershell/activeroles-server.aspx

    • 10
  7. markshep
    2011-04-01T02:34:57+08:002011-04-01T02:34:57+08:00

    此处使用的答案dsget仅dsquery适用于 Windows 的服务器版本,因为这些命令未在其他版本的 Windows(例如 Windows 7)上提供。在没有这些命令的机器上,您可以使用AdFind 命令获得所需的信息。

    这是获取组成员身份的示例查询:

    AdFind.exe -default -f name="Domain Admins" member -list
    
    • 8
  8. vadim
    2012-10-10T16:54:54+08:002012-10-10T16:54:54+08:00

    对于UserGroup1try 的显示成员:

    dsquery group -name UserGroup1 | dsget group -members | dsget user -display
    
    • 4
  9. Sysadmin
    2015-01-15T11:12:12+08:002015-01-15T11:12:12+08:00

    如何列出本地组和用户?

    使用以下 powershell 脚本列出本地组和这些组的成员。

    $server="YourServerName"
    $computer = [ADSI]"WinNT://$server,computer"
    
    $computer.psbase.children | where { 
    
    $_.psbase.schemaClassName -eq 'group' } | foreach {
        write-host $_.name
        write-host "------"
        $group =[ADSI]$_.psbase.Path
        $group.psbase.Invoke("Members") | foreach {
    $_.GetType().InvokeMember("Name", 'GetProperty', 
    
    $null, $_, $null)}
        write-host
    }
    

    将上面的文字复制到记事本并另存为filename.ps1. 然后运行文件。我应该显示每个组中的组和用户,或者你可以从 powershell 运行它。

    • 4

相关问题

  • 您最喜欢的云计算提供商是什么?[关闭]

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 为什么添加新驱动器后我的磁盘驱动器访问速度如此之慢?

  • 在 Windows Server 2003 下使用 wscipt 从 .asp 文件运行 .exe

  • 最佳混合环境(OS X + Windows)备份?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve