Artykuł w wersji pdf - Support Online Sp. z o. o.

Transkrypt

Artykuł w wersji pdf - Support Online Sp. z o. o.
Windows PowerShell.
Wykorzystanie w Active Directory
Powłoka Windows PowerShell oferuje ponad 130 standardowych narzędzi wiersza
polecenia, jest to język skryptów ukierunkowany na administrację oraz spójną składnię i narzędzia.
Powłoka Windows PowerShell przyspiesza automatyzację zadań administrowania systemem, jak
usługi Active Directory, serwer terminali i internetowe usługi informacyjne (IIS) 7.0. Zwiększa
również zdolność organizacji do pokonywania problemów z zarządzaniem systemami specyficznych
dla danego środowiska.
W tym artykule przedstawiono jak można wykorzystać PowerShell do stworzenia dowolnej liczy
użytkowników a także ich usunięcie w Active Directory.
Aby stworzyć użytkownika należy:
1. Zastosować odpowiedniego dostawcę do sieci
2. Połączyć się z kontenerem dla użytkowników
3. Ustalić domenę
4. Ustalić dla obiektu klasę User
5. Powiązać z Active Directory
6. Utworzyć użytkownika za pomocą metody Create
7. Podać przynajmniej jeden atrybut sAMAccountName w metodzie Put
8. Zastosować SetInfo() wpisując tym samym użytkownika do Active Directory.
Po wykonaniu poniższego skryptu stworzy się zgodnie ze wskazanym miejscem 10 nowych
użytkowników:
$aryText = Get-Content -Path "c:\dane.txt"
$strCLass = "User"
$intUsers = 10
$strName = "cn=Użytkownik"
$objADSI = [ADSI]"LDAP://ou=MojTestOU,dc=northwood,dc=com"
for ($i=1; $i -le $intUsers; $i++)
{
$objUser = $objADSI.create($strCLass, $StrName+$i)
$objUser.put(”userAccountControl”, 544)
$objUser.Put("description" , "Prosty użytkownik $i")
$objUser.setInfo()
$objUser.put("streetAddress", $aryText[0])
$objUser.put("postOfficeBox", $aryText[1])
Strona 1 z 4
$objUser.put("l", $aryText[2])
$objUser.put("st", $aryText[3])
$objUser.put("postalCode" , $aryText[4])
$objUser.put("c", $aryText[5])
$objUser.put("co", $aryText[6])
$objUser.put("countryCode", $aryText[7])
$objUser.SetInfo()
$objUser.put("profilePath", $aryText[8])
$objUser.put("scriptPath", $aryText[9])
$objUser.put("homeDirectory", $aryText[10])
$objUser.put("homeDrive", $aryText[11])
$objUser.setInfo()
}
Wynik wygląda następująco:
Dodatkowa linią w kodzie: $objUser.put(”userAccountControl”, 544), ma za zadanie zaraz po
utworzeniu nowego użytkownika ustawić go na aktywny, gdyż domyślnie tworzone konto bez tego
fragmentu kodu, będzie kontem wyłączonym.
Fragment kodu z powyższego skryptu:
$aryText = Get-Content -Path "c:\dane.txt"
…………………………………
$objUser.put("streetAddress", $aryText[0])
$objUser.put("postOfficeBox", $aryText[1])
$objUser.put("l", $aryText[2])
$objUser.put("st", $aryText[3])
$objUser.put("postalCode" , $aryText[4])
$objUser.put("c", $aryText[5])
Strona 2 z 4
$objUser.put("co", $aryText[6])
$objUser.put("countryCode", $aryText[7])
$objUser.SetInfo()
$objUser.put("profilePath", $aryText[8])
$objUser.put("scriptPath", $aryText[9])
$objUser.put("homeDirectory", $aryText[10])
$objUser.put("homeDrive", $aryText[11])
ma za zadanie wczytanie danych z zewnętrznego pliku tekstowego dane.txt. W pliku tekstowym każda
linia odpowiada jej właściwości w Active Directory. Jeśli podamy każdą wartość w nowej linii możemy
w prosty sposób wprowadzić każdą zmienną do określonego pola. Ilość użytkowników jaką można
stworzyć zależy wyłącznie od tego jaką wartość nadamy zmiennej $intUsers. W tym przypadku jest to
wartość 10, co oznacza, że zostało utworzonych dziesięciu użytkowników. Nie mniej jednak, nic nie stoi
na przeszkodzie, żeby była to liczba np. 120.
Efektem wczytywania danych z pliku tekstowego dane.txt są wypełnione następujące pola:
Usuwanie wielu użytkowników:
$strCLass = "User"
$intUsers = 10
$strName = "cn=Użytkownik"
$objADSI = [ADSI]"LDAP://ou=MojTestOU,dc=northwood,dc=com"
for ($i=1; $i -le $intUsers; $i++)
{
Strona 3 z 4
$objUser = $objADSI.delete($strCLass, $StrName+$i)
}
Powyższy skrypt usuwa określoną w liczbie powtórzeń pętli użytkowników o nazwie Użytkownik. Nie
stosując pętli można w ten sposób usuwać pojedyncze konta użytkowników, komputerów.
Podsumowanie
Powłoka Windows PowerShell ma szerokie zastosowanie, nie tylko przy tworzeniu użytkowników, ale
praktycznie w każdym działaniu administratora sieci. Można między innymi wykorzystać ją do
czyszczenia co pewien czas dziennika zdarzeń w Windows Exchange 2010 oraz do wszystkiego co
można wykonać za pomocą graficznego interfejsu użytkownika (GUI). Używając konsoli cmdlet w
Power Shell można również tworzyć obiekty, np. plik tekstowy z pewną zawartością lub pliki pakietu
MS Office.
Artykuł ekspercki opracował Paweł Jaroszewicz z firmy Support Online Sp. z o.o.
Firma informatyczna Support Online świadczy szeroki zakres
usług IT dla firm oraz instytucji. Oferujemy m.in. system kopii
zapasowych plików SBBS, outsourcing IT, telefonię VoIP,
pełne i częściowe wsparcie informatyczne oraz audyt
informatyczny. Jeśli jesteście Państwo zainteresowani
naszymi usługami i produktami – zapraszamy do kontaktu.
Support Online Sp. z o.o.
tel. + 22 335 28 00
e-mail: [email protected]
www.support-online.pl
Źródło:
1. Opracowanie własne
Strona 4 z 4