Home - Blogs - Stefan Horz
Stefan Horz

Stefan Horz

Website URL:

vaserv_blog

Das „Send Popup“ Objekt von Opalis ist in Opalis 6.3 nur als ‚Legacy-‘Objekt verfügbar

netsend_opalis0

Kein Wunder, Opalis 6.3  läuft jetzt auch auf Windows 2008 Servern, ganz gleich ob 32bit oder 64bit-Systeme. Auf Windows 2008 gibt es den Dienst „Messenger“ nicht mehr, den wir vielleicht früher noch kannten, weil dieser die „net send“-Nachrichten entgegen nehmen konnte. Also Pendant zu „net send“ gibt es das Kommando msg.exe, mit dem man ebenfalls Nachrichten schreiben kann.
Hierzu kann einfach eine Command-Line geöffnet und der Befehl msg.exe werden:

msg administrator /server: "Hello world!"

netsend_opalis1

Dieses kleine Tool kann man sich nun in Opalis zunutze machen. Man nimmt ein „Run Program“-Objekt und greift innerhalb des Befehl-Pfades auch  auf ‚Published Data‘ oder Globale Einstellungen zurück. Alternativ kann man auch ein neues Objekt mittels QIK (Quick Integration Pack) schreiben, welches Opalis bereits mitbringt. Dazu ist es notwendig, das QIK zunächst in Opalis zu integrieren. Das Paket befindet sich unter: \Opalis 6.3\Quick Integration Kit\QIK.msi.

netsend_opalis2

Zusätzlich muss noch das Integration Pack ‚Opalis Quick Integration Kit for Microsoft .NET  - meist unter: ("C:\Program Files (x86)\Opalis Software\Quick Integration Kit 3\Integration Packs\QIKNet30.oip") registriert und verteilt werden.

Nun kann man hierüber eine neue DLL erstellen und die msg.exe antriggern. Dazu muss die QIK CLI geöffnet werden (CLI = Command Line Interface).

netsend_opalis4

 

Neuen Namen vergeben und neue DLL erstellen (Assembly File).

netsend_opalis5

Nun müssen die Commands für die DLL festgelegt werden. Das erfolgt über den ADD Button. Namen vergeben und Parameter hinzufügen.

Als Parameter müssen die Optionen der msg.exe gesetzt werden. Es wird der Computername, User sowie die Message benötigt.

msg $(User) /server:$(Computer) $(Message)

netsend_opalis8


Abschliessend die eigene eigene DLL erstellen.


In einer Opalis Policy kann man jetzt diese Dll mit dem „Invoke .NET“-Objekt nutzen:

netsend_opalis11

netsend_opalis12

Einmal starten und wir sehen das Ergebnis:

netsend_opalis13

Dienstag, den 01. März 2011 um 14:33 Uhr

SCO_gross

Adam Hall, Product Manager für Opalis, hat in diesem Blog weitere Details zu System Center Orchestrator veröffentlicht: http://blogs.technet.com/b/scorch/archive/2011/05/17/what-to-expect-in-the-system-center-orchestrator-beta.aspx

Bemerkenswert ist, dass:

      • die allgenmeine Struktur gegenüber dem Vorgänger Opalis gleich bleibt und damit Ihre jetztigen Investitionen in Opalis geschützt werden.
      • System Center Orchestrator nach bisherigen Angaben ausschliesslich unter Windows 2008 R2 und SQL 2008 R2 unterstützt sein wird.
      • Der Import von Policies aus Opalis nach System Center Orchestrator unterstützt wird, der Import von System Center Orchestrator Exports aber nicht.
Mittwoch, den 18. Mai 2011 um 10:34 Uhr

SCO_gross

In der jetztigen beta Version von Microsoft System Center Orchestrator sind weder der "Legacy Mode" für Runbooks noch die "Legacy Objects" verfügbar. Die derzeitigen Aussagen von Microsoft lassen darauf schliessen, dass es auch in der RTM Version so sein wird.

Achten Sie daher jetzt schon beim Design neuer Policies (künftiger Name: "Runbooks") darauf, dass Sie keine "Legacy Objects" verwenden und dass Ihre Policies im "Pipeline Mode" laufen (können). Im "Pipeline Mode" werden ja bekanntlich mehrere Start-Objekte oder Schleifen zwischen Objekten (künftiger Name: "Activties") nicht unterstützt.

