In diesem Teil der Artikelserie über die PowerShell Scriptingmöglichkeiten in DSM 7 soll es nun um die konkrete Anwendung gehen.

Wie beim Scripting-Support für VBScript, JScript und Perl-Scripts, besteht auch für PowerShell-Scripts die Möglichkeit, lesend auf NetInstall-Variablen zuzugreifen oder die Werte von NetInstall-Variablen zu setzen. Dazu werden über das PowerShell-Modul Enteo.Powershell.ScriptCmdlet.dll, das Teil des DSM 7 Clients ist, folgende Cmdlets zur Verfügung gestellt:

Wie der Namen impliziert, kann über das Cmdlet Get-NIVar der Wert einer NetInstall-Variable ausgelesen werden. Als Parameter erwartet das Cmdlet den Namen der Variablen in Anführungszeichen.

Konsequenterweise setzt das Cmdlet Set-NIVar den Wert einer NetInstall-Variablen. Dieses Kommando benötigt zwei Argumente, nämlich den Namen der zu setzenden Variablen und den Wert, auf den sie gesetzt werden soll. Wie in PowerShell üblich, werden die Cmdlet-Parameter durch ein Leerzeichen getrennt und ebenfalls in Anführungszeichen eingeschlossen.

Über Write-NIReport lässt sich ein Eintrag in das aktuelle Installer-Logfile vornehmen. Als Parameter erwartet das Cmdlet den im Logfile einzutragenden Text. Innerhalb des Logs wird der Eintrag mit Loglevel 2 klassifiziert und mit dem Präfix Powershell: NIReport:  gekennzeichnet.

Schließlich lässt sich über Set-NIError analog zu Write-NiReport ein Logfile-Eintrag im aktuellen Installer-Log erzeugen, der jedoch als Fehler ("E") klassifiziert wird. Auch dieses Cmdlet erwartet als Argument den einzutragenden (Fehler-)Text. Innerhalb des Logs erhält dieser Eintrag ein vorangestelltes Warning (Module:Powershell, Severity:0x03): Script error:

Über das letzte Cmdlet Get-NiInstParam, werde ich in einem separaten Artikel schreiben...

Als konkretes Beispiel möchte ich ein PowerShell-Script zeigen, das in Windows 7 den Befehl "An Taskleiste anheften" ausführt, also einen Shortcut für eine Applikation auf der sogenannten Superbar von Windows 7 anlegt. Die NetInstall-Scriptsprache kann das (noch? ;-) nicht, sodass man hier auf externe Möglichkeiten zurückgreifen muss.

Hier ein Screenshot, wie das in der Packaging Workbench ausschaut:

PinToTaskbar_DSMScript_small

Der interessante Teil – das PowerShell-Script – ist im Folgenden dargestellt:

PinToTaskbar_PSScript_small

Sie finden das NetInstall- und das PowerShell-Script zum Download in unserem Download-Bereich unterhalb von Tools > Sonstiges.