nina93
Goto Top

PDQ Deploy - Package Zuweisung via Powershell nach Rename

Hallo Zusammen,

derzeit versuche ich etwas unsere Client Installation aufzuhübschen und mehr zu Automatisieren.

Wir verwenden für das Software-Deployment PDQ Deploy und Inventory 19.3.360, was im Großen und Ganzen auch recht fluffig funktioniert.
Für die OS Installation haben wir noch einen WDS Server, der via unattend.xml Zufallsnamen an die Rechner verteilt.

Nun habe ich mir für das Umbenennen auf den richtigen Hostname bereits ein kleines Tool im Inventory gestrickt. Funktioniert simple, aber dafür recht zuverlässig.
Als weiteren Schritt möchte ich nun aber, dass nach dem Rename noch unser Package für die Standard Software angestoßen wird.
Hierfür gibt es auch einen Powershell Befehl der einfach als Package Step ein Invoke vom Client auf den Server ausführt und das Package antriggert.

invoke-command -computername 'pdqdeploy' -ScriptBlock {
pdqdeploy Deploy -package "testerich" -Targets "@(NewComputerName)"
}


Soweit so unspektakulär...
Jetz zum Problem bei der ganzen Sache, sobald der Rename durch gegangen ist, geht entweder das Reconnecting in die Hose, weil der AD Sync bereits durch gelaufen ist und es den Rechnername auf den das Deploy geht nicht mehr existiert oder es schlägt fehl, weil der Sync noch nicht durch ist und der neue Rechnername für PDQ noch nicht existiert...

Gibt es eine Möglichkeit für eine Serverseitige Aktion ähnlich wie bei Baramundi? Dann könnte ich das Starten des Folgepackage einfach direkt über den Server triggern statt als Invoke über den Client.
Ich habe beim Googlen leider bisher nichts zielführendes dazu gefunden.

Hoffe einer von euch Schlaufüchsen, hat hier eine Idee!
screenshot 2024-07-11 150425

Content-ID: 3198245374

Url: https://administrator.de/contentid/3198245374

Ausgedruckt am: 21.11.2024 um 20:11 Uhr

gravelking
gravelking 11.07.2024 um 15:48:10 Uhr
Goto Top
Servus,

hast du es schon mal mit einem "Heartbeat Schedule" auf deinem Standard-Package versucht?


Gruß
Nina93
Nina93 11.07.2024 um 16:40:02 Uhr
Goto Top
Hi,

Es geht um ein Paket das nur gezielt auf den neu installierten Rechnern ausgeführt werden darf, da jede Menge Reboots Autologin und co enthalten sind. Das auf einem produktiv Rechner, wäre Katastrophe.
Wir hatten es früher dann mit einem Heartbeat Schedule und als Target eine OU in der die neuen Rechner erst einmal landen. Hat aber sehr unzuverlässig funktioniert.
Deshalb möchte ich es eben jetzt gezielt auf den Rechner, den ich gerade in der Mache habe zuweisen lassen.

Hatte wie geschrieben auf eine Art serverseitge Action gehofft.

Grüße
beck2oldschool
beck2oldschool 12.07.2024 um 08:28:28 Uhr
Goto Top
Hab ich das richtig verstanden? Du benennst den Rechner um und willst direkt danach dem Rechner mit dem neuen Namen ein weiteres Package bzw Step hinterher schieben?
Wenn dem so ist, müsste man zum einen warten bis der Sync durch ist, damit vor allem das AD vollumfänglich bescheid weiß. Vor allem der/die DNS Server müssen den neuen Namen kennen. Und wenn es dann auf dem PDQ Server besonders schnell gehen muss, mache ich auf dem Server immer ein
ipconfig /flushdns

Damit ist der DNS Cache für PDQ geleert und muss neu angefragt werden.
Nina93
Nina93 12.07.2024 um 08:58:22 Uhr
Goto Top
Guten Morgen,
Ich möchte ein Paket, dass im ersten Schritt den Rechner umbenennt, inkl Reboot und allem drum und dran, das dann diesem Rechner (der nun ja einen neuen Namen hat) ein weiteres Package zuweist.
Ich habe zuerst getestet alles in einem Package zu machen, hatte dabei aber das Problem, dass der Reconnect vom deploy auf den "alten" Name geht und deshalb fehlschlägt.

Wie kann ich das "ipconfig /flushdns" in mein Package einbauen? Wenn ich das richtig verstehe, muss diese Aktion serverseitig ausgeführt werden.
Eine Möglichkeit für eine serverseitige Action habe ich bisher in den Packages aber nicht gefunden. Wenn es hierfür eine Möglichkeit gäbe, wäre mein ursprüngliches Problem ebenfalls gelöst. Dann könnte ich die Zuweisung des zweiten Package einfach als Serveraction laufen lassen.
beck2oldschool
beck2oldschool 12.07.2024 um 09:16:50 Uhr
Goto Top
Entweder mit einem eigenen Package und dieses als Nested Package integrieren. Ob das funktioniert weiß ich aber nicht, weil du den Cache ja von dem Server löschen willst und du einen speziellen Rechner nur über den Scheduler ansprechen kannst. Alternativ könnte ein neuer Step mit
Invoke-Command -ScriptBlock {Clear-DnsClientCache} -ComputerName PDQ_Server
funktionieren.
Aber das musst du mal ausprobieren ob das so funktioniert. Das Package wird ja auf dem PC ausgerollt und der PC führt den Flush dann auf dem Server aus.