Dienstag, den 21. Juni 2011 um 08:31 Uhr

SCO_gross

In der beta Version von Microsoft System Center Orchestrator sind derzeit noch keine Integration Packs enthalten.

Ein Registrieren, Verteilen, Konfigurieren und Benutzen der Integration Packs für System Center, die mit Opalis 6.3 ausgeliefert wurden, ist aber in dieser beta Version von Microsoft System Center Orchestrator möglich. Ebenfalls sind auch viele andere unter Windows 2008 R2 lauffähigen Integration Packs von Opalis 6.3 mit der beta Version von Microsoft System Center Orchestrator benutzbar.

Test des SCOM IPs in Orchestartor beta

Mittwoch, den 22. Juni 2011 um 21:07 Uhr

SCO_gross

Der Import von Opalis OIS_Export-Dateien ist in der beta Version von Orchestrator beta möglich. Microsoft hatte bereits angekündigt, dass es eine Möglichkeit gibt, Policies von Opalis nach Runbooks von Orchestrator zu übeführen. Es ist zu erwarten, dass es hier noch ein beschriebenes Verfahren vielleicht sogar ein Utilty für geben wird.

Schon jetzt können aber bereits Policies von Opalis per Export und Import in die beta Version Orchestrator überführt werden. Wichtig zum einen ist, dass Integration Packs der verwendeten Activities vor dem Import in Orchestrator bereits registriert sind, zum andernen dürfen für den Export keine Legacy-Objekte verwendet werden. Legacy-Mode und Legacy-Objekte sind in der aktuellen beta Version von Orchestrator nicht unterstützt!

alt

alt

Montag, den 27. Juni 2011 um 12:06 Uhr

SCO_gross

In dem SCOrch Team-Blog listet Adam Hall die Standard Activities  der beta Version von Orchestrator auf:
http://blogs.technet.com/b/scorch/archive/2011/06/22/leveraging-the-power-of-the-orchestrator-out-of-box-standard-activities.aspx

Wenn man sich diese Standard Activities anschaut, fühlt man sich sehr stark an die Foundation Objects von Opalis erinnert. Die Abschnitte "System Activities", "Scheduling Activities", "Monitoring Activities", "File Management Activities", "Email Activities", "Notification Activities", "Utilities Activities" und "Text File Management Activities" enthalten die gleichen Activities in der derselben Aufteilung, wie wir es in den Foundation Objects von Opalis kennen.
Der Bereich „Runbook Control Activities“ lässt sich auch leicht zu dem Bereich „Workflow Control“ von Opalis zuordnen und die darin enthaltenden Objekte auch: "Initialize Data"

Der Abschnitt „Legacy Objects“ ist aber im Runbook Designer nicht mehr enthalten. Achten Sie deshalb schon jetzt beim Design Ihrer Policies darauf, dass diese keine Legacy Objects“ enthalten, wenn Sie planen, Ihre jetzigen Policies später als Runbooks in Orchestrator laufen zu lassen.

Mittwoch, den 29. Juni 2011 um 06:47 Uhr

SCO_gross

In dem System Center Orchestrator Team Blog sind die ersten beiden Integration Packs für Orchestrator 2012 angekündigt. Diese stehen bereits zum Download bereit:

Wie wir heute in dem beta-Programm erfahren haben, wird zurzeit sehr viel Entwicklungsarbeit in Integration Packs von HP-Produkten gesteckt.

Ein Managementpack zur Überwachung von Orchestrator mit Operations Manager (SCOM) wird es wahrscheinlich nach der RTM von Orchestrator geben.

Donnerstag, den 30. Juni 2011 um 18:40 Uhr

scopalis_logo

Sicher ist vielen die Möglichkeit bekannt, dass man mit Hilfe des "Run .Net Script" Objektes in Opalis-Workflows Powershell-Befehle einbinden kann. Eine sehr gute Möglichkeit, um Powershell-Befehle in seine Opalis-Workflows mit Variablen oder "Pulished Data" einzubinden!

Bei manchen Kunden besteht aber die Anforderung, dass

  • die Powershell-Skripte auf einem anderen System als den Opalis Action Servern ausgeführt werden müssen.
  • die Powershell-Skripte außerhalb von Opalis gepflegt werden sollen.

