Korzystanie z PowerShell dla użytkowników domowych - przewodnik dla początkujących


Kto nie chciałby, aby mógł być czarodziejem i wypowiedzieć kilka słów, aby wydarzyły się magiczne rzeczy? Cóż, nie jesteśmy w stanie pokazać, jak być czarodziejem, ale możemy pokazać, jak wykonać małą magię komputerową.

Jeśli masz komputer z systemem Windows 7 i Windows 7, masz PowerShell. Ponadto, jeśli masz komputer z systemem Windows 7, zaktualizuj go ze względów bezpieczeństwa.

Ale ten artykuł nie jest przeznaczony tylko dla użytkowników systemu Windows. Najnowsza wersja PowerShell jest bezpłatna i może być instalowana i używana na komputerach Mac i Linux.

To ważne, ponieważ to, czego dowiadujesz się o PowerShell, może być teraz używane na prawie każdym komputerze. Kto wie? Możesz przenieść tę umiejętność na wyższy poziom i rozpocząć karierę w informatyce.

Co to jest PowerShell?

Zaawansowana technologicznie odpowiedź firmy Microsoft brzmi: „ … Powłoka wiersza poleceń zaprojektowana specjalnie dla administratorów systemu. ”Brzmi zastraszająco. Ale nie jest. Czy dbasz o swój komputer? Tak, jesteś administratorem systemu w swoim domu.

Czy mówisz komputerowi, co zrobić z kliknięciami i naciśnięciami klawiszy? Tak, więc pomyśl o powłoce wiersza poleceń jako o kolejnym oknie, w którym wpisujesz różne rzeczy, aby powiedzieć komputerowi, co ma robić. Możesz to zrobić.

In_content_1 all: [300x250] / dfp: [640x360]->

PowerShell jest jak język programowania, ale nie tak tajemniczy jak większość. Naprawdę brzmi jak zwykły angielski, o co Microsoft starał się, aby mógł go odebrać nie-programista.

Jest to sposób na napisanie kilku wierszy poleceń, zwanych skryptem, aby system operacyjny Windows zrobił coś, co chcesz. Następnie możesz zapisać te wiersze w pliku i uruchomić go za pomocą kliknięcia lub zaplanować okresowe uruchamianie.

Co możesz zrobić z PowerShell?

Punkt wysokiego poziomu PowerShell ma zautomatyzować zadania, dzięki czemu nie musisz tracić czasu na powtarzanie codziennych czynności. Dla profesjonalnego administratora systemów może to być coś w rodzaju tworzenia nowych użytkowników, generowania dla nich haseł i wysyłania wiadomości e-mail ze szczegółami do nowego przełożonego.

Wykonane ręcznie, za pomocą kliknięć i pisania, proces ten może potrwać od 5 minut do nawet godziny. Przy odpowiednich skryptach administrator systemów może nawet nie być w stanie tego zrobić.

Ale chcesz wiedzieć, co możesz zrobić z PowerShell w domu. Prawie wszystko, czego nie lubisz robić od nowa. Użyj go, aby zwolnić miejsce na dysku twardym, usuwając niepotrzebne pliki tymczasowe i pliki dziennika.

Ustaw godzinę policyjną na komputerze swojego dziecka. Zmień nazwę lub uporządkuj kilka plików. To jest piękno PowerShell. Prawie wszystko, co możesz zrobić na komputerze, możesz utworzyć skrypt PowerShell, aby zautomatyzować i uruchomić za pomocą kliknięcia lub zgodnie z harmonogramem.

Jak korzystać z PowerShell?

Najłatwiejszym sposobem pracy z PowerShell jest Zintegrowane środowisko skryptowe PowerShell (ISE). Możesz go znaleźć, klikając Start i wpisując PowerShell isew pasku wyszukiwania w Windows 10. Powinieneś zobaczyć go jak pokazano poniżej.

Po raz pierwszy go użyjemy, uruchomimy go jako administrator. Aby to zrobić, musisz najpierw mieć uprawnienia administratora na swoim komputerze. W Menu Startkliknij prawym przyciskiem myszy PowerShell ISE, a następnie kliknij Uruchom jako administrator.

Możesz otrzymać wyskakujące okienko ostrzegawcze UserAccess Control(UAC) z pytaniem, czy na pewno chcesz to zrobić. Kliknij Tak.

