raven42
Goto Top

Powershell: Im AD nach Rechnern mit bestimmten IP-Adressen suchen

Hallo zusammen,

ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt.

Nach einer einzelnen kenne ich den Befehl:
Get-ADComputer -Filter {IPv4Address -eq '10.11.12.13'} -Properties *  

Mein Versuch
Get-ADComputer -Filter {IPv4Address -Like '10.11.12.*'} -Properties *  
brachte die Fehlermeldung
Get-ADComputer : Operator(s): The following: ''Eq', 'Ne'' are the only operator(s) supported for searching on extended attribute: 'IPv4Address'.

... mit den Ausgabe-Formaten von Powershell habe ich immer wieder Schwierigkeiten ...

Hat jemand eine Idee zur Lösung dieses Problems?


Viele Grüße
Axel


PS: Ich habe unter Themen 'Powershell' nicht gefunden, ich hoffe, das die Frage hier richtig positioniert ist ...

Content-ID: 372077

Url: https://administrator.de/forum/powershell-im-ad-nach-rechnern-mit-bestimmten-ip-adressen-suchen-372077.html

Ausgedruckt am: 23.12.2024 um 10:12 Uhr

Pjordorf
Pjordorf 24.04.2018 aktualisiert um 17:11:49 Uhr
Goto Top
Hallo,

Zitat von @Raven42:
ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt.
Warum im AD? Wo wird dort denn die IP gespeichert? Habt iht euer AD angepasst und die IP irgendwo gespeichert?
DNS?
DHCP?
LAN IP Scanner?

https://stackoverflow.com/questions/46300052/how-to-retrieve-computers-i ...

Gruß,
Peter
emeriks
emeriks 25.04.2018 aktualisiert um 08:57:09 Uhr
Goto Top
Hi,
Get-ADComputer liefert keine IP-Adresse.

Aber Du kannst den gelieferten "DNSHostName" nehmen und diesen über DNS auflösen.

[System.Net.Dns]::GetHostAddresses(“server.domain.tld“).IPAddressToString

E.
wisebeer
wisebeer 25.04.2018 um 09:53:47 Uhr
Goto Top
Hallo Raven42,

Es gibt die Möglichkeit mit Powershell den DHCP abzufragen:

(Get-DHCPServerv4Lease -ComputerName *Name des DHCP-Hosts* -ScopeId *z.B. 10.0.0.0* | Where {$_.IPAddress -match "z.B. 10.0.0.40"}).Hostname  

Diese Abfrage liefert den Hostnamen des Clients mit der IP 10.0.0.40 (*...* anpassen...)

LG Martin
emeriks
emeriks 25.04.2018 um 09:56:21 Uhr
Goto Top
Zitat von @wisebeer:
Es gibt die Möglichkeit mit Powershell den DHCP abzufragen:
wenn man denn einen Windows DHCP Server im Einsatz hat.
Raven42
Raven42 25.04.2018 um 10:04:28 Uhr
Goto Top
Ich suche nach Computern, nicht nach IP-Adressen
muftypeter
muftypeter 25.04.2018 aktualisiert um 10:16:09 Uhr
Goto Top
Hallo,

die Frage :
...ich suche nach einer Möglichkeit nach Computern im AD zu suchen , deren IP-Adresse mit 10.11.12. beginnt....

ist damit eigendlich beantwortet.

Da die IP per default nicht im AD gespeichert werden, kann das nicht funktionieren.
Alternativ das AD erweitern und die Rechner das dorthin reporten lassen, nur dann kann das was werden.

Grüße Peter
Raven42
Raven42 25.04.2018 um 10:23:49 Uhr
Goto Top
@muftypeter

Hallo Peter,

bei uns sind im AD die IP zu jedem Computer gespeichert, und auch bei all unseren Kunden.
Ich wusste gar nicht, das diese keine Default-Einstellung ist.

