W tym artykule zademonstrujemy, jak wypełnić komputery w usłudze Active Directory przy użyciu Poweshell. Jako przykład pokażemy, jak zapisać informacje o modelu komputera w polu Opis obiektów typu „Komputer” w usłudze Active Directory.
Dlatego chcemy, aby informacje o producencie komputera, jego modelu i numerze seryjnym były wyświetlane w polu Opis (Opis) komputera w konsoli Użytkownicy i komputery usługi Active Directory. Informacje te można uzyskać za pomocą takiego żądania WMI:
Get-WMIObject Win32_ComputerSystemProduct | Wybierz dostawcę, nazwę, numer identyfikacyjny
Kwerenda zwraca następujące dane:
- Producent (Sprzedawca) - HP
- Model (Nazwa) - Proliant DL 360 G5
- Numer seryjny (IdentifyingNumber) - CZJ733xxxx
Teraz musisz wprowadzić te dane w polu Opis tego komputera w AD. Moduł pomoże nam w tym. ActiveDirectory dla Windows Powerhell (zakłada się, że ten moduł jest już zainstalowany z pakietu RSAT).
Moduł importujemy za pomocą tego polecenia:
Moduł importu ActiveDirectory
Przydzielimy zmiennej $ computer nazwę konta komputera w usłudze Active Directory, w której chcemy wprowadzić zmiany:
$ computer = "PC-Name-up01"
Następnie w następujących zmiennych zapisujemy potrzebne dane komputerowe:
$ sprzedawca = (Get-WMIObject -ComputerName $ computer Win32_ComputerSystemProduct) .Vendor
$ nazwa = (Get-WMIObject -ComputerName $ computer Win32_ComputerSystemProduct) .Name
$ identifyingNumber = (Get-WMIObject -ComputerName $ computer Win32_ComputerSystemProduct) .identifyingNumber
Zobaczmy, jakie wartości są przypisane do zmiennych:
$ sprzedawca
$ nazwa
$ identifyingNumber
Pozostaje zapisywać odebrane dane w polu Opis konta komputera w usłudze Active Directory. Polecenie cmdlet Powershell pomoże nam w tym: Ustaw komputer-reklamowy. Uruchom następujące polecenie:
Set-ADComputer $ computer -Description „$ vendor: $ name: $ identifyingNumber”
Sprawdź, czy w polu Opis naszego komputera w konsoli AD pojawiły się dane dotyczące producenta i modelu systemu.
Zaktualizowaliśmy dane w AD tylko dla jednego komputera. Aby wypełnić dane dla wszystkich komputerów w określonym kontenerze (OU) w AD, użyj polecenia cmdlet Pobierz ad-komputer i pętla foreach.
Utwórz tablicę zawierającą listę wszystkich komputerów w określonej jednostce organizacyjnej:$ computers = Get-ADComputer -Filter * -searchBase "OU = Computers, DC = winitpro, DC = en"
Następnie, korzystając z pętli foreach, pobieramy dane każdego komputera przez WMI i zapisujemy je w Active Directory:
foreach ($ komputer w $ komputery)
$ vendor = (Get-WMIObject -ComputerName $ computer Win32_ComputerSystemProduct) .Vendor
$ name = (Get-WMIObject -ComputerName $ computer Win32_ComputerSystemProduct) .Name
$ identifyingNumber = (Get-WMIObject -ComputerName $ computer Win32_ComputerSystemProduct) .IdentifyingNumber
$ sprzedawca
$ nazwa
$ identifyingNumber
Set-ADComputer $ computer -Description „$ vendor: $ name: $ identifyingNumber”
Po wykonaniu skryptu pole Opis zostanie wypełnione dla wszystkich komputerów w wybranej jednostce organizacyjnej Active Directory.
Uwaga. Aby odbierać dane, komputery docelowe muszą być włączone, a żądania WMI wysyłane do nich przez sieć nie mogą być blokowane.W rozważany sposób możliwe jest zorganizowanie automatycznego wypełniania pola Opis komputera w usłudze Active Directory. Najłatwiejszym sposobem na to jest użycie skryptu logowania zasad grupy, aby podczas rozruchu komputera uruchamiane były aktualizacje danych do rekordów AD. Aby wdrożyć taki scenariusz, będziesz musiał przewidzieć Użytkownicy uwierzytelnieni prawo Napisz opis i zastosuj to Obiekty komputerowe potomków.
Uwaga. Wadą tego podejścia jest to, że każdy autoryzowany użytkownik AD może zmienić lub usunąć opis dowolnego komputera w Active Directory.Korzystając z tej techniki, możesz zorganizować ręczne lub automatyczne wypełnianie dowolnego dostępnego atrybutu komputera w usłudze Active Directory. W szczególności w polu opisu możesz wpisać nazwę bieżącego użytkownika zarejestrowanego w systemie i jego wydziale (dane te można uzyskać za pomocą polecenia cmdlet Get-ADUser), adres IP komputera lub dowolne inne niezbędne informacje.