Verwenden von PowerShell für Privatanwender – Ein Leitfaden für Anfänger

Wer wünscht sich nicht, er könnte ein Zauberer sein und ein paar Worte sagen, damit magische Dinge geschehen? Nun(Well) , wir können Ihnen nicht zeigen, wie man ein Zauberer wird, aber wir können Ihnen zeigen, wie man ein wenig Computermagie macht.

Wenn Sie einen Windows -Computer mit Windows 7 darauf haben, haben Sie PowerShell . Wenn Sie einen Computer mit Windows 7 darauf haben, aktualisieren Sie ihn bitte aus Sicherheitsgründen.

Aber dieser Artikel ist nicht nur für Windows - Leute. Die neueste Version von PowerShell ist kostenlos und kann auf Mac- und Linux -Computern installiert und verwendet werden.

Das ist wichtig, weil das, was Sie über PowerShell(PowerShell) lernen, jetzt auf fast jedem Computer verwendet werden kann. Wer weiß? Sie könnten diese Fähigkeit auf die nächste Stufe bringen und eine Karriere in der Informationstechnologie(Information Technology) einschlagen .

Was ist PowerShell?

Die High-Tech-Antwort von Microsoft lautet, dass es sich um eine „… Befehlszeilen-Shell handelt, die speziell für Systemadministratoren entwickelt wurde. “ Klingt(” Sounds) einschüchternd. Aber das ist es nicht. Kümmern Sie sich um Ihren Computer? Ja, dann sind Sie der Systemadministrator in Ihrem Haus.

Sagen Sie Ihrem Computer, was er mit Klicks und Tastenanschlägen tun soll? Ja, also stellen Sie sich die Befehlszeilen-Shell nur als ein weiteres Fenster vor, in das Sie Dinge eingeben, um Ihrem Computer mitzuteilen, was er tun soll. Du kannst das.

PowerShell ist wie eine Programmiersprache, aber nicht so kryptisch wie die meisten. Es liest sich wirklich sehr wie normales Englisch(English) , was Microsoft anstrebte, damit es auch von Nicht-Programmierern verstanden werden kann.

Es ist eine Möglichkeit, ein paar Befehlszeilen zu schreiben, die als Skript bezeichnet werden, um das Windows -Betriebssystem dazu zu bringen, etwas zu tun, was Sie wollen. Anschließend können Sie diese Zeilen in einer Datei speichern und mit einem Klick ausführen oder eine regelmäßige Ausführung planen.

Was können Sie mit PowerShell tun?

Der wichtigste Punkt von PowerShell ist die Möglichkeit, Aufgaben zu automatisieren, sodass Sie Ihre Zeit nicht mit alltäglichen Dingen verschwenden müssen. Für einen professionellen Systemadministrator(Systems Administrator) könnte das so etwas wie das Erstellen neuer Benutzer, das Generieren von Passwörtern für sie und das Senden einer E-Mail mit den Details an ihren neuen Vorgesetzten sein.

Manuell, mit Klicks und Tippen, kann dieser Vorgang 5 Minuten bis zu einer Stunde oder länger dauern. Mit den richtigen Skripten muss der Systemadministrator(Systems Administrator) möglicherweise nicht einmal einen Teil davon ausführen.

Aber Sie möchten wissen, was Sie mit PowerShell zu Hause machen können. So ziemlich alles, was Sie nicht immer wieder tun möchten. Verwenden Sie es, um Speicherplatz auf Ihrer Festplatte freizugeben, indem Sie temporäre Dateien und Protokolldateien löschen, die Sie nicht benötigen.

Legen Sie eine Ausgangssperre für den Computer Ihres Kindes fest. Benennen Sie(Rename) eine Reihe von Dateien um oder organisieren Sie sie. Das ist das Schöne an PowerShell . Fast(Almost) alles, was Sie auf Ihrem Computer tun können, können Sie ein PowerShell - Skript erstellen, um es zu automatisieren und mit einem Klick oder nach einem Zeitplan auszuführen.

Wie verwende ich PowerShell?

Die einfachste Möglichkeit, mit PowerShell zu arbeiten, bietet die PowerShell Integrated Scripting Environment (ISE) . Sie finden es, indem Sie auf Start klicken und powershell ise in die Suchleiste in Windows 10 eingeben . Sie sollten es wie unten gezeigt sehen.

Zum ersten Mal, wenn wir es verwenden, werden wir es als Administrator ausführen . Dazu müssen Sie zunächst Administratorrechte auf Ihrem Computer haben. Klicken Sie in Ihrem Startmenü(Start Menu) mit der rechten Maustaste auf PowerShell ISE und dann auf Als Administrator ausführen(Run as Administrator) .

