środa, 31 grudnia 2014

PowerShell cz.1 - Podstawowe polecenia

PowerShell(PS) jest następcą poleceń cmd oraz języka skryptowego VisualBasic Script. Pozwala zebrać oraz skonfigurować wiele opcji systemu operacyjnego, zarówno lokalnego jak i zdalnego będącego w sieci lokalnej lub też podpiętego po VPN w drugiej sieci.

1. Podstawy

Znane polecenie z cmd dir daje nam możliwość wylistowania wszystkich katalogów, jedna w PowerShell nie jest zdefiniowane takie polecenie, jest to alias polecenia Get-ChildItem.





2.Fsutil - create

Jest nowszą wersją cmd dostępną jako komponent PS. Uruchamiamy go na prawach admina.
Przed użyciem Fsutil na dysku C:\ utworzymy katalog script. Następnie przy pomocy polecenia stworzymy w w/w katalogu nowy plik txt o długości 500 znaków.

PS C:\Users\Administrator> sl c:\script
PS C:\script> fsutil file createNew c:\script\newTxtFile.txt 500
File c:\script\newTxtFile.txt  is created
PS C:\script> dir


    Directory: Microsoft.PowerShell.Core\FileSystem::C:\script


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---          30/12/2014   7:30 PM      500 newTxtFile.txt


PS C:\script>





3.Fsutil-del

Możemy skasować utworzony przed momentem plik, lub też wszystkie pliki, które znajdują się w katalogu, w tym celu wydajemy polecenie:

del *.txt - usuwa wszystkie pliki z rozszerzeniem .txt,
del newTxTFile.txt - usuwa jedynie wskazany nasz plik




4. Get-Process

Jak sama nazwa wskazuje pobiera listę procesów, które w danym momencie są uruchomione.


Możemy rozszerzyć działanie polecenia Get-Process, poniższe polecenie pozwoli zawęzić listę procesów do tych zaczynających od co*.

Get-Process co*








5. Stop-Process -Whatif

PS daje nam możliwość zasymulowania działania polecenia, dzięki czemu nie popsujemy sobie systemu poprzez wciśnięcie Enter'a w nieodpowiednim momencie.
Uruchamiamy kalkulator, aby sprawdzić działanie polecenia Stop-Process z przełącznikiem -WhatIf.

calc
Stop-Process -processName calc -WhatIf
What if: Performing operation "Stop-Process" on Target "calc (1916)".



Symulacji podlegać może również tworzenie pliku.

New-Item  -Name newTxtFile -Path c:\script -ItemType directory -WhatIf





6. Stop-Process  -Confirm

Przełącznik -Confirm pokazuje możliwe do wykonania akcje dla polecenia, w stosunku do -WhatIf dodana została opcja wykonania polecenia, czego -WhatIf nie miało.Domyślną akcją jest wykonanie polecenia czyli zatrzymanie procesu kalkulatora, wystarczy wcisnąć Enter.

calc - uruchamiamy kalkulator
Stop-Process -Name calc -Confirm




Poniżej więcej możliwych przełączników dla poleceń cmdlet:

-verbose - wyświetla więcej szczegółów o danym poleceniu,
-debug - wyświetla więcej informacji przy debugowaniu,
-erroraction -  pozwala na wykonanie akcji polecenia w przypadku gdy wystąpi błąd: continue(kontynuacja mimo błędu), stop(zatrzymuje działanie polecenia), SilentlyContinue(wykonuje polecenie bez wyświetlania błędu), inqure(pyta co zrobić po błędzie),





7.Get-Help

Jak sama nazwa wskazuje odpowiada za pobranie informacji na temat pomocy dla konkretnych poleceń.

Get-Help Get-Process



Możemy zastosować dodatkowe przełączniki rozszerzające jego działanie.

get-help get-p* - wylistuje wszystkie pasujące polecenia do wzorca.


get-help get-process -example - pokaże przykłady działania get-process.



get-help get-process -example | more - przełącznik | more pozwala na przewijanie stron jedna po drugiej, polecenie bez niego pokaże od razu wszystkie strony.






8. Aliasy

Aliasy są skróconymi wersjami normalnych poleceń, chodzi o to, aby w przypadku często używanych długich poleceń można było użyć ich aliasów, najlepszym przykładem jest opisany na początku dir, który jest aliasem polecenia Get-ChildItem.

get-alias |sort |more - pokaże wszystkie dostępne obecnie aliasy.



Dodajmy nasz własny alias dla polecenia Get-Help.

Set-Alias gh Get-Help - ustawiamy alias gh dla polecenia Get-Help od tej pory wystarczy wpisać gh oraz nazwę szukanego polecenia, aby wyświetlić jego szczegóły.

Get-Alias |sort |more -wylistujemy ponownie nasze aliasy, na liście powinien pojawić się nasz odnoszący się do Get-Help.





9. Format-*

Pracując z poleceniami PS potrzebujemy czasami wyświetlić jedynie częściowe wyniki polecenia.

Jednym z poleceń jest Format-List, dzięki któremu mamy do dyspozycji pełna informację na temat naszych dysków
Pokażmy informacje na temat naszych dysków zamontowanych w serwerze.

Get-WmiObject Win32_LogicalDisk



Widzimy że znajdują się tylko podstawowe informacje , jeżeli dodamy przełącznik Format-List, uzyskamy więcej szczegółów z których możemy wybrać potrzebne dane.

Get-WmiObject Win32_LogicalDisk | Format-List *



Otrzymaliśmy bardzo dużo informacji na temat naszego dysku, ale potrzebujemy jedynie kilku, w tym celu zawęzimy wyniki do poniższych wierszy.

Get-WmiObject Win32_LogicalDisk | Format-List Name, FileSystem, FreeSpace



 Możemy również skrócić w/w polecenie do poniższej postaci, z takim samym wynikiem.

Get-WmiObject Win32_LogicalDisk | Format-List [nf]*


Jeżeli chcemy przedstawić dane w bardziej czytelny (tabelaryczny) widok użyjemy polecenia Format-Table.Poniższe polecenie pokaże wszystkie pliki z rozszerzeniem .log, które znajdują się na partycji C:\ naszego dysku.

Get-ChildItem c:\ -Recurse -Include *.log | Format-Table



Poniższe polecenie z przełącznikiem -AutoSize, pozwala na dopasowanie wyniku polecenia do rozdzielczości naszego ekranu oraz szerokości najdłuższego wyniku dla pierwszej naszej kolumny, czyli Name.

Get-ChildItem c:\ -Recurse -Include *.log | Format-Table name,length,LastWriteTime -AutoSize




Możemy również posortować dane, domyślnie dane(u nas data ostatniej modyfikacji) posortowane będą od najmniejszej, z przełącznikiem -descending, sortowanie od największej wartości.

Get-ChildItem c:\ -Recurse -Include *.log |Sort -Property LastWriteTime | Format-Table name,length,LastWriteTime -AutoSize



po użyciu przełącznika -descending.




10.Get-Command



Jest czymś podobnym do Get-Help, z tym że pozwala pobrać wszystkie dostępne polecenia, dzięki czemu widzimy ich nazwy oraz składnię, możemy również wyszukać polecenia konkretnego typu przy pomocy -CommandType [cmdlet,alias lub function].

Get-Command -CommandType cmdlet


Możemy również wyfiltrować polecenia, które w nazwie mają file.

Get-Command -Name *file* -CommandType cmdlet





Brak komentarzy:

Prześlij komentarz