Jeśli jesteś zaawansowanym użytkownikiem systemu Windows, prawdopodobnie wiesz i rozumiesz, jak wykonywanie różnych operacji na komputerze może mieć więcej niż jedno podejście i że wyspecjalizowane aplikacje GUI są często bardziej ograniczające (i mniej satysfakcjonujące, bądźmy szczerzy) niż wprowadzanie poleceń w wiersz poleceń ręcznie. Po prostu odczuwasz satysfakcję, gdy widzisz przed sobą rozwijającą się ścianę tekstu, a jeśli wynik nie jest błędem, to tym bardziej jest to warte zachodu.
Na komputerach z systemem Windows można to osiągnąć tylko na dwa sposoby: za pomocą CMD lub PowerShell. Chociaż CMD jest odrobinę bardziej popularny niż PowerShell, jest również mniej wydajny, biorąc pod uwagę, że jego odpowiednik pozwala wykonać o wiele więcej operacji, w tym te, które można uruchomić przez CMD. Można powiedzieć, że PowerShell łączy moc starego CMD z możliwościami skryptów i poleceń cmdlet, dając mnóstwo możliwości dotyczących operacji, które można z nim wykonać.
Jednak sama liczba możliwych operacji, które można wykonać za pomocą PowerShell, może być dość onieśmielająca nawet dla doświadczonych użytkowników, nie wspominając o użytkownikach, którzy nigdy wcześniej nie słyszeli o CMD (nie mówiąc już o PowerShell). Nie martw się jednak, spróbujemy nauczyć Cię kilku prostych sztuczek, które możesz wykonać za pomocą PowerShell, a może nawet zapamiętasz na dłuższą metę. Chociaż ten nasz „kurs awaryjny” nie posłuży jako wyczerpujący podręcznik dla PowerShell, miejmy nadzieję, że pomoże ci odnaleźć się w PowerShell, dając ci kilka wskazówek i wyjaśniając kilka poleceń. Jeśli jesteś gotowy, zacznijmy.
Co to jest PowerShell?
Jak już krótko wspomnieliśmy powyżej, PowerShell to potężne narzędzie, którego można używać do szerokiego zakresu operacji. Co więcej, PowerShell to rozwiązanie do automatyzacji zadań, które zawiera kilka potężnych narzędzi, w tym między innymi powłokę wiersza poleceń (taką jak CMD), język skryptowy, a także strukturę zarządzania konfiguracją.
W przeciwieństwie do innych powłok, które mogą tylko akceptować i zwracać tekst, PowerShell może również akceptować i zwracać obiekty .NET dzięki wyjątkowej liczbie funkcji, które obejmuje. Oto niektóre z najważniejszych funkcji PowerShell związanych z powłoką:
- Przewidywanie poleceń i uzupełnianie zakładek
- Obsługa aliasów parametrów i poleceń
- Kompleksowa historia wiersza poleceń
- Możliwość łączenia poleceń w łańcuch przez potok
- System pomocy w konsoli, który jest podobny do stron podręcznika w systemach uniksowych
Jednak to tylko zarysowanie wierzchołka góry lodowej, ponieważ, jak wspomnieliśmy wcześniej, PowerShell to coś więcej niż tylko powłoka; możesz go używać jako potężnego języka skryptowego do automatyzacji operacji zarządzania systemem, ale także do tworzenia, analizowania, testowania i wdrażania rozwiązań w różnych środowiskach.
Biorąc pod uwagę, że PowerShell jest oparty na .NET CLR (.NET Common Language Runtime), łatwo jest zrozumieć, dlaczego wszystkie dane wejściowe i wyjściowe, z którymi współpracuje PowerShell, są obiektami .NET. Ponadto absolutnie nie ma potrzeby analizowania tekstu wyjściowego tylko po to, aby PowerShell mógł z niego wyodrębnić informacje. Wśród funkcji skryptów PowerShell można znaleźć:
- Kompleksowy system formatowania zapewniający czysty i łatwy wydruk
- Twórz dynamiczne typy za pomocą rozbudowanego systemu typów
- Możesz rozszerzyć możliwości PowerShell za pomocą klas, funkcji, modułów i skryptów
- Natywna obsługa różnych formatów danych, w tym XML, JSON i CSV
Jeśli bardziej interesuje Cię zarządzanie infrastrukturą przedsiębiorstwa i konfigurowanie jej za pomocą kodu, z przyjemnością dowiesz się, że program PowerShell oferuje również tę możliwość za pośrednictwem struktury zarządzania konfiguracją żądanego stanu (DSC). Wśród operacji, które można łatwo wykonać, korzystając z DSC PowerShell, przypominamy:
- Wdrażaj różne schematy konfiguracji za pomocą modeli push lub pull
- Projektuj niestandardowe skrypty i konfiguracje deklaratywne, których możesz używać do powtarzalnych wdrożeń w swoim środowisku
- Wymuszaj różne schematy konfiguracji
- Raport o dryfowaniu konfiguracji
PowerShell ma zastrzeżony wiersz poleceń, który jest dostarczany z zastrzeżonym językiem programowania, który jest nieco podobny do Perla. Zauważ, że na początku PowerShell został opracowany, aby pomóc użytkownikom zarządzać obiektami na ich komputerach, ale jak możesz się domyślić, przeszedł długą drogę i jest teraz używany do bardziej rozbudowanych, złożonych zadań.
Na przykład możesz wykorzystać rozbudowane środowisko pracy PowerShell nie tylko do wykonywania różnych operacji zarządzania systemem, ale także do ich automatyzacji, dzięki czemu nie musisz od czasu do czasu angażować się w żmudne, powtarzalne zadania. Bardzo ważne jest również, aby wspomnieć, że możesz uzyskać dostęp do mnóstwa zasobów za pomocą tylko jednego programu (tj. PowerShell), w tym między innymi:
- Instrumentacja zarządzania Windows
- Interfejs API .NET Framework
- Wiersz polecenia
- Obiektowy model komponentu Windows
- Polecenia PowerShell
W dzisiejszych czasach jednym z najpopularniejszych celów PowerShell jest pomoc użytkownikom końcowym w automatyzacji zadań zarządzania systemem, co pomaga im uniknąć angażowania się w szereg nudnych, powtarzalnych operacji. Udowodniono, że eliminacja czynnika ludzkiego z powtarzalnych działań zwiększa wydajność i redukuje błędy ludzkie z różnych powodów, więc jest to naprawdę korzystne dla wszystkich.
Możesz użyć PowerShell do wydawania prostych lub bardziej złożonych poleceń, ale ten program może również pomóc w tworzeniu skryptów opartych na tych poleceniach, które będą uruchamiane automatycznie przez PowerShell. Ponadto istnieje ogromna liczba poleceń, które można dostosować i wydać później, zwanych cmdletami.
Warto wspomnieć, że PowerShell jest wieloplatformowy i open-source, co oznacza, że można go również używać na innych systemach, takich jak Mac lub Linux, bez uciekania się do sztuczek i narzędzi zwiększających kompatybilność, takich jak Wine lub Boot Camp.
Lista podstawowych poleceń PowerShell
Rozumiemy, że PowerShell może wydawać się nieco onieśmielający, zwłaszcza teraz, gdy odkryłeś, że jest czymś więcej niż tylko kolejnym wierszem poleceń na twoim komputerze i faktycznie obejmuje funkcje CMD, ale także określony język programowania i różne skrypty, których możesz użyć do automatyzacji operacje zarządzania systemem.
Jeśli jednak czujesz się zdeterminowany, aby opanować PowerShell i wszystko, co ma do zaoferowania, zdecydowanie zalecamy rozpoczęcie od jego najbardziej podstawowych funkcji. W ten sposób nie będziesz musiał cofać się o miesiące postępów, gdy odkryjesz, że przypadkowo użyłeś niewłaściwej funkcji, a cała praca, którą wykonałeś w międzyczasie, zaczyna wyglądać bardziej jak odległe wspomnienie.
Właśnie dlatego przygotowaliśmy listę podstawowych poleceń, których możesz bezpiecznie używać w sesjach PowerShell, aby przetestować funkcje tego potężnego programu i zobaczyć, które dokładnie co robi. Poniższa lista zawiera nazwy poleceń, ich aliasy oraz krótki opis działania każdego polecenia.
Zauważ, że możesz użyć nazw poleceń lub ich aliasów, a wynik będzie dokładnie taki sam. Powodem, dla którego preferuje się używanie aliasów, jest to, że są one znacznie szybsze do wpisania i jeśli potrafisz je poprawnie zapamiętać i skojarzyć z odpowiadającą im nazwą polecenia, ma to większy sens, jeśli chcesz szybko wykonać zadanie.
Nazwa polecenia |
Alias |
Opis |
Dodaj zawartość |
AC |
Umożliwia dodawanie treści (np. słów lub danych) do pliku |
Dodaj-PSSnapIn |
asnp |
Pomaga dodać wiele przystawek Windows PowerShell do
bieżącej sesji |
Wyczyść zawartość |
clc |
Czyści zawartość elementu bez usuwania rzeczywistego elementu |
Czysta historia |
cli |
Usuwa wszystkie wpisy z historii poleceń |
Wyczyść-host |
jasne |
Czyści wyświetlacz programu hosta |
Wyczyść-host |
cls |
Czy to samo, co jasne |
Wyczyść-Pozycja |
cli |
Usuwa zawartość elementu bez usuwania rzeczywistego elementu |
Clear-ItemProperty |
klp |
Wymazuje wartość właściwości bez faktycznego usuwania samej właściwości |
Wyczyść-zmienna |
klv |
Usuwa wartość zmiennej |
Porównaj-obiekt |
porównywać |
Pozwala porównać dwa zestawy obiektów |
Porównaj-obiekt |
różnica |
Czy to samo, co porównaj |
Połącz-sesja PS |
cnsn |
Umożliwia ponowne łączenie się z sesjami, z których się rozłączyłeś |
Konwertuj-Ścieżka |
cvpa |
Umożliwia konwersję ścieżki Windows
PowerShell na ścieżkę dostawcy Windows PowerShell |
Kopiuj element |
Kopiuj |
Pomaga skopiować element z określonej lokalizacji do innej |
Kopiuj element |
cp |
Robi to samo, co kopiowanie |
Kopiuj element |
cpi |
Robi to samo co kopiowanie i cp |
Copy-ItemProperty |
cpp |
Pozwala skopiować wartość i właściwość z danej lokalizacji do
innej |
Wyłącz-PSBreakpoint |
dbp |
Pomaga wyłączyć breakpointy w bieżącej konsoli |
Odłącz-PSSession |
dnsn |
Odłącza Cię od bieżącej sesji |
Włącz-PSBreakpoint |
ebp |
Pozwala włączyć punkty przerwań w bieżącej konsoli |
Enter-PSSession |
etsn |
Pomaga uruchomić interaktywną sesję na zdalnym urządzeniu |
Wyjście-PSSession |
exsn |
Kończy sesję interaktywną z urządzeniem zdalnym |
Eksportuj-Alias |
epal |
Pozwala wyeksportować informacje o aliasach, które są aktualnie zdefiniowane
do pliku wyjściowego |
Eksport-CSV |
epcv |
Pozwala konwertować obiekty na wiele
ciągów oddzielonych przecinkami (CSV) i eksportuje ciągi do dokumentu CSV |
Eksportuj-sesję |
epsn |
Importuje polecenia z innej sesji i eksportuje je do
modułu Windows PowerShell |
Dla każdego obiektu |
% |
Wykonuje określoną operację na każdym z elementów zawartych
w kolekcji obiektów wejściowych |
Dla każdego obiektu |
dla każdego |
Robi to samo co % |
Format-Niestandardowy |
fc |
Pomaga użyć niestandardowego widoku w celu sformatowania danych wyjściowych |
Lista formatów |
fl |
Pozwala sformatować dane wyjściowe jako listę właściwości, w której każda właściwość
jest umieszczona w nowym wierszu |
Format-Tabela |
ft |
Pozwala sformatować dane wyjściowe jako tabelę |
Szeroki format |
fw |
Pomaga formatować obiekty jako szerokie tabele, w których
wyświetlana jest tylko jedna właściwość każdego obiektu |
Get-Alias |
gal |
Pobiera aliasy dla bieżącej sesji |
Get-ChildItem |
reż |
Pobiera listę wszystkich plików i folderów na dysku systemu plików |
Get-ChildItem |
gci |
Robi to samo co dir |
Get-ChildItem |
ls |
Robi to samo co dir i gci |
Pobierz polecenie |
gcm |
Pobiera listę wszystkich poleceń, których możesz użyć |
Pobierz zawartość |
Kot |
Wyświetla zawartość pliku |
Pobierz zawartość |
gc |
Robi to samo co kot |
Pobierz historię |
ghy |
Pobiera listę wszystkich poleceń wprowadzonych podczas bieżącej sesji |
Pobierz historię |
h |
Robi to samo co ghy |
Pobierz historię |
historia |
Czy to samo co ghy i h |
Zdobądź przedmiot |
żołnierz amerykański |
Pozwala pobierać pliki i foldery |
Get-ItemProperty |
gp |
Pobiera właściwości określonego elementu |
Uzyskaj pracę |
gjb |
Pobiera listę wszystkich zadań Windows PowerShell działających w tle, które są
aktualnie uruchomione w Twojej sesji |
Uzyskaj lokalizację |
gl |
Pobiera informacje o aktualnym stosie lokalizacji lub lokalizacji roboczej |
Uzyskaj lokalizację |
pwd |
robi to samo co gl |
Uzyskaj członka |
GM |
Pobiera wszystkie właściwości i metody określonych obiektów |
Pobierz moduł |
gmo |
Pobiera listę zaimportowanych modułów lub modułów, które można zaimportować do
bieżącej sesji |
Pobierz-Proces |
GPS |
Pobiera listę wszystkich procesów działających lokalnie lub na zdalnym
komputerze |
Pobierz-Proces |
ps |
Robi to samo co GPS |
Get-PSBreakpoint |
GBP |
Pobiera wszystkie punkty przerwań ustawione w bieżącej sesji |
Get-PSCallStack |
gcs |
Wyświetla Twój aktualny stos połączeń |
Pobierz PSDrive |
gdr |
Pobiera dyski w bieżącej sesji |
Get-PSSession |
gsn |
Pobiera listę lokalnych i zdalnych sesji Windows PowerShell |
Get-PSSnapIn |
gsnp |
Pobiera listę wszystkich przystawek Windows PowerShell na komputerze |
Uzyskaj usługę |
gsv |
Wyświetla listę wszystkich usług na komputerze lokalnym lub zdalnym |
Get-Unique |
Guy |
Pobiera unikalne przedmioty z posortowanej listy |
Pobierz zmienną |
gv |
Wyświetla listę wszystkich zmiennych w bieżącej konsoli |
Get-WmiObject |
gwmi |
Pobiera
instancje klas Instrumentacji zarządzania Windows (WMI) lub informacje o dostępnych klasach |
Grupa-obiekt |
Grupa |
Pozwala obiektów grup, które zawierają tę samą wartość dla właściwości
, które można określić |
Wsparcie |
Człowiek |
Wyświetla więcej szczegółów na temat poleceń i
koncepcji programu Windows PowerShell |
Importuj-Alias |
ipal |
Umożliwia importowanie listy aliasów z pliku |
Importuj-CSV |
ipcsv |
Twórz niestandardowe obiekty podobne do tabeli, używając wszystkich elementów zawartych w
pliku CSV |
Moduł importu |
ipmo |
Importuj moduły do bieżącej sesji |
Importuj-PSS sion |
ipsn |
Importuje polecenia z innej sesji do bieżącej sesji |
Wywołaj polecenie |
icm |
Umożliwia wykonywanie poleceń na komputerach lokalnych i zdalnych |
Wywołanie-wyrażenie |
iex |
Umożliwia wykonywanie poleceń lub wyrażeń na komputerze lokalnym |
Invoke-Historia |
ihy |
Wykonuje polecenia z historii sesji |
Invoke-Historia |
r |
Robi to samo co ihy |
Invoke-Item |
ii |
Wykonuje domyślną akcję na określonym elemencie |
Invoke-RestMethod |
Irma |
Wysyła żądanie HTTP lub HTTPS do usługi sieciowej RESTful |
Invoke-WebRequest |
kędzior |
Pobiera zawartość ze strony internetowej w Internecie |
Invoke-WebRequest |
iwr |
Czy to samo, co curl |
Wywołaj metodę WMI |
iwmi |
Umożliwia wywoływanie
metod Instrumentacji zarządzania Windows (WMI) |
Miara-Obiekt |
zmierzyć |
Określa numeryczne właściwości obiektów, a także słów,
linii i znaków w obiektach tekstowych |
mkdir |
md |
Tworzy nową pozycję (katalog) |
Przenieś-przedmiot |
mi |
Pozwala przenieść przedmiot z określonej lokalizacji do innej |
Przenieś-przedmiot |
ruszaj się |
robi to samo co mi |
Przenieś-przedmiot |
mv |
Does the same thing as mi and move |
Move-ItemProperty |
mp |
Allows you to move a property from a specific location to a different one |
New-Alias |
nal |
Allows you to create a new alias |
New-Item |
ni |
Lets you create a new item |
New-Module |
nmo |
Generates a new dynamic module that exists only in memory |
New-PSDrive |
mount |
Allows you to create temporary and persistent mapped network drives |
New-PSDrive |
ndr |
Does the same thing as mount |
New-PSSession |
nsn |
Establishes a persistent connection to a local or remote computer |
New-PSSessionConfigurationFile |
npssc |
Creates a session configuration file |
New-Variable |
nv |
Lets you create a new variable |
Out-GridView |
ogv |
Allows you to send output to an interactive table in a separate window |
Out-Host |
oh |
Sends the output to the command line (CMD) |
Out-Printer |
lp |
Lets you send the output to a printer |
Pop-Location |
popd |
Modifies your current location to the location that was pushed to the
stack most recently. You can use the Push-Locationcmdlet (pushd) to
pop the location either its default stack or from a stack that you create. |
powershell_ise.exe |
ise |
Displays an explanation on how you can use the PowerShell_ISE.exe
command-line tool |
Push-Location |
pushd |
Appends the current location to the top of a location stack |
Receive-Job |
rcjb |
Fetches the results of current session Windows PowerShell background
jobs |
Receive-PSSession |
rcsn |
Retrieves results of commands from disconnected sessions |
Remove-Item |
del |
Removes files and folders |
Remove-Item |
erase |
Does the same thing as del |
Remove-Item |
rd |
Does the same thing as del and erase |
Remove-Item |
ri |
Does the same thing as del, erase and rd |
Remove-Item |
rm |
Does the same thing as del, erase, rd, and ri |
Remove-Item |
rmdir |
Deletes folders |
Remove-ItemProperty |
rp |
Allows you to delete a property and its value from a given item |
Remove-Job |
rjb |
Lets you delete a Windows PowerShell background job |
Remove-Module |
rmo |
Helps you remove modules from your current session |
Remove-PSBreakpoint |
rbp |
Lets you remove breakpoints from the current console |
Remove-PSDrive |
rdr |
Removes temporary Windows PowerShell drives, as well as disconnects
mapped network drives |
Remove-PSSession |
rsn |
Lets you close one or more Windows PowerShell sessions (PSSessions) |
Remove-PSSnapin |
rsnp |
Enables you to remove Windows PowerShell snap-ins from your current
session |
Remove-Variable |
rv |
Clears a variable and its value |
Remove-WMIObject |
rwmi |
Lets you delete an instance of an existing Windows Management
Instrumentation (WMI) class |
Rename-Item |
ren |
Helps you rename an item in a Windows PowerShell provider namespace |
Rename-Item |
rni |
Does the same thing as ren |
Rename-ItemProperty |
rnp |
Enables you to rename an item’s property |
Resolve-Path |
rvpa |
Resolves wildcard characters in a path, as well as displays the contents
of the path |
Resume-Job |
rujb |
Helps you restart a job that was suspended |
Select-Object |
select |
Lets you select objects as well as their properties |
Set-Alias |
sal |
Lets you create or change a cmdlet’s or command element’s alias
(alternate name) in the current Windows PowerShell session |
Set-Content |
sc |
Allows you to replace a file’s contents with contents that you specify. |
Set-Item |
si |
Changes an item’s value to a value that’s specified in the command |
Set-Location |
cd |
Lets you set your current working location to a specified location (changes
the active location) |
Set-Location |
chdir |
Does the same thing as cd |
Set-PSBreakpoint |
sbp |
Lets you set a breakpoint on a command, variable, or line |
Set-Variable |
set |
Enables you to set a variable’s value or generates a variable if one with
the requested name does not exist |
Show-Command |
shcm |
Displays a list of Windows PowerShell commands in a graphical
command window |
Start-Job |
sajb |
Starts a background job in Windows PowerShell |
Start-Process |
saps |
Launches one or more local processes |
Start-Service |
sasv |
Lets you start one or more stopped services |
Stop-Process |
kill |
Helps you stop one or more running processes |
Where-Object |
? |
Enables you to select certain objects from a collection based on their
property values |
Write-Output |
echo |
Allows you to send an object to the next command in the pipeline. If it
reaches the last command in the pipeline, the command will display
the objects in the console |
Don’t let the sheer amount of basic PowerShell commands intimidate you. Although we called them basic, there’s absolutely no need for you to start memorizing them. In fact, that’s the exact reason why we created the table above so that you can go on about your work without worrying about having to remember each and every command we mentioned above.
You can use it as a quick refresher or even use your browser’s search feature to locate a specific command, its alias, and what it does if you’re confused. Although we already included this piece of information in the table above, if you’re ever confused while working in PowerShell, using the help command will display a few helpful details on how you can use this program and its commands more efficiently.
You can also pair the help command with another command or alias if you want more details about that specific command. For instance, this is what PowerShell displays when you type help Add-Computer:
However, you can use help with any other of the commands or their aliases in our table above. Make sure you understand that the same command can have multiple aliases, which means that you can achieve the same result by using various aliases. Although this may sound confusing, it actually gives you plenty of flexibility in case you can’t remember one command alias, but you remember another one that can help you achieve the same goal.
Using PowerShell
Naturally, the first thing you’d want to do is locate PowerShell and launch it. One sure way to launch PowerShell from just about anywhere you are on your PC is to hold down the Shift button on your keyboard, right-click any empty spot on your screen (not a menu, icon, button, or similar object), and select Open PowerShell window here from the context menu.
In addition to giving you quick access to the PowerShell console anywhere on your PC, doing so will automatically switch the default working directory for PowerShell to the one you’re currently located at. If you’re on a Windows 10 PC, you can also launch PowerShell by pressing the Win key on your keyboard, typing PowerShell in the Start menu, and selecting PowerShell when it becomes visible in the list of results.
On older versions of Windows, you’ll need to manually locate the PowerShell executable, which you can either find in the Accessories or System folders in your Start menu. Furthermore, seeing how older systems (such as Windows 7) don’t provide you with PowerShell by default, you’ll also have to install it on your computer, along with all of its dependencies.
Notice how launching PowerShell from the Start menu will set your active working directory to C:\Users\[your username here]
. By comparison, using the Shift + Right-click method we’ve presented above will set PowerShell’s active directory to the one you’re currently at when you spawn the console. For instance, if you use Shift + right-click and open PowerShell from your desktop, you’ll notice that the active directory will be C:\Users\[your username here]\Desktop
. For obvious reasons, the [your username here]
part will be different depending on your username.
Although you can keep PowerShell for home usage just fine, it’s better if you could make use of all that it has to offer. Incidentally, these features make PowerShell awesome for corporate usage, where you need to perform a large number of operations in a short time, and most likely on a huge number of devices.
Dlatego zamiast ręcznie uruchamiać każde polecenie na każdym pojedynczym komputerze, możesz po prostu utworzyć skrypt automatyzacji w PowerShell i automatycznie otrzymywać potrzebne informacje, bez konieczności fizycznej interakcji z urządzeniami na wypadek lub nawet przebywania w ich pobliżu. Podobnie jak CMD, PowerShell może być używany za pomocą wierszy poleceń. Jednak w przeciwieństwie do swojego bardziej podstawowego odpowiednika (tj. CMD), PowerShell umożliwia również przywoływanie skryptów i poleceń cmdlet, co czyni go potężniejszym, ale także bardziej skomplikowanym w użyciu.
Jak korzystać z poleceń cmdlet
W naszym przewodniku kilka razy używaliśmy terminu cmdlet , więc prawdopodobnie zastanawiasz się, co one oznaczają. Cóż, na początek warto przypomnieć, że CMD działa z poleceniami. Polecenie cmdlet, które jest wymawiane jako polecenie-let, jest również poleceniem, ale w przeciwieństwie do tradycyjnych poleceń CMD, polecenia cmdlet są specyficzne dla PowerShell i umożliwiają wykonywanie pojedynczych określonych operacji, takich jak kopiowanie plików, przenoszenie elementów z jednego miejsca do drugiego, zmiana aktywnych katalogu lub zobacz zawartość elementu.
Mówiąc najprościej, cmdlety to polecenia jednofunkcyjne, które można wpisywać bezpośrednio w wierszu poleceń PowerShell. Jeśli masz wcześniejsze doświadczenie z CMD, praca z programem PowerShell jest nieco intuicyjna. Jedną z interesujących rzeczy w PowerShell jest to, że udostępnia wiele poleceń z CMD. Dlatego używanie CD z PowerShellem nadal zmieni Twój aktywny katalog, DIR nadal będzie wyświetlał zawartość bieżącego folderu, a CP nadal pozwoli Ci skopiować element z jednego miejsca do drugiego.
Warto wspomnieć, że PowerShell nie rozróżnia wielkości liter, w przeciwieństwie do wielu innych powłok, które zwracają błędy, jeśli podczas wpisywania poleceń nie użyjesz poprawnej wielkości liter. Zatem copy-item będzie działać tak samo dobrze jak Copy-Item , a jeśli nie pamiętasz żadnego z nich, możesz również użyć Copy , CP i CPI (ale także copy , COPY , cp lub cpi ).
Większość poleceń cmdlet programu PowerShell jest napisana w języku C# i jest specjalnie zbudowana do wykonywania operacji, które zwrócą obiekt .NET jako wynik. W tej chwili możesz znaleźć więcej niż kilkaset poleceń cmdlet, których możesz użyć w PowerShell, co, bądźmy uczciwi, daje więcej niż tylko trochę swobody w wykonywaniu operacji.
Chociaż trudno będzie zapamiętać wszystkie polecenia cmdlet, z którymi być może będziesz musiał pracować (pamiętaj, że możesz skorzystać z powyższej tabeli), jest kilka, których będziesz używać częściej, co sprawi, że będą niezwykle łatwe do zapamiętania. Nie wspominając już o tym, że niektóre z nich są na tyle intuicyjne, że ich nazwa zdradza ich przeznaczenie (np. kopiowanie służy do kopiowania elementów, przenoszenie może służyć do przenoszenia plików, porównywanie pomaga porównywać zestawy obiektów itp.).
Jeśli jednak nie masz ochoty dodawać tego artykułu do zakładek, aby użyć go później, możesz również wpisać polecenie cmdlet Get-Command w PowerShell lub gcm , jeśli chcesz, aby wszystko było zwięzłe. Spowoduje to wyświetlenie pełnej listy dostępnych poleceń i możesz użyć tej listy do planowania z wyprzedzeniem tego, co chcesz zrobić.
Odblokowywanie niestandardowych poleceń cmdlet
Z drugiej strony Microsoft nie tylko zapewnia pełny dostęp do całej gamy poleceń cmdlet, których możesz domyślnie używać w PowerShell, więc będziesz musiał przeskoczyć przez kilka dodatkowych obręczy, aby odblokować tę funkcję i używać jej na swoim wypoczynek. Dobrą wiadomością jest to, że proces odblokowywania nie trwa długo, a ponadto można to zrobić również za pomocą PowerShell, co będzie dla ciebie świetną praktyką. Bez dalszych ceregieli zobaczmy, jak odblokować uprawnienia do niestandardowych poleceń cmdlet w PowerShell.
- Zaloguj się na konto administratora (nie będzie działać bez uprawnień administratora)
- Uruchom PowerShell z uprawnieniami administratora (Uruchom jako administrator)
- Wpisz następujące polecenie w PowerShell i naciśnij Enter:
- Jeśli zrobisz to dobrze, PowerShell wyświetli okno dialogowe z prośbą o nową wartość ExecutionPolicy
- Wpisz
RemoteSigned
wiersz polecenia PowerShell i naciśnij Enter
- PowerShell poinformuje Cię o ryzyku związanym z modyfikacją wartości ExecutionPolicy
- Wpisz Y i naciśnij klawisz Enter
- Jeśli chcesz wyłączyć niestandardowe polecenia cmdlet, wykonaj kroki 1-4 , a gdy program PowerShell poprosi o wpisanie wartości, wpisz
Restricted
i potwierdź swój wybór, tak jak w kroku 7
Jeśli chcesz usprawnić cały proces i nie tracić czasu na wpisywanie wszystkiego w wierszu poleceń PowerShell, z przyjemnością dowiesz się, że istnieje jeszcze prostszy sposób na osiągnięcie tego samego wyniku. Uruchom PowerShell z uprawnieniami administratora, tak jak w kroku pierwszym, i zamiast wpisywać każde polecenie i czekać na monit, będziesz przesyłać wszystko aż do potwierdzenia, wpisując to:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Oczywiście nadal będziesz musiał potwierdzić swój wybór, wpisując Y i naciskając Enter na klawiaturze, ale po prostu pominąłeś krok i wykonałeś jednocześnie serię operacji. Właśnie dlatego zaawansowani użytkownicy PowerShell tworzą skrypty automatyzacji do automatycznego wykonywania różnych operacji zarządzania: aby zaoszczędzić czas i kłopoty. Jeśli chcesz, możesz użyć tego samego polecenia powyżej, aby wyłączyć niestandardowych apletów poleceń w systemie, ale będziesz musiał wymienić RemoteSigned
z Restricted
a także potwierdzić swój wybór na końcu.
Możesz także użyć AllSigned
i Unrestricted
przyznać sobie jeszcze więcej uprawnień, jeśli chodzi o uruchamianie potencjalnie niebezpiecznych skryptów w programie Windows PowerShell. Opcja AllSigned pozwoli Ci uruchomić wszystkie skrypty, które zostały stworzone przez zaufanych wydawców, natomiast opcja Unrestricted umożliwi PowerShellowi uruchomienie dowolnego skryptu, niezależnie od jego pochodzenia i wiarygodności. Oczywiście opcja Bez ograniczeń jest również najbardziej niebezpieczna, więc staraj się jej unikać najlepiej, jak możesz, jeśli to możliwe, zwłaszcza jeśli jesteś nowicjuszem na komputerze.
Widzieć? PowerShell już zaczyna wyglądać o wiele bardziej przystępnie niż zaledwie kilka minut temu.
Jak tworzyć i używać skryptów w PowerShell
Jak wspomnieliśmy wcześniej i jesteśmy pewni, że pamiętasz, możesz używać PowerShell do uruchamiania skryptów automatyzacji. Jednak nie możesz po prostu krzyczeć do PowerShell „Hej, stwórz dla mnie ten skrypt!” i spodziewaj się, że zadziała magicznie, więc będziesz musiał włożyć trochę smaru do łokci i zrobić to sam. Jakkolwiek może to zabrzmieć teraz niewygodnie, zaufaj nam, na dłuższą metę będziesz wdzięczny, biorąc pod uwagę całą pracę, której już nie będziesz musiał wykonywać.
Chociaż większość z nas polega na specjalistycznym oprogramowaniu, takim jak IDE, do tworzenia skryptów lub programów w określonym języku programowania, prawdę mówiąc, możesz używać dowolnego edytora tekstu, o ile może on zapisywać pliki we właściwym rozszerzeniu. A nawet jeśli nie, możesz po prostu przejść do utworzonego pliku i ręcznie zmodyfikować jego rozszerzenie, zmieniając jego nazwę, ale wróćmy do naszych owiec.
Jeśli jesteś zainteresowany tworzeniem skryptu, który może działać w PowerShell, z przyjemnością dowiesz się, że ten skrypt, o którym prawdopodobnie słyszałeś wiele, jest jedynie dokumentem tekstowym z rozszerzeniem, które czyni go kompatybilnym z PowerShell, PS1 . Dlatego łatwo zrozumieć, dlaczego tworzenie tych skryptów można faktycznie obsługiwać z poziomu praktycznie dowolnego edytora tekstu, o ile zapiszesz go z odpowiednim rozszerzeniem (PS1).
Write-host "Please enter your name:"
$Name = read-host
"Hello $Name! Visit TipsWebTech360.com for more awesome tutorials and guides!"
Teraz przejdźmy do właściwej części tworzenia:
- Uruchom Notatnik (lub dowolny inny edytor tekstu w tym zakresie)
- Skopiuj powyższy kod (skrypt, który będziesz tworzyć i uruchamiać)
- Wklej go do nowego dokumentu Notatnika
- Użyj CTRL + S, aby zapisać dokument
- Wpisz
script.ps1
jako nazwę pliku
- Zapisz plik w dostępnym miejscu
- Otwórz instancję PowerShell z uprawnieniami administratora (bardzo ważne)
- Upewnij się, że masz włączone niestandardowe skrypty w swoim systemie (sprawdź sekcje powyżej)
- Przejdź do lokalizacji, w której zapisałeś skrypt
- Wpisz pełną ścieżkę skryptu, aby go uruchomić
- Na przykład, jeśli twój skrypt znajduje się w folderze Scripts na dysku C, twoje polecenie będzie
C:\Scripts\script.ps1
- Alternatywnie możesz po prostu przejść do lokalizacji swojego skryptu i użyć tego polecenia, aby go uruchomić:
.\script.ps1
Jeśli nie możesz uruchomić skryptu, a program PowerShell zwróci błąd, upewnij się, że włączono program PowerShell do uruchamiania skryptów niestandardowych w systemie i że używasz programu PowerShell jako administrator. Niewykonanie żadnej lub obu czynności, które określiliśmy w naszych instrukcjach, najprawdopodobniej spowoduje błąd i nie będzie można uruchomić skryptu.
Pamiętaj, że to tylko podstawowy skrypt, który jest nieco podobny do klasycznego „Hello, world!” jeden. Nastawia to na to, że wchodzi w interakcję z tobą (tj. pyta o twoje imię) i pozwala ci na interakcję z nim (tj. wpisując twoje imię, które zostanie użyte do wydrukowania wiadomości dla ciebie). Jednak PowerShell jest w stanie uruchamiać znacznie bardziej złożone skrypty, od zbierania danych z szeregu maszyn po skomplikowane zarządzanie danymi, zaawansowane operacje konfiguracyjne systemu, a nawet tworzenie kopii zapasowych baz danych SQL w mgnieniu oka.
Jak mogę wykonać kopię zapasową baz danych SQL za pomocą PowerShell?
Cieszymy się, że zapytałeś. Jak wspominaliśmy niezliczoną ilość razy w naszym przewodniku, istnieją prawie nieskończone możliwości, jeśli chodzi o operacje, które PowerShell może Ci pomóc. Jednym z najpopularniejszych jest tworzenie kopii zapasowych bazy danych SQL bez konieczności wykonywania dużych nakładów pracy lub posiadania nadzwyczajnych możliwości zarządzania bazą danych. Wszystko, co musisz zrobić, to uruchomić podwyższoną instancję PowerShell (z uprawnieniami administratora) i użyć polecenia Backup-SqlDatabase . Sprawy są jednak nieco bardziej skomplikowane, ale za chwilę do tego dojdziemy.
Tworzenie kopii zapasowej bazy danych SQL nie jest tak proste, jak zwykłe kopiowanie plików z komputera w bezpieczne miejsce i mam nadzieję, że pozostaną one bezpieczne, gdy będą potrzebne do wykonania operacji przywracania danych, ale z drugiej strony użycie PowerShell może sprawić, że będzie wyglądać jak spacer po parku. Chociaż istnieje kilka sposobów, aby to osiągnąć, użycie wspomnianego powyżej polecenia jest najszybszym i najprostszym sposobem wykonania kopii zapasowej bazy danych SQL.
Wśród możliwości polecenia Backup-SqlDatabase można znaleźć pełne kopie zapasowe bazy danych, kopie zapasowe plików baz danych, a także kopie zapasowe dzienników transakcji, dzięki czemu otrzymujesz pełny pakiet w jednym narzędziu wiersza poleceń. Domyślnie użycie tego polecenia spowoduje wykonanie pełnej kopii zapasowej bazy danych, więc za pomocą parametru BackupFile należy określić, czy ma ona przestrzegać określonego zestawu reguł .
Zwróć uwagę, że niektóre wersje programu PowerShell domyślnie nie zawierają tego polecenia, więc będziesz musiał je zaimportować lub zainstalować. Dobrą wiadomością jest to, że instalacja modułu SQL nie jest do końca nauką o rakietach i może być wykonana nawet przez nowicjuszy. Oto, co musisz zrobić, jeśli nie możesz użyć polecenia Backup-SqlDatabase w sesji PowerShell:
- Uruchom PowerShell z uprawnieniami administratora
- Wpisz następujące polecenie:
- Gdy zostaniesz poproszony o potwierdzenie swoich działań, wpisz Y i naciśnij Enter na klawiaturze
- Potwierdź niezaufane repozytorium jeszcze raz, wpisując Y i Enter
- Po zakończeniu instalacji wpisz następujące polecenie:
- Spróbuj uruchomić polecenie Backup-SqlDatabase, wpisując je w wierszu poleceń PowerShell
- Jeśli to działa, powinieneś zobaczyć, że PowerShell prosi o podanie wartości niektórych parametrów
- Jeśli to nie zadziała, upewnij się, że masz ustawione uprawnienia PowerShell, aby umożliwić mu uruchamianie niestandardowych skryptów
1. Kompletna kopia zapasowa bazy danych SQL
Backup-SqlDatabase -ServerInstance "Computer\Instance" -Database "Tips.WebTech360"
Powyższe polecenie wygeneruje pełną kopię zapasową bazy danych o nazwie TipsWebTech360 i zapisze ją w domyślnej lokalizacji kopii zapasowej instancji serwera „Computer\Instance” jako „Tips.WebTech360.bak”.
2. Wykonaj kopię zapasową bazy danych w oparciu o lokalizację
Set-Location "SQLSERVER:\SQL\Computer\Instance"
PS SQLSERVER:\SQL\Computer\Instance> Backup-SqlDatabase -Database "Tips.WebTech360"
Pierwsze polecenie powyżej zmieni Twoją lokalizację na aktywny katalog w instancji serwera, na której zostanie wykonana kopia zapasowa. Zasadniczo ta technika działa prawie jak pełna kopia zapasowa bazy danych, którą pokazaliśmy powyżej, ale w tym przykładzie możesz zmienić katalog roboczy, aby zlokalizować instancję serwera, w której występuje kopia zapasowa.
Ta operacja spowoduje również utworzenie pełnej kopii zapasowej bazy danych o nazwie Tips.WebTech360 i wyeksportowanie jej jako pliku „Tips.WebTech360.bak” w domyślnej lokalizacji instancji serwera, z którą jesteś połączony.
3. Wykonaj kopię zapasową dziennika transakcji
Backup-SqlDatabase -ServerInstance "Computer\Instance" -Database "Tips.WebTech360" -BackupAction Log
Jeśli potrzebujesz tylko wykonać kopię zapasową dziennika transakcji określonej bazy danych, PowerShell może również pomóc w tym za pomocą jednego polecenia, które możesz wprowadzić bezpośrednio w interfejsie wiersza poleceń. Powyższe polecenie wygeneruje kopię zapasową dziennika transakcji bazy danych „Tips.WebTech360” i wyeksportuje ją do domyślnej lokalizacji instancji serwera „Computer\Instance” jako plik o nazwie „Tips.WebTech360.trn”.
4. Utwórz zaszyfrowaną kopię zapasową bazy danych SQL
$EncryptionOption = New-SqlBackupEncryptionOption -Algorithm Aes256 -EncryptorType ServerCertificate -EncryptorName "BackupCert"
Backup-SqlDatabase -ServerInstance "." -Database "Tips.WebTech360" -BackupFile "Tips.WebTech360.bak" -CompressionOption On -EncryptionOption $EncryptionOption
Jeśli obawiasz się, że kopia zapasowa bazy danych może wpaść w niepowołane ręce, PowerShell może również pomóc w tworzeniu zaszyfrowanych plików kopii zapasowych. Oczywiście będziesz musiał określić niektóre parametry, takie jak algorytm szyfrowania, typ szyfrowania (tj. certyfikat), instancję serwera, nazwę bazy danych, plik kopii zapasowej oraz to, czy chcesz skompresować dane wyjściowe.
Powyższy przykład utworzy kopię zapasową pewnej bazy danych „Tips.WebTech360”, zaszyfruje ją szyfrowaniem AES-256 i certyfikatem serwera, skompresuje i zapisze wynikowy plik „Tips.WebTech360.bak” w domyślnej lokalizacji kopii zapasowej instancji serwera. Jest to bardzo ważne, jeśli planujesz migrację i nie masz pewnego sposobu na przetransportowanie wszystkich plików kopii zapasowych bez ryzyka zerwania z którymkolwiek z nich.
5. Wykonaj kopię zapasową wszystkich baz danych w instancji serwera
Get-ChildItem "SQLSERVER:\SQL\Computer\Instance\Databases" | Backup-SqlDatabase
Innym przydatnym narzędziem jest możliwość tworzenia kopii zapasowych wszystkich baz danych na instancji serwera w tym samym czasie przez PowerShell. Niezależnie od ich liczby, po prostu odpalasz PowerShell, wpisujesz adaptację powyższego polecenia i czekasz na zakończenie procesu tworzenia kopii zapasowej. Pamiętaj, że ponieważ spowoduje to utworzenie kopii zapasowej wszystkich baz danych w instancji serwera, być może będziesz musiał chwilę poczekać, więc bądź cierpliwy.
Powyższe polecenie utworzy kopię zapasową wszystkich baz danych znajdujących się na instancji serwera „Komputer\Instancja” i wyeksportuje pliki wynikowe do domyślnej lokalizacji kopii zapasowej na tej samej instancji serwera. Nazwy plików kopii zapasowych zostaną wygenerowane automatycznie zgodnie z odpowiednią bazą danych, po której nastąpi rozszerzenie BAK (np. .bak).
Chociaż istnieje kilka innych metod wykonywania kopii zapasowych SQL za pomocą PowerShell na różne sposoby, przedstawiliśmy tylko kilka, które naszym zdaniem były ważniejsze. Zauważ, że polecenia, których użyliśmy w naszych przykładach powyżej, prawdopodobnie nie będą działać w twoim środowisku w ich obecnej formie, więc będziesz musiał dostosować je do swojej obecnej sytuacji.
Na przykład, będziesz musiał zmienić parametr „Komputer\Instancja”, aby pasował do Twojej własnej instancji serwera i zmodyfikować nazwę bazy danych, aby odzwierciedlała nazwę Twojej własnej bazy danych. Pamiętaj, że zawsze możesz skorzystać z polecenia pomocy w PowerShell, jeśli kiedykolwiek poczujesz, że polecenie, które próbujesz uruchomić, jest mylące lub nie działa tak, jak powinno.
Polecenia PowerShell, które trzeba znać
1. Uzyskaj pomoc
Nie możemy tego wystarczająco podkreślić, ale polecenie Get-Help powinno być pierwszym, którego się nauczysz, ponieważ może poważnie wyciągnąć cię z wielu lepkich sytuacji, w których nie jesteś do końca pewien, czy używasz właściwego polecenia, lub dokładnie to, co możesz osiągnąć za pomocą polecenia, które próbujesz wdrożyć.
Teraz, gdy już zainstalowałeś moduł sqlserver w swoim systemie, możesz wypróbować teraz polecenie Get-Help i zobaczyć, jak działa Backup-SqlDatabase . Po prostu wpisz Get-Help Backup-SqlDatabase w wierszu poleceń programu PowerShell i odśwież swoje umiejętności tworzenia kopii zapasowych bazy danych PowerShell SQL.
Zwróć uwagę, że jeśli niedawno zainstalowałeś moduł sqlserver w swoim systemie, baza danych Pomocy może nadal być nieaktualna i może być konieczne uruchomienie jej aktualizacji, aby mogła nadrobić zaległości w nowych skryptach. Domyślnie program PowerShell wykryje, że zawartość, do której próbujesz dotrzeć, jest dostępna w trybie online, ale nie możesz uzyskać do niej dostępu lokalnie, a nawet zaoferować aktualizację bazy danych. W takim przypadku wystarczy wpisać Y po wyświetleniu monitu i nacisnąć klawisz Enter na klawiaturze.
Jeśli jednak program PowerShell po prostu wyświetli komunikat o błędzie z informacją, że nie ma dostępnej instrukcji pomocy dla polecenia, które Cię interesuje, możesz zaktualizować je ręcznie, wpisując Update-Help i naciskając klawisz Enter na klawiaturze. Po zakończeniu procesu aktualizacji powinieneś być w stanie sprawdzić dostępną dokumentację pomocy dla interesującego Cię polecenia.
2. Uzyskaj proces
Get-Process ma kluczowe znaczenie, jeśli chcesz dowiedzieć się więcej o systemie, nad którym aktualnie pracujesz. Mówiąc dokładniej, chociaż mogłeś już zgadnąć, co robi to polecenie, po prostu na nie patrząc, Get-Process dostarczy ci listę wszystkich procesów, które są aktualnie uruchomione w systemie, nad którym pracujesz.
Domyślnie Get-Process pobierze listę wszystkich procesów uruchomionych w bieżącym systemie, na którym pracujesz, więc może być konieczne dodanie kilku dodatkowych parametrów do tego polecenia, jeśli chcesz uzyskać bardziej szczegółowe informacje i zawęzić listę wyników. Sprawdź na poniższych zrzutach ekranu, co otrzymasz, gdy uruchomisz samo polecenie Pobierz-Proces , w porównaniu z tym, jak wygląda, jeśli jesteś bardziej szczegółowy i sformatujesz wyniki.
Get-Process explorer | Format-List *
Drugie polecenie można dostosować, aby wyświetlić dodatkowe szczegóły dotyczące dowolnego aktywnego procesu w systemie. Można zastąpić Explorer z svchost lub Chrome lub innego aktywnego procesu w systemie, że jesteś zainteresowany. Jak już wspomniano powyżej, stosując Get-Processes sama może ci w tym pomóc (czyli znalezienie listę wszystkich uruchomionych procesów ).
3. Zatrzymaj proces
To polecenie jest dość oczywiste, ponieważ być może już zorientowałeś się, że może pomóc zatrzymać procesy, które są aktualnie uruchomione w twoim systemie. Najczęstszym powodem robienia tego z PowerShell, a nie za pomocą Menedżera zadań systemu Windows, jest to, że czasami procesy mogą się zawiesić i sprawić, że aplikacje GUI są ledwo użyteczne.
Użytkownicy PowerShell mogą łatwo zidentyfikować problematyczny proces za pomocą polecenia Get-Process , które wyjaśniliśmy wcześniej, a następnie używając Stop-Process, aby go zakończyć, odblokowując w ten sposób system. Running Stop-Process sam (bez dodatkowych parametrów) w interfejsie wiersza polecenia PowerShell poprosi, aby wprowadzić identyfikator procesu, który próbujesz rozwiązać.
Możesz jednak również zakończyć proces według jego nazwy (jeśli ją znasz), dołączając parametr -Name do polecenia cmdlet, jak w poniższym przykładzie:
Stop-Process -Name "explorer"
Powyższe polecenie zakończy proces Eksploratora, co może być przydatne, zwłaszcza jeśli zawiesza się lub zawiesza i odmawia poprawnego załadowania. Pamiętaj, że podczas określania nazwy procesu, który próbujesz zakończyć, musisz użyć cudzysłowów. Jeśli proces jest uparty i odmawia zakończenia (zazwyczaj robią to procesy o wyższym prześwicie), możesz go „przekonać”, dodając do polecenia parametr -Force . Powiedz na przykład, że nie możesz zakończyć procesu Eksploratora. W takim przypadku możesz po prostu wpisać poniższe polecenie:
Stop-Process -Force -Name "explorer"
Ponadto warto wspomnieć, że użycie parametru -Force w poleceniu Stop-Process nie spowoduje wyświetlenia pytania o potwierdzenie, w przeciwieństwie do uruchomienia polecenia bez tej opcji. Jeśli chcesz dowiedzieć się więcej o tym cmdlecie, użyj polecenia Get-Help .
4. Uzyskaj usługę
To polecenie jest jedną z podstawowych list poleceń nie bez powodu: może dostarczyć ci listę wszystkich usług, które są aktualnie zainstalowane w systemie, nad którym pracujesz, niezależnie od tego, czy są uruchomione, czy nie. Podobnie jak w przypadku wielu innych poleceń cmdlet, możesz dostosować Get-Service, aby zapewnić bardziej szczegółowe informacje dotyczące określonej usługi lub nawet wyświetlić listę wszystkich uruchomionych (lub zatrzymanych) usług na komputerze.
Możesz śmiało wpisać Get-Service w wierszu poleceń PowerShell. Spowoduje to wyświetlenie listy wszystkich usług dostępnych na komputerze, a także ich wyświetlanych nazw i stanów. Jeśli dołączysz dodatkowe polecenie do oryginalnego polecenia cmdlet, możesz zmienić dane wyjściowe, tak aby wyświetlały tylko te wyniki, które Cię interesują.
Na przykład wpisanie powyższego polecenia powinno zwrócić listę wszystkich usług dostępnych na komputerze, które zaczynają się na literę „W”. Możesz jednak pójść jeszcze dalej i dostosować swoje polecenie, aby jeszcze bardziej zawęzić listę wyników.
Get-Service | Where-Object {$_.Status -eq “Running”}
Powyższe polecenie pozwoli ci zobaczyć listę wszystkich dostępnych usług na twoim komputerze, które są również uruchomione w czasie uruchamiania polecenia cmdlet. Dodanie „W*”, tak jak w poprzednim przykładzie, spowoduje wyświetlenie listy wszystkich uruchomionych usług na komputerze, które zaczynają się na literę „W”, a polecenie powinno wyglądać tak:
Get-Service "W*" | Where-Object {$_.Status -eq "Running"}
5. Get-EventLog
Każdy odpowiedzialny administrator systemu powinien znać się na pracy z dziennikami zdarzeń, ponieważ dokumenty te mogą dostarczyć przydatnej wiedzy o tym, co wydarzyło się w systemie, o której godzinie to nastąpiło, a czasem nawet o tym, co wywołało to konkretne zdarzenie.
Dlatego możemy śmiało założyć, że polecenie PowerShell Get-EventLog nie jest czymś, czego chcesz brakować w swoim pasku narzędzi, zwłaszcza jeśli planujesz doskonalić swoje umiejętności administrowania systemem. Jeśli wiesz wszystko, co trzeba wiedzieć o dziennikach zdarzeń i ich nazwach, możesz śmiało wpisać Get-EventLog bezpośrednio w wierszu poleceń programu PowerShell. Zauważ, że PowerShell poprosi o wprowadzenie nazwy dziennika, który próbujesz wyświetlić.
Jeśli wpiszesz nazwę pustego dziennika zdarzeń (bez wpisów), PowerShell wyświetli monit z błędem i powróci do interfejsu wiersza poleceń. Dlatego byłoby łatwiej, gdybyś właśnie użył poniższego polecenia, które dostarczy ci listę dzienników zdarzeń w twoim systemie, wraz z dodatkowymi szczegółami na temat każdego z nich, takimi jak domyślna akcja przepełnienia i liczba wpisów.
Jednym z najpopularniejszych przypadków użycia dzienników zdarzeń jest sprawdzanie błędów, zwłaszcza jeśli wystąpiły po cichu, po których nastąpiła awaria systemu lub doprowadziły do BSODu, który wszyscy wiemy, jak tajemniczy może być. Jeśli jednak chcesz zawęzić listę wyników, która często może być ogromna, musisz być bardziej szczegółowy w przypadku polecenia cmdlet Get-EventLog.
Get-EventLog -LogName Security -EntryType Error
Wpisanie powyższego polecenia w interfejsie wiersza poleceń programu PowerShell powinno dostarczyć listę wszystkich błędów zarejestrowanych w dzienniku zdarzeń zabezpieczeń. Zauważ, że możesz użyć parametru -List, aby zobaczyć wszystkie typy dzienników w twoim systemie i zastąpić Security
w powyższym poleceniu dowolny inny typ dziennika, który znajdziesz na liście, o ile zawiera więcej niż zero wpisów.
Jeśli chcesz dowiedzieć się więcej o używaniu polecenia Get-EventLog w PowerShell, możesz użyć polecenia Get-Help , o którym mówiliśmy w pierwszej sekcji tego podrozdziału.
6. Konwertuj na HTML
Czasami podczas korzystania z programu PowerShell możesz natknąć się na pewne informacje, które chcesz wyodrębnić i zachować na przyszłość, tworzyć raporty lub po prostu importować je z innej aplikacji. Jednym z najczęściej używanych sposobów wyodrębniania tych danych z PowerShell i eksportowania ich do zewnętrznego pliku na komputerze jest polecenie ConvertTo-HTML .
Użycie tego polecenia pomoże w tworzeniu kompleksowych raportów, które mogą pomóc w bardziej efektywnym analizowaniu wyodrębnionych informacji i spostrzeżeń dzięki udostępnieniu tabel HTML, które można później dostosować, dodając niestandardowe style i dane oznaczone kolorami. Podobnie jak w przypadku wielu innych poleceń PowerShell, ConvertTo-HTML nie działa sam i będziesz musiał sparować go z dodatkowym poleceniem, którego użyje jako danych wejściowych (lub źródła danych).
Na przykład, jeśli próbujesz wydrukować raport zawierający wszystkie usługi, które zaczynają się na literę „W” i są aktualnie uruchomione na Twoim komputerze, możesz wpisać poniższe polecenie:
Get-Service "W*" | Where-Object {$_.Status -eq "Running"} | ConvertTo-HTML
Dzięki temu otrzymasz kod HTML danych wprowadzonych do funkcji ConvertTo-HTML, który możesz po prostu skopiować bezpośrednio z interfejsu wiersza poleceń PowerShell, wkleić go do swojego ulubionego edytora tekstu i zapisać jako plik HTML, który możesz użyć, aby wyświetlić wynik w dowolnej przeglądarce internetowej.
Możesz użyć ConvertTo-HTML z praktycznie każdym poleceniem programu PowerShell, o ile polecenie, którego używasz jako źródła danych, wygeneruje dane wyjściowe. Możesz wypróbować to z innymi poleceniami cmdlet, takimi jak Get-Process , Get-EventLog lub Get-Help . Należy zauważyć, że oprócz konwersji HTML, polecenie cmdlet ConvertTo może być również używane do generowania plików JSON, CSV i XML. Musisz tylko zastąpić kod HTML w składni poleceń formatem, który Cię interesuje.
7. Eksportuj-CSV
Jeśli pracujesz z różnymi obiektami, które Twoim zdaniem mogą lepiej pasować do tabeli, możesz użyć programu PowerShell, aby przekonwertować aktualnie obsługiwane elementy na serię ciągów CSV (wartości oddzielone przecinkami) i wyeksportować ciągi do jednym szybkim ruchem za pomocą polecenia cmdlet Export-CSV.
Podobnie jak w przypadku ConvertTo-HTML, Export-CSV potrzebuje danych wejściowych, które może przekonwertować na ciągi CSV, ponieważ nie może działać samodzielnie. Dlatego będziesz musiał sparować go z poleceniem, które może być użyte do generowania danych, takim jak Get-Service lub Get-Process, które wyjaśniliśmy wcześniej.
Zasadniczo Export-CSV robi prawie to samo, co cmdlet ConvertTo-HTML, który omówiliśmy powyżej, z wyjątkiem jednego ważnego aspektu, którego nie należy przeoczyć: to polecenie cmdlet faktycznie generuje plik i zapisuje go na komputerze, w przeciwieństwie do polecenie ConvertTo, które daje tylko dane wyjściowe i pozwala na samodzielne utworzenie pliku.
Załóżmy na przykład, że chcesz przekształcić listę usług uruchomionych na komputerze w plik CSV, aby móc dalej przetwarzać plik za pomocą oprogramowania innej firmy, lub umieścić go w arkuszu kalkulacyjnym w celu uzyskania dalszych informacji. Wszystko, co musisz zrobić, to wpisać polecenie Get-Service, a następnie Export-CSV i wskazać lokalizację, w której chcesz wygenerować plik CSV, jak w poniższym przykładzie:
Get-Service | Export-CSV c:\Tips.WebTech360.csv
Powyższe polecenie pobierze listę wszystkich usług dostępnych na twoim komputerze, uruchomionych lub nie, przekonwertuje je na serię ciągów CSV i zapisze wynik jako plik CSV o nazwie „Tips.WebTech360” w katalogu głównym dysku C . Następnie możesz otworzyć plik w oprogramowaniu innej firmy, przekonwertować go na pełnoprawną tabelę lub po prostu zapisać do wykorzystania w przyszłości.
Ściągawka PowerShell – WNIOSEK
Chociaż wciąż wiele osób opowiada się za CMD, prawdę mówiąc, PowerShell jest bardziej wszechstronny, znacznie potężniejszy, ale jednocześnie bardziej skomplikowany w obsłudze niż jego tradycyjny odpowiednik CMD. Sama ilość funkcji w połączeniu z faktem, że możesz tworzyć skrypty automatyzacji w PowerShell i wykonywać skomplikowane operacje zarządzania systemem, pozostawia CMD w stożku cienia.
Jeśli dopiero zaczynasz odkrywać PowerShell i masz trudności z ustaleniem, co robi każde polecenie, jak potokować kilka poleceń lub jak samodzielnie tworzyć i uruchamiać proste skrypty PowerShell, nasz przewodnik jest świetnym punktem wyjścia. Poświęciliśmy trochę czasu, aby wyjaśnić niektóre z najważniejszych poleceń, o których powinieneś wiedzieć w PowerShell, stworzyliśmy kilka krótkich samouczków, a także zawarliśmy listę podstawowych poleceń PowerShell, ich aliasów i krótkich opisów dla każdego elementu, aby uprościć Twoja podróż odkrywcza PowerShell.