Tipp für Microsofts PowerShell
PowerShell - mit lokalen und globalen Variablen arbeiten
Lösung: Wie in fast jeder Programmiersprache, gibt es auch in der PowerShell die Unterscheidung zwischen lokalen und globalen Variablen beziehunsweise entsprechenden Unterformen. Eine, innerhalb eines Klammer-Blocks deklarierte, Variable überschreibt für den Klammer-Block eine außerhalb definierte Variable mit demselben Namen. Dies ist normal und auch so gewünscht.
Da in der Powershell das Zuweisen von Werten gleichbedeutend mit der Deklaration einer Variable ist, bekommt man jetzt allerdings ein Problem:
$variable = "test"
if($true) {
$variable = "neuer Test"
}
echo $variable
Echo gibt hier unerwarteter Weise test aus. Die äußere Variable $variable bekommt außerhalb des IF-Blocks den Wert test. Damit $variable auch eine neue Variable innerhalb des IF-Blocks instanziiert wird, wird der Wert neuer Test in die neue Variable und nicht in die außerhalb deklarierte Variable geschrieben. Die äußere Variable bleibt also unangetastet.
Um ein solches ungewolltes Dilemma zu vermeiden, kann man in der PowerShell den Zugriff konkret auf den globalen-Kontext legen. Anstatt mit $NAME legt man die Variablen mit $global:NAME an:
global:variable = "test"
if($true) {
$global:variable = "neuer Test"
}
echo $global:variable
Nun gibt echo wie gewünscht neuer Test aus.
Produkte: Dieser Tipp funktioniert mit den aktuellen Versionen der PowerShell. (mje)
- TechNet Gallery
In der TechNet Gallery finden Sie zahlreiche hilfreiche Skripte für unterschiedlichste Problemstellungen. - Produkey
Mit Zusatztools können Sie die Seriennummern/Produktschlüssel von Windows und Office auslesen. - Windows Update PowerShell Module
In der PowerShell können Sie auch den Status von Windows-Updates überprüfen und Installationen starten. - Create Active Directory Users Based on Excel Input
Über die PowerShell legen Sie auch Active Directory-Benutzerkonten mit Daten aus Excel-Tabellen an. - Active Directory User Creation tool
Mit dem Active Directory User Creation tool 1.2 erstellen Sie Benutzer über PowerShell und grafischer Oberfläche. - PowerShell
In der PowerShell können Sie sich eine Liste aller verfügbaren Module anzeigen lassen - PowerShell
In der PowerShell können Sie auch Berechtigungen von Dateien und Verzeichnissen steuern. - PowerShell
Mit einem PowerShell-Skript extrahieren Sie aus einer ISO-Datei mit Windows Server 2012 R2 eine VHDX-Datei als Testumgebung.