emeriks
Goto Top

PowerShell - Get-ADObject

Hi,
mit ist gerade aufgefallen, dass man mit
Get-ADObject
offenbar nicht alle Objekte aller Klassen zurückgeliefert bekommt.
Diese Abfrage
(Get-ADObject -server server1 -LDAPfilter "(objectClass=*)" -SearchScope Subtree -properties *).objectClass | sort-object -unique  
liefert nur u.g. Objektklassen, nicht aber z.B. "msExchActiveSyncDevice"

Wie kann ich solche Objekte abfragen?

E.

builtinDomain
classStore
computer
contact
container
dfsConfiguration
domainDNS
domainPolicy
fileLinkTracking
foreignSecurityPrincipal
group
groupPolicyContainer
infrastructureUpdate
intellimirrorSCP
linkTrackObjectMoveTable
lostAndFound
msDFS-NamespaceAnchor
msDFS-Namespacev2
msDFSR-Content
msDFSR-ContentSet
msDFSR-GlobalSettings
msDFSR-LocalSettings
msDFSR-Member
msDFSR-ReplicationGroup
msDFSR-Subscriber
msDFSR-Subscription
msDFSR-Topology
msExchDynamicDistributionList
msExchSystemObjectsContainer
msImaging-PSPs
msWMI-Som
nTFRSSettings
organizationalUnit
packageRegistration
rIDManager
rIDSet
rpcContainer
samServer
trustedDomain
user

Content-ID: 363061

Url: https://administrator.de/forum/powershell-get-adobject-363061.html

Ausgedruckt am: 31.03.2025 um 14:03 Uhr

135333
135333 31.01.2018 aktualisiert um 10:16:54 Uhr
Goto Top
Gib mal den GlobalCatalogServer an -Server server1:3268

Gruß snap
emeriks
emeriks 31.01.2018 um 10:25:10 Uhr
Goto Top
Gib mal den GlobalCatalogServer an -Server server1:3268
Das ändert nichts. Auch hier ist "msExchActiveSyncDevice" nicht dabei. Sehr wohl aber (s.u.)

Muss man das verstehen?

msExchClientAccessArray
msExchConfigurationContainer
msExchContainer
msExchDynamicDistributionList
msExchExchangeServer
msExchMessageClassification
msExchOmaConfigurationContainer
msExchOrganizationContainer
msExchPrivateMDB
msExchPublicMDB
msExchSystemObjectsContainer
emeriks
emeriks 31.01.2018 aktualisiert um 10:26:54 Uhr
Goto Top
Ich suche jetzt über (s.u.)
Das ist zwar umständlicher, aber ich komme weiter.

$DE = New-Object System.DirectoryServices.DirectoryEntry("LDAP://DC=domain,DC=tld")  
$DS = New-Object System.DirectoryServices.DirectorySearcher($DE)

$DS.Filter = "(objectClass=msExchActiveSyncDevice)"  
$DS.SearchScope =  [System.DirectoryServices.SearchScope]::Subtree
$DS.PageSize = 1000

$SRs = $DS.FindAll()
135333
135333 31.01.2018 um 10:43:09 Uhr
Goto Top
Hm, hier aber schon. Welche Umgebung? EX und AD?
emeriks
emeriks 31.01.2018 um 11:25:19 Uhr
Goto Top
Hinweis: Ich frage das nicht in der Exchange Powershell ab.

DC 2016 - Domain Level 2016 - Forest Level 2008 R2 (muss vorerst so bleiben)
Exchange 2010
135333
Lösung 135333 31.01.2018 aktualisiert um 11:52:02 Uhr
Goto Top
Zitat von @emeriks:

Hinweis: Ich frage das nicht in der Exchange Powershell ab.
Das tue ich auch nicht.
DC 2016 - Domain Level 2016 - Forest Level 2008 R2 (muss vorerst so bleiben)
Exchange 2010
Dann muss das bei dir an Berechtigungen liegen, siehe auch hier das es gehen muss
http://microlinc.homeip.net/index.php?lev1=7&lev2=15&id=298
emeriks
emeriks 31.01.2018 aktualisiert um 12:07:10 Uhr
Goto Top
Dann muss das bei dir an Berechtigungen liegen, siehe auch hier das es gehen muss
Das ist aber unwahrscheinlich.
  1. Ich habe es mit einem Enterprise Admin versucht
  2. in der selben PowerShell geht es über Get-ADObject nicht, sehr wohl aber über System.DirectoryServices.DirectorySearcher

Ich habe das jetzt mit dem selben Benutzerkonto auf einem anderen Rechner versucht: Dort geht es.
Beide Rechner sind Win 2008 R2 mit PowerShell 4.0

Der Unterschied ist .... Tada!
Die PowerShell muss voll eleviert sein. So ein Blödsinn ....
135333
135333 31.01.2018 aktualisiert um 12:10:42 Uhr
Goto Top
Die PowerShell muss voll eleviert sein. So ein Blödsinn ....
Och nö, echt jetzt?! face-big-smile Ich schick dir einen Latthammer zum Nagel ziehen face-wink
emeriks
emeriks 31.01.2018 aktualisiert um 13:11:43 Uhr
Goto Top
Ich schick dir einen Latthammer zum Nagel ziehen
Nicht so schnell!
Das muss ein Bug sein. Denn sonst lässt sich nicht erklären, dass es in einer nicht elevierten Shell direkt über .Net trotzdem funktioniert.

Hast mir aber trotzdem geholgen, auf die Spur zu kommen. Danke.
135333
135333 31.01.2018 aktualisiert um 21:20:47 Uhr
Goto Top
Vermutlich beschränkt die Shell bei dem CMDLet bei dir auf 1000 Objects, setze mal -ResultSetSize $null.
Hier geht es auf jeden Fall auch damit egal ob elevated oder nicht.
emeriks
emeriks 01.02.2018 aktualisiert um 08:26:00 Uhr
Goto Top
Vermutlich beschränkt die Shell bei dem CMDLet bei dir auf 1000 Objects, setze mal -ResultSetSize $null.
Nö, das hat damit nichts zu tun. Aber der Hammer kommt erst noch:
Ich habe es leider eben erst bemerkt und es ist viel dämlicher als Du glauben wirst. Ich hatte im Laufe das Tages eine Shell mit einem anderern Konto gestartet. Und in dieser hatte ich es versucht. Dieses Konto darf aber diese Objekte nicht lesen. Au weia ...
Es ist immer gut, ne Nacht drüber zu schlafen.