Microsoft PowerShell este o platformă excelentă de scripting. Microsoft oferă suport PowerShell pentru aproape toate rolurile și caracteristicile Windows Server. Puteți utiliza PowerShell pentru a automatiza sarcini repetate, precum și pentru a efectua cu ușurință, utilizând linia de comandă, sarcini pe care le efectuați de obicei cu ajutorul instrumentelor GUI. De exemplu, într-un mediu de producție, dacă trebuie să verificați starea de aplicare a patch-urilor pe serverele Windows, utilizarea abordării de scripting PowerShell este mult mai ușoară decât conectarea la fiecare server în parte și apoi verificarea stării de aplicare a patch-urilor. Sunt un utilizator obișnuit al PowerShell și am conceput mii de scripturi PowerShell în cei 18 ani de experiență în domeniul IT.

Înainte de PowerShell, principalul limbaj de scripting pentru a efectua sarcini operaționale Windows a fost Visual Basic Scripting. Deși Visual Basic Scripting încă există și mulți administratori IT încă preferă să folosească scriptingul VB, merită menționat faptul că PowerShell reduce complexitatea codului. De exemplu, pentru a verifica serviciile de pe un computer Windows, va trebui să scrieți codul VBScript într-un bloc de notițe, să salvați fișierul ca .VBS și apoi să îl executați utilizând fișierul de execuție gazdă CSCript. Dar, folosind PowerShell, puteți utiliza un simplu cmdlet Get-Service care vă poate ajuta să listați rapid serviciile de pe un computer Windows. Dacă era necesar să salvați rezultatul într-un fișier utilizând scriptul VB, va trebui din nou să scrieți o grămadă de cod în scriptul VB, ceea ce implică deschiderea fișierului și apoi scrierea conținutului în fișier. PowerShell pur și simplu nu vă cere să deschideți fișierul înainte ca conținutul recuperat de un cmdlet PowerShell să poată fi scris într-un fișier. Tot ce trebuie să faceți este să folosiți cmdleturile „Export-CSV” sau „Add-Content”.

Cmdlets: Piesele de bază ale scripturilor PowerShell

PowerShell oferă cmdlets (pronunțat „command-lets”), denumite uneori instrumente de linie de comandă, pe care le puteți utiliza pentru a obține informații despre sistemul de operare, aplicațiile instalate pe un computer Windows, informații despre rețea, starea patch-urilor pe computerul Windows și multe altele. Este important de reținut că cmdleturile PowerShell sunt scrise în .NET și utilizează clase .NET pentru a efectua sarcinile necesare. Dacă doriți să aflați ce cmdlete PowerShell sunt disponibile pe computerul local, executați această comandă:

Get-Command

Get-Command este o cmdlet PowerShell care recuperează cmdlete, funcții, filtre și scripturi PowerShell instalate pe computerul local. Comanda de mai sus interoghează toate modulele PowerShell instalate pe computerul local. Dacă aveți nevoie să vedeți toate comenzile instalate pe calculatorul local într-o ordine, executați această comandă:

Get-Command -Type cmdlet | Sort-Object -Property Noun |FT -GroupBy Noun

Trei tipuri de operații PowerShell

Scripturi PowerShell
Utilizând PowerShell puteți efectua trei tipuri de operații. Acestea sunt Get, Set și Remove. Orice cmdlet PowerShell care începe cu „Get” este utilizat de obicei pentru a prelua informații din componentele Windows. De exemplu, Get-ADUser efectuează o operațiune de citire a bazei de date Active Directory pentru a prelua informațiile despre utilizator. Câteva exemple de utilizare a cmdletului PowerShell Get-ADUser sunt prezentate mai jos:

Get-ADUser -Filter * -SearchBase „OU=TestUsers,DC=TechGenix,DC=Com”

Comanda de mai sus recuperează toate conturile de utilizator situate într-o unitate organizațională, în timp ce comanda de mai jos recuperează proprietățile asociate cu un singur utilizator Active Directory:

Get-ADUser -Identity JohnThomas -Properties *

Cmdleturile PowerShell care încep cu „Set” sunt utilizate pentru a edita informații despre componentele Windows. De exemplu, utilizând Set-ADUser puteți diverse sarcini operaționale, așa cum se arată în comenzile de mai jos:

Set-ADUser -Identity JohnThomas -HomeFolder \\Server1\%UserName%

Comenzile de mai jos setează proprietatea mail pentru utilizatorul JohnThomas.

$ThisUser = Get-ADUser -Identity JohnThomas -Properties Mail
$ThisUser.Mail = [email protected]
Set-ADUser-Set-ADUser -Instance $ThisUser

Scripturi PowerShell

Toate cmdleturile PowerShell care încep cu „Remove” sunt utilizate pentru a efectua operațiuni de ștergere. De exemplu, Remove-ADUser poate fi utilizat pentru a elimina un utilizator Active Directory, după cum se arată mai jos:

Remove-ADUser -Identity JohnThomas

Combinarea cmdleturilor PowerShell

Una dintre cele mai bune caracteristici pe care le oferă PowerShell este capacitatea de a combina două sau mai multe cmdleturi PowerShell într-o singură comandă PowerShell. Astfel de comenzi sunt numite uneori comenzi PowerShell one-liner. De exemplu, dacă aveți nevoie să eliminați toate conturile de utilizator dezactivate din Active Directory, puteți combina cmdleturile PowerShell Search-ADAccount și Remove-ADUser, așa cum se arată în comanda de mai jos:

Search-ADAccount -AccountDisabled | Where {$_.ObjectClass -eq „User”} | Remove-ADUser

După cum puteți vedea în comanda de mai sus, cmdlet-ul PowerShell Search-ADAccount efectuează o căutare în Active Directory pentru a căuta conturi dezactivate și apoi, prin utilizarea operatorului pipe (|), instruiți Remove-ADUser să efectueze o operațiune de ștergere numai asupra utilizatorilor care sunt recuperați de către Search-ADAccount.

Aliasuri PowerShell

Deși multe cmdlet-uri PowerShell sunt ușor de citit și de utilizat, PowerShell oferă, de asemenea, o caracteristică numită alias PowerShell. PowerShell este suficient de inteligent pentru a completa numele unui cmdlet PowerShell cu o apăsare a tastei Tab. În cazul în care aveți dificultăți în a vă aminti numele cmdleturilor PowerShell, puteți crea aliasuri PowerShell. De exemplu, puteți crea un alias pentru cmdlet-ul PowerShell Get-MailBoxStatistics folosind comanda de mai jos:

New-Alias ShowMB Get-MailBoxStatistics

Când tastați „ShowMB” în fereastra PowerShell, PowerShell caută cmdlet-ul asociat cu alias-ul ShowMB și apoi îl execută.

Salvarea informațiilor într-un fișier CSV

Când vine vorba de salvarea informațiilor într-un fișier CSV, PowerShell economisește o mulțime de muncă de scripting. PowerShell pune la dispoziție cmdlet „Export-CSV” pe care îl puteți utiliza cu orice alt cmdlet PowerShell. În mod implicit, orice comandă PowerShell pe care o executați afișează informațiile rezultate în fereastra de comandă PowerShell, cu excepția cazului în care adăugați Export-CSV la sfârșitul comenzii, așa cum se arată în comanda de mai jos:

Get-ADUser -Filter * -SearchBase „OU=TestUsers,DC=TechGenix,DC=Com” | Export-CSV C:\Temp\AllUsersInAnOU.CSV

Observați că în comanda de mai sus, adăugați doar „Export-CSV” la sfârșitul comenzii pentru ca rezultatul să fie exportat într-un fișier CSV.

După cum puteți vedea, scripturile PowerShell reduc timpul necesar pentru efectuarea sarcinilor operaționale zilnice. PowerShell este capabil să efectueze trei sarcini operaționale; Get, Set și Remove și 97% dintre cmdleturile PowerShell încep cu aceste trei cuvinte pentru a identifica cu ușurință funcția unui cmdlet PowerShell. De asemenea, am explicat cât de ușor este să combinați două cmdlet-uri într-o singură comandă pentru a face scripturile PowerShell mai eficiente.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.