ich bin nun seit ein paar Tagen dran einen Bereitstellungsworkflow zu erstellen der folgendes machen soll:
User bestellt Service über Katalog
Aufgabe wird erstellt und muss erledigt werden > Wait for Activity
Sobald die Aufgabe abgeschlossen ist, soll ein EmpirumSoftwarepaket installiert werden
Soweit so gut, vom Prinzip funktioniert das ganze auch schon. Die Bereitstellung des Softwarepakets haben wir nun über ein Powershellscript gelöst, welches eine XML-Datei erzeugt und auf dem Empirumserver unter ..\Log\EAI_Jobs ablegt.
Powershellscript: (Noch nicht ganz fertig aber funktioniert soweit)
Code: Select all
Param([string]$computer,[string]$mac, [string]$domain)
Function ClientMoveToGroup ($pcnummer, $pcmac, $groupid, $domain)
{
[System.XML.XMLElement]$oXMLCommandType=$oXMLCommands.appendChild($oXMLDocument.CreateElement("ClientMoveToGroup"))
[System.XML.XMLElement]$oXMLParameter=$oXMLCommandType.appendChild($oXMLDocument.CreateElement("parameters"))
[System.XML.XMLElement]$oXMLGroupconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("GroupConfig"))
[System.XML.XMLElement]$oXMLGroupconfID=$oXMLGroupconf.appendChild($oXMLDocument.CreateElement("GroupID"))
[System.XML.XMLElement]$oXMLClientconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("ClientConfig"))
[System.XML.XMLElement]$oXMLClientName=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("ClientName"))
[System.XML.XMLElement]$oXMLClientDomain=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("Domain"))
[System.XML.XMLElement]$oXMLClientMac=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("MACAddress"))
[System.XML.XMLElement]$oXMLClientPXE=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("PXE"))
[System.XML.XMLElement]$oXMLClientDHCP=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("DHCP"))
$oXMLCommandType.setAttribute("ActionType","5")
$oXMLCommandType.setAttribute("ActionCode","10")
$oXMLCommandType.setAttribute("TargetType","1")
$oXMLGroupconfID.set_innertext($groupid)
$oXMLClientDHCP.set_innertext("1")
$oXMLClientPXE.set_innertext("1")
$oXMLClientMac.set_innertext($pcmac)
$oXMLClientName.set_innertext($pcnummer)
$oXMLClientDomain.set_innertext($domain)
}
Function ClientActivateSW ($pcnummer, $pcmac, $groupid, $domain)
{
[System.XML.XMLElement]$oXMLCommandType=$oXMLCommands.appendChild($oXMLDocument.CreateElement("ClientActivateSW"))
[System.XML.XMLElement]$oXMLParameter=$oXMLCommandType.appendChild($oXMLDocument.CreateElement("parameters"))
[System.XML.XMLElement]$oXMLGroupconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("GroupConfig"))
[System.XML.XMLElement]$oXMLGroupconfID=$oXMLGroupconf.appendChild($oXMLDocument.CreateElement("GroupID"))
[System.XML.XMLElement]$oXMLClientconf=$oXMLParameter.appendChild($oXMLDocument.CreateElement("ClientConfig"))
[System.XML.XMLElement]$oXMLClientName=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("ClientName"))
[System.XML.XMLElement]$oXMLClientDomain=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("Domain"))
[System.XML.XMLElement]$oXMLClientMac=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("MACAddress"))
[System.XML.XMLElement]$oXMLClientPXE=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("PXE"))
[System.XML.XMLElement]$oXMLClientDHCP=$oXMLClientconf.appendChild($oXMLDocument.CreateElement("DHCP"))
$oXMLCommandType.setAttribute("ActionType","6")
$oXMLCommandType.setAttribute("ActionCode","20")
$oXMLCommandType.setAttribute("TargetType","1")
$oXMLGroupconfID.set_innertext($groupid)
$oXMLClientDHCP.set_innertext("1")
$oXMLClientPXE.set_innertext("1")
$oXMLClientMac.set_innertext($pcmac)
$oXMLClientName.set_innertext($pcnummer)
$oXMLClientDomain.set_innertext($domain)
}
[string]$GroupID = "8B67F8AC-20D8-455F-BD24-77C741D4D58F"
[integer]$PXE = 1
[integer]$DHCP = 1
[string]$File = "\\HOSTNAME\test.xml"
# Neue XML Datei erzeugen
[System.XML.XMLDocument]$oXMLDocument=New-Object System.XML.XMLDocument
# XML Root-Knoten & ersten Subknoten anlegen
[System.XML.XMLElement]$oXMLRoot=$oXMLDocument.CreateElement("EmpTransport")
[System.XML.XMLElement]$oXMLDocument.appendChild($oXMLRoot)
[System.XML.XMLElement]$oXMLCommands=$oXMLRoot.appendChild($oXMLDocument.CreateElement("commands"))
# XML Struktur erzeugen - ClientMoveToGroup
ClientMoveToGroup -pcnummer $computer -pcmac $mac -groupID $GroupID -domain "DOMAIN"
ClientActivateSW -pcnummer $computer -pcmac $mac -groupID $GroupID -domain "DOMAIN
# Attribute anlegen
# XML Datei mit Werten befüllen
# XML Datei speichern
$oXMLDocument.Save($File)
Sobald das Paket installiert wurde > Workflow wird fortgesetzt
Fehler bei der Installation > Aufgabe erstellen
Wenn hier noch wer Ideen dafür hat, wie wir den Status, ob das Paket installiert wurde oder eben ein Fehler aufgetreten ist, mit dem Workflow abfragen können, immer her damit =).
Sven_Puth hatte hier schon die Idee die Empirum DB anzusprechen und auf
Code: Select all
SELECT * FROM VIEW_SW_DISTRIBUTION_EMPIRUM