Windows PowerShell

Download Report

Transcript Windows PowerShell

Windows PowerShell
Mi a PowerShell?




Új Windows parancssor, melyet rendszeradminisztrátorok számára terveztek.
Ingyenes.
A .NET FrameWork 2.0-s verzióján alapul.
Objektum-orientált.
Első találkozás





Indítása.
Case Insensitive.
Előző, következő sor szerkesztése.
Tab, Shift-Tab használata,
Vágólap használata.
Cmdlet








A korábbi shellekben megszokott parancsok neve
cmdlet.
Cls
Get-Help
Get-Help *
Get-Help s*
Get-Help *q*
Get-help foreach
Get-Help foreach -detail
Kimenet, konverziók





Get-Help >\Help.txt
Get-Help | Out-File C:\Help2.txt
Get-Help | Export-Csv C:\Csv1.csv
Get-Help | Export-CliXML C:\Xml1.xml
Get-Service | ConvertTo-Html >C:\html1.html
Write-Host


Egyszerű kiíró cmdlet.
Write-Host „Vörös és Fekete” –
foregroundcolor black –backgroundcolor red
Get-Process



A futó processzek listázása
Get-Process explorer
Get-Process explorer | format-list
PS C:\pws> get-process
Handles
------269
116
93
103
68
782
NPM(K)
-----13
6
3
3
3
7
PM(K)
----96948
1600
840
992
860
2656
WS(K) VM(M)
----- ----83808
260
4056
36
3228
23
3504
28
3340
30
6120
28
CPU(s)
-----90,00
0,08
0,53
1,77
0,31
35,69
Id
-2300
1096
944
1320
2612
692
ProcessName
----------AcroRd32
alg
ati2evxx
ati2evxx
ctfmon
csrss
Get-Service

A háttérfolyamatok megjelenítésére szolgál
PS C:\pws> get-service
Handles
------269
116
93
103
68
782
NPM(K)
-----13
6
3
3
3
7
PM(K)
----96948
1600
840
992
860
2656
WS(K) VM(M)
----- ----83808
260
4056
36
3228
23
3504
28
3340
30
6120
28
CPU(s)
-----90,00
0,08
0,53
1,77
0,31
35,69
Id
-2300
1096
944
1320
2612
692
ProcessName
----------AcroRd32
alg
ati2evxx
ati2evxx
ctfmon
csrss
Sort-Object



Az objektumok rendezésére szolgál
Get-Process | Sort-Object ProcessName
Get-Process | Sort-Object CPU –descending
Where-Object


A bementen megjelenő objektumok szűrése
-eq, -ne, -gt, -ge, -lt, -le, -like stb.
PS C:\pws> Get-Process | Where-Object { $_.Processname -eq "explorer" }
Handles
------830
NPM(K)
-----21
PM(K)
----24084
WS(K) VM(M)
----- ----32660
136
CPU(s)
-----119,45
Id ProcessName
-- ----------1480 explorer
PS C:\pws> Get-Process | Where-Object { $_.CPU -gt 10 }
Handles
------269
771
830
281
634
NPM(K)
-----13
7
21
11
19
PM(K)
----95512
2652
24084
35384
21448
WS(K) VM(M)
----- ----82432
260
6192
29
32660
136
46276
124
35964
117
CPU(s)
-----93,05
38,25
119,58
23,73
13,00
Id
-2300
692
1480
2688
2968
ProcessName
----------AcroRd32
csrss
explorer
firefox
Hivatkozás
iexplore
egy
tulajdonságr
a
Select-Object

Meghatározott tulajdonságok kiválasztása
PS C:\pws> Get-Process | Select-Object ProcessName, CPU
ProcessName
CPU
------------AcroRd32
93,046875
alg
0,078125
ati2evxx
0,53125
ati2evxx
2,0625
ctfmon
0,328125
csrss
39,53125
PS C:\pws> Get-Process | Select-Object ProcessName, CPU -first 3
ProcessName
CPU
------------AcroRd32
93,046875
alg
0,078125
ati2evxx
0,53125
ForEach-Object

Az bemenet objektumainak egyenkénti
feldolgozása
PS C:\pws> Get-Process | Select-Object ProcessName, CPU |
ForEach-Object { Write-host $_.ProcessName }
AcroRd32
alg
ati2evxx
ati2evxx
ctfmon
csrss
devldr32
explorer
firefox
hpgs2wnd
Elágazás: if – elif – else

A megszokott szintaxissal.
PS C:\pws> Get-Process | Select-Object ProcessName, CPU | ForEach-Object {
if ( $_.ProcessName -eq "explorer") {
Write-host $_.CPU $_.ProcessName
}
}
120,234375 explorer
Változók




A változók $ jellel kezdődnek.
$a=„Alma” (+,*)
$c=3; (+,-,*,/,%)
$a – replace „A”,”B”
PS C:\pws> $szin=„blue” ; Write-Host –foregroundcolor $szin „Hello”
Hello
Futtatás



A szkriptek kiterjesztése ps1
Futtatása a név begépelésével történik.
Policy: Get-ExecutionPolicy, Set-ExecutionPolicy
Services.ps1:
Get-Service | ForEach-Object {
if ( $_.Status -eq "Running" ) {
$szin="red"
}
else {
$szin="green"
}
write-host -foreground $szin $_.DisplayName
}
EventLog




Get-Eventlog –List
Get-Eventlog system
Get-Eventlog system –newest 1
Get-Eventlog system –newest 1 | format-list
Get-EventLog System | ForEach-object {
if ( $_.Source -eq "Windows Update Agent" ) {
Write-Host $_.Message
}
}
Gyakorlatban

Jelenítsük meg a háttérfolyamatok listáját a
böngészőben!
Get-Service | ConvertTo-Html -Property Status,DisplayName |
ForEach-Object {
Write-Host $_
if ( $_ -like "*<td>Running</td>*" ) {
$_ -replace "<tr>", "<tr bgcolor='RED'>„
}
else {
$_ -replace "<tr>", "<tr bgcolor='GREEN'>„
}
} | Out-File C:\processes.html
Fájlrendszer




Get-psdrive
Dir, Cd (alias példa)
New-Item
Remove-Item
PSDrive



New-Psdrive –name FK –psprovider
FileSystem –root c:\temp
Cd FK:
Remove-PsDrive FK