Det finns inget direkt sätt att få en lista över IP -adresser från Active Directory -användare och datorer (ADUC) själv. Active Directory lagrar användar- och datorinformation, men inte deras dynamiskt tilldelade IP -adresser. IP -adresser hanteras av DHCP -servrar och är vanligtvis inte ihållande poster i Active Directory.
För att få en lista över IP -adresser för datorer i Active Directory måste du använda andra verktyg och tekniker. Här är några tillvägagångssätt:
1. Använda PowerShell: Detta är den mest effektiva och flexibla metoden.
`` `PowerShell
få alla datorer i en specifik OU (organisationsenhet). Byt ut "OU =datorer, DC =YourDomain, DC =com" med din OU -stigen.
$ Computers =get -addomputer -filter * -SearchBase "OU =Datorer, DC =YourDomain, DC =com"
Få IP -adressen för varje dator. Detta använder get-wmiobject, som kräver att fjärråtkomst ska aktiveras på måldatorerna.
förhand ($ dator i $ datorer) {
försök {
$ ip =(get -wmiobject -class win32_computersystem -computername $ computer.name) .IpAddress
Writ-Output "$ ($ computer.name):$ ip"
}
fånga {
Writ-Warning "kunde inte hämta IP-adress för $ ($ Computer.Name):$ ($ _. Undantag.Message)"
}
}
`` `
Förklaring:
* `Get-Addator ':Hämtar en lista över datorobjekt från Active Directory. Justera parametern "-SearchBase" för att ange OU som innehåller dina datorer.
* `Get -wmiobject -class win32_computersystem`:Hämtar WMI -information om datorsystemet, inklusive dess IP -adress. Detta kräver lämpliga behörigheter och nätverksanslutning.
* `-Computername $ computer.Name`:Anger datornamnet för att fråga på distans.
* `Försök ... Catch ':Hanterar potentiella fel (t.ex. nätverksproblem, åtkomst nekad).
Viktiga överväganden för PowerShell:
* behörigheter: Kontot som kör detta skript behöver lämpliga behörigheter för att fråga Active Directory och komma åt WMI på fjärrdatorerna.
* Nätverksanslutning: Se till att datorn som kör skriptet kan kommunicera med alla datorer i domänen.
* Felhantering: Blocket "försök ... fångst" är avgörande. Nätverksproblem eller tillståndsproblem kommer att orsaka fel, och blocket "Catch" förhindrar att skriptet kraschar.
* fjärrhantering: Fjärrhantering måste vara aktiverad på måldatorerna. Detta innebär ofta att aktivera och konfigurera Windows Remote Management (WINRM) -tjänsten.
2. Använda nätverksövervakningsverktyg: Verktyg som SolarWinds, PRTG eller Nagios kan övervaka nätverksenheter och ge en inventering av IP -adresser, ofta länkade till datornamn om de upptäcks korrekt. Dessa verktyg erbjuder vanligtvis mer sofistikerade funktioner och rapporteringsfunktioner än ett enkelt PowerShell -skript.
3. Använda en DHCP -serverns databas: Om du använder DHCP för att hantera IP -adresser kommer din DHCP -server att ha en databas som innehåller IP -adressuppgifter. Du kan fråga den här databasen (den exakta metoden beror på din DHCP -serverprogramvara) för att hitta vilka IP -adresser som tilldelas vilka datorer. Denna metod kommer dock inte att fånga statiskt tilldelade IP -adresser.
Att välja rätt metod:
För en snabb, engångskontroll är PowerShell-skriptet det mest praktiska. För pågående övervakning och mer omfattande rapportering rekommenderas ett dedikerat nätverksövervakningsverktyg. Att använda DHCP -servern är endast användbart om du främst använder DHCP för IP -adresshantering. Kom ihåg att alltid prioritera säkerheten och följa din organisations IT -policy när du får tillgång till och hanterar nätverksinformation.