Unter den Betriebssystemen Windows 10 oder Windows Server 2016 verfügen wir über ein leistungsstarkes Verwaltungs- und Steuerungstool für mehrere Systemparameter. Es handelt sich um Windows PowerShell.
Windows PowerShell wurde in Windows 10 und Server 2016 aktualisiert, um eine bessere Kontrolle über jeden Systemprozess zu ermöglichen. Die Hauptkomponente von PowerShell sind die Cmdlets.
Die Cmdlets bilden die Grundlage für Windows PowerShell, die selbst die letzte Shell- oder Skriptsprache von Microsoft-Befehlen ist. Ein Cmdlet ist daher ein kompakter Befehl, der in der Windows PowerShell-Umgebung verwendet wird.
TechnoWikis wird eine vollständige Analyse der Cmdlets durchführen, die in Windows PowerShell implementiert werden können. Statt sich auf die einzelnen Cmdlets zu konzentrieren, liegt der Schwerpunkt auf den Aufgaben, die wir mit diesen Cmdlets ausführen können. Diese Aufgaben umfassen verschiedene Aspekte wie das Lesen und Schreiben von Textdateien zum Verwalten von Ereignisdatensätzen und zum Klassifizieren oder Filtern von Daten. Wir werden sehen, wie unsere Support-Aufgaben wesentlich zentraler werden.
Wir werden verstehen, wie die Verwendung von Cmdlets uns die Möglichkeit gibt, viel mehr Informationen zu erhalten, als wir zu erhalten glauben.
Um auf dem Laufenden zu bleiben, sollten Sie unseren YouTube-Kanal abonnieren. ABONNIEREN
1. Cmdlets-Befehle in Datum und Uhrzeit von PowerShell
Diese Gruppe umfasst Aufgaben wie das Abrufen des aktuellen Datums und der Uhrzeit sowie das Durchführen von Berechnungen für das Datum.
Zeiten im Team werden häufig mithilfe eines automatischen Zeitdienstes zugewiesen. In diesem Fall ist es wahrscheinlich nicht erforderlich, Datum und Uhrzeit manuell einzustellen. Wenn wir jedoch aus irgendeinem Grund Datum und Uhrzeit manuell einstellen müssen, bietet Set-Date eine einfache Möglichkeit, dies zu tun.
Eine Möglichkeit, das Datum und / oder die Uhrzeit auf einem Computer zu ändern, besteht darin, den Parameter -date gefolgt von dem neuen Datum und der neuen Uhrzeit zu verwenden. Um beispielsweise Datum und Uhrzeit am 6. November 2017 um 10:30 Uhr festzulegen, führen wir die folgende Zeile aus:
Datum festlegen - Datum "06.11.2017 10:30 Uhr"
Die neue Uhrzeit und das neue Datum werden automatisch im System eingestellt. Wenn die Uhr auf zwei Tage eingestellt werden muss, verwendet dieser Befehl das Cmdlet Get-Date und die Methode AddDays, um die Uhr um zwei Tage vorzustellen:
Set-Date (Get-Date) .AddDays (2)
Dies erhöht sich um zwei Tage auf das aktuelle Datum, indem die tatsächliche Systemzeit ermittelt wird:
Andere Methoden, die wir verwenden können, sind AddHours, AddMinutes und AddSeconds. Mit diesen Optionen können wir Stunden, Minuten oder Sekunden an die Wetterbedingungen oder eine Art von Verwaltungsmanagement anpassen.
Zum Beispiel können wir in Ländern, in denen die Zeit vom Sommer beeinflusst wird, die Uhr mit der folgenden Zeile minus eine Stunde einstellen:
Set-Date (Get-Date) .AddHours (-1)
Alternativ können Sie den Parameter -adjust verwenden, um die Zeit im Format Stunden: Minuten: Sekunden anzupassen. Mit diesem Befehl wird beispielsweise die Uhrzeit um 2 Stunden und 40 Minuten vorgestellt:
Set-Date -adjust 2: 40: 0
Wenn wir das aktuelle Datum und die aktuelle Uhrzeit anzeigen möchten, verwenden wir einfach das Cmdlet Get-Date ohne zusätzliche Parameter:
Get-Date
Dort haben wir den aktuellen Tag, Datum und Uhrzeit. Wenn wir nur das Datum anzeigen möchten, verwenden wir den Parameter -displayhint und dieser gibt nur das Datum an:
Get-Date -displayhint Datum
Wenn wir nur die Uhrzeit anzeigen möchten, verwenden wir die folgende Zeile:
Get-Date -displayhint Zeit
Es ist auch möglich, mit Get-Date ein Datums- und Uhrzeitobjekt für ein beliebiges Datum oder eine beliebige Uhrzeit zu erstellen. Mit diesem Befehl erstellen wir beispielsweise eine Variable namens $ A, die am 1. Dezember 2017 um 12:00 Uhr morgens zugeordnet wird:
$ A = Get-Date 01.12.2017
Wenn wir dieser Variablen nun eine bestimmte Zeit hinzufügen möchten, fügen Sie sie einfach wie folgt hinzu:
$ A = Get-Date "01.12.2017, 11:00 Uhr"
Das Cmdlet “Get-Date” enthält auch eine Reihe von Methoden, mit denen Sie das Datum auf einfache Weise rechnen können:
AddSeconds AddMinutes AddHours AddDays AddMonths AddYears
New-TimeSpan $ (Datum abrufen) $ (Datum abrufen - Monat 10 - Tag 31 - Jahr 2018)
In diesem Fall sehen wir die Anzahl der Tage zwischen dem heutigen Datum und dem 31. Oktober des Jahres 2018:
Wir können alle Details von Tagen, Minuten, Stunden usw. sehen. Zur Verwendung von New-TimeSpan müssen nur zwei Datums- und Uhrzeitwerte verwendet werden. Am besten verwenden Sie dazu die Get-Date-Methode. Auf diese Weise können wir sicherstellen, dass wir ein Paar von Datums- und Uhrzeitobjekten erhalten, mit denen New-TimeSpan arbeiten kann.
In diesem Beispiel wurde das erste Datum mit dem Cmdlet “Get-Date” ohne zusätzliche Parameter erstellt (beachten Sie, dass das Cmdlet in Klammern angegeben werden muss).
Für das zweite Datum wurde auch Get-Date aufgerufen, aber die Parameter -month, -day und -year wurden zusammen mit den entsprechenden Werten hinzugefügt.
2. Befiehlt Cmdlets in Security PowerShell und Sicherheitsbeschreibungen
Diese Aufgaben umfassen Aktionen wie das Konfigurieren der Windows PowerShell-Skriptausführungsrichtlinie und das Wiederherstellen der digitalen Signatur oder der Sicherheitsbeschreibung einer Datei oder eines Ordners.
- Eingeschränkt (Eingeschränkt): Skripte können nicht ausgeführt werden. Windows PowerShell kann nur im interaktiven Modus verwendet werden.
- AllSigned: Nur von einem vertrauenswürdigen Editor signierte Skripte können ausgeführt werden.
- RemoteSigned: Die heruntergeladenen Skripte müssen von einem vertrauenswürdigen Editor signiert werden, bevor sie ausgeführt werden können.
Uneingeschränkt: Alle Windows PowerShell-Skripts können ausgeführt werden.
Um eine dieser Richtlinien zuzuweisen, verwenden wir die folgende Syntax:
Set-ExecutionPolicy (Richtlinie) Set-ExecutionPolicy Uneingeschränkt
Diese Aktion muss bestätigt werden:
Get-ExecutionPolicy
3. Befiehlt Cmdlets in PowerShell für Dateien und Ordner
Diese Aufgaben umfassen Aktionen wie das Erstellen, Umbenennen, Kopieren und Löschen von Dateien und Ordnern.
Copy-Item d: TechnoWikis tests.txt c: TechnoWikis
Wenn wir den gesamten Inhalt eines Ordners einschließlich der Unterordner kopieren möchten, sollten wir einfach einen Platzhalter wie diesen verwenden:
Copy-Item d: TechnoWikis * c: TechnoWikis
Wenn wir nur die Dateien mit einer bestimmten Erweiterung kopieren möchten, z. B. Bilder, verwenden wir die folgende Zeile:
Copy-Item d: TechnoWikis *. Jpg c: TechnoWikis
In diesem Fall erstellen wir ein neues Verzeichnis namens Windows PowerShell im Ordner C: TechnoWikis. Dazu führen wir New-Item neben dem vollständigen Pfad zum neuen Ordner und dem neuen Elementtyp aus (den Sie mit dem Parameter -type und dem Verzeichnis values angeben können). Der Befehl hat die folgende Struktur:
Verzeichnis New-Item c: TechnoWikis WindowsPowerShell -typ
Dadurch wird das Element im angegebenen Pfad erstellt. Um eine neue Datei zu erstellen, müssen wir den gleichen Vorgang ausführen und den vollständigen Namen der Route angeben, diesmal jedoch den Dateityp konfigurieren. Mit diesem Befehl erstellen wir die Datei C: TechnoWikis TechnoWikis1.txt:
New-Item C: TechnoWikis TechnoWikis1.txt -Datei
Falls die Datei existiert und wir sie überschreiben möchten, können wir den Parameter -force wie folgt hinzufügen:
New-Item C: TechnoWikis TechnoWikis1.txt -type file -force
Wenn wir eine Datei löschen möchten, verwenden wir die folgende Zeile:
Remove-Item c: TechnoWikis TechnoWikis1.txt
Wir können auch Platzhalterzeichen verwenden, um mehrere Elemente zu löschen. Mit diesem Befehl werden beispielsweise alle Dateien im Pfad C: TechnoWikis entfernt:
Remove-Item c: TechnoWikis *
Eine weitere verfügbare Option ist die Angabe, welche Elemente gelöscht werden müssen und welche nicht. Hierzu können wir die folgende Syntax verwenden:
Remove-Item c: scripts * -include * .txt -exclude * Tests *
In diesem Fall werden alle TXT-Dateien mit Ausnahme der Datei “Tests” gelöscht. Das Cmdlet Remove-Item verfügt über einen Parameter namens -whatif, der eigentlich nichts entfernt, sondern lediglich anzeigt, was passieren würde, wenn Remove-Item ausgeführt würde:
Remove-Item c: TechnoWikis *. Txt -whatif
Move-Item c: TechnoWikis TechnoWikis d: TechnoWikis
Falls das Element im Zielpfad vorhanden ist, können wir den Parameter -force für seine Ausführung verwenden:
Move-Item c: TechnoWikis TechnoWikis d: TechnoWikis -force
- Der aktuelle Pfad zur Datei oder zum Ordner.
- Der neue Name für die Datei oder den Ordner.
In diesem Fall ändern wir den Namen des TechnoWikis-Ordners auf Laufwerk C in TechnoWikis2:
Rename-Item c: TechnoWikis TechnoWikis TechnoWikis2
Testpfad c: TechnoWikis TechnoWikis.txt
Wenn wir das Ergebnis true erhalten, ist die Datei vorhanden, andernfalls wird false angezeigt. Es ist sogar möglich, das Vorhandensein von Schlüsseln im Windows-Registrierungseditor zu überprüfen.
Testpfad HKCU: Software Microsoft Windows CurrentVersion
4. Befiehlt Cmdlets in PowerShell für Systemverwaltungsaufgaben
Diese Aufgaben umfassen Aktionen wie das Starten und Beenden von Diensten, das Abrufen von Daten mithilfe von WMI und das Verwalten von Ereignisprotokollen und Ereignisprotokollereignissen.
Nutzen Sie einfach Get-Service ohne zusätzliche Parameter:
Get-Service
Das Ergebnis wird wie folgt sein. Dort sehen wir jeden Dienst mit seinem Namen und dem aktuellen Status.
Wir können Filter anwenden, um die Dienste mit einem bestimmten Status anzuzeigen. Um beispielsweise alle Dienste im Status “Gestoppt” anzuzeigen, führen wir Folgendes aus:
Get-Service | Wobei-Objekt {$ _. Status -eq "gestoppt"}
Um alle aktiven Dienste anzuzeigen, führen wir auf die gleiche Weise aus:
Get-Service | Where-Object {$ _. Status -eq "running"}
Standardmäßig gibt Windows PowerShell die Dienste in alphabetischer Reihenfolge zurück. Wenn Sie jedoch das Cmdlet Sort-Object verwenden, können Sie die zurückgegebenen Daten nach Ihren Wünschen sortieren. Mit diesem Befehl werden die Dienste beispielsweise zuerst nach Status und dann nach Anzeigename sortiert:
Get-Service | Sort-Object Status, Anzeigename
Das Cmdlet Get-EventLog dient zwei Zwecken: Es ermöglicht die Verwaltung der Ereignisprotokolle und den Zugriff auf die in diesen Ereignisprotokollen enthaltenen Ereignisse.
Um die Liste der Ereignisse zu erhalten, führen wir Folgendes aus. Dort sehen wir die verschiedenen Kategorien mit ihrer Anzahl von Ereignissen.
Get-EventLog-Liste
Wenn wir nur Informationen zu einem bestimmten Ereignisprotokoll benötigen, können wir das Cmdlet Where-Object verwenden, um die Datenwiederherstellung auf das Protokoll zu beschränken, dessen LogDisplayName in diesem Fall gleich System ist:
Get-EventLog -list | Where-Object {$ _. Logdisplayname -eq "System"}
Um alle Ereignisse einer bestimmten Kategorie aufzulisten, können wir die folgende Zeile ausführen:
Get-EventLog-System
Wir können auch den Parameter -newest verwenden, um nur die letzte Anzahl von Ereignissen im Datensatz aufzuzeichnen, wie angegeben:
Get-EventLog-System -newest 5
Um viel mehr Informationen über ein Ereignis zu erhalten, führen wir die folgende Zeile aus:
Get-EventLog-System -newest 5 | Format-Liste
Es ist auch möglich, Daten über das Cmdlet Where-Object weiterzuleiten, um eine Teilmenge von Ereignissen zurückzugeben. Mit diesem Befehl werden beispielsweise nur die Ereignisse im Windows PowerShell-Ereignisprotokoll abgerufen, deren EventID gleich 403 ist:
Get-EventLog "Windows PowerShell" | Where-Object {$ _. EventID -eq 403}
Mit der nächsten Option können Sie alle Ereignisse im Windows PowerShell-Ereignisprotokoll abrufen und diese Ereignisse dann mithilfe des Cmdlets Group-Object nach EventID gruppieren.
Get-EventLog "Windows PowerShell" | Gruppenobjekt eventid | Sort-Object Name
Dort können wir die Häufigkeit des Ereignisses, den Namen und die Beschreibung sehen.
Set-Service XblAuthManager -Starttyp "manual"
Ein gestoppter Dienst beendet alle vorhandenen Verbindungen und lehnt das Herstellen neuer Verbindungen ab. Ein angehaltener Dienst wartet normalerweise weiterhin auf vorhandene Verbindungen, akzeptiert jedoch keine neuen Verbindungen.
Dazu reicht es aus, folgendes auszuführen:
Suspend-Service tapisrv
In diesem Fall haben wir den Telefoniedienst mit Ihrem Dienstnamen angehalten. Auf Wunsch können wir jedoch den Namen des Dienstes verwenden:
Suspend-Service -Displayname "Telefonie"
Um einen Dienst in Windows neu zu starten, müssen Sie das Cmdlet Resume-Service gefolgt vom angehaltenen Dienst verwenden:
Resume-Service Tapisrv
Get-WmiObject kann auf Remotecomputern ausgeführt werden, sodass Windows PowerShell tatsächlich als Verwaltungstool verwendet werden kann.
Um die BIOS-Informationen zu erhalten, können wir die folgende Zeile ausführen:
Get-WmiObject win32_bios
Um sicherzustellen, dass Sie Informationen zu allen Eigenschaften (und ihren Werten) erhalten, leiten Sie die von Get-WmiObject zurückgegebenen Daten am besten an Select-Object weiter und geben Sie mit dem Platzhalter * an, dass alle Werte der Eigenschaften abgerufen werden sollen .
Wenn die Eigenschaften und Methoden für eine bestimmte WMI-Klasse abgerufen werden müssen, können Sie mit Get-WmiObject eine Verbindung zu einer bestimmten Klasse herstellen und diese Informationen dann über das Cmdlet Get-Member kanalisieren:
Get-WmiObject win32_bios | get-member
Stop-Service übrigens
Zum Starten eines Dienstes verwenden wir das Cmdlet Start-Service:
Start-Service btwdins
- Mit Ihrem Ausweis:
Stop-Prozess 3512
- Mit seinem Namen:
Stop-Process -Prozessname Editor
Stop-Process akzeptiert auch Platzhalterzeichen. Mit diesem Befehl werden beispielsweise alle Instanzen von Notepad sowie alle anderen Prozesse beendet, deren Namen mit note beginnen:
Stop-Process -Prozessname Hinweis *
5. Cmdlets-Befehle in PowerShell für Hilfetasks und Informationen
Zu diesen Aufgaben gehören das Auflisten der Windows PowerShell-Versionsinformationen und das Abrufen von Informationen zu Eigenschaften und Methoden für ein Objekt mithilfe des Cmdlets Get-Member.
Get-Help *
Sobald wir diese Liste haben, können Sie Hilfe zu einem bestimmten Thema erhalten, indem Sie den Namen des Themas an Get-Help übergeben. Um beispielsweise weitere Informationen zum Cmdlet “Get-Member” zu erhalten. In diesem Fall führen wir einfach aus:
Get-Help Get-Member
Get-Command muss ohne zusätzliche Parameter verwendet werden, und wir erhalten eine Liste aller Windows PowerShell-Cmdlets:
Get-Command
Mit dem Cmdlet Format-List können Sie die Eigenschaften der Cmdlets abrufen:
Get-Command | Format-Liste *
Mit Select-Object können alle Eigenschaften mit Ausnahme des Namens gefiltert werden:
Get-Command | Select-Object name
Diese Informationen können zur späteren Verwaltung in eine Textdatei exportiert werden. Dazu müssen wir Folgendes ausführen:
Get-Command | Get-Help | Out-File c: TechnoWikis Help.txt
Get-Host
Get-EventLog -list | Get-Member
Mit dem Parameter -membertype können wir die Daten einschränken, die an die Eigenschaften zurückgegeben werden:
Get-WmiObject win32_bios | Get-Member -membertype-Eigenschaften
Rufen Sie zum Ermitteln der verfügbaren Anbieter einfach das Cmdlet Get-PSProvider ohne Parameter auf:
6. Befiehlt Cmdlets in PowerShell von Windows PowerShell-Sitzungen
Diese Aufgaben umfassen Aufgaben wie das Abrufen des Windows PowerShell-Verlaufs und das erneute Aufrufen eines in diesem Verlauf enthaltenen Befehls.
Standardmäßig protokolliert Windows PowerShell die 64 neuesten Befehle, die im Konsolenfenster geschrieben wurden. Um einen bestimmten Betrag zu visualisieren, verwenden wir den Parameter -count:
Get-History 15 -count 15
Aufrufverlauf 3
Dadurch wird der Befehl an Position 3 ausgeführt:
Das Cmdlet “Invoke-History” akzeptiert nur eine eindeutige ID. Wenn Sie mehrere Befehle ausführen, müssen Sie zwei Invoke-History-Befehle ausführen, die die beiden durch ein Semikolon trennen:
Invoke-History 3; Invoke-History 4
7. Befiehlt Cmdlets in PowerShell of Storage und den Datenimport
Diese Aufgaben umfassen Aufgaben wie das Lesen und Schreiben in Textdateien sowie das Speichern von Daten im HTML- oder XML-Format.
Add-Content c: TechnoWikis TechnoWikis.txt "TechnoWikis"
Standardmäßig fügt das Add-In den neuen Wert unmittelbar nach dem letzten Zeichen in der Textdatei hinzu. Wenn Sie es vorziehen, dass das Wort TechnoWikis in einer separaten Zeile erscheint, fügen Sie einfach `n (Windows PowerShell-Jargon für” neue Zeile “) in den Wert ein, der in die Datei geschrieben wird.
Add-Content c: TechnoWikis TechnoWikis.txt "` nTechnoWikis "
Dies sind einige der anderen Sonderzeichen, die in der Windows PowerShell-Ausgabe verwendet werden können:
`0 - Null` a - Warnung` b - Rücktaste` n - Neue Zeile `r - Zeilenumbruch` t - Horizontale Registerkarte` '- Einfache Anführungszeichen` "- Doppelte Anführungszeichen
Get-Process | Tee-Object -Datei c: TechnoWikis TechnoWikis.txt
Wir können sehen, dass die Daten auf dem Bildschirm aufgezeichnet und gleichzeitig in der ausgewählten Datei gespeichert werden:
Inhalt löschen c: TechnoWikis TechnoWikis.txt
Get-Process | ConvertTo-Html | Set-Content c: TechnoWikis TechnoWikis.htm
In diesem Beispiel werden alle Systemprozesse in der Datei TechnoWikis.txt gespeichert und in das HTML-Format konvertiert:
Dadurch wird die HTML-Datei erstellt, die mit jedem Browser geöffnet werden kann:
Get-Content c: TechnoWikis TechnoWikis.txt
Mit dieser Zeile erhalten wir alle Prozesse des Systems und speichern sie als XML-Datei. Bei der Ausführung wird die entsprechende XML-Datei erstellt:
Um auf dem Laufenden zu bleiben, sollten Sie unseren YouTube-Kanal abonnieren. ABONNIEREN
Wir haben gesehen, wie die Windows PowerShell-Cmdlets entwickelt wurden, um uns die Möglichkeit zu bieten, alle Komponenten und Dienste des Betriebssystems direkter und vollständiger zu verwalten.