Interessante Frage. Wir rätseln hier auch gerade zu zweit face-wink
beck2oldschool
beck2oldschool 12.07.2024 um 09:24:31 Uhr
Goto Top
Nina93
Nina93 12.07.2024 aktualisiert um 10:09:45 Uhr
Goto Top
Ich finde solche Sachen auch immer echt spannend :D

Das als Invoke zu starten wird leider nicht funktionieren.
Habe in meinen Tests bereits mit Invoke versucht, das zweite Package über den im Anfangspost stehenden Befehl zu starten. Klappt aber nicht weil der Reconnect nach dem Reboot vom Rename schon scheitert und der Invoke damit gar nicht erst gestartet wird. Egal ob im gleichen PS-Script oder als eigener Step.
Ohne Rename funktioniert das antriggern eines weiteren Packets über den Befehl wunderprächtig. face-smile
Damit lässt sich sicherlich auch noch das ein oder andere basteln.

Der Link erklärt im Grunde das gleiche wie der Befehl macht, nur dass hier direkt das pdqdeploy cmdlet genutzt wird:

invoke-command -computername 'Deployserver' -ScriptBlock {
pdqdeploy Deploy -package "testerich" -Targets "IrgendeinClient"
}

Viele Grüße auch an den Kollegen / die Kollegin und danke fürs "mit hirnen" ;)
beck2oldschool
beck2oldschool 12.07.2024 um 10:17:09 Uhr
Goto Top
Zitat von @Nina93:
Klappt aber nicht weil der Reconnect nach dem Reboot vom Rename schon scheitert und der Invoke damit gar nicht erst gestartet wird. Egal ob im gleichen PS-Script oder als eigener Step.

Verdammt, ja logisch
Nina93
Nina93 12.07.2024 um 10:42:17 Uhr
Goto Top
Ich zerbreche mir auch schon seit über 2 Tagen den Kopf darüber.
Habe jetzt mal ein Ticket direkt bei PDQ gestellt. Mal sehen ob es doch eine Möglichkeit für serverseitige actionen gibt.

Ich werde berichten.
Nina93
Nina93 16.07.2024 um 10:37:08 Uhr
Goto Top
Kurze Info für alle die den Post mit verfolgen, bisher kam noch nichts hilfreiches vom PDQ Support zurück.
Nina93
Nina93 17.07.2024 um 08:16:26 Uhr
Goto Top
Der PDQ Support hat mir geantwortet, dass es keine Möglichkeit gibt aus einem Deployment heraus eine serverseitige Aktion zu starten.
Ich habe inzwischen auch mal getestet, ob man das nicht mit einem "Scanprofil" hinpfuschen könnte. Aber auch bei dem Scanprofilen ist es scheinbar so, dass die Scripte, wie bei Deployments, einfach auf dem Client ausgeführt werden.
Also funktioniert auch dieser Weg nicht...
Falls noch irgendwem etwas einfällt, was man testen könnte, schreibt gerne einen Kommentar.
Ansonsten werde ich dieses Thema wohl vorerst ruhen lassen müssen. face-sad
screenshot 2024-07-17 081105
Nina93
Lösung Nina93 23.07.2024 um 12:27:05 Uhr
Goto Top
Workaround gefunden :D

Ich habe das Problem inzwischen gelöst bekommen, wenn auch etwas von hinten durchs Auge.

Ich verwende nun den RegistryKey "RunOnce" um ein Powershell Script aufzuführen, das via Invoke das Package am Server aufruft.

Ab hier Details falls es jemanden genauer interessiert face-smile

Schritt 1:
1.1 ich habe in PDQ Inventory ein Tool gebastlet, bei dem ich den neuen Hostname eingebe und anschließend das Rename-Package in PDQ Deploy antrigger
screenshot 2024-07-23 120524
1.2 Rename-Package
screenshot 2024-07-23 121728
1.2.1 Autologin auf Installationsuser
1.2.2 Reboot des System
1.2.3 Unter HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce einen Schlüssel erstellen der ein Powershell Script aufruft, in dem via Invoke auf den PDQ Server das gewünschte Deployment angestoßen wird und als Target der zum Zeitpunkt des Ausführens aktuelle Name des Hosts übergeben wird
screenshot 2024-07-23 122357
1.2.4 Rename des Hosts mit Namen aus dem PDQ Tool inkl Reboot
1.3 Nach dem Reboot hat der Client den neuen Namen, der Installationsuser wird angemeldet und der RunOnce Key startet das Script, das das weitere Package antriggert
screenshot 2024-07-23 121424