NWC Services Blog
Noch leiser als Hotfix-Bundle 1, hat FrontRange schon Anfang dieses Monats das Hotfix-Bundle 2 released.
Dieses steht momentan nur auf dem FTP-Server zur Verfügung, für den aber ein separater Login angefordert werden muss. Interessierte Kunden müssen sich diesbezüglich an den FrontRange-Support wenden.
Gemäß den Release-Notes wurden im Vergleich zu Hotfix-Bundle 1 die folgenden Fehler behoben:
Heute mal ein kurzer Hinweis auf einen anderen Blog: Markus Bäker, Systemingenieur bei einem Karlsruher Systemhaus, beschäftigt sich in letzter Zeit intensiv mit Enteo v6 / DSM 7 und automatisiert in einem großen Projekt viele administrative Aufgaben mit unseren PowerShell Extensions.
Über seine Erfahrungen, Beispiele sowie Tipps & Tricks berichtet er auf seinem Blog unter http://www.mbaeker.de/tag/enteo/.
In der NetInstall 5.x-Welt war es ja so, dass der Client vollständig selbst entschieden hat, welche Projekte ausgeführt sollen und welche nicht (Assign&Delegate lassen wir jetzt mal außen vor ;-).
Das heißt, der Client hat die Registry unter HKEY_LOCAL_MACHINE\Software\NetSupport\NetInstall\InstalledApps, beziehungsweise im gleichen Pfad unter HKEY_CURRENT_USER, geprüft. Jedes dort registrierte Projekt – für jedes Projekt gab es einen Unterschlüssel, dessen Name die GUID des Projekts war – galt als installiert, jedes dort nicht erfasste Projekt, wurde als nicht installiert betrachtet.
Unter Enteo v6 ging diese Funktionalität verloren, da die "Intelligenz" vom Client auf den Business Logic Server verlagert wurde. Das führte dazu, dass der BLS zum Beispiel nach dem Zurücksetzen eines Snapshots einer virtuellen Maschine, dem Client die Info gab, es wäre nichts zu installlieren, da alle Policy-Instanzen den Status "compliant" hätten – und der Client hielt sich sklavisch daran, obwohl womöglich etliche Pakete hätten installiert werden müssen, um die Compliance herzustellen.
Mit DSM 7 gibt es nun erneut eine Veränderung im Verhalten...
Im heutigen (recht kurzen) Blogeintrag soll es nun um das noch nicht beschriebene Cmdlet Get-NiInstParam gehen.
Mit diesem Cmdlet wird nicht – wie man anhand des Namens womöglich vermuten könnte (und wovon ich bei meinen ersten Tests auch ausgegangen bin) – der Wert eines für das entsprechende Paket definierten Installations-Parameters ermittelt...
Unsere allseits beliebten PowerShell Extensions für Enteo v6 / DSM 7 benötigen ja ein Lizenzfile, um ihre Arbeit aufzunehmen. Dieses wird in der Regel im Rahmen der Installation mit in das Installationsverzeichnis kopiert und somit von dem Snap-In auch automatisch gefunden.
Es gibt jedoch einige Kunden, die das Snap-In auf allen Client-Rechnern installieren, um von jedem Rechner aus PowerShell Scripts ausführen zu können und so beispielsweise Reinstallationen dezentral anzustoßen, Policy-Instanzen zurückzusetzen oder ähnliches.
In einem solchen Szenario ist es natürlich relativ aufwändig, z.B. nach einer Aufstockung der Lizenzen (der Kunde erhält ja dann ein neues Lizenzfile), die neue Lizenz zu verteilen. Natürlich lässt sich das mit einem einfachen NetInstall-Paket realisieren, aber gemacht werden muss es trotzdem.
Eine wenig bis garnicht bekannte Möglichkeit (mangels Dokumentation - mea culpa), ist die zentrale Ablage der Lizenzdatei. Diese Möglichkeit besteht seit PSX Version 1.1.
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:
- Get-NIVar
- Set-NIVar
- Write-NIReport
- Set-NIError
- Get-NiInstParam
Eine der wenig bekannten (und noch schlechter dokumentierten) Neuerungen in DSM 7, ist die Unterstützung von PowerShell innerhalb von DSM 7 Scripts.
Da sich PowerShell und die PowerShell-Scriptsprache ja mehr und mehr als die Automatisierungs-Schnittstelle im Windows-Umfeld herauskristallisieren, ist diese Unterstützung ein wichtiger Baustein im Gesamtkonzept einer LifeCycle-Management Strategie.
Dieser Artikel ist der erste einer kleinen Serie von Posts, in der die neuen Möglichkeiten aufgezeigt werden sollen...
Vermutlich jeder NetInstall- / Enteo v6- / DSM 7-Administrator hat sich schonmal die Registry auf den gemanageten Clients unterhalb von Software\NetSupport\NetInstall\Installed Apps angeschaut, weil ja dort die ganzen Infos über die auf dieser Maschine bzw. für einen Benutzer ausgeführten Pakete hinterlegt sind.
Unter anderem gibt's dort auch einen Value LastInstallTime, in dem der Zeitpunkt der letzten Installation des jeweiligen Paketes hinterlegt ist. Allerdings ist dieser Wert vom Typ "Time_t" und wird in einem Byte-Array gespeichert, das die Anzahl der Sekunden seit dem 01.01.1970 angibt und ist damit für den durchschnittlich begabten Systemadministrator (oder Consultant – wie mich) eher nicht lesbar... ;-)
Anwender von NetInstall 5 werden das Verhalten kennen: im Rahmen der Freigabe eines Projekts, wurde vor der Komprimierung eine Konsistenzprüfung durchgeführt, die prüfte, ob alle in dem Projekt referenzierten Dateien auch an dem entsprechenden Ort vorhanden waren.
Waren eine oder mehrere Dateien dies nicht – was durchaus sinnvoll und gewollt sein konnte, etwa wenn ein dynamisches Batch-Script erzeugt wurde, das anschließend aufgerufen wurde – so öffnete sich ein Dialog, der auf die fehlenden Dateien hinwies. In diesem Dialog konnte dies dann ignoriert oder die Freigabe des Projekts konnte abgebrochen werden.
In Enteo v6 ging diese Funktionalität verloren, da ja das Vorbereiten der Distribution (das Pendant zur Aktion "Freigeben" in NetInstall 5.x) nun nicht mehr von der Konsole, sondern von einem Distributionsdienst ausgeführt wurde.
Dies war zwar insofern praktisch, als die eMMC nicht während der für das Komprimieren benötigen Zeit blockiert war (wie das in NetInstall 5 der Fall war), allerdings konnte es dadurch auch leichter zu fehlerhaften Paketen kommen, da eventuell für die erfolgreiche Ausführung benötigte Dateien nicht vorhanden waren.
In DSM 7 wurde das Feature nun wieder implementiert – allerdings muss es explizit aktiviert werden und ist standardmäßig nicht aktiv.
Seit Windows 7 / Server 2008 R2 gibt's ja die altbekannte Taskleiste eigentlich garnicht mehr – das Teil nennt sich jetzt "Superbar". Eine der Neuerungen ist, dass sie praktisch die alte Taskleiste mit der Schnellstart-Leiste kombiniert, wozu es den Befehl "An Taskleiste anheften" im Kontextmenü von Programmen oder Verknüpfungen gibt.
Dummerweise wird der Befehl aber zum Beispiel garnicht angeboten, wenn man sich auf dem Desktop oder im Startmenü eine Verknüpfung zur Enteo v6 / DSM 7 Konsole erstellt hat und diese jetzt auch der Superbar hinzufügen möchte. Auch Drag-and-Drop auf die Superbar funktioniert nicht, sodass es erstmal nicht möglich erscheint, dort ein Schnellstart-Symbol für die FrontRange Konsole zu erstellen. Nach einigem Suchen im Netz, bin ich schließlich auf die Ursache des Problems und damit dann auch auf die Lösung gekommen...