arnonymous
Goto Top

Software auf Clients per Skript de-installieren

Moin,

habe hier ein vorhaben, wobei mir etwas die Erfahrung fehlt.

Ich habe ein Skript geschrieben, dass eine alte Programmversion deinstalliert, alle überbleibsel entfernt und daraufhin die neue Version installiert.
In der manuellen Ausführung funktioniert das soweit. Allerdings werden natürlich Adminrechte verlangt.

Dazu sollte das Skript dann auf allen Clientrechnern ausgeführt werden. Wie macht man das am Besten? Per GPO nehmen ich an?
Das Ganze sollte auf Computerebene ablaufen und auch nur einmal pro Client, damit das Ganze nicht bei jedem Start wieder anfängt.
Die benötigten Dateien liegen auf einer Freigabe auf dem Fileserver. Domänencomputer habe ich hier entsprechend berechtigt.
Ich habe schon mit Startskript experimentiert. Allerdings will das nicht funktionieren. Es passiert nichts.
Auf Userebene startet das Skript, verlangt dann aber wie gesagt Adminrechte.

Über Tipps bin ich dankbar.

Content-Key: 307358

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

Printed on: April 25, 2024 at 16:04 o'clock

Member: emeriks
Solution emeriks Jun 16, 2016 updated at 11:19:20 (UTC)
Goto Top
Hi,
wenn das eine einmalige Sache ist, dann schau Dir mal PSexec an.

Beachte: Mit PSexec gestartete Prozesse können nicht auf Shares zugreifen. Also musst Du das Script und alles was es benötigt zuvor in einen temporären Ordner auf dem Client kopieren.

z.B.
md \\client\c$\ordner
copy \\server\freigabe\ordner\*.* \\client\c$\ordner
psexec \\client /s C:\Ordner\Script.cmd
Vorausgesetzt, Du bist mit einem Konto angemeldet, welches auch am Remote Client Admin ist. Sonst
psexec \\client /s /u domain\useer /p paswort C:\Ordner\Script.cmd

/s lässt das als Local System starten.

E.
Member: DerWoWusste
Solution DerWoWusste Jun 16, 2016 at 11:19:51 (UTC)
Goto Top
Hi.

Startskript ist schon richtig. Natürlich muss das Skript komplett unattended ablaufen, also silent-Switches benutzen.
Zum Test: Lad Dir psexec runter und führe auf einem elevated command prompt aus:
psexec -s -i cmd

Die Shell, die sich dann öffnet läuft mit Systemrechten, genau wie das Startskript. Auf dieser Shell dann das Skript starten - es muss ohne Fehler durchlaufe und ohne Rückfragen.
Member: Gahmuret
Gahmuret Jun 16, 2016 at 11:57:52 (UTC)
Goto Top
Hi,

für gelegentliche Installationen habe ich mir eine PowerShell Schablone angelegt.

Darin werden die zu installierenden Computer festgelegt, die Installationsdateien kopiert, eine Remotesession aufgebaut, die Installation durchgeführt,
die Installationsdateien wieder entfernt und der Rechner heruntergefahren.

Je nachdem, ob die Installationsdateien als msi-Paket vorliegen, lässt sich das mehr oder weniger elegant lösen.

Das wäre die Funktion zur Deinstallation:
$arguments = @('/x ', 'C:\Temp\Programmname.msi', '/qn', '/norestart')  
(Start-Process -FilePath "msiexec.exe" -ArgumentList $arguments -Wait -PassThru).ExitCode  

Der Exit-Code wird abgefragt und bei Erfolg die Installation durchgeführt.

Solltest Du an dieser Version Interesse haben, schreib mir, dann kann ich dir weitere Details zukommen lassen.

VG Gahmuret
Member: ArnoNymous
ArnoNymous Jun 16, 2016 at 12:26:38 (UTC)
Goto Top
Moin,

mein Skript läuft doch. Allerdings erst 5 Minuten nach dem hochfahren. Da hat meine Geduld nicht für gereicht face-smile
Ich dachte diese 5 Minuten Verzögerung beziehen sich nur auf das Anmeldeskript, jedoch nciht aufs Startskript?

PSexec ist aber schonmal ein guter Tipp für die Zukunft.
Member: DerWoWusste
DerWoWusste Jun 16, 2016 at 12:41:37 (UTC)
Goto Top
Es gibt keine Startskriptverzögerung.
Hau mal als erste Zeile ein
md c:\los_gehts
rein, um sicher zu gehen.
Member: ArnoNymous
ArnoNymous Jun 16, 2016 at 13:02:21 (UTC)
Goto Top
Ja, läuft. Ich bin wohl einfach zu ungeduldig.
Schön wäre es, wenn die User sich erst anmelden könnten, wenn das Skript durch ist. Geht sowas?
Member: DerWoWusste
DerWoWusste Jun 16, 2016 updated at 13:05:45 (UTC)
Goto Top
Alles geht irgendwie. Du kannst per ntrights.exe lokale Privilegien wegnehmen und nach Ausführung wieder hergeben, zum Beispiel das Recht "lokale Anmeldung" der Gruppe "authenticated users" wegnehmen (So könnten sich nur noch lokale Admins anmelden).
Member: ArnoNymous
ArnoNymous Jun 16, 2016 at 14:09:09 (UTC)
Goto Top
Eine weitere Frage: Kann man denn das Ganze so konfigurieren, dass es nur einmal pro Client ausgeführt wird?
Member: sk
sk Jun 16, 2016 at 14:19:49 (UTC)
Goto Top
Warum das Rad neu erfinden? Schau Dir mal WPKG und vor allem WPKG-GP an
Member: emeriks
Solution emeriks Jun 16, 2016 at 14:23:33 (UTC)
Goto Top
Eine weitere Frage: Kann man denn das Ganze so konfigurieren, dass es nur einmal pro Client ausgeführt wird?
Setz Dir irgendwo ein Flag. Ertell eine Datei, ggf. mit einem bestimmten Inhalt, den Du prüfst. Oder einen Registry-Wert unter
HKLM\Software\DeinName
oder oder oder

E.