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

Kto by nie chciał być czarodziejem i wypowiedzieć kilka słów, aby wydarzyły się magiczne rzeczy? Cóż(Well) , nie jesteśmy w stanie pokazać Ci, jak być czarodziejem, ale możemy pokazać Ci, jak wykonać odrobinę magii komputerowej.

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

Ale ten artykuł nie jest przeznaczony tylko dla osób korzystających z systemu Windows(Windows) . Najnowsza wersja programu PowerShell jest bezpłatna i można ją zainstalować i używać na komputerach Mac i Linux .

To ważne, ponieważ to, czego dowiesz 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(Information Technology) .

Co to jest PowerShell?

Zaawansowana technologicznie odpowiedź Microsoftu(Microsoft) brzmi, że jest to „powłoka wiersza poleceń” zaprojektowana specjalnie dla administratorów systemu. „Brzmi(” Sounds) onieśmielająco. Ale tak nie jest. Dbasz o swój komputer? Tak, w takim razie jesteś administratorem systemu w swoim domu.

Czy mówisz komputerowi, co ma robić 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, aby poinformować komputer, co ma robić. Możesz to zrobić.

PowerShell jest jak język programowania, ale nie tak tajemniczy jak większość. Czyta się go naprawdę bardzo podobnie do zwykłego angielskiego(English) , co było czymś, do czego dążył Microsoft , aby mógł być podjęty przez nie-programistów.

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

Co możesz zrobić z PowerShellem?

Najważniejszym celem PowerShell jest możliwość automatyzacji zadań, dzięki czemu nie musisz tracić czasu na wielokrotne wykonywanie przyziemnych rzeczy. Dla profesjonalnego administratora systemów(Systems Administrator) może to być coś w rodzaju tworzenia nowych użytkowników, generowania dla nich haseł i wysyłania e-maila ze szczegółami do nowego przełożonego.

Ten proces wykonywany ręcznie, za pomocą kliknięć i wpisywania, może zająć od 5 minut do nawet godziny lub więcej. Przy odpowiednich skryptach administrator systemów(Systems Administrator) może nawet nie musieć wykonywać żadnej części tego.

Ale chcesz wiedzieć, co możesz zrobić z PowerShell w domu. Prawie wszystko, czego nie lubisz robić w kółko. Użyj go, aby zwolnić miejsce na dysku twardym, usuwając pliki tymczasowe i pliki dziennika, których nie potrzebujesz.

Ustaw godzinę policyjną na komputerze dziecka. Zmień nazwę(Rename) lub uporządkuj kilka plików. Na tym polega piękno PowerShell . Prawie(Almost) wszystko, co możesz zrobić na swoim 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 środowisko PowerShell Integrated Scripting Environment (ISE) . Możesz go znaleźć, klikając Start i wpisując powershell ise w pasku wyszukiwania w systemie Windows 10(Windows 10) . Powinieneś to zobaczyć, jak pokazano poniżej.

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

Możesz otrzymać wyskakujące okienko z ostrzeżeniem Kontrola dostępu użytkownika(User Access Control) ( UAC ) z pytaniem, czy na pewno chcesz to zrobić. Kliknij Tak(Yes) .

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

Jest to również miejsce, w którym zobaczysz komunikaty o błędach i takie, które pomogą Ci naprawić i ulepszyć skrypty. Panel po prawej stronie okna (3) to dodatek do poleceń. Pomyśl o tym jako o słowniku wszystkich dostępnych poleceń PowerShell .

PowerShell jest ustawiony tak, aby nie uruchamiał żadnych skryptów innych niż te, które są już częścią systemu Windows . Będziesz musiał to zmienić, aby móc uruchamiać własne skrypty.

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

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Jego część Set-ExecutionPolicy nazywa się cmdletem (wymawiane polecenielet). Polecenia cmdlet to potężne rzeczy. Pomyśl(Think) o nich jako o krótkich poleceniach, które możesz wydać systemowi Windows , a system Windows(Windows) wykona kilka bardziej skomplikowanych rzeczy, aby spełnić twoje polecenie.

Analogią byłoby powiedzenie dziecku, aby posprzątało swój pokój. Krótko(Short) i na temat. Jeśli Twoje dziecko jest dobrze zorientowane w sprzątaniu pokoju, pójdzie i pościeli łóżko, włoży pranie do kosza, odłoży zabawki i książki na półkę, a może nawet odkurzy podłogę. Rozumieją, że polecenie cmdlet Clean-YourRoom oznaczało to wszystko.

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