Viele Grüße
Axel
emeriks
emeriks 25.04.2018 um 10:33:43 Uhr
Goto Top
bei uns sind im AD die IP zu jedem Computer gespeichert, und auch bei all unseren Kunden.
Ich wusste gar nicht, das diese keine Default-Einstellung ist.
Und warum ist Deine Lösung dann, im DHCP zu suchen?
Raven42
Raven42 25.04.2018 um 10:45:33 Uhr
Goto Top
Der Vorschlag war zumindest eine Möglichkeit.
Daher habe ich auf den grünen Button 'zur Lösung beigetragen' geklickt, in der Annahme, dass nur der Beitrag gekennzeichnet wird.

Dadurch wurde allerdings der ganze Thread auf gelöst gesetzt, was nicht meine Absicht wahr ... face-sad
Pjordorf
Pjordorf 25.04.2018 um 10:50:29 Uhr
Goto Top
Hallo,

Zitat von @Raven42:
Dadurch wurde allerdings der ganze Thread auf gelöst gesetzt, was nicht meine Absicht wahr ... face-sad
Dann mach zurück.

Gruß,
Peter
Raven42
Raven42 25.04.2018 um 10:56:44 Uhr
Goto Top
Zitat von @Pjordorf:
Dann mach zurück.

Done. face-smile
wisebeer
wisebeer 25.04.2018 um 11:11:41 Uhr
Goto Top
Ok, schade, mir war nicht klar, dass ihren keinen DHCP im Einsatz habt. Was genau meinst du mit im AD gespeichert? Als ADSI Objekt?

LG Martin
emeriks
emeriks 25.04.2018 aktualisiert um 11:14:28 Uhr
Goto Top
Zitat von @Raven42:
bei uns sind im AD die IP zu jedem Computer gespeichert, und auch bei all unseren Kunden.
Und das Attribut dafür lautet "IPv4Address" ? Und ist welcher Datentyp? String? Binary?

Get-ADComputer kann meines Wissens nur einige der Standard-Attribute liefern. Du müsstest hier also stattdessen mit Get-ADObject arbeiten.

Get-ADObject -Filter {objectClass -eq "computer" -and  IPv4Address -Like '10.11.12.*'} -Properties *  

Und das Attribut, welches Du dann haben willst lautet "dNSHostname".
Raven42
Raven42 25.04.2018 aktualisiert um 13:06:16 Uhr
Goto Top
Zitat von @emeriks:
Zitat von @Raven42:
bei uns sind im AD die IP zu jedem Computer gespeichert, und auch bei all unseren Kunden.
Und das Attribut dafür lautet "IPv4Address" ? Und ist welcher Datentyp? String? Binary?
IPv4Address Property System.String IPv4Address {get;}

Get-ADComputer kann meines Wissens nur einige der Standard-Attribute liefern.
Get-ADComputer bringt alle Werte, die ich in diesem Fall haben möchte.
Aber mit nur einer IP-Adresse.


Du müsstest hier also stattdessen mit Get-ADObject arbeiten.
Get-ADObject -Filter {objectClass -eq "computer" -and  IPv4Address -Like '10.11.12.*'} -Properties *  

Und das Attribut, welches Du dann haben willst lautet "dNSHostname".

Leider kommt bei dem Befehl nichts zurück, auch keine Fehlermeldung.
Pjordorf
Pjordorf 25.04.2018 um 13:20:39 Uhr
Goto Top
Hallo,

Zitat von @Raven42:
Get-ADComputer bringt alle Werte, die ich in diesem Fall haben möchte.
Aber mit nur einer IP-Adresse.
Was soll das jetzt sagen? Wir kennen euer AD nicht und wie ihr dort welche Felder für welchen daten verwendet bzw. angepasst oder ergänzt habt. Oder habt ihr normalerweise 20 IPs pro Rechner?

Leider kommt bei dem Befehl nichts zurück, auch keine Fehlermeldung.
Und was steht in dNSHostname drin?

Gruß,
Peter
emeriks
emeriks 25.04.2018 um 13:24:08 Uhr
Goto Top
Get-ADComputer bringt alle Werte, die ich in diesem Fall haben möchte.
Aber mit nur einer IP-Adresse.
Das verstehe ich jetzt nicht. Eine Adresse pro Computerobjekt oder für alle oder was?
emeriks
emeriks 25.04.2018 um 13:25:46 Uhr
Goto Top
Poste doch bitte mal exemplarisch die Ausgabe für eines der Computerobjekt.
(Informationen verfremden)