Möglicherweise erhalten Sie eine Popup-Warnung für die Benutzerzugriffssteuerung(User Access Control) ( UAC ), in der Sie gefragt werden, ob Sie dies wirklich möchten. (UAC)Klicken Sie auf Ja(Yes) .

Jetzt sehen Sie sich die PowerShell IDE an . Der obere Bereich des Fensters (1) ist der Skriptbereich. Hier schreiben Sie Ihr Skript. Der untere Bereich des Fensters (2) ist der Konsolenbereich. Wenn Sie Ihr Skript testen, sehen Sie die Ausgabe in diesem Bereich.

Hier sehen Sie auch Fehlermeldungen und dergleichen, die Ihnen helfen, Ihre Skripte zu beheben und zu verbessern. Der Bereich auf der rechten Seite des Fensters (3) ist das Befehls-Add-On. Betrachten Sie es als ein Wörterbuch aller Ihnen zur Verfügung stehenden PowerShell- Befehle.

PowerShell ist so eingestellt, dass es keine anderen Skripts ausführt als die, die bereits Teil von Windows sind . Sie müssen es ändern, damit Sie Ihre eigenen Skripts ausführen können.

Kopieren Sie im Skriptfenster Folgendes und fügen Sie es ein:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

Der Set-ExecutionPolicy- Teil davon wird als Cmdlet (ausgesprochen Commandlet) bezeichnet. Cmdlets sind mächtige Dinge. Betrachten Sie(Think) sie als kurze Befehle, die Sie Windows geben können , und Windows wird eine Reihe komplizierterer Dinge tun, um Ihren Befehl zu erfüllen.

Eine Analogie wäre, Ihrem Kind zu sagen, dass es sein Zimmer aufräumen soll. Kurz(Short) und bündig. Wenn Ihr Kind sich mit der Zimmerreinigung auskennt, wird es sein Bett machen, seine Wäsche in den Korb legen, sein Spielzeug und seine Bücher in die Regale stellen und vielleicht sogar den Boden saugen. Sie verstehen, dass das Cmdlet Clean-YourRoom all das bedeutete.

Oben im Fenster sehen Sie eine grüne Pfeilspitze. Klicken Sie(Click) darauf, um den Befehl auszuführen.

Der Teil -ExecutionPolicy teilt (-ExecutionPolicy)Set-ExecutionPolicy mit, welche Richtlinie festgelegt werden soll. Es ist ein Parameter. Es sagt: „Ich möchte, dass Sie innerhalb dieser Richtlinien arbeiten und genau dies tun. Es weist es an, die spezifische Richtlinie von RemoteSigned zu verwenden .

Die RemoteSigned- Richtlinie besagt, dass PowerShell keine aus dem Internet heruntergeladenen Skripts ausführen oder ausführen darf, es sei denn, sie wurden von einem vertrauenswürdigen Herausgeber signiert.

Auf Umwegen teilt es PowerShell mit, dass es in Ordnung ist, jedes lokal erstellte Skript auszuführen, da diese nicht von einem entfernten vertrauenswürdigen Herausgeber signiert werden müssen. Jetzt kann Ihr PowerShell -Skript jedes Skript ausführen, das Sie auf Ihrem Computer schreiben.

Sehen wir uns ein Skript zum Löschen temporärer Dateien an. Es ist nicht so leistungsfähig oder gründlich wie CCleaner , aber CCleaner bringt seine eigenen Probleme mit sich.

Verwenden Sie PowerShell(Use PowerShell) , um Speicherplatz auf Ihrer Festplatte(Your Hard Drive) zu schaffen(Create Space)

Wir werden dieses Skript Zeile für Zeile aufschlüsseln, damit Sie sehen können, wie es funktioniert. Am Ende wird das Skript vollständig angezeigt, sodass Sie es kopieren und einfügen können, wenn Sie möchten.

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

Alles mit einem Dollarzeichen davor ist ein Variablenname. Stellen Sie es sich wie eine Brieftasche vor, in die Sie wertvolle Dinge stecken können. Brieftasche(Wallet) erinnert uns an das Dollarzeichen, Wertsachen klingen nach variabel, also werden wir uns auch daran erinnern. Wir erstellen eine Wallet oder Variable namens $TempFileLocation . Das Gleichheitszeichen teilt PowerShell mit, was in diese Variable eingefügt werden soll.

In diesem Fall geben wir den Speicherort für temporäre Dateien von Windows ein – C:\Users\username\AppData\Local\Temp\* . Wir tun dies aus zwei Gründen; Es ist ein Ort, an dem Dateien immer sicher gelöscht werden können, und wir werden ihn verwenden, um PowerShell(PowerShell) mitzuteilen, wohin es gehen muss, um Dateien zu löschen.