Teraz patrzysz na IDE PowerShell. Górny panel okna (1)to panel skryptów. Tutaj napiszesz swój skrypt. Dolny panel okna (2)to obszar konsoli. Podczas testowania skryptu zobaczysz dane wyjściowe w tym okienku.

W tym miejscu będą również wyświetlane komunikaty o błędach, które pomogą Ci naprawić i ulepszyć skrypty. Panel po prawej stronie okna (3)to dodatek do polecenia. Potraktuj to jako słownik wszystkich dostępnych poleceń programu PowerShell.

Program PowerShell jest ustawiony tak, aby nie uruchamiał żadnego skryptu innego niż ten, który jest już częścią systemu Windows. Musisz go zmienić, aby móc uruchamiać własne skrypty.

W oknie skryptów skopiuj i wklej następujące elementy:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Set-ExecutionPolicyczęść tego programu nazywa się cmdlet (wymawiane polecenie). Polecenia cmdlet to potężne rzeczy. Pomyśl o nich jak o krótkich poleceniach, które możesz wydać Windowsowi, a Windows wykona kilka bardziej skomplikowanych czynności, aby spełnić twoje polecenie.

Analogią byłoby nakazanie dziecku posprzątania pokoju. Krótko i na temat. Jeśli twoje dziecko dobrze zna się na sprzątaniu pokoju, pójdzie położyć łóżko, włoży pranie do kosza, odłoży zabawki i książki, a może nawet odkurzy podłogę. Rozumieją, że polecenie cmdlet Clean-YourRoom to wszystko znaczyło.

W górnej części okna zobaczysz zielony grot strzałki. Kliknij to, aby uruchomić polecenie.

- ExecutionPolicyczęść mówi Set-ExecutionPolicy, jakie zasady ustawić. To jest parametr. Mówi: „Chcę, abyś działał zgodnie z tymi wytycznymi i robił to konkretnie. Mówi, aby używał określonych zasad RemoteSigned.

Polityka RemoteSignedstwierdza, że ​​PowerShell nie może wykonywać ani uruchamiać żadnego skryptu pobranego z Internetu, chyba że zostanie podpisany przez zaufanego wydawcę.

Mówiąc w skrócie, mówi PowerShellowi, że uruchomienie dowolnego skryptu utworzonego lokalnie jest w porządku, ponieważ nie muszą być podpisane przez zdalnego zaufanego wydawcę. Teraz twój skrypt PowerShell będzie mógł uruchomić dowolny skrypt napisany na twoim komputerze.

Spójrzmy na skrypt do usuwania plików tymczasowych. Nie jest tak potężny ani dokładny jak CCleaner, ale CCleaner ma własny zestaw problemów.

Użyj programu PowerShell, aby utworzyć miejsce na dysku twardym

Zrobimy ten skrypt, linia po linii, abyś mógł zobaczyć, jak to działa. Na koniec skrypt zostanie wyświetlony w całości, więc możesz go skopiować i wkleić, jeśli chcesz.

$TempFileLocation = "C:\Users\username\Appdata\Local\Temp\*"

Wszystko, co ma przed sobą znak dolara, jest nazwą zmiennej . Pomyśl o tym jak o portfelu, w który można włożyć cenne rzeczy. Portfel przypomina nam znak dolara, kosztowności brzmią jak zmienne, więc też o tym pamiętamy. Tworzymy portfel lub zmienną o nazwie $ TempFileLocation. Znak równości mówi PowerShellowi, co należy umieścić w tej zmiennej.

W tym przypadku umieszczamy lokalizację pliku tymczasowego systemu Windows - C: \ Users \ nazwa użytkownika \ AppData \ Lokalny \ Temp \ *. Robimy to z dwóch powodów; jest to lokalizacja, z której zawsze można bezpiecznie usuwać pliki, a my użyjemy jej, aby powiedzieć PowerShellowi, gdzie musi iść, aby usunąć pliki.

Tam, gdzie jest napisane nazwa użytkownika w tej lokalizacji, zamień ją na użytkownika imię. To jest nazwa użytkownika, której używasz do logowania się na komputerze. Gwiazdka (*) na końcu to symbol wieloznaczny. Reprezentuje wszystko w folderze Temp, ponieważ wszystko w folderze Temp jest tymczasowe i chcemy go usunąć.