Get-ADObject -Filter {objectClass -eq "computer"} -Properties * | FL  
Raven42
Raven42 25.04.2018 aktualisiert um 13:48:00 Uhr
Goto Top
Zitat von @Pjordorf:

Zitat von @Raven42:
Get-ADComputer bringt alle Werte, die ich in diesem Fall haben möchte.
Aber mit nur einer IP-Adresse.
Was soll das jetzt sagen? Wir kennen euer AD nicht und wie ihr dort welche Felder für welchen daten verwendet bzw. angepasst oder ergänzt habt. Oder habt ihr normalerweise 20 IPs pro Rechner?

Da habe ich mich falsch ausgedrückt.
Ich meinte, ich kann nur nach einer IP-Adresse suchen, nicht nach mehreren

Leider kommt bei dem Befehl nichts zurück, auch keine Fehlermeldung.
Und was steht in dNSHostname drin?


auch nichts
Raven42
Raven42 25.04.2018 um 13:45:46 Uhr
Goto Top
Zitat von @emeriks:

Poste doch bitte mal exemplarisch die Ausgabe für eines der Computerobjekt. (Informationen verfremden)


accountExpires                  : 9223372036854775807
badPasswordTime                 : 0
badPwdCount                     : 0
CanonicalName                   : ad.FIRMA/OU1/VE/OU2/OU3/Rechner-Name
CN                              : Rechner-Name
codePage                        : 0
countryCode                     : 0
Created                         : 28.02.2011 14:22:57
createTimeStamp                 : 28.02.2011 14:22:57
Deleted                         :
Description                     :
DisplayName                     : Rechner-Name$
DistinguishedName               : CN=Rechner-Name,OU=OU3,OU=OU2,OU=VE,OU=OU1,DC=ad,DC=FIRMA
dNSHostName                     : Rechner-Name.ad.FIRMA
dSCorePropagationData           : {31.03.2017 13:43:57, 16.09.2016 10:45:42, 16.09.2016 10:44:10, 10.08.2016 14:08:39...}
info                            : Admins managed by xxx
instanceType                    : 4
isCriticalSystemObject          : False
isDeleted                       :
LastKnownParent                 :
lastLogoff                      : 0
lastLogon                       : 131690897956026165
lastLogonTimestamp              : 131683081539073414
localPolicyFlags                : 0
logonCount                      : 1318
managedBy                       : CN=adm,OU=ADM-Accounts,OU=user,OU=OU4,OU=OU1,DC=ad,DC=FIRMA
memberOf                        : {CN=FIRMA_VE_Srv_Sec_Local_Admins_Exception,OU=Security,OU=group,OU=VE,OU=OU1,DC=ad,DC=FIRMA, CN=FIRMA_Global_C_WSUS_Security_Updates_Approved,OU=COMMON,OU=OU1,DC=ad,DC=FIRMA}
Modified                        : 16.04.2018 01:22:43
modifyTimeStamp                 : 16.04.2018 01:22:43
msDS-SupportedEncryptionTypes   : 28
Name                            : Rechner-Name
nTSecurityDescriptor            : System.DirectoryServices.ActiveDirectorySecurity
ObjectCategory                  : CN=Computer,CN=Schema,CN=Configuration,DC=ad,DC=FIRMA
ObjectClass                     : computer
ObjectGUID                      : add29f2a-c975-404a-9dcd-a26d70ba8a10
objectSid                       : S-1-5-21-3382346643-2922009164-1473079970-15684
operatingSystem                 : Windows Server 2008 R2 Standard
operatingSystemServicePack      : Service Pack 1
operatingSystemVersion          : 6.1 (7601)
primaryGroupID                  : 515
ProtectedFromAccidentalDeletion : False
pwdLastSet                      : 131676798800311301
sAMAccountName                  : Rechner-Name$
sAMAccountType                  : 805306369
sDRightsEffective               : 15
servicePrincipalName            : {TERMSRV/Rechner-Name, TERMSRV/Rechner-Name.ad.FIRMA, RestrictedKrbHost/Rechner-Name, RestrictedKrbHost/Rechner-Name.ad.FIRMA...}
userAccountControl              : 4096
uSNChanged                      : 212409292
uSNCreated                      : 279310
whenChanged                     : 16.04.2018 01:22:43
whenCreated                     : 28.02.2011 14:22:57
Pjordorf
Pjordorf 25.04.2018 um 13:46:44 Uhr
Goto Top
Hallo,

