Microsoft PowerShell to wspaniała platforma skryptowa. Microsoft zapewnia obsługę PowerShell dla prawie wszystkich ról i funkcji systemu Windows Server. Możesz używać PowerShell do automatyzacji powtarzających się zadań, jak również do łatwego wykonywania zadań z wiersza poleceń, które zazwyczaj wykonujesz za pomocą narzędzi GUI. Na przykład, w środowisku produkcyjnym, jeśli trzeba sprawdzić stan łatania na serwerach Windows, użycie skryptów PowerShell jest znacznie łatwiejsze niż łączenie się z każdym serwerem z osobna, a następnie sprawdzanie stanu łatania. Jestem regularnym użytkownikiem PowerShell i zaprojektowałem tysiące skryptów PowerShell w ciągu moich 18 lat doświadczenia w IT.

Przed PowerShell, podstawowym językiem skryptowym do wykonywania zadań operacyjnych Windows był Visual Basic Scripting. Chociaż Visual Basic Scripting nadal istnieje i wielu administratorów IT nadal woli używać skryptów VB, warto wspomnieć, że PowerShell zmniejsza złożoność kodu. Na przykład, aby sprawdzić usługi na komputerze z systemem Windows, trzeba napisać kod VBScript w notatniku, zapisać plik jako .VBS, a następnie wykonać go za pomocą pliku wykonawczego hosta CSCript. Ale używając PowerShell możesz użyć prostego cmdleta Get-Service, który pomoże Ci szybko wyświetlić listę usług na komputerze z systemem Windows. Gdybyś potrzebował zapisać dane wyjściowe do pliku za pomocą skryptu VB, będziesz musiał ponownie napisać mnóstwo kodu w skrypcie VB, który polega na otwarciu pliku, a następnie zapisaniu jego zawartości do pliku. PowerShell po prostu nie wymaga otwierania pliku, zanim zawartość pobrana przez cmdlet PowerShell może zostać zapisana do pliku. Wystarczy użyć cmdletów „Export-CSV” lub „Add-Content”.

Cmdlety: The building blocks of PowerShell scripts

PowerShell oferuje cmdlety (wymawiane jako „command-lets”), czasami określane jako narzędzia wiersza poleceń, które można wykorzystać do uzyskania informacji o systemie operacyjnym, aplikacjach zainstalowanych na komputerze z systemem Windows, informacji o sieci, stanie łatania na komputerze z systemem Windows i wielu innych. Ważne jest, aby pamiętać, że cmdlety PowerShell są napisane w .NET i używają klas .NET do wykonywania wymaganych zadań. Jeśli chcesz dowiedzieć się, które cmdlety PowerShell są dostępne na komputerze lokalnym, wykonaj następujące polecenie:

Get-Command

Get-Command jest cmdletem PowerShell, który wyszukuje cmdlety, funkcje, filtry i skrypty PowerShell zainstalowane na komputerze lokalnym. Powyższe polecenie zapyta o wszystkie moduły PowerShell zainstalowane na lokalnym komputerze. Jeśli potrzebujesz zobaczyć wszystkie polecenia zainstalowane na komputerze lokalnym w odpowiedniej kolejności, wykonaj to polecenie:

Get-Command -Type cmdlet | Sort-Object -Property Noun |FT -GroupBy Noun

Trzy typy operacji PowerShell

Skrypty PowerShell
Używając PowerShell, możesz wykonać trzy typy operacji. Są to Get, Set i Remove. Każdy cmdlet PowerShell, który zaczyna się od „Get” jest zwykle używany do pobierania informacji z komponentów systemu Windows. Na przykład Get-ADUser wykonuje operację odczytu bazy danych Active Directory w celu pobrania informacji o użytkowniku. Poniżej przedstawiono kilka przykładów użycia cmdleta Get-ADUser PowerShell:

Get-ADUser -Filter * -SearchBase „OU=TestUsers,DC=TechGenix,DC=Com”

Powyższe polecenie pobiera wszystkie konta użytkowników znajdujące się w jednostce organizacyjnej, podczas gdy poniższe polecenie pobiera właściwości związane z pojedynczym użytkownikiem Active Directory:

Get-ADUser -Identity JohnThomas -Properties *

Ccmdlety PowerShell rozpoczynające się od „Set” służą do edycji informacji o składniku Windows. Na przykład za pomocą polecenia Set-ADUser można wykonywać różne zadania operacyjne, jak pokazano w poniższych poleceniach:

Set-ADUser -Identity JohnThomas -HomeFolder \u0026apos;

Poniższe polecenia ustawiają właściwość poczty dla użytkownika JohnThomas.

$ThisUser = Get-ADUser -Identity JohnThomas -Properties Mail
$ThisUser.Mail = [email protected]
Set-ADUser -Instance $ThisUser

skrypty PowerShell

Każdy cmdlet PowerShell, który zaczyna się od „Remove”, służy do wykonywania operacji usuwania. Na przykład, Remove-ADUser może być użyty do usunięcia użytkownika Active Directory, jak pokazano poniżej:

Remove-ADUser -Identity JohnThomas

Łączenie cmdletów PowerShell

Jedną z najlepszych cech PowerShell jest możliwość łączenia dwóch lub więcej cmdletów PowerShell w jedno polecenie PowerShell. Takie polecenia są czasami nazywane poleceniami typu one-liner PowerShell. Na przykład, jeśli trzeba usunąć wszystkie wyłączone konta użytkowników z Active Directory, można połączyć polecenia Search-ADAccount i Remove-ADUser, jak pokazano w poniższym poleceniu:

Search-ADAccount -AccountDisabled | Where {$_.ObjectClass -eq „User”} | Remove-ADUser

Jak widać w powyższym poleceniu, Search-ADAccount PowerShell cmdlet wykonuje wyszukiwanie w całym katalogu aktywnym w celu znalezienia wyłączonych kont, a następnie używając operatora pipe (|) instruujemy Remove-ADUser, aby wykonał operację usunięcia tylko na użytkownikach, którzy zostali wyszukani przez Search-ADAccount.

Aliasy PowerShell

Mimo że wiele cmdletów PowerShell jest łatwych do odczytania i użycia, PowerShell udostępnia również funkcję zwaną aliasem PowerShell. PowerShell jest wystarczająco inteligentny, aby uzupełnić nazwę cmdleta PowerShell poprzez naciśnięcie klawisza Tab. W przypadku, gdy masz problem z zapamiętaniem nazwy cmdletów PowerShell, możesz utworzyć aliasy PowerShell. Na przykład, można utworzyć alias dla cmdleta PowerShell Get-MailBoxStatistics za pomocą poniższego polecenia:

New-Alias ShowMB Get-MailBoxStatistics

Po wpisaniu „ShowMB” w oknie PowerShell, PowerShell szuka cmdleta powiązanego z aliasem ShowMB, a następnie wykonuje go.

Zapisywanie informacji w pliku CSV

Jeśli chodzi o zapisywanie informacji w pliku CSV, PowerShell oszczędza wiele pracy związanej ze skryptowaniem. PowerShell dostarcza cmdlet „Export-CSV”, którego można używać z innymi cmdletami PowerShell. Domyślnie każde polecenie PowerShell, które wykonujesz, pokazuje wynikowe informacje w oknie poleceń PowerShell, chyba że dodasz Export-CSV na końcu polecenia, jak pokazano w poniższym poleceniu:

Get-ADUser -Filter * -SearchBase „OU=TestUsers,DC=TechGenix,DC=Com” | Export-CSV C:\Temp\AllUsersInAnOU.CSV

Zauważ, że w powyższym poleceniu po prostu dodajesz „Export-CSV” na końcu polecenia, aby dane wyjściowe zostały wyeksportowane w pliku CSV.

Jak widać, skrypty PowerShell skracają czas wykonywania codziennych zadań operacyjnych. PowerShell jest zdolny do wykonywania trzech zadań operacyjnych; Get, Set i Remove, a 97 procent cmdletów PowerShell zaczyna się od tych trzech słów, aby łatwo zidentyfikować funkcję cmdleta PowerShell. Wyjaśniliśmy również jak łatwo jest połączyć dwa cmdlety w jedno polecenie, aby uczynić twoje skrypty PowerShell bardziej wydajnymi.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.