Archiwum dla kategorii ‘Power Shell’

Powershell: Get-Help about* zwraca tylko kilka pozycji

2017-01-09

W Powershell wersji 5 pojawił się bug powodujący, że polecenie Get-Help about* zwraca tylko kilka wyników, podczas gdy tych plików z dokumentacją języka powinno być o wiele więcej… Przyczyną była zła nazwa przypisywana plikom pomocy i można ten  problem naprawić uruchamiając następujące polecenie: Get-ChildItem -Path $pshome -Filter about*.txt -Recurse | Where-Object { $_.Name -notlike '*.help.txt’ […]

PowerShell: Własny typ enum

2016-12-27

Bardzo nie lubię literówek w moich skryptach, dlatego gdzie mogę korzystam z intellisence, wybieram wartości z listy, korzystam ze zmiennych zamiast stałych napisowych itp. W C# uwielbiam typ enum, bo dzięki niemu mogę korzystać z nic mi nie mówiących wartości liczbowych za pomocą nazwanch tekstów. W Powershellu również można korzystać z typu enum: Add-Type -TypeDefinition […]

Powershell: Dodanie do listy select pewnej wartości stałej

2016-12-14

Mamy następującą sytuację. W AD jest sobie grupa HR. Członkiem tej grupy jest użyrkownik Johny Employer. Grupa ma ustawioną właściwość ManagedBy na innego użytkownika Johny Manager. Chcielibyśmy dostać raport, w którym wyświetlimy nazwy wszystkich członków grupy HR, a obok nazwę managera (czyli osoby ustawionej dla grupy w polu ManagedBy. Zaczynamy od znalezienia managera: $manager = […]

Powershell: Generowanie hasła

2016-12-06

Napisanie skryptu generującego hasło, to jedno z przyjemniejszych zadań programistycznych. Jest for, są iteracje, jest random. Mniam mniam. Dobra funkcja generująca hasło to jednak coś innego! I właśnie taką udało mi się znaleźć. To co w niej jest najlepsze, to że: można określić z jakiej grupy znaków należy generować hasła oraz masz gwarancję, że z […]

Powershell: Komunikat podczas ładowania modułów: Security Warning Run only scripts that you trust

2016-12-06

Podczas ładowania skryptu lub ładowania modułu można otrzymać bład/komunikat/pytanie: Security Warning Run only scripts that you trust. While scripts from the Internet can be useful, this script can potentially harm your computer. Do you want to run \server\scripts\my.ps1? [D] Do not run [R] Run once [S] Suspend [?] Help (default is „D”): Komunikat właściwie nie […]

Powershell: Numer wersji funkcji i modułu

2016-11-25

Załóżmy, że masz moduł testlib.psm1 o następującej zawartości: function test-it { [cmdletbinding()] param() return 1 } function test-this { [cmdletbinding()] param() return 2 } Domyślnie, jeżeli uruchomisz polecenie Get-Command -Module testlib to otrzymasz wynik prezentujący funkcje modułu ale numery wersji będą wskazywać 0: Aby zmienić numer wersji funkcji można stworzyć tzw. manifest do modułu. W […]

Powershell: Catch/try/finally: inny blok catch dla różnych rodzajów exception

2016-11-18

Obsługę  błędów można realizować w powershell korzystając z intrukcji try/catch/finally. Często do obsługi błędu wystarczy konstrukcja: try { GWMI Win32_bios -ComputerName 'blablacomp’-ea Stop } catch { echo „general exception” } Ale zdarza się, że z jakiegoś powodu w bloku try znajduje się kilka instrukcji, które mogły spowodować błąd i w zależności od tego jaki błąd […]