Pri*_*moz 113 powershell active-directory powershell-2.0
PowerShell的Get-ADGroupMembercmdlet返回特定组的成员.是否有cmdlet或属性来获取特定用户所属的所有组?
我修正了我的错误:Get-Member应该是Get-ADGroupMember.
小智 250
Get-ADPrincipalGroupMembership将执行此操作.
Get-ADPrincipalGroupMembership username | select name
name
----
Domain Users
Domain Computers
Workstation Admins
Company Users
Company Developers
AutomatedProcessingTeam
Run Code Online (Sandbox Code Playgroud)
Can*_*oas 75
单行,无需模块,使用当前登录用户:
(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf
Run Code Online (Sandbox Code Playgroud)
对此vbs/powershell文章的质疑:http://technet.microsoft.com/en-us/library/ff730963.aspx
Dan*_*l.S 40
Canoas发布的更简洁的替代方案,用于获取当前登录用户的组成员资格.
我在这篇博客文章中遇到过这种方法:http://www.travisrunyard.com/2013/03/26/auto-create-outlook-mapi-user-profiles/
([ADSISEARCHER]"samaccountname=$($env:USERNAME)").Findone().Properties.memberof
Run Code Online (Sandbox Code Playgroud)
一个更好的版本,它使用正则表达式来剥离LDAP guff并仅留下组名:
([ADSISEARCHER]"samaccountname=$($env:USERNAME)").Findone().Properties.memberof -replace '^CN=([^,]+).+$','$1'
Run Code Online (Sandbox Code Playgroud)
有关使用[ADSISEARCHER]类型加速器的更多详细信息,请访问脚本专家博客:http://blogs.technet.com/b/heyscriptingguy/archive/2010/08/24/use-the-powershell-adsisearcher-type -accelerator到搜索主动directory.aspx
小智 27
CMD的老派方式:
net user mst999 /domain
Run Code Online (Sandbox Code Playgroud)
小智 24
(GET-ADUSER –Identity USERNAME –Properties MemberOf | Select-Object MemberOf).MemberOf
Run Code Online (Sandbox Code Playgroud)
and*_*ate 11
如果您无法让 Get-ADPrincipalGroupMembership 为您工作,您可以尝试以该用户身份登录,然后使用。
$id = [Security.Principal.WindowsIdentity]::GetCurrent()
$groups = $id.Groups | foreach-object {$_.Translate([Security.Principal.NTAccount])}
$groups | select *
Run Code Online (Sandbox Code Playgroud)
Nay*_*yan 10
这应该为您提供当前用户的详细信息。不需要Powershell。
whoami /groups
虽然这里有很多优秀的答案,但我个人一直在寻找的答案却缺失了。一旦我弄清楚了——我想我应该发布它,以防我以后想找到它,或者它实际上在某个时候能够帮助别人:
Get-ADPrincipalGroupMembership username | Format-Table -auto
Run Code Online (Sandbox Code Playgroud)
呈现此内容的第二种方法是指定您感兴趣的各个列,例如:
Get-ADPrincipalGroupMembership username | select name, GroupScope, GroupCategory
Run Code Online (Sandbox Code Playgroud)
这给出了用户名所属的所有 AD 组 - 而且还以表格的形式呈现了每个组的所有默认属性。
这给您带来的主要好处是您可以一目了然地看到哪些是通讯组列表,哪些是安全组。您可以进一步一目了然地看到哪些是通用的,哪些是 DomainLocal 的,哪些是全局的。
你为什么要关心最后一点?
获取用户的组成员资格:
$strUserName = "Primoz"
$strUser = get-qaduser -SamAccountName $strUserName
$strUser.memberof
Run Code Online (Sandbox Code Playgroud)
请参阅获取用户的组成员身份
但另请参阅Quest的Active Directory免费PowerShell命令.
[ 编辑:Get-ADPrincipalGroupMembership命令包含在自Windows 2008 R2 v2以来的Powershell中.请参阅kstrauss的回答.]
Get-Member 不是用于获取用户的组成员身份。如果要获取用户在本地系统上所属的组列表,可以通过以下方式进行:
$query = "ASSOCIATORS OF {Win32_Account.Name='DemoUser1',Domain='DomainName'} WHERE ResultRole=GroupComponent ResultClass=Win32_Account"
Get-WMIObject -Query $query | Select Name
Run Code Online (Sandbox Code Playgroud)
在上述查询中,将 DemoUser1 替换为您想要的用户名,将 DomainName 替换为您的本地计算机名称或域名。
| 归档时间: |
|
| 查看次数: |
835156 次 |
| 最近记录: |