Część -ExecutionPolicy informuje Set-ExecutionPolicy , jaką politykę należy ustawić. To jest parametr. Mówi: „Chcę, żebyś pracował zgodnie z tymi wytycznymi i robił dokładnie to. Nakazuje mu użyć określonej polityki RemoteSigned .

Zasady RemoteSigned stanowią, że program PowerShell nie może wykonywać ani uruchamiać żadnego skryptu pobranego z Internetu(Internet) , chyba że został podpisany przez zaufanego wydawcę.

W okrężny sposób informuje PowerShell , że można uruchomić dowolny skrypt utworzony lokalnie, ponieważ nie muszą one być podpisane przez zdalnego zaufanego wydawcę. Teraz twój skrypt PowerShell będzie mógł uruchomić dowolny skrypt, który piszesz 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 PowerShell(Use PowerShell) , aby stworzyć(Create Space) miejsce na dysku twardym(Your Hard Drive)

Podzielimy ten skrypt wiersz po wierszu, abyś mógł zobaczyć, jak to działa. Na końcu 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, do którego wkładasz wartościowe rzeczy. Portfel(Wallet) przypomina nam znak dolara, kosztowności brzmi jak zmienna, więc o tym też będziemy pamiętać. Tworzymy portfel lub zmienną o nazwie $TempFileLocation . Znak równości mówi PowerShellowi(PowerShell) , co umieścić w tej zmiennej.

W tym przypadku wstawiamy lokalizację tymczasowych plików systemu Windows – C:\Users\username\AppData\Local\Temp\* . Robimy to z dwóch powodów; jest to lokalizacja, z której zawsze można bezpiecznie usuwać pliki, i użyjemy jej, aby poinformować PowerShell , gdzie musi się udać, aby usunąć pliki.

Tam, gdzie jest napisane nazwa użytkownika w tej lokalizacji, zamień ją na swoją nazwę użytkownika. To jest nazwa użytkownika, której używasz do logowania się na swoim komputerze. Gwiazdka (*) na końcu to dzika karta. To, co reprezentuje, to wszystko w folderze Temp , ponieważ wszystko w folderze Temp jest tymczasowe i chcemy je usunąć.

Ważne są również cudzysłowy wokół lokalizacji. To mówi PowerShellowi(PowerShell) , że to, co tam jest, jest ciągiem. Pomyśl(Think) o ciągu jako ciągu liter i znaków. Gdyby to były zwykłe liczby, nie używalibyśmy cudzysłowów.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

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

Get-ChildItem 

Inną rzeczą, którą zauważysz w poleceniach cmdlet, takich jak Get-ChildItem , jest to, że są one całkowicie czytelne. Widzisz, jak pierwsze słowo jest czasownikiem? Wszystkie polecenia cmdlet(Cmdlets) zaczynają się od słów działania, więc od razu wiesz, co robią. ChildItem to dwa rzeczowniki.

Druga część polecenia cmdlet zawsze powie nam, do czego PowerShell zastosuje akcję. ChildItem oznacza wszystkie dzieci lokalizacji nadrzędnej. To tak, jakby powiedzieć, że pobierz wszystkie pliki znajdujące się w folderze, z plikami będącymi dziećmi, a folderem nadrzędnym.

Z czego cmdlet pobiera elementy podrzędne? Wszystko w zmiennej $TempFileLocation . PowerShell przejdzie do lokalizacji, którą wcześniej umieściliśmy w $ TempFileLocation i pobierze wszystkie elementy podrzędne, które się tam znajdują. Następnie umieści je w zmiennej $TempFile .

Więc co jest z częścią -Recurse ? To mówi Get-ChildItem , aby przejrzał wszystko w tej lokalizacji. Nie po prostu idź natychmiast pobrać pliki do folderu nadrzędnego. Jeśli w tym folderze znajdują się foldery, pobierz wszystkie ich dzieci, a także ich dzieci i tak dalej. Zdobędziemy je wszystkie.

$TempFileCount = ($TempFile).count

Tak, tworzymy trzecią zmienną o nazwie $TempFileCount i umieścimy liczbę w tej zmiennej. Gdzie jest numer? Cóż, ( $TempFile).count otrzyma ten numer. Prawdopodobnie zorientowałeś się, że część .count zliczy(.count) wszystkie pliki, które właśnie zapisaliśmy w $ TempFile .

Dlaczego to zrobiliśmy? Przede wszystkim dlatego, że fajnie jest wiedzieć, ile bezużytecznych plików usuwamy z resztą skryptu, abyśmy mogli powiedzieć, jak był skuteczny.

if($TempFileCount -eq 0)

