Paula-Januszkiewicz-Powershell-reference-PL.pdf

(78 KB) Pobierz
Microsoft Word - powershell_reference_PL.docx
Przewodnik po Windows PowerShell
Przewodnik po Windows PowerShell
Dost ħ p do argumentów
Aby uzyskaę dostħp do argumentów linii poleceı, które
podaje siħ przy starcie skryptu, naleŇy wykorzystaę
zmiennĢ $args . MoŇna przeglĢdaę zawartoĻę zmiennej
$args korzystajĢc z polecenia:
Pobranie danych wej Ļ ciowych
Aby pobraę ciĢg znaków od uŇytkownika, naleŇy
skorzystaę z polecenia: Read-Host .
Czytanie z pliku tekstowego
Aby przeczytaę zawartoĻę pliku tekstowego naleŇy
skorzystaę z polecenia Get-Content , podajĢc jako
parametr ĻcieŇkħ do pliku:
Tworzenie instrukcji warunkowych
Aby utworzyę instrukcjħ warunkowĢ "jeŇeli" (if) naleŇy
skorzystaę ze schematu:
$a = Read-Host "Please enter your name"
$a = "white"
if ($a -eq "red")
{"The color is red."}
elseif ($a -eq "white")
{"The color is white."}
else
{"The color is blue."}
$a = Get-Content C:\Scripts\Test.txt
foreach ($i in $args) {$i}
KaŇda linia w pliku posiada swój numer. Numer ten
zapisany jest w tablicy $a[<numer>]. Aby odnieĻę siħ do
poszczególnych linii naleŇy okreĻlię ich numer (indeks):
Aby uzyskaę dostħp do okreĻlonego argumentu, naleŇy
skorzystaę z numeru (indeksu) argumentu. Argumenty
numerowane sĢ od zera, wiħc 0 odpowiada za pierwszy
argument w zbiorze argumentów, 1 odpowiada za drugi
itp.:
Wstawianie pustej linii
Aby wstawię pustĢ liniħ w skrypcie PowerShell naleŇy
skorzystaę ze znaku odwróconego apostrofu (`):
$a[0]
Zamiast pisaę wiele instrukcji warunkowych moŇna
skorzystaę z instrukcji "Switch":
Write-Host `
"To jest kontynuacja linii."
Aby uzyskaę dostħp do ostatniej linii:
$args[0]
Aby odnieĻę siħ do ostatniego argumentu na liĻcie
naleŇy skorzystaę z polecenia: $args[-1]
MoŇna takŇe "złamaę" liniħ, wstawiajĢc separator "|"
miħdzy poszczególnymi poleceniami:
$a[-1]
$a = 2
switch ($a)
{
1 {"Kolor czerwony."}
2 {"Kolor niebieski."}
3 {"Kolor zielony."}
4 {"Kolor Ň ółty."}
default {"Inny."}
}
Aby okreĻlię liczbħ linii, słów, znaków w pliku tekstowym
naleŇy skorzystaę z polecenia:
Get-ChildItem C:\Scripts |
Sort-Object Length –Descending
Zmiana kolorów tekstu oraz tła
Aby wyĻwietlię tekst w kolorze naleŇy skorzystaę
z polecenia Write-Host i okreĻlię kolor :
Get-Content c:\scripts\test.txt |
Measure-Object -line -word -character
Linie składaj Ģ ce si ħ z wielu polece ı
Aby wstawię wiele poleceı do jednej linii, moŇna je
odseparowaę znakiem Ļrednika ";":
Write-Host "test" -foregroundcolor "green"
Zapisywanie do pliku tekstowego
Aby zapisaę dane w pliku tekstowym naleŇy skorzystaę
z polecenia: Out-File :
MoŇna równieŇ okreĻlię kolor tła:
$a = 1,2,3,4,5; $b = $a[2]; Write-Host $b
Tworzenie p ħ tli "For" i "For Each"
Aby utworzyę pħtlħ "For" naleŇy skorzystaę ze schematu:
Write-Host "test" -backgroundcolor "red"
Get-Process | Out-File C:\Scripts\Test.txt
Porównywanie
Polecenia PowerShell (np. takie jak Where-Object )
wykorzystujĢ operatory porównania, włĢczajĢc w to te
pokazane w tabeli.
for ($a = 1; $a -le 10; $a++) {$a}
Aby dołĢczyę dane do pliku, który juŇ posiada zawartoĻę
naleŇy skorzystaę z parametru – append :
Wstawianie podziału wiersza
Dla porównania, pħtla "For Each" bħdzie wyglĢdała tak:
Aby wstawię podział wiersza do ciĢgu wynikowego ( ang.
output ) naleŇy uŇyę znaków: `n :
Get-Process | Out-File C:\Test.txt –append
foreach ($i in get-childitem c:\scripts)
{$i.extension}
MoŇna takŇe skorzystaę z tzw. strumieni, znanych
z systemu MS-DOS: ‘>’ do zwykłego zapisu, albo ‘>>’ do
dopisania do istniejĢcej zawartoĻci, np.:
Write-Host "Linia 1.`nLinia 2."
lt
Mniejsze
le
Mniejsze lub równe
gt
Wiħksze
ge
Wiħksze lub równe
Get-Process > C:\Scripts\Test.txt
Tworzenie p ħ tli "While" i "Until"
Aby utworzyę pħtlħ "While" lub "Until", naleŇy skorzystaę
z podanych dwóch przykładów kodu, zamieniajĢc kod
w nawiasach {…} oraz warunek pħtli, na kod, który ma
zostaę wykonany w pħtli.
Pisanie w negatywie
Aby w trybie tekstowym wyĻwietlię wiadomoĻę
w negatywie, naleŇy skorzystaę z polecenia Write-
Warning :
eq
Równe
ne
Nierówne
Polecenie Export-CSV zapisuje dane w formacie CSV
(rozdzielajĢc je przecinkami):
like
Podobne (uŇywa symboli
wieloznacznych, ang. wildcards )
notlike
Niepodobne (uŇywa symboli
wieloznacznych, ang. wildcards )
Get-Process | Export-CSV C:\Test.csv
Write-Warning "Wyst Ģ pił bł Ģ d."
$a = 1
do {$a; $a++}
while ($a -lt 10)
Wstawianie komentarzy
Aby wstawię komentarz, naleŇy uŇyę znaku ‘ # ”:
KaŇdy z operatorów moŇe rozpoznawaę wielkie i małe
litery ( ang. Case-sensitive ). W tym celu naleŇy dodaę
znak c przed operatorem. Na przykład – ceq to operator
równoĻci z uwzglħdnieniem wielkoĻci znaków. Operator
clt to operator mniejszoĻci z uwzglħdnieniem wielkoĻci
znaków.
Drukowanie danych
Aby wydrukowaę dane na domyĻlnej drukarce, naleŇy
skorzystaę z polecenia Out-Printer :
$a = 1
do {$a; $a++}
until ($a –gt 10)
# To jest komentarz, a nie polecenie.
Get-Process | Out-Printer
318096973.001.png
Przewodnik po Windows PowerShell
Przewodnik po Windows PowerShell
Tworzenie obiektów COM
Aby rozpoczĢę pracħ z obiektami COM, naleŇy
skorzystaę z polecenia New-Object z parametrem
comobject podajĢc identyfikator programu tzw. ProgID:
Praca z WMI
Aby uzyskaę informacje o komputerze przy
wykorzystaniu WMI, naleŇy skorzystaę z polecenia Get-
WMIObject podajĢc jako parametr nazwħ klasy:
Uzyskiwanie pomocy
Aby uzyskaę dostħp do pomocy PowerShell naleŇy
skorzystaę z polecenia Get-Help z parametrem – full .
Przykładowo, aby uzyskaę informacje dotyczĢce
polecenia "Get-Process", naleŇy posłuŇyę siħ
poleceniem:
Kopiowanie / Wklejanie
Aby włĢczyę moŇliwoĻę prostego kopiowania i wklejania
do konsoli Windows PowerShell, naleŇy wykonaę
nastħpujĢce kroki:
1. Uruchomię Windows PowerShell, kliknĢę prawym
przyciskiem myszy ikonħ w lewym górnym rogu,
wybraę Properties .
2. W oknie Windows PowerShell Properties na
zakładce Options wybraę QuickEdit Mode , kliknĢę
OK.
Aby skopiowaę tekst z konsoli PowerShell naleŇy
zaznaczyę tekst i nacisnĢę Enter. Aby wkleię tekst do
konsoli naleŇy kliknĢę w obszarze konsoli prawym
przyciskiem myszy.
$a = New-Object -comobject `
"Excel.Application"
$a.Visible = $True
Get-WMIObject Win32_BIOS
JeŇeli klasa nie wystħpuje w obszarze nazw cimv2 ,
naleŇy skorzystaę z parametru – namespace :
Get-Help Get-Process –full
Aby zobaczyę przykłady wykorzystania wybranego
polecenia naleŇy skorzystaę z parametru – examples :
Dost ħ p do obiektów .NET
Aby skorzystaę z obiektów .NET Framework, naleŇy
nazwħ klasy zawrzeę w nawiasach kwadratowych.
Nastħpnie naleŇy oddzielię nawħ klasy i metodħ
uŇywajĢc do tego pary dwukropków:
Get-WMIObject SystemRestore `
-namespace root\default
Get-Help Get-Process –examples
Aby uzyskaę dostħp do danych na innym komputerze,
naleŇy skorzystaę z parametru – computername :
MoŇna równieŇ skorzystaę z polecenia Get-Command ,
aby wyĻwietlię listħ dostħpnych poleceı PowerShell:
[system.Net.DNS]::resolve("207.46.198.30")
Get-WMIObject Win32_BIOS `
–computername atl-ws-01
Get-Command
Uruchamianie skryptów
Aby uruchomię skrypt z konsoli Windows PowerShell,
naleŇy wpisaę pełnĢ ĻcieŇkħ do skryptu (lub podaę
nazwħ skryptu, jeĻli skrypt znajduje siħ w bieŇĢcej
lokalizacji):
Aby utworzyę odniesienie do obiektu w .NET Framework,
naleŇy skorzystaę z polecenia New-Object :
Aby ograniczyę zwracane dane, naleŇy skorzystaę
z zapytania WQL i parametru – query :
Aby uzyskaę listħ dostħpnych aliasów naleŇy 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
C:\Scripts\Test.ps1
Uwaga . To jest tylko ogólny zarys tego jak pracowaę
z .NET. Pokazane w przykładzie techniki nie stosujĢ siħ
do wszystkich klas w .NET Framework.
Zmiana ustawie ı zabezpiecze ı
Aby móc uruchamiaę skrypty PowerShell, naleŇy zmienię
ustawienia zabezpieczeı. DomyĻlnie, w PowerShell
mogĢ byę uruchamiane jedynie te skrypty, które zostały
podpisane cyfrowo przez zaufanego wystawcħ
certyfikatu. Aby umoŇliwię uruchamianie skryptów, które
zostały utworzone lokalnie (niezaleŇnie od tego, czy
zostały podpisane cyfrowo, czy nie) naleŇy uŇyę
polecenia:
JeĻli nazwa ĻcieŇki zawiera spacje naleŇy pełnĢ nazwħ
ujĢę w znakach cudzysłowu. Na przykład:
Budowanie dowi Ģ za ı do Active Directory
Aby utworzyę dowiĢzanie do konta w Active Directory,
naleŇy skorzystaę z dostawcy LDAP:
&"C:\Scripts\My Scripts\test.ps1"
Wy Ļ wietlanie wła Ļ ciwo Ļ ci
Aby uzyskaę dostħp do właĻciwoĻci obiektu, naleŇy
przekierowaę wyjĻciowy strumieı danych do polecenia
Select-Object :
Aby uruchomię skrypt nie uruchamiajĢc bezpoĻrednio
konsoli Windows PowerShell (np. z Menu Start lub
z konsoli cmd.exe), naleŇy przywołaę konsolħ Windows
PowerShell, podajĢc ĻcieŇkħ do skryptu oraz argument
wywołania:
$a = [adsi] "LDAP://cn=kenmyer, `
ou=Finance, dc=fabrikam, dc=com"
Get-Process | Select-Object Name, Company
Wyliczanie obiektów w OU jest nieco bardziej
skomplikowane. Istnieje jednak metoda na rozwiĢzanie
tego zadania: utworzenie dowiĢzania do OU, nastħpnie
skorzystanie z metody PSBase_GetChildren() w celu
otrzymania zbioru elementów zawartych w OU:
Set-ExecutionPolicy RemoteSigned
powershell.exe –noexit C:\Scripts\Test.ps1
Sortowanie danych
Aby posortowaę dane zwracane w PowerShell, naleŇy
przekierowaę wyjĻciowy strumieı danych do polecenia
Sort-Object okreĻlajĢc kryterium, zgodnie z którym chce
siħ dane posortowaę:
Zagl Ģ danie do obiektu
Aby uzyskaę informacje o właĻciwoĻciach i metodach
obiektu, naleŇy uzyskaę dostħp do instancji tego obiektu,
a nastħpnie przekierowaę obiekt do polecenia Get-
Member . Przykładowo, poniŇsze polecenie zwraca
właĻciwoĻci i metody dostħpne przy pracy z procesami:
Parametr – noexit powoduje pozostawienie okna
PowerShell na ekranie po wykonaniu siħ skryptu.
$objOU = [ADSI]`
"LDAP://ou=Finance,dc=fabrikam,dc=com"
$users = $objOU.PSBase.Get_Children()
$users | Select-Object displayName
Wi ħ cej informacji
Get-Process | Sort-Object ID
Aby uzyskaę wiħcej informacji
o pisaniu skryptów Windows PowerShell,
odwiedŅ stronħ Technet Script Center:
http://www.mcrosoft.com/technet/
scriptcenter/hubs/msh.mspx.
SwojĢ przygodħ zacznij z webcast’ami
PowerShell Week oraz seriĢ artykułów:
A Task-Based Introduction to
Windows PowerShell .
MoŇna dodaę parametry – descending lub – ascending
aby okreĻlię kolejnoĻę sortowania:
Budowanie dowi Ģ za ı do kont lokalnych
Aby utworzyę dowiĢzanie do konta lokalnego naleŇy
skorzystaę z dostawcy WinNT:
Get-Process | Get-Member
Get-Process | Sort-Object ID –descending
Czyszczenie okna konsoli
Aby wyczyĻcię zawartoĻę okna PowerShell naleŇy
skorzystaę z polecenia Clear-Host (lub aliasu: cls ).
MoŇna posortowaę uwzglħdniajĢc wiele właĻciwoĻci:
Get-Process | Sort-Object ProcessName, ID
$a = [adsi] "WinNT://atl-ws-01/kenmyer"
$a.FullName
318096973.002.png
Zgłoś jeśli naruszono regulamin