Zitat von @Raven42:
ich kann nur ancher IP-Adresse suchen
Verstehe wir hier nicht. Wir kenne aber auch nicht deine gelieferten Daten.

auch nichts
Ja was soll denn ein Nichts an Infos für eine Abfrage liefern, ausser das es Nichts ist.

Gruß,
Peter
Pjordorf
Pjordorf 25.04.2018 um 13:51:48 Uhr
Goto Top
Hallo,

Zitat von @Raven42:
dNSHostName : Rechner-Name.ad.FIRMA
Und den kannst du im DNS nicht auflösen oder im DHCP nicht finden?
Ausserdem msagtest du gerade das hier nichts stehen würde.
Und eine IP steht auch nirgends, also kannst du auch noch nicht mal nach einen Teil der IP suchen.

Gruß,
Peter
Raven42
Raven42 25.04.2018 um 14:02:52 Uhr
Goto Top
Der gleiche Befehl mit Get-ADComputer , statt Get-ADObject
Dabei werden deutlich mehr Felder angezeigt, auch die IPv4Address

AccountExpirationDate                :
accountExpires                       : 9223372036854775807
AccountLockoutTime                   :
AccountNotDelegated                  : False
AllowReversiblePasswordEncryption    : False
AuthenticationPolicy                 : {}
AuthenticationPolicySilo             : {}
BadLogonCount                        : 0
badPasswordTime                      : 0
badPwdCount                          : 0
CannotChangePassword                 : False
CanonicalName                        : ad.FIRMA/OU1/OU2/OU3/OU4/Rechner-Name
Certificates                         : {}
CN                                   : Rechner-Name
codePage                             : 0
CompoundIdentitySupported            : {False}
countryCode                          : 0
Created                              : 28.02.2011 14:22:57
createTimeStamp                      : 28.02.2011 14:22:57
Deleted                              :
Description                          :
DisplayName                          : Rechner-Name$
DistinguishedName                    : CN=Rechner-Name,OU=OU4,OU=OU3,OU=OU2,OU=OU1,DC=ad,DC=FIRMA
DNSHostName                          : Rechner-Name.ad.FIRMA
DoesNotRequirePreAuth                : False
dSCorePropagationData                : {31.03.2017 13:43:47, 16.09.2016 10:45:46, 16.09.2016 10:44:25, 10.08.2016 14:08:49...}
Enabled                              : True
HomedirRequired                      : False
HomePage                             :
info                                 : Admins managed by IDM
instanceType                         : 4
IPv4Address                          : 10.11.12.13
IPv6Address                          :
isCriticalSystemObject               : False
isDeleted                            :
KerberosEncryptionType               : {RC4, AES128, AES256}
LastBadPasswordAttempt               :
LastKnownParent                      :
lastLogoff                           : 0
lastLogon                            : 131691212657358821
LastLogonDate                        : 16.04.2018 01:22:33
lastLogonTimestamp                   : 131683081539073414
localPolicyFlags                     : 0
Location                             :
LockedOut                            : False
logonCount                           : 1353
ManagedBy                            : CN=adm,OU=ADM-Accounts,OU=user,OU=OU2,OU=OU1,DC=ad,DC=FIRMA
MemberOf                             : {CN=FIRMA_VE_Srv_Sec_Local_Admins_Exception,OU=Security,OU=group,OU=OU2,OU=OU1,DC=ad,DC=FIRMA, CN=FIRMA_Global_C_WSUS_Security_Updates_Approved,OU=COMMON,OU=OU1,DC=ad,DC=FIRMA}
MNSLogonAccount                      : False
Modified                             : 16.04.2018 01:22:33
modifyTimeStamp                      : 16.04.2018 01:22:33
msDS-SupportedEncryptionTypes        : 28
msDS-User-Account-Control-Computed   : 0
Name                                 : Rechner-Name
nTSecurityDescriptor                 : System.DirectoryServices.ActiveDirectorySecurity
ObjectCategory                       : CN=Computer,CN=Schema,CN=Configuration,DC=ad,DC=FIRMA
ObjectClass                          : computer
ObjectGUID                           : add29f2a-c975-404a-9dcd-a26d70ba8a10
objectSid                            : S-1-5-21-3382346643-2922009164-1473079970-15684
OperatingSystem                      : Windows Server 2008 R2 Standard
OperatingSystemHotfix                :
OperatingSystemServicePack           : Service Pack 1
OperatingSystemVersion               : 6.1 (7601)
PasswordExpired                      : False
PasswordLastSet                      : 08.04.2018 18:51:20
PasswordNeverExpires                 : False
PasswordNotRequired                  : False
PrimaryGroup                         : CN=Domain Computers,CN=Users,DC=ad,DC=FIRMA
primaryGroupID                       : 515
PrincipalsAllowedToDelegateToAccount : {}
ProtectedFromAccidentalDeletion      : False
pwdLastSet                           : 131676798800311301
SamAccountName                       : Rechner-Name$
sAMAccountType                       : 805306369
sDRightsEffective                    : 15
ServiceAccount                       : {}
servicePrincipalName                 : {TERMSRV/Rechner-Name, TERMSRV/Rechner-Name.ad.FIRMA, RestrictedKrbHost/Rechner-Name, RestrictedKrbHost/Rechner-Name.ad.FIRMA...}
ServicePrincipalNames                : {TERMSRV/Rechner-Name, TERMSRV/Rechner-Name.ad.FIRMA, RestrictedKrbHost/Rechner-Name, RestrictedKrbHost/Rechner-Name.ad.FIRMA...}
SID                                  : S-1-5-21-3382346643-2922009164-1473079970-15684
SIDHistory                           : {}
TrustedForDelegation                 : False
TrustedToAuthForDelegation           : False
UseDESKeyOnly                        : False
userAccountControl                   : 4096
userCertificate                      : {}
UserPrincipalName                    :
uSNChanged                           : 319590836
uSNCreated                           : 281959
whenChanged                          : 16.04.2018 01:22:33
whenCreated                          : 28.02.2011 14:22:57
emeriks
emeriks 25.04.2018 aktualisiert um 14:05:10 Uhr
Goto Top
Du willst uns beschäftigen?

