OhGottSkripte 0 Geschrieben 30. Januar 2023 Melden Teilen Geschrieben 30. Januar 2023 Hallo, ich bin leider ein nicht allzu begabter Skripteschreiber, muss jetzt aber trotzdem ran. Aufgabe ist wie folgt: Ein Programm soll mit Hilfe eines herstellereigenen Tools deinstalliert werden, was in zwei Schritten funktioniert: C:\toolverzeichnis\tool.bat aufrufen --> Neustart --> C:\toolverzeichnis\tool2.bat aufrufen --> fertig. Nach dem zweiten Durchlauf soll durch die gleiche Batch eine neue Software installiert werden, die als MSI-Paket vorliegt. Das Tool muß in einer DOS-Box laufen, die mit Adminrechten gestartet wird (erkennbar an dem "Administrator: Eingabeaufforderung" im Fenstertitel), sonst schlägt die (De-)Installation der Software fehl. Damit sich das Ganze automatisieren läßt, soll nach dem Start der Batch keine weitere manuelle Eingabe mehr erforderlich sein. Das ganze auf Server 2012R2 bis Server 2019. Ich habe auf den Servern Adminrechte. Die Idee ist folgende: Beim Durchlauf des ersten Skriptes erstelle ich einen geplanten Task, der einmal nach dem Reboot läuft, den Start der zweiten Batch anstößt und sich dann löscht. Der zweite Batch erledigt dann den zweiten Durchlauf der Deinstallation sowie die Installation der neuen Software. Das Problem: Ich habe folgende Zeile in meiner Batch stehen schtasks /create /tn Aufgabe_nach_Neustart /tr C:\temp\Aufgabe_nach_Neustart.bat /sc onstart /ru system /rl highest /z Die DOS-Box läuft nicht mit Adminrechten, so dass weder deinstalliert noch installiert wird. Trotz SYSTEM als User und höchsten Rechten. Ich habe keine Ahnung, wie man eine Box mit Adminrechten skriptgesteuert öffnet. Die Lösung: hier kämt ihr dann ins Spiel... Es dankt im Voraus OhGott Zitieren Link zu diesem Kommentar
testperson 1.677 Geschrieben 30. Januar 2023 Melden Teilen Geschrieben 30. Januar 2023 Hi, benötigt die (De-) Installation evtl. eine interaktiv angemeldete Session? Generell solltest du ein wenig Logging in deine Scripte einbauen, dann siehst du ggfs. was noch wie passiert / funktioniert und kommst dem Problem näher. Evtl. findest du schon etwas, wenn du das Script von Hand in einer interaktiven Session mittels PsExec (PsExec.exe -s -i cmd.exe (PsExec - Sysinternals | Microsoft Learn)) als SYSTEM ausführst. Gruß Jan Zitieren Link zu diesem Kommentar
OhGottSkripte 0 Geschrieben 30. Januar 2023 Autor Melden Teilen Geschrieben 30. Januar 2023 Hallo, ich habe ein Logging (ein großes Wort :) ) eingebaut. Daher weiß ich, das der Task anläuft, denn es wird eine Textdatei mit entsprechendem Namen erzeugt. Das es nicht geklappt hat, zeigt ein Blick in das Log des Deinstallationstools. Wenn ich die Batch, die im Task gestartet wird, in einer von Hand geöffneten Admin-DOS-Box ausführe, dann läuft alles wie gewünscht. All das bringt mich zu der Vermutung, das die Rechte nicht ausreichen. Viele Grüße OhGott Zitieren Link zu diesem Kommentar
Osel 0 Geschrieben 30. Januar 2023 Melden Teilen Geschrieben 30. Januar 2023 Moin, ich vergesse sehr gern bei automatisierten Scripts das Arbeitsverzeichnis richtig zu setzen. Starte ich meine Scripte manuell funktioniert alles - als Task nicht ... Zitieren Link zu diesem Kommentar
OhGottSkripte 0 Geschrieben 30. Januar 2023 Autor Melden Teilen Geschrieben 30. Januar 2023 (bearbeitet) Hallo, das Deinstallationstool loggt standardmäßig nach %temp%, aber ich kann testen, was passiert, wenn ich ein Arbeitsverzeichnis setze. Wäre aber b***d unschön, wenn das der Grund wäre, denn das läßt sich über schtasks nicht konfigurieren, glaube ich. Viele Grüße OhGott bearbeitet 30. Januar 2023 von OhGottSkripte Zitieren Link zu diesem Kommentar
OhGottSkripte 0 Geschrieben 30. Januar 2023 Autor Melden Teilen Geschrieben 30. Januar 2023 Hallo, ein Kollege brachte gerade das hier auf: man kann aus einer Powershell mit dem Befehl Start-Process C:\windows\syswow64\cmd.exe /C"C:\temp\Zweiter_Lauf_nach_Neustart.bat" -Verb runAs eine DOS-Box mit erhöhten Rechten öffnen. Auch die Übergabe der Batchdatei funktioniert. Jedenfalls, wenn ich den Befehl in einem Powershell-Fenster eingebe. Gebe ich die Zeile in die Aufgabe ein, passiert leider gar nichts. Sollte ich diesen Ansatz weiter verfolgen? Viele Grüße OhGott Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 30. Januar 2023 Melden Teilen Geschrieben 30. Januar 2023 (bearbeitet) vor 2 Stunden schrieb OhGottSkripte: Das Problem: Ich habe folgende Zeile in meiner Batch stehen schtasks /create /tn Aufgabe_nach_Neustart /tr C:\temp\Aufgabe_nach_Neustart.bat /sc onstart /ru system /rl highest /z Hast Du diese Kommandozeile mal manuell ausgeführt? Wird der Task angelegt? Eigentlich solltest Du CMD.exe starten und die BATCH Datei als Argument "/C C:\temp\Aufgabe_nach_Neustart.bat" übergeben. ... der Pfad stimmt so? bearbeitet 30. Januar 2023 von BOfH_666 Zitieren Link zu diesem Kommentar
screamager 2 Geschrieben 30. Januar 2023 Melden Teilen Geschrieben 30. Januar 2023 Moin! Um die Frage von Jan nochmal aufzugreifen: Kann die Deinstallation denn überhaupt "silent" erfolgen? Grüße! Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 31. Januar 2023 Melden Teilen Geschrieben 31. Januar 2023 Am 30.1.2023 um 15:09 schrieb OhGottSkripte: Die DOS-Box läuft nicht mit Adminrechten, so dass weder deinstalliert noch installiert wird. Läuft sie überhaupt? Und wenn ja: Passiert da irgendwas, das ein User-Interface hat? Das geht nicht... Zitieren Link zu diesem Kommentar
OhGottSkripte 0 Geschrieben 1. Februar 2023 Autor Melden Teilen Geschrieben 1. Februar 2023 Am 30.1.2023 um 21:24 schrieb screamager: Um die Frage von Jan nochmal aufzugreifen: Kann die Deinstallation denn überhaupt "silent" erfolgen? vor 10 Stunden schrieb daabm: Läuft sie überhaupt? Und wenn ja: Passiert da irgendwas, das ein User-Interface hat? Das geht nicht... Ja, ja und nein. Das Tool was aufgerufen wird ist die SophosZap.exe. Der einzige Zweck ist es, Sophosprodukte rückstandsfrei von einem Rechner zu entfernen. Das Ding hat keine GUI, nach dem Start arbeitet es eine oder zwei Minuten vor sich hin und meldet sich dann zurück. Das die Batch losläuft kann ich daran sehen, das eine Textdatei "Aufgabe gestartet" in C:\Temp angelegt wird (dritte Zeile in der Batch). Was ich heute versuchen werde ist, das Tool direkt als SYSTEM-User mit erhöhten Rechten laufen zu lassen. Mal schauen, ob das funktioniert und ob man ggf per && die Befehle einfach hintereinander hängen kann. Viele Grüße OhGott P.S.: Sorry für die Verzögerung, mich hat es gestern krankheitsbedingt kurz niedergestreckt. Zitieren Link zu diesem Kommentar
testperson 1.677 Geschrieben 1. Februar 2023 Melden Teilen Geschrieben 1. Februar 2023 Hi, wo liegt denn die SophosZap.exe? Willst du die von einem Share aus starten / kopieren, wo SYSTEM evtl. keinen Zugriff hat? Hilfreich wäre natürlich auch, wenn du das Script einfach mal hier in einem Code-Block formatiert postest. Gruß Jan Zitieren Link zu diesem Kommentar
OhGottSkripte 0 Geschrieben 2. Februar 2023 Autor Melden Teilen Geschrieben 2. Februar 2023 (bearbeitet) echo off set pfad=C:\temp echo Task ist gestartet > %pfad%\Task_gestartet.txt C: cd \temp rem Sophos deinstallieren sophoszap.exe --confirm if %errorlevel%==1 goto zaprun_error echo "Zap Run 1 erfolgreich">%pfad%\Run_1_Erfolg.txt copy %temp%\sophos*.txt %pfad%\SophosZap_Run_1.txt :zaprun_1 echo Ein Fehler ist aufgetreten > %pfad%\Fehler.txt Bitte schön.. Denkbar einfach. Die Task_gestartet.txt wird erzeugt, aber danach passiert nichts mehr. Das Log in %temp% bleibt unberührt bzw enthält genau die Einträge, die man bekommt, wenn das Tool nicht genug Rechte hat. Startet man die Batch manuell aus einer DOS-Box mit erhöhten Rechten, läuft alles wie gewollt durch. [EDIT] Alles liegt lokal unter C:\temp. An keiner Stelle des Skriptes wird auf irgendetwas außerhalb dieses Verzeichnisses zugegriffen. Viele Grüße OhGott bearbeitet 2. Februar 2023 von OhGottSkripte Ein Nachtrag Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 2. Februar 2023 Melden Teilen Geschrieben 2. Februar 2023 Ich würde erwarten, dass der Schalter vor 10 Minuten schrieb OhGottSkripte: --confirm eine Abfrage erzeugt, die um eine Bestätigung bittet und interaktiv beantwortet werden muss ... kann das sein? Wenn das so ist, solltest Du das auf jeden Fall entfernen. Gibt es keinen Schalter für "silent"? Zitieren Link zu diesem Kommentar
OhGottSkripte 0 Geschrieben 2. Februar 2023 Autor Melden Teilen Geschrieben 2. Februar 2023 vor 1 Minute schrieb BOfH_666: eine Abfrage erzeugt, die um eine Bestätigung bittet und interaktiv beantwortet werden muss ... kann das sein? Nein, der Schalter dient nur zur Bestätigung, das man den Befehl wirklich ausführen will. Im Sinne von "Ich bestätige, das ich das wirklich will." und nicht im Sinne von "Frage mich, ob ich das wirklich will." Es ist auch das einzige Argument, das das Tool akzeptiert und auch nur genau so. Zwei Minuszeichen, alles klein geschrieben. Viele Grüße OhGott Zitieren Link zu diesem Kommentar
Gulp 254 Geschrieben 2. Februar 2023 Melden Teilen Geschrieben 2. Februar 2023 Hmm findet der denn die sophoszap so überhaupt? Ich würde da einen expliziten Pfad für setzen oder mindestens sicherstellen, dass die exe über eine valide PATH Variable gefunden werden kann ..... Grüsse Gulp Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.