我希望能够直接检索我的设备和嵌套组令牌,这可以通过安装ActiveDirectory模块轻松实现,但并不是我所有的设备都有此功能,我不希望安装它.
下面使用的是工作正常的ActiveDirectory模块.
$computer = Get-ADComputer -Identity "machinename"
$tokenGroups = (Get-ADObject -Identity $computer.DistinguishedName -Properties "tokenGroups").tokenGroups
$groupNames = $tokenGroups | ForEach-Object {
$sid = New-Object System.Security.Principal.SecurityIdentifier $_
$group = $sid.Translate([System.Security.Principal.NTAccount])
$group.Value
}
$groupNames
这是一个不使用ActiveDirectory模块但针对用户的示例:
$currentUser = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$groups = $currentUser.Groups
$groupNames = $groups | ForEach-Object {
$_.Translate([System.Security.Principal.NTAccount])
}
$groupNames
如何为同时具有直接和嵌套组成员身份的计算机执行此操作?我曾想过导入ActiveDirectory模块使用的.dll,而不是安装,但我想看看是否有更干净的方法来做到这一点.