Podwójne cudzysłowy wokół lokalizacji są również ważne. Thattell PowerShell mówi, że to, co tam jest, to ciąg znaków. Pomyśl o łańcuchu jako o łańcuchu liter i znaków. Gdyby to były zwykłe liczby, nie używalibyśmy cytatów.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Tworzymy inną zmienną. Tym razem użyjemy polecenia, aby wymyślić coś do umieszczenia w zmiennej $ TempFile.

Get-ChildItem 

Kolejna rzecz, którą będziesz Uwaga na temat poleceń cmdlet, takich jak Get-ChildItem, jest taka, że ​​jest ona całkowicie czytelna. Zobacz, jak pierwsze słowo jest czasownikiem? Polecenia cmdlet zaczynają się od słów akcji, więc od razu wiesz, co robi. ChildItem to dwa rzeczowniki.

Druga część polecenia cmdlet zawsze informuje nas o tym, co program PowerShell zastosuje w akcji. ChildItem oznacza wszystkie dzieci w lokalizacji nadrzędnej. To tak, jakby powiedzieć, że weź wszystkie pliki, które znajdują się w folderze, z plikami będącymi dziećmi, a folderem nadrzędnym.

Jakie polecenie cmdlet pobiera elementy potomne? Wszystko w zmiennej $ TempFileLocation. PowerShell przejdzie do miejsca, które wcześniej umieściliśmy w $ TempFileLocation i zdobędzie wszystkie znajdujące się tam elementy potomne. Następnie umieści je w zmiennej $ TempFile.

A co z częścią -Recurse? To mówi Get-ChildItem, aby przejrzał wszystko w tej lokalizacji. Nie pobieraj plików bezpośrednio do folderu nadrzędnego. Jeśli w tym folderze znajdują się foldery, pobierz wszystkie ich dzieci, ich dzieci i tak dalej. Zdobędziemy je wszystkie.

$TempFileCount = ($TempFile).count

Tak, tworzymy trzecią zmienną o nazwie $ TempFileCounti wstawimy liczbę do tej zmiennej. Gdzie jest numer Cóż, ($ TempFile) .countdostanie nam ten numer. Prawdopodobnie zorientowałeś się, że część .count zlicza wszystkie pliki, które właśnie zapisaliśmy w $ TempFile.

Dlaczego to zrobiliśmy? Głównie dlatego, że miło jest wiedzieć, ile niepotrzebnych plików usuwamy za pomocą reszty skryptu, abyśmy mogli powiedzieć, jak skuteczny był.

if($TempFileCount -eq 0)

Teraz ustawiamy w górę instrukcji warunkowej. Widać, że pyta „czy”. Jeśli co? Jeśli rzecz w nawiasach jest prawdziwa lub fałszywa. Nawiasy klamrowe są ważne, w przeciwnym razie jeśli nie wie, co porównać. Tutaj pyta, czy liczba zapisana w $ TempFileCountjest równa zero.

-eqto skrót dla równych. Jest to rodzaj operatora porównania. To tak, jakby powiedzieć dzieciom: „Jeśli twój pokój jest czysty, świetnie, zrobimy coś…” To stwierdzenie mówi, czy liczba przechowywana w $ TempFileCount jest równa zeru, aby zrobić następną rzecz.

{Write-Host "There are no files in the folder $TempFileLocation" -ForegroundColor Green}

Tak się stanie, jeśli $ TempFileCountbędzie wynosić zero. Nawiasy klamrowe są ważne. Mówią PowerShellowi, aby robił tylko to, co jest w nich, jeśli $ TempFileCount jest równy zero.

Napisze na hoście lub ekranie: „W folderze C: \ Users \ nazwa użytkownika \ Appdata \ Local \ Temp \ *” nie ma żadnych plików. Parametr na końcu - ForegroundColormówi PowerShellowi, aby tekst był zielony. To po prostu ułatwia odróżnienie od komunikatu o błędzie, który zwykle jest czerwony.

Else

Wiesz, co jeszcze oznacza. Jest to część „Twój pokój lepiej bądź czysty, bo…” sprawdzanie, czy Twoje dziecko posprzątało swój pokój. Stanie się tak, jeśli $ TempFileCountnie będzie wynosić zero.

{$TempFile | Remove-Item -WhatIf -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue}