Hier siehst Du klar, dass "IPv4Address" nur von Get-ADObject geliefert wird. Also benutze nur dieses uns nicht Get-ADComputer!

Edit: Fehler korrigiert.
Raven42
Raven42 25.04.2018 um 14:15:12 Uhr
Goto Top
Zitat von @emeriks:

Du willst uns beschäftigen?

Hier siehst Du klar, dass "IPv4Address" nur von Get-ADObject geliefert wird. Also benutze nur dieses uns nicht Get-ADComputer!

Edit: Fehler korrigiert.

Genau andersrum wird ein Schuh draus: nur mit Get-ADComputer ist auch "IPv4Address" mit dabei.
Nur das ich damit nur nach einer IP suchen kann, wie im 1. Beitrag geschrieben

Und nein, das soll keine ABM (Arbeitsbeschaffungsmaßnahme) werden ... face-sad
emeriks
emeriks 25.04.2018 aktualisiert um 14:49:50 Uhr
Goto Top
Genau andersrum wird ein Schuh draus: nur mit Get-ADComputer ist auch "IPv4Address" mit dabei.
Äääähm, ja ... ? Sorry, mein Fehler! Kann ich aber auch nicht ganz nachvollziehen. Aber egal.

Nur das ich damit nur nach einer IP suchen kann, wie im 1. Beitrag geschrieben
Mal am Rande: "IPv4Address -Like '10.11.12.*'" ist kein Suchen sondern Filtern.
Wenn dieser PowerShell-Filter nicht funktioniert, dann versuche es mal mit einem LDAP-Filter.

