You are on page 1of 2

Przewodnik po Windows PowerShell

Przewodnik po Windows PowerShell

Dostp do argumentw

Pobranie danych wejciowych

Czytanie z pliku tekstowego

Aby uzyska dostp do argumentw linii polece, ktre


podaje si przy starcie skryptu, naley wykorzysta
zmienn $args. Mona przeglda zawarto zmiennej
$args korzystajc z polecenia:

Aby pobra cig znakw od uytkownika, naley


skorzysta z polecenia: Read-Host.

Aby przeczyta zawarto pliku tekstowego naley


skorzysta z polecenia Get-Content, podajc jako
parametr ciek do pliku:

$a = Read-Host "Please enter your name"


$a = Get-Content C:\Scripts\Test.txt

foreach ($i in $args) {$i}


Aby uzyska dostp do okrelonego argumentu, naley
skorzysta z numeru (indeksu) argumentu. Argumenty
numerowane s od zera, wic 0 odpowiada za pierwszy
argument w zbiorze argumentw, 1 odpowiada za drugi
itp.:

Wstawianie pustej linii


Aby wstawi pust lini w skrypcie PowerShell naley
skorzysta ze znaku odwrconego apostrofu (`):
Write-Host `
"To jest kontynuacja linii."

Kada linia w pliku posiada swj numer. Numer ten


zapisany jest w tablicy $a[<numer>]. Aby odnie si do
poszczeglnych linii naley okreli ich numer (indeks):

Tworzenie instrukcji warunkowych


Aby utworzy instrukcj warunkow "jeeli" (if) naley
skorzysta ze schematu:
$a = "white"
if ($a -eq "red")
{"The color is red."}
elseif ($a -eq "white")
{"The color is white."}
else
{"The color is blue."}

$a[0]
Aby uzyska dostp do ostatniej linii:

Zamiast pisa wiele instrukcji warunkowych mona


skorzysta z instrukcji "Switch":

$args[0]
Aby odnie si do ostatniego argumentu na licie
naley skorzysta z polecenia: $args[-1]

Mona take "zama" lini, wstawiajc separator "|"


midzy poszczeglnymi poleceniami:
Get-ChildItem C:\Scripts |
Sort-Object Length Descending

Write-Host "test" -foregroundcolor "green"


Mona rwnie okreli kolor ta:

Linie skadajce si z wielu polece


Aby wstawi wiele polece do jednej linii, mona je
odseparowa znakiem rednika ";":
$a = 1,2,3,4,5; $b = $a[2]; Write-Host $b

Write-Host "Linia 1.`nLinia 2."

Pisanie w negatywie
Aby w trybie tekstowym wywietli wiadomo
w negatywie, naley skorzysta z polecenia WriteWarning:
Write-Warning "Wystpi bd."

Wstawianie komentarzy
Aby wstawi komentarz, naley uy znaku #:
# To jest komentarz, a nie polecenie.

Zapisywanie do pliku tekstowego


Aby zapisa dane w pliku tekstowym naley skorzysta
z polecenia: Out-File:

Tworzenie ptli "For" i "For Each"

Get-Process | Out-File C:\Scripts\Test.txt

Porwnywanie
Aby wstawi podzia wiersza do cigu wynikowego (ang.
output) naley uy znakw: `n:

$a = 2
switch ($a)
{
1 {"Kolor czerwony."}
2 {"Kolor niebieski."}
3 {"Kolor zielony."}
4 {"Kolor ty."}
default {"Inny."}
}

Aby utworzy ptl "For" naley skorzysta ze schematu:

Write-Host "test" -backgroundcolor "red"

Wstawianie podziau wiersza

Aby okreli liczb linii, sw, znakw w pliku tekstowym


naley skorzysta z polecenia:
Get-Content c:\scripts\test.txt |
Measure-Object -line -word -character

Zmiana kolorw tekstu oraz ta


Aby wywietli tekst w kolorze naley skorzysta
z polecenia Write-Host i okreli kolor :

$a[-1]

Polecenia PowerShell (np. takie jak Where-Object)


wykorzystuj operatory porwnania, wczajc w to te
pokazane w tabeli.
lt
le
gt
ge
eq
ne
like
notlike

Mniejsze
Mniejsze lub rwne
Wiksze
Wiksze lub rwne
Rwne
Nierwne
Podobne
(uywa
symboli
wieloznacznych, ang. wildcards)
Niepodobne
(uywa
symboli
wieloznacznych, ang. wildcards)

Kady z operatorw moe rozpoznawa wielkie i mae


litery (ang. Case-sensitive). W tym celu naley doda
znak c przed operatorem. Na przykad ceq to operator
rwnoci z uwzgldnieniem wielkoci znakw. Operator
clt to operator mniejszoci z uwzgldnieniem wielkoci
znakw.

for ($a = 1; $a -le 10; $a++) {$a}


Aby doczy dane do pliku, ktry ju posiada zawarto
naley skorzysta z parametru append:
Get-Process | Out-File C:\Test.txt append

Dla porwnania, ptla "For Each" bdzie wygldaa tak:


foreach ($i in get-childitem c:\scripts)
{$i.extension}

Mona take skorzysta z tzw. strumieni, znanych


z systemu MS-DOS: > do zwykego zapisu, albo >> do
dopisania do istniejcej zawartoci, np.:
Get-Process > C:\Scripts\Test.txt
Polecenie Export-CSV zapisuje dane w formacie CSV
(rozdzielajc je przecinkami):
Get-Process | Export-CSV C:\Test.csv

Drukowanie danych
Aby wydrukowa dane na domylnej drukarce, naley
skorzysta z polecenia Out-Printer:
Get-Process | Out-Printer

Tworzenie ptli "While" i "Until"


Aby utworzy ptl "While" lub "Until", naley skorzysta
z podanych dwch przykadw kodu, zamieniajc kod
w nawiasach {} oraz warunek ptli, na kod, ktry ma
zosta wykonany w ptli.
$a = 1
do {$a; $a++}
while ($a -lt 10)
$a = 1
do {$a; $a++}
until ($a gt 10)

Przewodnik po Windows PowerShell

Przewodnik po Windows PowerShell

Tworzenie obiektw COM

Praca z WMI

Uzyskiwanie pomocy

Kopiowanie / Wklejanie

Aby rozpocz prac z obiektami COM, naley


skorzysta z polecenia New-Object z parametrem
comobject podajc identyfikator programu tzw. ProgID:

Aby
uzyska
informacje
o
komputerze
przy
wykorzystaniu WMI, naley skorzysta z polecenia GetWMIObject podajc jako parametr nazw klasy:

$a = New-Object -comobject `
"Excel.Application"
$a.Visible = $True

Get-WMIObject Win32_BIOS

Aby uzyska dostp do pomocy PowerShell naley


skorzysta z polecenia Get-Help z parametrem full.
Przykadowo, aby uzyska informacje dotyczce
polecenia
"Get-Process",
naley
posuy
si
poleceniem:

Aby wczy moliwo prostego kopiowania i wklejania


do konsoli Windows PowerShell, naley wykona
nastpujce kroki:
1. Uruchomi Windows PowerShell, klikn prawym
przyciskiem myszy ikon w lewym grnym rogu,
wybra Properties.
2. W oknie Windows PowerShell Properties na
zakadce Options wybra QuickEdit Mode, klikn
OK.
Aby skopiowa tekst z konsoli PowerShell naley
zaznaczy tekst i nacisn Enter. Aby wklei tekst do
konsoli naley klikn w obszarze konsoli prawym
przyciskiem myszy.

Dostp do obiektw .NET

Jeeli klasa nie wystpuje w obszarze nazw cimv2,


naley skorzysta z parametru namespace:
Get-WMIObject SystemRestore `
-namespace root\default

Get-Help Get-Process full


Aby zobaczy przykady wykorzystania wybranego
polecenia naley skorzysta z parametru examples:

Aby skorzysta z obiektw .NET Framework, naley


nazw klasy zawrze w nawiasach kwadratowych.
Nastpnie naley oddzieli naw klasy i metod
uywajc do tego pary dwukropkw:

Aby uzyska dostp do danych na innym komputerze,


naley skorzysta z parametru computername:

[system.Net.DNS]::resolve("207.46.198.30")

Get-WMIObject Win32_BIOS `
computername atl-ws-01

Get-Command

Aby utworzy odniesienie do obiektu w .NET Framework,


naley skorzysta z polecenia New-Object:

Aby ograniczy zwracane dane, naley skorzysta


z zapytania WQL i parametru query:

Aby uzyska list dostpnych aliasw naley skorzysta


z polecenia Get-Alias:

$a = new-object `
-type system.diagnostics.eventlog `
-argumentlist system

Get-WMIObject -query `
"Select * From Win32_Service `
Where State = 'Stopped'"

Get-Alias

Get-Help Get-Process examples

Budowanie dowiza do Active Directory

Wywietlanie waciwoci

Aby utworzy dowizanie do konta w Active Directory,


naley skorzysta z dostawcy LDAP:

Get-Process | Select-Object Name, Company

Sortowanie danych
Aby posortowa dane zwracane w PowerShell, naley
przekierowa wyjciowy strumie danych do polecenia
Sort-Object okrelajc kryterium, zgodnie z ktrym chce
si dane posortowa:
Get-Process | Sort-Object ID
Mona doda parametry descending lub ascending
aby okreli kolejno sortowania:

$a = [adsi] "LDAP://cn=kenmyer, `
ou=Finance, dc=fabrikam, dc=com"
Wyliczanie obiektw w OU jest nieco bardziej
skomplikowane. Istnieje jednak metoda na rozwizanie
tego zadania: utworzenie dowizania do OU, nastpnie
skorzystanie z metody PSBase_GetChildren() w celu
otrzymania zbioru elementw zawartych w OU:
$objOU = [ADSI]`
"LDAP://ou=Finance,dc=fabrikam,dc=com"
$users = $objOU.PSBase.Get_Children()
$users | Select-Object displayName

Budowanie dowiza do kont lokalnych

Get-Process | Sort-Object ID descending

Aby utworzy dowizanie do konta lokalnego naley


skorzysta z dostawcy WinNT:

Mona posortowa uwzgldniajc wiele waciwoci:


Get-Process | Sort-Object ProcessName, ID

$a = [adsi] "WinNT://atl-ws-01/kenmyer"
$a.FullName

Uruchamianie skryptw
Aby uruchomi skrypt z konsoli Windows PowerShell,
naley wpisa pen ciek do skryptu (lub poda
nazw skryptu, jeli skrypt znajduje si w biecej
lokalizacji):
C:\Scripts\Test.ps1

Zmiana ustawie zabezpiecze

Uwaga. To jest tylko oglny zarys tego jak pracowa


z .NET. Pokazane w przykadzie techniki nie stosuj si
do wszystkich klas w .NET Framework.

Aby uzyska dostp do waciwoci obiektu, naley


przekierowa wyjciowy strumie danych do polecenia
Select-Object:

Mona rwnie skorzysta z polecenia Get-Command,


aby wywietli list dostpnych polece PowerShell:

Jeli nazwa cieki zawiera spacje naley pen nazw


uj w znakach cudzysowu. Na przykad:

Aby mc uruchamia skrypty PowerShell, naley zmieni


ustawienia zabezpiecze. Domylnie, w PowerShell
mog by uruchamiane jedynie te skrypty, ktre zostay
podpisane cyfrowo przez zaufanego wystawc
certyfikatu. Aby umoliwi uruchamianie skryptw, ktre
zostay utworzone lokalnie (niezalenie od tego, czy
zostay podpisane cyfrowo, czy nie) naley uy
polecenia:

Aby uruchomi skrypt nie uruchamiajc bezporednio


konsoli Windows PowerShell (np. z Menu Start lub
z konsoli cmd.exe), naley przywoa konsol Windows
PowerShell, podajc ciek do skryptu oraz argument
wywoania:

Set-ExecutionPolicy RemoteSigned

powershell.exe noexit C:\Scripts\Test.ps1

Zagldanie do obiektu
Aby uzyska informacje o waciwociach i metodach
obiektu, naley uzyska dostp do instancji tego obiektu,
a nastpnie przekierowa obiekt do polecenia GetMember. Przykadowo, ponisze polecenie zwraca
waciwoci i metody dostpne przy pracy z procesami:
Get-Process | Get-Member

Czyszczenie okna konsoli


Aby wyczyci zawarto okna PowerShell naley
skorzysta z polecenia Clear-Host (lub aliasu: cls).

&"C:\Scripts\My Scripts\test.ps1"

Parametr noexit powoduje pozostawienie


PowerShell na ekranie po wykonaniu si skryptu.

Wicej informacji
Aby uzyska wicej informacji
o pisaniu skryptw Windows PowerShell,
odwied stron Technet Script Center:
http://www.mcrosoft.com/technet/
scriptcenter/hubs/msh.mspx.
Swoj przygod zacznij z webcastami
PowerShell Week oraz seri artykuw:
A Task-Based Introduction to
Windows PowerShell.

okna

You might also like