Oznacza to, że przejdź do bieżącej lokalizacji zapisanej w $ TempFile. Pionowa linia po nazwie nazywa się rurą. Działa tak, jak prawdziwa rura, ponieważ mówi PowerShellowi, aby wprowadził zawartość $ TempFile do cmdletu, tak jakby woda była wpompowywana do pralki. Następnie polecenie cmdlet Usuń elementrobi to, co mówi; usuwa wszystko, co jest w tej lokalizacji.

Na tym etapie bardzo ważny jest parametr -WhatIf. Mówi PowerShellowi, aby uruchomił polecenie, ale wypróbuj je tylko, nie usuwaj niczego. Po prostu pokaż nam, co by się stało, gdybyśmy to naprawdę zrobili.

Umożliwia to testowanie poleceń bez zmiany czegokolwiek na komputerze. Pozostaw -Co tam, dopóki nie poczujesz się komfortowo, że skrypt zrobi to, co chcesz, i nic więcej. Następnie po prostu usuń to, a skrypt wykona swoje zadanie.

Parametr -Confirm: $ falsepowstrzymuje skrypt przed pytaniem, czy naprawdę chcesz usunąć plik. Wiesz, co robi -Recurse. -Forceoznacza usunięcie tego bez względu na wszystko. -WarningActionjest ustawione na SilentlyContinue.

Zapobiega to ostrzeżeniom skryptu o tym, co usuwasz. -ErrorActionjest ustawiony na Cicho kontynuuj, więc jeśli wystąpi jakikolwiek błąd w procesie, po prostu ciągle się z tobą śmiga.

Teraz jesteśmy ostatni wiersz.

Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green}

Podobnie jak Host-gospodarzzrobił to za pierwszym razem, wyświetli następujące zdanie, więc wiemy, co się stało . Powie nam, ile plików zostało usuniętych z folderu, który właśnie przetworzył, i zrobi to na zielono, aby ułatwić wykrycie.

Spójrzmy na skrypt całkowicie:

$TempFileLocation = "C:\Users\guymcd\Appdata\Local\Temp\*"
$TempFile = Get-ChildItem $TempFileLocation -Recurse
$TempFileCount = ($TempFile).count

if($TempFileCount -eq "0") {
Write-Host "There are no files in the folder $TempFileLocation" - ForegroundColor Green
}
Else {
$TempFile | Remove-Item -Confirm:$false -Recurse -Force -WarningAction SilentlyContinue -ErrorAction SilentlyContinue
Write-Host "Cleared $TempFileCount files in the folder $TempFileLocation" -ForegroundColor Green
}

Możesz skopiować i wkleić to do swojego PowerShell ISE i zapisać jako coś takiego jak delete-TemporaryFiles.ps1. Równie dobrze możesz trzymać się konwencji nazewnictwa poleceń cmdlet, gdy je rozumiesz.

Jeśli kod z jakiegoś powodu nie działa, możesz także pobierz skrypt PowerShell, które utworzyliśmy i po prostu uruchom. Po prostu rozpakuj go najpierw, aby wyświetlić plik skryptu.

Ilekroć chcesz uruchomić ten skrypt, kliknij go prawym przyciskiem myszy i wybierz Uruchom z PowerShell. Konsola PowerShell wyskakuje na sekundę lub dwie, podczas gdy twój skrypt robi swoje, a następnie zniknie, jeśli nie będzie żadnych błędów.

Gdzie mogę dowiedzieć się więcej o PowerShell?

To wydaje się dużo! W przypadku pierwszego skryptu programu PowerShell jest to całkiem sporo. Jeśli dotarłeś tak daleko, oklaskiwać się. Wiele się dziś nauczyłeś, ale teraz chcesz dowiedzieć się więcej. To wspaniale!

W Internecie znajduje się wiele zasobów umożliwiających uzyskanie dodatkowych informacji na temat programu PowerShell. Dobrym miejscem na początek jest nasz artykuł „Wygeneruj listę programów startowych za pomocą wiersza polecenia lub programu PowerShell ”. Następnie sprawdź te inne zasoby:

  • Rozpoczęcie pracy z Microsoft PowerShell - Microsoft Virtual Academy
  • Samouczek programu PowerShell - TutorialsPoint.com
  • Related posts:


    14.03.2019