Teraz konfigurujemy instrukcję warunkową. Widać, że pyta „jeśli”. Jeśli co? Czy rzecz w nawiasach jest prawdziwa czy fałszywa. Nawiasy są ważne, w przeciwnym razie If nie wie, co porównać. Tutaj pyta, czy liczba przechowywana w $TempFileCount jest równa zero.

-eq jest skrótem oznaczającym równe. Jest to rodzaj operatora porównania. To jak powiedzenie dzieciom: „Jeśli twój pokój jest czysty, świetnie, coś zrobimy” To stwierdzenie mówi, czy liczba przechowywana w $ TempFileCount jest równa zero Następna rzecz.

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

To jest rzecz, która się stanie, jeśli $TempFileCount ma wartość zero. Nawiasy klamrowe są ważne. Mówią PowerShellowi(PowerShell) , aby robił tylko to, co jest w ich wnętrzu, jeśli $ TempFileCount jest równe zero.

Zapisuje do hosta lub ekranu „W folderze C:\Users\username\Appdata\Local\Temp\*” nie ma żadnych plików. Parametr na końcu — ForegroundColor mówi PowerShellowi(PowerShell) , 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 znaczy. To jest część „lepiej twój pokój bądź czysty, bo inaczej” jest częścią sprawdzania, czy twoje dziecko posprzątało swój pokój. Tak się stanie, jeśli $TempFileCount nie będzie wynosić zero.

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

To mówi przejdź do bieżącej lokalizacji przechowywanej w $TempFile . Pionowa linia za nią nazywana jest rurą. Działa trochę jak prawdziwy potok, ponieważ mówi PowerShellowi(PowerShell) , aby przelał zawartość $ TempFile do cmdletu, tak jakby była to woda doprowadzona do pralki. Następnie polecenie cmdlet Remove-Item robi to, co mówi; usuwa wszystko, co znajduje się w tym miejscu.

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

Pozwala to testować polecenia bez zmiany czegokolwiek na komputerze. Zostaw -WhatIf tam, dopóki nie poczujesz, że skrypt zrobi to, co chcesz i nic więcej. Następnie po prostu usuń to, a skrypt wykona swoje zadanie.

Parametr -Confirm:$false powoduje, że skrypt nie pyta, czy naprawdę chcesz usunąć plik. Wiesz, co robi -Recurse . - Siła( -Force) oznacza usunięcie tej rzeczy bez względu na wszystko. -WarningAction jest ustawiony na SilentlyContinue .

Zapobiega to wyświetlaniu przez skrypt ostrzeżeń o tym, co usuwasz. -ErrorAction jest ustawione na SilentlyContinue , więc jeśli wystąpi jakikolwiek błąd w procesie, po prostu będzie się ciągnął.

Teraz jesteśmy na ostatniej linii.

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

Podobnie jak Write-Host zrobił 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 było to łatwe do wykrycia.

Przyjrzyjmy się całemu scenariuszowi:

$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 teraz, gdy je rozumiesz.

Jeśli kod z jakiegoś powodu nie działa, możesz również pobrać stworzony przez nas skrypt PowerShell i po prostu go uruchomić. Po prostu(Just) rozpakuj go najpierw, aby wyświetlić plik skryptu.

Za każdym razem, gdy chcesz uruchomić ten skrypt, kliknij go prawym przyciskiem myszy i wybierz Uruchom z PowerShell(Run with PowerShell) . Konsola PowerShell wyskoczy na sekundę lub dwie, podczas gdy twój skrypt wykona swoje zadanie, a następnie zniknie, jeśli nie ma błędów.

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

Wydaje się, że to dużo! Jak na twój pierwszy skrypt PowerShell to całkiem sporo. Jeśli dotarłeś tak daleko, oklaskiwać siebie. Wiele się dzisiaj nauczyłeś, ale teraz chcesz dowiedzieć się więcej. To świetnie!

Istnieje wiele zasobów w Internecie(Internet) , w których można dowiedzieć się więcej o programie PowerShell . Dobrym miejscem na rozpoczęcie jest nasz artykuł „ Wygeneruj listę programów startowych za pomocą wiersza poleceń lub PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) ”. Następnie sprawdź te inne zasoby:



About the author

Telefon jest jednym z najbardziej wszechstronnych narzędzi, jakie człowiek może posiadać i używać. Ludzie mogą komunikować się z innymi, uzyskiwać dostęp do Internetu i robić wiele innych rzeczy. Za pomocą iPhone'a lub urządzenia z systemem Android możesz nawet oglądać filmy i pobierać muzykę. Telefon świetnie nadaje się również do robienia zdjęć, surfowania po Internecie, słuchania muzyki i nie tylko.



Related posts