Windows 2008 Serwer – Tworzenie użytkowników przy pomocy PowerShell(70-640) cz.4

Print Friendly, PDF & Email

W poprzednim wpisie pokazałem jak przy pomocy poleceń wpisywanych w konsoli można utworzyć użytkownika w AD. Dziś nieco informacji na temat PowerShella.

Na początek oczywiście musimy zainstalować PowerShell’a w MS Windows 2008 Server. Otwieramy kolejno: Menedżer Serwera ( Server Manager ) -> Funkcje ( Features ) -> Dodaj funkcję ( Add Features) -> Wybieramy PowerShell klikamy na Dalej ( Next ) -> Zainstaluj (Install ) -> Zamknij ( Close )


1) Utworzenie nowego konta przy pomocy PowerShell:

Na początek musimy poprzez PowerShell podłączyć się obiektowo do naszego Active Directory:

$objOU=[ADSI]”LDAP://OU=Employees,DC=example,DC=com”

Zmienna oznaczana jest poprzez $, LDAP jest protokołem pozwalającym na łączenie się z DA, dalej wskazujemy jednostkę organizacyjną w której utworzymy konto, oraz naszą domenę.

Przy pomocy Create utworzymy nowego użytkownika w naszej jednostce organizacyjnej:

$objUser=$objOU.Create(„user”,”CN=Jan Kowalski”)

Do zmiennej $objUser przypisujemy informacje ze zmiennej $objOU wraz z parametrami user (czyli tworzymy użytkownika, a nie np. grupę) oraz nazwę tego użytkownika.

Następnie musimy dodać informacje pozwalającą do logowania się do systemów starszych niż MS 2000:

$objUser.Put(„sAMAccountName”,”jan.kowalski”) 

Musimy zatwierdzić zmiany:

$objUser.SetInfo()

Aby ustawić hasło wydajemy polecenie ( zawsze po SetInfo() ):

$objUser.SetPassword(„naszehaslo”)

Możemy nasze nowe konto włączyć lub wyłączyć ( odpowiednio: $true / $false ):

$objUser.psbase.InvokeSet(„AccountDisabled”, $true / $false )
$objUser.SetInfo()

Powinniśmy w AD w jednostce Employees ( lub innej która mamy ) zobaczyć utworzone konto. 

Konto możemy również założyć analogicznie przy pomocy VBS:

Set objOU=GetObject(„LDAP://OU=Employees,DC=example,DC=com„)
Set objUser=ObjOU.Create(„user”,”CN=Jan Kowalski”)
$objUser.Put „sAMAccountName”,”jan.kowalski” 
$objUser.SetInfo()

Skrypt zapisujemy z rozszerzeniem .vbs i gotowe, wystarczy kliknąć 2x na plik konto zostanie utworzone.


Jeżeli nie chcemy ręcznie, ciągle wykonywać tych samych czynności możemy przygotować plik .csv, w którym umieścimy podstawowe informacje o naszych użytkownikach, po czym wykonamy prosty skrypt który doda ich do DA:

W oddzielnych kolumnach wpisujemy kolejno nazwy identyfikujące konta:


Plik z danymi zapisujemy na dysku C: jako usersToBeCreated.csv. Następnie w PowerShell’u wpisujemy:

import-module activedirectory 
$inputFile = Import-CSV  C:usersToBeCreated.csv

foreach($line in $inputFile) 

new-aduser -SamAccountName $line.UserName -Name $line.FullName -AccountPassword (ConvertTo-SecureString -AsPlainText „Password” -Force) -Enabled $true -Path „OU=Employees,DC=example,DC=com” -DisplayName $line.FullName -GivenName $line.FirstName -Surname $line.SurName -UserPrincipalName $line.UserPrincipalName -ChangePasswordAtLogon $True 


Zapisujemy go jako addNewUsers.ps1, następnie musimy włączyć możliwość wykonywania skryptów w Windows PowerShell. Przechodzimy na dysk C: (cd C:), następnie set-executionpolicy remotesigned. Następnie wykonujemy skrypt: .addNewUsers.ps1.

Możemy również napisać to nieco inaczej:

W pliku NewUsers.csv, dodamy:

cn,sAMAccountName,FirstName,LastName
John Woods,john.woods,Johnathan,Woods
Kim Akers,kim.akers,Kimberly,Akers
W pliku userimport.ps1 dodamy:


$objOU=[ADSI]”LDAP://OU=Emplyees,DC=example,DC=com”
$dataSource=import-csv „userimport.csv”
foreach($dataRecord in $dataSource) 
{
    #mapowanie zmiennych na dane 
    $cn=$dataRecord.cn
    $sAMAccountName=$dataRecord.sAMAccountName
    $givenName=$dataRecord.FirstName
    $sn=$dataRecord.LastName
    $displayName=$sn + „, ” + $givenName
    $userPrincipalName=$givenName + „.” + $sn + „@example.com”
    
    #tworzymy nowych użytkowników na podstawie .csv

    $objUser=$objOU.Create(„user”,”CN=”+$cn)
    $objUser.Put(„sAMAccountName”,$sAMAccountName)
    $objUser.Put(„userPrincipalName”,$userPrincipalName)
    $objUser.Put(„displayName”,$displayName)
    $objUser.Put(„givenName”,$givenName)
    $objUser.Put(„sn”,$sn)
    $objUser.SetInfo()
    $objUser.SetPassword(„P@ssword”)
    $objUser.psbase.InvokeSet(„AccountDisabled”,$false)
    $objUser.SetInfo()
    }

Skrypt uruchamiamy podobnie jak jest to opisane wyżej.

2.Zarządzanie atrybutami konta użytkownika przy pomocy Dsquery:

Wyłączenie konta oraz zmiana opisu miasta na Warszawę, w którym pracować będzie dana osoba:

dsquery user -name „* Kowalski” | dsmod user -office „Warsaw” -disabled yes 

Ponowne włączenie konta użytkownika Kowalski przy pomocy PowerShell’a:

$objUser=[ADSI]”LDAP://CN=Jan Kowalski,OU=Ludzie,DC=contoso,DC=com”
$objUser.psbase.InvokeSet(’AccountDisabled’,$false)
$objUser.SetInfo()








Print Friendly, PDF & Email

Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT