0% au considerat acest document util (0 voturi)
147 vizualizări23 pagini

Curs PowerShell

Documentul prezintă o introducere în Windows PowerShell, inclusiv caracteristicile sale de linie de comandă, limbaj de scripting și motor de automatizare. De asemenea, explică comenzile de bază și structurile de control disponibile în PowerShell.

Încărcat de

jakogri
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
147 vizualizări23 pagini

Curs PowerShell

Documentul prezintă o introducere în Windows PowerShell, inclusiv caracteristicile sale de linie de comandă, limbaj de scripting și motor de automatizare. De asemenea, explică comenzile de bază și structurile de control disponibile în PowerShell.

Încărcat de

jakogri
Drepturi de autor
© All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd

PowerShell

17 mai 2010
Windows PowerShell 2.0
 Construit folosind .NET Common Language Runtime
(CLR) si .NET Framework
 Windows PowerShell 2.0
 Preinstalat pe Windows 7, Windows Server 2008 R2
 Microsoft .NET Framework 2.0
 Windows PowerShell Integrated Scripting Environment
(ISE)
 Preinstalat pe Windows 7
 Microsoft .NET Framework 3.5

2 MSSR
Windows PowerShell

 Command line  Inlocuitor pentru [Link]

 Orientat pe obiecte
 Scripting Language
 Comenzi verb-noun,
demunite cmdlets
 Automation Engine
 Include multe alias-uri din
Linux/Unix

3 MSSR
Windows PowerShell

 Command line  Orice set de comenzi


poate devini un script

 Scripting Language  Scripturile nu ruleaza


implicit

 Automation Engine  PowerShell Integrated


Scripting Environment

4 MSSR
Windows PowerShell

 Command line  Poate fi integrat cu


aplicatiile .NET

 Scripting Language  Folosit pentru


administrarea remote a
calculatoarelor

 Automation Engine

5 MSSR
Cmdlets
 Denumirea comenzilor din PowerShell
 Scrise in C#.NET
 Parametri prefixati de semnul -
 Ofera suport pentru obiecte
 COM (Component Object Model)
 comunicare intre diverse componente software
 WMI (Windows Management Instrumentation)
 interfata cu sistemul de operare
 .NET
 obiecte din .NET Framework
 obiecte create de utilizatori
 ~240 de comenzi in Windows 7
 PS C:\> Get-Command | where {$_.CommandType -eq "Cmdlet"}
| measure

6 MSSR
Comenzi de bază
 get-command  informatii de baza despre
un cmdlet
 get-help
 datele extrase direct din
 get-member codul sursa

 get-psdrive  exemplu
 PS C:\> get-command ls

CommandType Name Definition


----------- ---- ----------
Alias ls Get-ChildItem

7 MSSR
Comenzi de bază
 get-command  afiseaza informatii despre o
comanda

 get-help  alias-uri help si man

 get-member  help - full


 afiseaza informatii detaliate,
inclusiv exemple
 get-psdrive
 help – examples
 afiseaza doar exemple

 help –online
 deschide resursele online
disponibile
8 MSSR
Comenzi de bază
 get-command  afiseaza proprietatile si
metodele unui obiect
 get-help
 Exemplu
 C:\PS>get-service | get-
 get-member
member

 get-psdrive Name MemberType Definition


---- ---------- ----------
Close Method [Link]
Close()

CanStop Property [Link]


CanStop {get;}

9 MSSR
Comenzi de bază
 get-command  afiseaza resursele
disponibile pentru
 get-help sesiunea curenta

 get-member  dispozitivele logice,


inclusiv cele mapate din
retea
 get-psdrive
 accesarea registrilor

 dispozitivele create prin


comanda new-psdrive

 10 MSSR
Operatii asupra listelor de obiecte

Commanda Actiune
Compare Compara doua obiecte
Group Separarea unui set de obiecte in grupuri
Measure Masoara o anumita proprietate a unui obiect
Select Selectia unui grup de proprietati
Sort Ordonarea obiectelor
Tee Duplicarea rezultatului
Where Selectarea unui subset de obiecte

 11 MSSR
Alias-uri
 Exista alias-uri create pentru utilizatori Linux/CMD
 PS C:\Users\Mihai> alias | where {$_.Definition -eq "Get-ChildItem"}
 CommandType Name Definition
 ----------- ---- ----------
 Alias dir Get-ChildItem
 Alias gci Get-ChildItem
 Alias ls Get-ChildItem
 Se pot crea noi alias-uri folosind comanda new-alias
 C:\PS>new-alias list get-childitem
 Functi pentru aliasuri comenzi cu parametri
 function as {help *about_alias*}
 Posibilitatea de export/import intre calculatoare

 12 MSSR
Pipeline si variabile
 Definirea se face folosind $
 $current_process = Get-Process
 Afisarea unei variabile se poate face folosind comanda
echo

 Trimiterea de obiecte intre doua comenzi


 Variabila $_ reprezinta obiectul curent
 Format-list
 folosit pentru afisarea proprietatilor

 13 MSSR
If, elseif si else
 Sintaxa
 if (condition) {command(s) to execute}
 elseif (condition2){command(s) to execute}
 else{command(s) to execute}
 Parametrii
Operator Descriere
-eq Equals
-match Match regular expression -> $matches
-ne Not Equal
-notmatch Does not match
-gt -ge Greater than/ Greater than or equal to
-lt -le Less than/ Less than or equal to

 Exemplu
 $current_process = Get-Process
if ($current_process.count -lt 50)
{ Write-Host ”Low server load"; }

 14 MSSR
Folosirea unui loop
 Sintaxa
 while (condition) {command(s) to execute}
 do {command(s) to execute} while (condition)
 do {command(s) to execute} until (condition)
 for (initializer; exit condtiont; step action)
{comand(s) to execute}
 foreach ( $item in $collection) {command(s) to execute}
 Exemple
 $var = 1; while ($var -le 50) {$var; $var += 1}
 $var = 2; for ($var = 1; $var -le 50; $i++) {$var}
 Accesarea manualului se poate face folosind help
 help about_do, help about_for, etc.

 15 MSSR
WMI support
Windows Management Instrumentation
 baza de date cu informatii pentru sistemele windows
 serviciu wmi folosit pentru interogarea bazei de date
 namespace-ul folosit este “root\CIMV2”
 Get-WmiObject -List -Namespace “root\CIMV2″
 pentru listarea proprietatilor unei clase folosim
 Get-WmiObject -Class “win32_Processor” | Get-Member

 CIMV2 – Common Information Model Version 2

 16 MSSR
Folosirea directa a resurselor .NET
 spatiul .NET este ierarhizat folosind namespace
 accesarea se face folosind []
 Exemplu
 [[Link]]::Clear()
 [[Link]]::Log10(100)
 $p = [[Link]]::Start("[Link]")
 $p | Get-Member
 [System.Int32]::Parse("254");
 Link-uri utile biblioteca .NET
 [Link]

 17 MSSR
Scripturi powershell
 Windows PowerShell Integrated Scripting Environment
(ISE)
 Extensie .ps1
 Nu pot fi rulate extern
 Necesita full-path
 Controlate prin Execution-Policy sau Group Policy
 Set-ExecutionPolicy
 Nivele de securitate pentru scripturi
 Restricted (implicit)
 AllSigned
 RemoteSigned
 Unrestricted (nerecomandat)

 18 MSSR
Exemplu script
 $NICs = Get-WMIObject Win32_NetworkAdapterConfiguration
| where{$_.IPEnabled -eq “TRUE”}

$i = 1
Foreach($NIC in $NICs)
{
$[Link](”192.168.”+$i+”.42″, “[Link]″)
$[Link](”192.168.”+$i+”.1″)
$DNSServers = “[Link]″,”[Link]″
$[Link]($DNSServers)
$[Link](”TRUE”)
$[Link](”[Link]″, “[Link]″)
$i ++
}

 19 MSSR
Background jobs
 Start-job
 start-job -scriptblock {get-process} -name MyJob
 Get-job
 $j = get-job -name MyJob
 Receive-job
 receive-job -job $j
 Stop-job
 stop-job MyJob
 Remove-job
 remove-job MyJob

 20 MSSR
Permisiuni pentru fisiere
 Listarea permisiunilor existente
 [enum]::GetNames([[Link]
hts])
 Setarea permisiunilor in patru pasi :
 Descriptorul curent de securitate
 $SD = get-acl c:\2k8\Powershell2\[Link]
 Construirea unui ACE (Access Control Entities)
 $rule = new-object
[Link](“guest”,”FullContr
ol”, “Allow”)
 Adaugarea ACE la DACL
 $[Link]($Rule)
 Setarea noului nivel de permisuni
 Set-Acl c:\2k8\Powershell2\[Link] $SD

 21 MSSR
Accesarea registrilor
 Accesarea unui anumit set de registri
 Set-location HKCU:
 Afisarea continutului
 Get-ChildItem
 Afisarea proprietatilor
 $path=“HKLM:\Software\Microsoft\Windows NT\CurrentVersion”
 $key = Get-ItemProperty $path
 $[Link]
 Setarea unor noi proprietati
 Set-ItemProperty -$path –name “PSinfo” –type “String” –value
“Razvan was here”

 22 MSSR
Interesting scripting
 Crearea unui fisier de 1GB
 $path = “$env:temp\[Link]“;
$file = [[Link]]::Create($path);
$[Link](1gb);
$[Link]();
Get-Item $path;
 Ping catre toate calculatoarele din retea
 1..254 | ForEach-Object -Process { Get-WmiObject
Win32_PingStatus -Filter ("Address='172.16.1." + $_ +"'") } |
Select-Object -Property Address,ResponseTime,StatusCode

 23 MSSR

S-ar putea să vă placă și