Wenn an diesem Ort Benutzername steht, tauschen Sie ihn gegen Ihren Benutzernamen aus. Das ist der Benutzername, mit dem Sie sich bei Ihrem Computer anmelden. Das Sternchen (*) am Ende ist ein Platzhalter. Was es darstellt, ist alles im Ordner Temp , da alles im Ordner Temp temporär ist und wir es löschen möchten.

Die doppelten Anführungszeichen um den Standort sind ebenfalls wichtig. Das sagt PowerShell , dass das, was dort drin ist, ein String ist. Stellen Sie(Think) sich einen String als eine Folge von Buchstaben und Zeichen vor. Wenn es normale Zahlen wären, würden wir die Anführungszeichen nicht verwenden.

$TempFile = Get-ChildItem $TempFileLocation -Recurse

Wir erstellen eine weitere Variable. Dieses Mal verwenden wir einen Befehl, um etwas zu finden, das in die Variable $TempFile werden kann.

Get-ChildItem 

Eine weitere Sache, die Ihnen bei Cmdlets wie Get-ChildItem auffallen wird, ist, dass sie vollständig lesbar sind. Sehen Sie, wie das erste Wort ein Verb ist? Cmdlets beginnen alle mit Aktionswörtern, sodass Sie sofort wissen, was es tut. ChildItem besteht aus zwei Substantiven.

Der zweite Teil des Cmdlets teilt uns immer mit, auf welche PowerShell die Aktion angewendet wird. ChildItem bedeutet alle Kinder eines übergeordneten Standorts. Dies ist so, als würde man sagen, alle Dateien in einem Ordner abrufen, wobei die Dateien die untergeordneten und der Ordner der übergeordnete Ordner sind.

Wovon erhält das Cmdlet die untergeordneten Elemente? Alles in der Variablen $TempFileLocation . PowerShell wird zu dem Speicherort wechseln, den wir zuvor in $ TempFileLocation eingefügt(TempFileLocation) haben, und alle untergeordneten Elemente abrufen, die dort vorhanden sind. Dann werden sie in die Variable $TempFile .

Also, was hat es mit dem -Recurse- Teil auf sich? Das sagt Get-ChildItem , dass es alles an diesem Ort durchgehen soll. Holen Sie sich die Dateien nicht einfach sofort im übergeordneten Ordner. Wenn es Ordner in diesem Ordner gibt, holen Sie sich auch alle ihre Kinder und ihre Kinder und so weiter. Wir werden sie alle holen.

$TempFileCount = ($TempFile).count

Ja, wir erstellen eine dritte Variable namens $TempFileCount , und wir werden eine Zahl in diese Variable einfügen. Wo ist die Nummer? Nun, ( $TempFile).count wird uns diese Nummer liefern. Sie haben wahrscheinlich herausgefunden, dass der .count -Teil(.count) das Zählen aller Dateien übernimmt, die wir gerade in $ TempFile gespeichert haben .

Warum haben wir das getan? Hauptsächlich, weil es schön ist zu wissen, wie viele nutzlose Dateien wir mit dem Rest des Skripts löschen, damit wir sehen können, wie effektiv es war.

if($TempFileCount -eq 0)

Jetzt richten wir eine bedingte Anweisung ein. Sie können sehen, dass es nach dem „ob“ fragt. Wenn was? Ob die Sache in der Klammer wahr oder falsch ist. Die Klammern sind wichtig, sonst weiß das If nicht, was es vergleichen soll. Hier wird gefragt, ob die Zahl, die wir in $TempFileCount gespeichert haben , gleich Null ist.

Das -eq ist die Abkürzung für gleich. Es ist eine Art Vergleichsoperator. Es ist, als ob Sie Ihren Kindern sagen würden: „Wenn Ihr Zimmer sauber ist, großartig, werden wir etwas tun …“ Diese Anweisung besagt, ob die Zahl, die in $ TempFileCount gespeichert ist, -gleich Null ist die nächste Sache.

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

Das passiert, wenn $TempFileCount Null ist. Wichtig sind die geschweiften Klammern. Sie weisen PowerShell an, nur das zu tun, was in ihnen enthalten ist, wenn $ TempFileCount gleich Null ist.

Es schreibt auf den Host oder den Bildschirm: „Es gibt keine Dateien im Ordner C:\Benutzer\Benutzername\Appdata\Local\Temp\*“. Der Parameter am Ende – ForegroundColor weist PowerShell an, den Text grün zu machen. Das erleichtert lediglich die Unterscheidung von einer normalerweise roten Fehlermeldung.