Hier liegt nahe, das "Run Program"-Objekt zu nehmen und dort das Powershell-Skript als Parameter aufzurufen, "powershell -file C:\temp\pscommand.ps1".

runprogrammconfig

Leider wird das „Run Program“-Objekt dann von selbst nicht beendet.

log

Man muss in dem „Advanced“-Tab des „Run Program“-Objektes „Wait for the completion of the program -Terminate after n minutes“  konfigurieren.

Wenn man aber diese Behle am Endes des  Powershell-Skriptes setzt, wird das „Run Program“-Objekt erfolgreich beendet:
$objCurrentPSProcess = [System.Diagnostics.Process]::GetCurrentProcess();
Stop-Process -Id $objCurrentPSProcess.ID;

logn_new

Dienstag, den 09. August 2011 um 18:02 Uhr

SCO_gross

In einem früheren Blogeintrag hatten wir bereits darüber informiert, dass der sogenannte "Legacy Mode" und die sogenannten "Legacy Objekte" von dem Opalis-Nachfolger MS System Center Orchestrator 2012 nicht mehr unterstützt werden.

Wenn Ihre Opalis Policies auch später als Runbooks in Orchestrator laufen sollen, muss eventuell bei den Policies im "Legacy Mode" auch etwas am Design geändert werden.
Viele Kunden nutzen eine Schleife, um Aufträge geordnet nacheinander aus einer Textdatei auszulesen.
Eine Policy könnte also einen folgenden Aufbau haben:

legacy

Diese Policy wird in MS System Center Orchestrator 2012 nicht mehr lauffähig sein, weil eine Schleife zwischen mehreren Objekten im Pipeline Mode nicht möglich ist. Man muss die Policy umstellen.

Eine Möglichkeit ist, die (legacy) Policy in zwei Runbooks aufzuteilen.
Die Haupt Policy hat diese Struktur.

starter

In dem "Internal Loop" bei dem "Invoke Runbook"-Objekt ("Trigger Policy") wird so lange das ausführende "Child Runbook" gestartet, bis diesse meldet, dass das Dateiende erreicht ist.

looping

Die ausführende "Child Runbook" hat diesen Aufbau:

child

Zum Überführen Ihrer Opalis Policies zu Orchestrator Runbooks ist neben dem Austausch der "Legacy Objects"  auch mitunter ein Redesign von Policies nötig, wenn die Struktur  nicht vom "Pipline Mode" unterstützt wird.

Montag, den 15. August 2011 um 13:15 Uhr

scopalis_logo

Es kommt sehr selten vor, aber es kann passieren:  Eine nachfolgende Activtiy wir mehr als einmal  getriggert, obwohl die Activtiy, die vorher ausgeführt wurde, nur ein Ergebnis hat und auch ‚Flatten‘ aktiviert ist.
Grund dafür sind zwei Links zwischen  denselben Start und Ziel-Activities:

policy

Dies kann z.B. in sehr seltenen Fällen passieren, wenn man Objekte kopiert.

Mit dieser Abfrage kann man diese identifizieren:

;WITH CTE
AS
(
SELECT DISTINCT SourceObject, TargetObject, Count(*) OVER(PARTITION BY TargetObject, SourceObject) AS CountDups
FROM LINKS INNER JOIN
                      OBJECTS ON LINKS.UniqueID = OBJECTS.UniqueID
WHERE (OBJECTS.Deleted IS NULL OR OBJECTS.Deleted = 0)
      AND (OBJECTS.Enabled = 1)
)

SELECT     FOLDERS.Name AS FolderName, POLICIES.Name AS PolicyName, OBJECTS.Name AS SourceObjectName, CTE.CountDups AS Number
FROM         CTE INNER JOIN
                      OBJECTS ON CTE.SourceObject = OBJECTS.UniqueID INNER JOIN
                      POLICIES ON OBJECTS.ParentID = POLICIES.UniqueID INNER JOIN
                      FOLDERS ON POLICIES.ParentID = FOLDERS.UniqueID
WHERE CTE.CountDups > 1 AND OBJECTS.Enabled = 1
            AND (FOLDERS.Deleted IS NULL OR FOLDERS.Deleted = 0)
            AND (POLICIES.Deleted IS NULL OR POLICIES.Deleted = 0)

query-result

Dienstag, den 25. Oktober 2011 um 07:13 Uhr
Seite 1 von 4