Get-ADComputer -LdapFilter "(&(objectClass=computer)(IPv4Address=10.11.12.*))" -Properties *  
Raven42
Raven42 25.04.2018 um 15:04:00 Uhr
Goto Top
Zitat von @emeriks:

Mal am Rande: "IPv4Address -Like '10.11.12.*'" ist kein Suchen sondern Filtern.

stimmt

Wenn dieser PowerShell-Filter nicht funktioniert, dann versuche es mal mit einem LDAP-Filter.

> Get-ADComputer -LdapFilter "(&(objectClass=computer)(IPv4Address=10.11.12.*))" -Properties *  

leer face-sad und ich hab mich schon gefreut, die Idee hatte ich noch nicht gesehen
emeriks
emeriks 25.04.2018 um 15:09:24 Uhr
Goto Top
Und bei ...?

Get-ADComputer -LdapFilter "(&(objectClass=computer)(IPv4Address=*))" -Properties *  

Und mit diesem Filter mal in der MMC ADUC suchen

MMC ADUC
Domäne
suchen
benutzerdefinierte Suche
Erweitert
LDAP-Abfrage: (&(objectClass=computer)(IPv4Address=*))
136037
Lösung 136037 25.04.2018 aktualisiert um 15:32:06 Uhr
Goto Top
Jungs und Mädels ist doch ganz einfach ...
Get-AdComputer -Filter * -Properties IPv4Address | ?{$_.IPv4Address -like '10.11.12.*'}  
Raven42
Raven42 25.04.2018 aktualisiert um 15:27:54 Uhr
Goto Top
@emeriks
Bei beiden Abfragen kein Ergegnis

2018-04-25 15_25_03-clipboard
136037
136037 25.04.2018 aktualisiert um 15:29:43 Uhr
Goto Top
Kann ja auch nicht denn "IPv4Address" ist kein LDAP Attribut der Computer Class Objects!
Das Attribut wird on the fly vom CMDLet generiert und dabei vom DNS der Domäne abgefragt!
Lösung s. 1 Post weiter oben.
Raven42
Raven42 25.04.2018 um 15:31:34 Uhr
Goto Top
Zitat von @136037:

Jungs und Mädels ist doch ganz einfach ...
> Get-AdComputer -Filter * -Properties IPv4Address | ?{$_.IPv4Address -like '10.11.12.*'}  
> 

der funktioniert *klatschklatschklatsch*
136037
136037 25.04.2018 aktualisiert um 15:33:28 Uhr
Goto Top
*Verbeug*, die Bühne verlass face-smile
emeriks
emeriks 25.04.2018 um 15:38:11 Uhr
Goto Top
Zitat von @136037:
Kann ja auch nicht denn "IPv4Address" ist kein LDAP Attribut der Computer Class Objects!
Das Attribut wird on the fly vom CMDLet generiert und dabei vom DNS der Domäne abgefragt!
Ja man, bin ich bescheuert! Ich habe mich da voll auf die Aussage von @Raven42 verlassen, gar nicht selbst propbiert. face-sad
Raven42
Raven42 25.04.2018 um 15:47:01 Uhr
Goto Top
Ich habe wieder was gelernt, wie immer in diesem Forum, toll face-smile

Danke an alle Beteiligten, aber vor allem an @emeriks sowohl für die Hilfe als auch die Geduld
Und an @136037 für die Lösung.
Raven42
Raven42 25.04.2018 um 15:58:47 Uhr
Goto Top
Nachtrag:

Ich habe gerade mal mit dem ADExplorer von Sysinternals nach geschaut, ihr habt (natürlich) Recht, da ist kein Feld 'IPv4Address'.
Jetzt kann ich mir auch erklären, warum bei dem Befehl Get-ADObject das Feld nicht angezeigt wurde ...
136037
136037 25.04.2018 um 17:15:50 Uhr
Goto Top