Else

Sie wissen, was sonst bedeutet. Dies ist der "Ihr Zimmer sollte besser sauber sein oder sonst ..." Teil der Überprüfung, ob Ihr Kind sein Zimmer gereinigt hat. Das passiert, wenn $TempFileCount nicht Null ist.

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

Dies sagt, gehe zum aktuellen Speicherort, der in $TempFile gespeichert ist . Die senkrechte Linie danach wird Pipe genannt. Es funktioniert wie eine echte Pipe, da es PowerShell mitteilt , den Inhalt von $ TempFile in das Cmdlet zu leiten, als ob es Wasser wäre, das in eine Waschmaschine geleitet wird. Dann tut das Cmdlet Remove-Item , was es sagt; es entfernt alles, was sich an diesem Ort befindet.

Der Parameter -WhatIf ist in dieser Phase sehr wichtig. Es weist PowerShell an, den Befehl auszuführen, aber nur auszuprobieren, nichts zu entfernen. Zeigen Sie uns einfach(Just) , was passieren würde, wenn wir das wirklich tun würden.

Auf diese Weise können Sie Befehle testen, ohne etwas auf Ihrem Computer zu ändern. Lassen Sie das -WhatIf dort, bis Sie sich sicher sind, dass das Skript das tut, was Sie wollen, und nichts anderes. Dann löschen Sie das einfach und das Skript wird seine Arbeit erledigen.

Der Parameter -Confirm:$false , dass das Skript fragt, ob Sie die Datei wirklich löschen möchten. Sie wissen, was -Recurse macht. -Force bedeutet, das Ding zu löschen, egal was passiert. -WarningAction ist auf SilentlyContinue gesetzt .

Dadurch wird verhindert, dass das Skript Sie darüber warnt, was Sie löschen. -ErrorAction ist auf SilentlyContinue gesetzt, so(SilentlyContinue ) dass es einfach weitertuckert, wenn es irgendeinen Fehler im Prozess gibt.

Jetzt sind wir bei der letzten Zeile.

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

Genau wie Write-Host beim ersten Mal wird es den folgenden Satz ausgeben, damit wir wissen, was passiert ist. Es wird uns sagen, wie viele Dateien aus dem Ordner gelöscht wurden, den es gerade verarbeitet hat, und es in Grün tun, um es leicht zu erkennen.

Schauen wir uns das Skript insgesamt an:

$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
}

Sie können dies kopieren und in Ihre PowerShell ISE einfügen und als etwas wie delete-TemporaryFiles.ps1 speichern . Sie können genauso gut bei der Namenskonvention von Cmdlets bleiben, nachdem Sie sie verstanden haben.

Wenn der Code aus irgendeinem Grund bei Ihnen nicht funktioniert, können Sie auch das von uns erstellte PowerShell-Skript herunterladen und einfach ausführen. Entpacken Sie es einfach(Just) zuerst, um die Skriptdatei anzuzeigen.

Wann immer Sie dieses Skript ausführen möchten, klicken Sie einfach mit der rechten Maustaste darauf und wählen Sie Run with PowerShell . Eine PowerShell -Konsole wird für ein oder zwei Sekunden angezeigt, während Ihr Skript seine Arbeit erledigt, und verschwindet dann, wenn keine Fehler vorliegen.

Wo kann ich mehr über PowerShell erfahren?

Das scheint viel zu sein! Für Ihr erstes PowerShell- Skript ist es ziemlich viel. Wenn Sie es bis hierher geschafft haben, applaudieren Sie sich selbst. Sie haben heute viel gelernt, aber jetzt wollen Sie noch mehr lernen. Das ist toll!

Es gibt viele Ressourcen im Internet , um mehr über PowerShell zu erfahren . Ein guter Ausgangspunkt ist unser Artikel „ Erstellen einer Liste von Startprogrammen über die Befehlszeile oder PowerShell(Generate a List of Startup Programs via Command Line or PowerShell) “. Dann sehen Sie sich diese anderen Ressourcen an:



About the author

"Ich bin ein freiberuflicher Windows- und Office-Experte. Ich habe über 10 Jahre Erfahrung in der Arbeit mit diesen Tools und kann Ihnen helfen, das Beste aus ihnen herauszuholen. Zu meinen Fähigkeiten gehören: Arbeiten mit Microsoft Word, Excel, PowerPoint und Outlook; Erstellen von Web Seiten und Anwendungen und hilft Kunden dabei, ihre Geschäftsziele zu erreichen."



Related posts