Verwenden der Anweisung in PowerShell

Verwenden Der Anweisung In Powershell



PowerShell ist eine robuste Befehlszeilen-Shell und Skriptsprache, die hauptsächlich zur Steuerung von Computersystemen und zur Automatisierung von Verwaltungsaufgaben verwendet wird. Die Verwendung von Anweisungen ist eine der wichtigsten PowerShell-Grundlagen. Insbesondere die „ verwenden Die Anweisung spielt eine entscheidende Rolle bei der Verwaltung von Ressourcen und der Gewährleistung einer effizienten Codeausführung.

In diesem Artikel werden verschiedene Aspekte der „using“-Anweisung in PowerShell untersucht, einschließlich ihrer Syntax, ihres Zwecks und ihrer praktischen Anwendungen.







Zweck der „Verwendung“-Erklärung

Mit der „using“-Anweisung können Sie angeben, welche Namespaces in der Sitzung verwendet werden. Durch das Hinzufügen von Namespaces können Sie Klassen aus Skriptmodulen und Assemblys importieren und die Verwendung von .NET-Klassen und -Mitgliedern vereinfachen.



MUSS-Anweisungen zur „Verwendung“ enthalten sein

  • Die „using“-Anweisung muss vor allen anderen Skript- oder Modulanweisungen stehen. Es dürfen keine unkommentierten Anweisungen, einschließlich Parameter, vorangestellt werden.
  • In der „using“-Anweisung dürfen keine Variablen vorhanden sein.
  • Die „using“-Anweisung sollte nicht mit dem Bereichsmodifikator „using:“ für Variablen verwechselt werden. Beide unterscheiden sich in ihrem Zweck und ihrer Bedeutung.

Syntax der „using“-Anweisung



Die Syntax für die „using“-Anweisung lautet:





Namensraum verwenden < .NET-Namespace >

Sehen wir uns das folgende Beispiel an:



unter Verwendung des Namensraums System.IO

$Bytes = [ Datei ] ::ReadAllBytes ( 'D:\csharp\Linuxhint1.txt' )
[ Dateiinformation ] ::neu ( 'D:\csharp\Linuxhint1.txt' )

Im obigen Code haben wir zunächst den Namespace „System.IO“ bezeichnet. Die zweite Zeile des Programms, [File]::ReadAllBytes(‘D:c sharpLinuxhint1.txt’), liest jedes Byte aus der bereitgestellten Datei und platziert sie in der Variablen $Bytes. In der dritten Zeile erstellt [FileInfo]::new(‘D:c sharpLinuxhint1.txt’) eine neue Instanz der FileInfo-Klasse und gibt das FileInfo-Objekt zurück.

„using“-Anweisung für Module

Wir können die „using“-Anweisung auch zum Laden von Klassen eines Moduls verwenden.

Syntax

Modul verwenden < Modulname >

In dieser Syntax kann als Wert für „Modulname“ der „“, eine vollständige Modulspezifikation oder ein Pfad zu einer Moduldatei verwendet werden.

Sie können entweder einen vollständig qualifizierten oder einen relativen Pfad verwenden, wenn „Modulname>“ ein Pfad ist. Wenn in einem Skript eine „using“-Anweisung vorhanden ist, wird in diesem Skript ein relativer Pfad aufgelöst.

PowerShell sucht im PSModulePath nach dem bereitgestellten Modul, wenn „“ ein Name oder eine Modulspezifikation ist. Die folgenden Schlüssel bilden die Hashtabelle, die eine Modulspezifikation darstellt:

Modulname - Erforderlich. Benennt das betreffende Modul.

Optionale GUID – Gibt die GUID des Moduls an.

Zusätzlich müssen Sie einen der drei unten aufgeführten Schlüssel angeben.

Modulversion – Über die Eigenschaft „ModuleVersion“ wird eine minimal zulässige Version des Moduls angegeben.

MaximumVersion – Definiert die höchste zulässige Version des Moduls.

ErforderlicheVersion – Ermittelt über „RequiredVersion“ die genaue, notwendige Version des Moduls. Die anderen Versionsschlüssel können dabei nicht verwendet werden.

Das Root-Modul (ModuleToProcess) eines Binärmoduls oder Skriptmoduls wird durch die Moduldeklaration „using“ importiert. Die in verschachtelten Modulen oder Skripten angegebenen Klassen, die punktuell in das Modul eingebunden sind, werden nicht zuverlässig importiert. Alle Klassen, die Benutzern außerhalb des Moduls zur Verfügung stehen sollen, sollten im Stammmodul angegeben werden.

Hier ist ein Beispiel:

mit dem Modul PSReadline

„using“-Anweisung für die Montage

Die „using“-Anweisung kann auch zum Vorladen von Typen aus einer .NET-Assembly verwendet werden.

Syntax

mit Montage < .NET-Assembly-Pfad >

Bei dieser Syntax werden beim Laden einer Assembly die .NET-Typen dieser Assembly vorab in das Skript geladen, bevor es analysiert wird. Dadurch ist es möglich, neue PowerShell-Klassen zu entwickeln, die die vorinstallierten Assemblytypen nutzen.

Sehen Sie sich ein Beispiel für die Anwendung der „using“-Anweisung mit einer „Assembly“ an:

unter Verwendung der Assembly System.Windows.Forms

In diesem Befehl haben wir die Assembly geladen „ System.Windows.Forms“ in PowerShell mit der „using“-Anweisung.

„using“-Anweisung für Hashtable-Schlüssel

Hash-Tabellen „sind anpassbare Datenstrukturen, die in PowerShell für verschiedene Zwecke verwendet werden, einschließlich der Speicherung von Konfigurationsdaten, der Bereitstellung von Argumenten für Cmdlets und der Speicherung von Daten in Skripten.

Der kryptografische Hash für die Zeichenfolge „ LinuxHinweis! „wird über das folgende Skript abgerufen:

unter Verwendung des Namensraums System.Text
unter Verwendung des Namensraums System.IO [ Zeichenfolge ] $string = „LinuxHinweis!“
[ Zeichenfolge ] $Algorithmus = „SHA1“

[ Byte [ ] ] $stringbytes = [ UnicodeEncoding ] ::Unicode.GetBytes ( $string )

[ Strom ] $memorystream = [ MemoryStream ] ::neu ( $stringbytes )
$hashfromstream = Get-FileHash -Eingabestrom $memorystream `
-Algorithmus $Algorithmus
$hashfromstream .Hash.ToString ( )

Der obige PowerShell-Code beginnt mit dem Importieren der für Dateioperationen und Codierung erforderlichen Namespaces. Die Eingabezeichenfolge und der Hashing-Algorithmus (in diesem Fall „ SHA1 “), werden dann definiert. Die Eingabezeichenfolge wird dann mit „ Unicode ” um ein Array von Bytes zu erstellen.

Der Inhalt des Byte-Arrays wird dann verwendet, um ein „ Speicherstrom “. Der Hashwert aus dem Memorystream wird mithilfe des bereitgestellten „SHA1“-Algorithmus berechnet, indem „ Get-FileHash ”-Cmdlet. Das Skript endet mit der Ausgabe des erhaltenen Hash-Werts als Zeichenfolge in der Ausgabe.

Ausgang

Abschluss

Der ' verwenden Die Anweisung in PowerShell ist ein leistungsstarkes Tool zum Angeben von Namespaces, Modulen oder Assemblys. Seine Syntax und sein Zweck bieten einen standardisierten und sicheren Ansatz für den Umgang mit Ressourcen, erleichtern die ordnungsgemäße Entsorgung und reduzieren die Codeduplizierung.