Automatisierung administrativer Aufgaben
Zur Automatisierung administrativer Aufgaben kann die Skripting-Sprache PowerShell von Microsoft genutzt werden.
Grundsätzliches zu Microsoft PowerShell
Informationen und Hilfen
PowerShell von Microsoft bietet eine Skripting-Sprache, die u.a. zur Automatisierung von administrativen Aufgaben unter Windows eingesetzt werden kann.
Grundlegende Informationen und Hilfen zum Einstieg gibt es hier:
Voraussetzungen für die Innovator-Automatisierung
Mindestvoraussetzung für die Automatisierung von Innovator-Aufgaben ist die Version PowerShell 7.4.
Installationspakete können hier geladen werden:
https://docs.microsoft.com/powershell/scripting/install/installing-powershell
Zur Ausführung auf einem System muss die Ausführungsrichtlinie die Ausführung von Skripten erlauben (siehe https://docs.microsoft.com/powershell/module/microsoft.powershell.core/about/about_execution_policies).
Die Ausführungsrichtlinie kann von Kunde zu Kunde unterschiedlich sein. Geprüft werden kann dies durch den Befehl:
Get-ExecutionPolicy -List
Innovator-PowerShell-Skript-Bibliothek
Die mit Innovator ausgelieferten PowerShell-Skripte sind von MID digital signiert und können demnach mit den Policies "Unrestricted", "RemoteSigned" und "AllSigned" genutzt werden.
Die Skript-Bibliothek von Innovator wird mit jeder Installation der Client- oder Serverkomponenten unter Windows installiert. Die bereitgestellten Funktionen prüfen – soweit relevant – die in der Benutzerverwaltung vorhandenen Berechtigungen.
Basisbefehle
-
Laden des Innovator-Moduls
-
Alternative A: Generell mittels PSModulePath (siehe Microsoft: Grundlegendes zu PSModulePath)
-
Erstellen eines Verzeichnisses MID.Innovator.PowerShell im gewünschten Modulverzeichnis (z.B. in C:\Program Files\WindowsPowerShell\Modules)
-
Als Administrator in einer Windows-Eingabeaufforderung ausführen:
mklink /J "<Modulverzeichnis>\MID.Innovator.PowerShell\16.1" "C:\Program Files\Innovator\16.1"
-
-
Alternative B: Explizit am Beginn jedes Skripts
Import-Module 'C:\Program Files\Innovator\16.1\mid.innovator.powershell.psd1'
-
-
Auflisten aller verfügbaren Kommandos
Get-Command -Module mid.innovator.powershell
-
Hilfe und Beispiele zu einem Kommando erhalten
Get-Help Get-InnoLicenseServer -Detailed
Beispiele
-
Auflisten aller verwalteten Modelle
Get-InnoLicenseServer -InoHost <license server>.16100 | Get-InnoManagedModel
-
Auflisten aller Modellversionen mit Formatierung als Tabelle
Get-InnoLicenseServer -InoHost <license server>.16100 | Get-InnoManagedModelVersion | Format-Table
-
Auflisten aller verwalteten Modelle, gruppiert nach verwaltetem Modell
Get-InnoLicenseServer -InoHost <license server>.16100 | Get-InnoManagedModelVersion | Select-Object -Property Name, Version, Type, IsRunning | Sort-Object -Property Name, Version, Type | Format-Table -GroupBy Name
-
Auflisten aller nicht laufenden Sicherungen des Modells abc*
Get-InnoLicenseServer -InoHost <license server>.16100 | Get-InnoManagedModelVersion -ModelName abc* | Where-Object{($_.IsRunning -eq $false) -and ($_.Type -eq 'Backup')}
-
Starten aller nicht laufenden Sicherungen des Modells abc*
Get-InnoLicenseServer -InoHost <license server>.16100 | Get-InnoManagedModelVersion -ModelName abc* | Where-Object{($_.IsRunning -eq $false) -and ($_.Type -eq 'Backup')} | Start-InnoManagedModelVersion
-
Auflisten der Ressourcenbeschränkungen für verwaltete Modelle
Get-InnoManagedModel -InoHost <license server>.16100 | Get-InnoResourceQuota
-
Auflisten aller lokal eingerichteten Innovator-Agenten-Dienste
Get-InnoService -ServiceProgram inoagent
-
Setzen aller lokal eingerichteten Innovator-Agenten-Dienste auf "manuell"
Get-InnoService -ServiceProgram inoagent | Set-InnoService -StartType Manual
Suchen von Modellelementen
Befehl und Parameter
Mit dem Commandlet (Cmdlet) Find-InnoModelElements können Modellelemente in Modellversionen und eigenständigen Modellen gesucht werden.
Über die Pipeline ist es mit der Modellversion oder dem eigenständigen Modell zu versorgen.
Um eine gespeicherte Suche auszuführen, geben Sie deren Name im Parameter Name ein.
Um die modellweit gespeicherte Suche zu verwenden, geben Sie den Parameter EnableModelWide an.
Um die benutzerspezifisch gespeicherte Suche zu verwenden, geben Sie den Parameter EnableUserSpecific an.
Um eine Suche in der erweiterten Abfragesprache auszuführen, geben Sie diese im Parameter Code an. Beachten Sie, dass Sie den Code mit einfachen Anführungszeichen rahmen müssen und einfache Anführungszeichen in der Abfrage mit einem weiteren einfachen Anführungszeichen maskiert werden müssen.
Wenn die gespeicherte Suche oder der Code Platzhalter enthalten, müssen Sie diese im Parameter Placeholders in der Form Name=<kommagetrennte Werte> angeben. Das Ergebnis der Suche ist eine Liste von Modellelementen, von denen die UUID ausgegeben wird.
Beispiele
-
Angabe von Modellversion oder eigenständigem Modell für die Suche
Get-InnoManagedModel -InoHost <license server>.16100 -Name 'abc*' | Find-InnoModelElements ...
Get-InnoStandaloneModel -InoHost <license server>.16100 -Name 'abc*' | Find-InnoModelElements ...
-
Suche mit modellweit gespeicherter Suche
... | Find-InnoModelElements -Name '<saved search>' -EnableModelWide
-
Suche mit modellweit gespeicherter Suche mit Platzhaltern
... | Find-InnoModelElements -Name '<saved search with placeholders>' -EnableModelWide -Placeholders '<value 1, value 2>'
-
Suche mit erweiterter Abfragesprache
... | Find-InnoModelElements -Code 'SELECT FROM ELEMENTS WHERE "UUID" = ''113e5d54-8bfa-5166-8644-92cb879945ed'''
-
Suche mit erweiterter Abfragesprache mit Platzhaltern
... | Find-InnoModelElements -Code 'SELECT FROM ELEMENTS WHERE "UUID" = ''$UUID$''' -Placeholders 'UUID=113e5d54-8bfa-5166-8644-92cb879945ed'