czwartek, 8 października 2015

PowerShell: podstawy - cz.1



W codziennej pracy zdarza mi się korzystać z PowerShell. Jest to narzędzie bardzo przydatne i odpowiednio użyte pozwala wykonać niektóre zadania (niektóre rzeczy można zrobić jedynie za pomocą PS), niektóre wykonać znacznie prościej niż innymi metodami lub w sposób łatwy do utrwalenia na przyszłość.

Nie jestem jakimś powershellowym guru. Właściwie, to niewiele umiem w nim zrobić. Jednak chcę przekazywać moją wiedzę, a nawet jeśli nikt nie będzie zainteresowany - utrwalić ją jakoś na przyszłość.
Zacznijmy od otwarcia konsoli PowerShell - proponuję nacisnąć Win i wpisać powers - i wybrać odpowiedni program. PowerShell lub PowerShell ISE - na chwilę obecną, bez różnicy.


Czyszczenie ekranu

Na początek nie będzie to nam potrzebne, jednak wyjście czyścimy przez komendę:
Clear-Host

Sprawdzenie wersji środowiska

Do zrobienia przy pomocy komendy
get-host | select-object version

Póki co, samo polecenie, w którymś z kolejnych postów bardziej dokładnie omówię użycie pipe (|). Generalnie chodzi o to by nie pisać w kilku linijkach czegoś co można napisać w jednej  :)
Pobranie nazwy komputera i innych zmiennych systemowych

Sposób na-wprost:
$(Get-WmiObject Win32_Computersystem).name

Jeśli jednak chcemy ograniczyć ilość znaków, z powodzeniem możemy skorzystać ze zmiennej systemowej:
$env:computername

Przy okazji warto spojrzeć na inne zmienne systemowe:
Get-ChildItem env:

Wyswietlenie zawartości zmiennej systemowej.


Zmiana nazwy komputera

Gdy chcemy zmienić nazwę komputera, również do tego możemu użyć PowerShella. Najprostrza wersja komendy:
Rename-Computer -NewName nazwa

Po wywołaniu tej komendy, by zmiana rzeczywiście się wydarzyła , konieczne będzie ponowne uruchomienie komputera - możemy skorzystać z parametru -Restart:
Rename-Computer -NewName nazwa -Restart

Uzyskanie pomocy w temacie jakiegoś polecenia

Służy do tego polecenie:
Get-Help nazwa-polecenia
równoznaczne z:
nazwa-polecenia -?

Gdy chcemy bardziej szczegółowy opis:
Get-Help nazwa-polecenia -Detailed

Gdy chcemy pełny opis:
Get-Help nazwa-polecenia -Full

Szukanie poleceń

Czasem nie mamy pojęcia jak może się nazywać polecenie którego szukamy, jednak podejżewamy, że znamy część jego nazwy. Wtedy korzystne może być użycie komendy:
Get-Command -Verb czasownik

Get-Command -Noun rzeczownik

Efekt polecenia Get-Command

“Tradycyjne” operacje na plikach i spacer po katalogach

Jeśli chodzi o przemieszczanie się po katalogach i opracje na plikach (kopiowanie, kasowanie, zmiana nazwy, itd.), to działają podstawowe polecenia DOSa.
Wejście do katalogu i zmiana nazwy pliku - wszystko po staremu.

Uruchamianie skryptów

PowerShell często jest niezbędny podczas wykonywania bardziej zaawansowanych działań administracyjnych. Aby być w stanie w pełni korzystać z jego potencjału warto korzystać ze skryptów zapisywanych w plikach. Nakreślę temat uruchamiania skryptów na poniższym przykładzie - jest to swego rodzaju “zajawka”, coś na kształt krótkiego wstępu:
Przykład wykorzystania skryptu.
Skrypty PowerShell zapisywne są w plikach z rozszerzeniem .ps1.

Jeśli spróbujemy uruchomić jakikolwiekt skrypt, pojawi się komunikat o błędzie - zakładam, że działamy na ustawieniach domyślnych.

Możemy odblokować wykonywanie skryptów poleceniem:

Set-ExecutionPolicy Unrestricted

Konieczne jest jednak wydanie tego polecenia z podniesionymi uprawnieniami - patrz: Administrator.

Dzięki temu ponowna próba wykonania skryptu zaowocuje jego wykonaniem - w tym wypadku nieśmiertelne “Hello World!” - wypisane poleceniem Write-Output.

Warto jeszcze zaznaczyć, że ze względów bezpieczeństwa warto zmienić polisę wykonywania skryptów z konsoli z podniesionymi uprawnieniami, natomiast sam skrypt wykonać w konsoli z niższymi uprawnieniami. Usprawiedliwieniem dla mnie, jest kilka faktów:
  •     wykonanie wszystkiego całkowicie “zgodnie ze sztuką” nadmiernie by skomplikowało zrzut ekranu;
  •     skrypt napisałem sam, i jestem na 100% pewien co do sposobu jego działania;
  •     działam w środowisku wirtualnym, na maszynie, która została postawiona przed chwilą, jedynie do celów edukacyjnych.
Tyle tytułem wstepu.

Brak komentarzy:

Prześlij komentarz