PowerShell: получение информации о членстве для учетной записи компьютера (не учетной записи пользователя)
Получение неоднозначной ошибки личности. Я могу успешно выполнить поиск, чтобы вернуть группу, членом которой является учетная запись пользователя, но когда я пытаюсь найти группы, в которые входит учетная запись компьютера, возникает неоднозначная ошибка идентификации. Я пытался использовать ключ -type или -identity, но либо у меня не был правильный синтаксис, либо он просто не был применим.
Где моя целевая учетная запись компьютера называется SNA00760856, я работаю над использованием...
Get-QADGroup -Containsindirectmember SNA00760856
Любой массаж, который я могу сделать с командой, чтобы получить группы, в которые входит компьютер SNA00760856? Удаление учетной записи пользователя вместо учетной записи компьютера работает как шарм.
Я также попытался уточнить имя компьютера с информацией о домене.
Т.е. SNA00760856.mydivision.mydomain.com или mydivision\SNA00760856
Также попытался собрать членство в компьютере, используя который, как я знаю, неправильно после более внимательного прочтения информации о коммутаторе....
Get-QADobject -IndirectMemberOf SNA00760856
Также приводит к неоднозначной идентичности.
5 ответов
Если вы хотите очистить вывод, используйте это
Get-ADPrincipalGroupMembership (Get-ADComputer ComputerName) | select-object name
Вы можете получить групповое членство компьютера в AD через модуль ActiveDirectory с помощью Get-ADPrincipalGroupMembership
, Вам нужно будет искать через компьютеры DistinguishedName, чего можно добиться, используя Get-ADComputer
:
Get-ADPrincipalGroupMembership (Get-ADComputer SNA00760856).DistinguishedName
Это вернет все объекты группы SNA00760856
является членом.
Если вы экспортируете в список, используйте
Get-AdPrincipalGroupMembership ( Get-ADComputer XXXXXXX) | Исходный файл C:\XXX\XXX
Я использовал что-то, чтобы вывести информацию о компьютере AD и членстве компьютера в один текстовый файл. Это использует$Env:computerName
чтобы получить имя компьютера, на котором запускается скрипт. Если вы хотите выбрать другой компьютер, измените переменную$HostName =
на имя компьютера по вашему выбору. Пример$HostName = "Janes-Laptop01"
. Компьютер, на котором вы запускаете этот скрипт, должен иметьActive Directory
модуль, установленный для этого, чтобы работать.
Import-module -Name ActiveDirectory
$HostName = $Env:computerName
$path = "c:\temp\Computer_AD_Membership_Info_$($HostName)_$(get-date -f yyyyMMdd-hhmm).txt"
Echo "`r`n ******* Computer OU Information. ******* `r`n" | Out-File -FilePath $path -Encoding utf8 -Force ;
Get-AdComputer -Identity $($HostName) -Properties * | Out-File -FilePath $path -Encoding utf8 -Append -Force ;
Echo "`r`n ******* AD Groups Computer Member of. ******* `r`n" | Out-File -FilePath $path -Encoding utf8 -Append -Force ;
Get-ADPrincipalGroupMembership (Get-ADComputer $($HostName)).DistinguishedName | Out-File -FilePath $path -Encoding utf8 -Append -Force ;
Это однострочный вариант; просто замените$comp
с именем компьютера или определите его как часть вашего скрипта:
((Get-ADComputer $comp -properties memberof).MemberOf | get-adgroup).name