Jump to content
Sign in to follow this  
Netranger

automatisierte Deinstallation mit MS-Installer

Recommended Posts

Hi

 

Vielleicht kann mir ja hier einer helfen.

 

Ich schreibe im Moment ein Script mit dem ich die automatische Softwareverteilung im Netzwerk steuere.

Beim Installieren ist es ja sehr komfortabel mit den *.msi - Dateien, da diese voll automatisch ablaufen.

 

Nun will ich noch die Option der Deinstallation mit einbauen, die von msiexec mit der Option /x ja unterstützt wird.

Nur stört mich dabei, daß jedes mal bei der Ausführung nocheinmal nachgefragt wird, ob man die Software wirklich deinstallieren will.

 

Wie kann ich nun den Dialog standardmäßig mit Ja beantworten lassen?

 

Auch wäre noch wichtig, wenn Fehlermeldungen, die bei der Deinstallation autauchen unterdrückt werden könnten.

 

Vielen Dank schonmal im voraus.

 

MfG Netranger

Share this post


Link to post

Hi,

 

hast Du es schon mal mit der Option /qn probiert oder /qb- ? Bei der Installation wird dann enstprechend die Ausgabe und die Bestätigungen unterdrückt.

 

Eine andere Alternative wäre per vbscript einen entsprechenden Tastencode zu senden, der dann die Eingabe bestätigt.

 

Für weitere Optionen gibt es übrigens von Microsoft eine Übersicht der Befehlszeilenoptionen mit der TID 314881

 

Gruß

 

Torsten Beck

Share this post


Link to post

danke schonmal.

 

zum ersten tip:

 

/x und /q scheinen sich leider irgendwie nicht zu vertragen

 

 

zum zweiten tip, über vbscript:

 

Ich kenn mich leider mit VBScripts fast überhaupt nicht aus.

Könntest du mir mal bitte kurz erklären, wie das auszusehen hat?

Share this post


Link to post

Hallo,

 

hier ein vbscript Beispiel:

 

Folgenden Text in eine Datei mit Endung .vbs kopieren:

 

Option Explicit

 

Dim objShell

 

Set objShell = WScript.CreateObject("WScript.Shell")

 

objshell.Run("msiexec /x Pfad\dateiname.msi")

wscript.Sleep(500)

objShell.AppActivate("installer")

objShell.SendKeys("j")

 

Mal ausprobieren...

 

Gruß

 

torsten

Share this post


Link to post

Hi,

 

wenn Du schon MSI Files verteilen wills, warum nutzt Du nicht RIS von W2k ?

Da sparst Du Dir eine wenig an Arbeit mit ;)

 

Und umsonst ist es auch noch ;)

 

 

Gruß,

 

Roi Danton

Share this post


Link to post

Hi,

 

@Roi Danton

 

es gibt immer mal wieder Gründe es nicht mit Grouppolicy zu tun (RIS ist für Rechner Installationen mit und ohne weiterer Software, Policys sind gut für Nachinstallationen und Softwareverteilung).

 

1) z.B. läßt sich eine zeitlich gesteuerte Softwareverteilung mit Ghost Enterprise edition realisieren, mit exe files, msi, files and so on.. Damit läßt sich die Netzwerklast tagsüber reduzieren und die Nerven und Anwender schonen.

2) Policys können nicht efectiv meines Wissens die Last verteilen, wenn sich 20 Rechner gerade einschalten, und Du neue Software installierst, dann halt bei gerade 20 Rechnern... Und die Anwender warten.

3) unattend / RIS Installationen ohne Image, sauber aufgesetzt.

 

uso.

 

Gruß

 

 

Torsten

Share this post


Link to post

Ja, ich hätte es ja gerne mit RIS oder Gruppenrichtlinien gemacht, nur der Haken dabei war, daß mir mein Praktikumsbetreuer nach der Vorstellung meines ersten Softwareverteilungsprinzip mitgeteilt hat, daß wir noch mindestens 2 Jahre lang kein Active Directory im Betrieb haben werden.

 

Das hat dann wohl meine ganzen Planungen über den Haufen geworfen.

 

Und Programme von anderen Herstellern sind bei den wirtschaftlichen Verhältnissen im Moment leider auch nicht sehr beliebt, auch wenn sie nichtmal so arg teuer wären.

 

 

Ich werde es dann Morgen mal mit VBScript versuchen.

 

2 Fragen dazu:

 

sleep(500)

sind des millisekunden?

 

sendkeys("j")

kann ich da auch unicode- bzw ascii-zeichen reinschreiben für return zum beispiel? und wie siehts mit längeren ausdrücken aus (zum beispiel ein pfad)? einfach die keys aneinandergereiht?

 

in JScript sollte es doch wohl dann auch die ähnliche syntax haben, oder?

Weil im Betrieb gibt es glaub ich mehr Java-Programmierer als welche für Visual Basic.

 

 

 

Und nochwas, was mir gerade eingefallen ist, was interessant wäre:

Kann ich die Einträge, die unter der Systemsteuerung in Software eingetragen sind auch irgendwie mit windows-eigenen Befehlen starten?

Da ich manche Programme nicht über MSI-Dateien installieren kann (die Hersteller stellen keine zu Verfügung und selbst erstellen schlägt bei diesen Programmen fehl), wäre das interessant, um dann an die Deinstallation ranzukommen.

Share this post


Link to post

Hi,

 

also ich habe mit dem vbscript Teil gerade mein Office deinstalliert...

 

Zu Deinen Fragen:

 

1) Es sind Milisekunden

2) die sendkeys Methode kann auch längere Texte senden, bzw. Du kannst auch mehrere sendkeys hintereinander schreiben.

 

Für Parameter schau mal unter http://home.wtal.de/aw/texte/windows/script/WSHExtend.htm

 

sonst sprengt es die Message.

 

Es gehen prinzipiell alle Tasten inkl. CTRL und ALT.

 

Ich benutze eigentlich nur vbscript, weil es ähnlich zu vba ist und man so nicht zwei scriptsprachen im Kopf haben muß, in javascript wird es aber ähnlich gehen.

 

Bis denn

 

Torsten

Share this post


Link to post

Also, des mit dem VBScript hat fast das gewünschte Ergebnis gebracht.

Nur damit hat sich jetzt auch wieder ein neues Problem aufgetan.

 

In meiner Verwirklichung der Softwareverteilung verwende ich fast ausschließlich Batch-Dateien. Das Script in diesen Dateien aufzurufen ist ja kein Problem. Das Problem liegt ehr darin, daß die Batch-Datei nicht pausiert, solange die Deinstallation läuft, die durch das Script gestartet wurde.

Die Folge ist, daß meine Batch-Datei dann schon das nächste Programm deinstallieren will, noch bevor die vorhergehende Deinstallation beendet wurde.

Dadurch wird dann auch der 2. Scriptaufruf zu früh aufgerufen, in dem dann der Tastendruck für die Bestätigung ausgeführt wird, wenn das Dialogfeld zum bestätigen noch gar nicht erschienen ist.

 

 

Gibt es da eine Möglichkeit, die Batch-Datei solange pausieren zu lassen?

 

 

Und natürlich bin ich über Antworten immernoch sehr erfreut, um unter Systemsteuerung\Software an die Deinstallationsprgramme ranzukommen.

Share this post


Link to post

Hi,

 

´(fast) alles ist möglich, man erweitere einfach ein bisschen Deine Batchdatei....

 

mit

 

start /w name_des_skriptes

 

Dabei wird gewartet, bis das andere Skript abgearbeitet wird.

 

Wenn Du eh rumbatchst, dann schau Dir mal die NT Befehle genauer an, es gibt sehr mächtige dabei, z.b. for kann in Dateien suchen...

 

oder noch ein wenig vbscript, wo Du erst in der Registry nach Bestimmten Einträge suchst und dann (de)installierst.

 

Also, noch viel Spaß beim Skripten

 

Achso, Deinstallationsprg unter Systemsteurung...

 

Die Einträge, wie die PRG zu deinstallieren sind, findest Du in Deinem Computer...

 

Häh? (war gemein, geb ich ja zu)

 

In der Registry steht zu der Software, die in der Systemsteuerung unter Software erscheint, welcher Befehl inkl. Parameter für die Deinstallation nötig ist.

 

HKEY_LOKAL_Maschine\software\microsoft\windows\currentversion\installer\userdata\SID\products\installpropertis

 

da Dein Eintrag uninstallstring anschauen.

 

die SID sind entsprechende der Benutzer evtl. verschieden, ist eine Zeichenfolge mit S-und dann Zahlen

 

Gruß

 

Torsten

Share this post


Link to post
Original geschrieben von torstenbeck

Hi,

 

@Roi Danton

 

es gibt immer mal wieder Gründe es nicht mit Grouppolicy zu tun (RIS ist für Rechner Installationen mit und ohne weiterer Software, Policys sind gut für Nachinstallationen und Softwareverteilung).

 

1) z.B. läßt sich eine zeitlich gesteuerte Softwareverteilung mit Ghost Enterprise edition realisieren, mit exe files, msi, files and so on.. Damit läßt sich die Netzwerklast tagsüber reduzieren und die Nerven und Anwender schonen.

2) Policys können nicht efectiv meines Wissens die Last verteilen, wenn sich 20 Rechner gerade einschalten, und Du neue Software installierst, dann halt bei gerade 20 Rechnern... Und die Anwender warten.

3) unattend / RIS Installationen ohne Image, sauber aufgesetzt.

 

uso.

 

Gruß

 

 

Torsten

 

Ich denke mal das ist alles nur eine Frage der Organisation.

Das die Installation mit RIS sehr einfachgehalten ist, heist nicht, das man es nicht erweitern kann.

Wenn Du den gleichen Eifer in RIS stecken würdest, hättest Du wahrscheinlich schon längst eine schicke kleine Sofwareverteilung die all Deinen Anvorderungen entsprcht.

Einschließlich der Zeitgesteuerten Verteilung.

Überleg mal. Mit Dos oder VBS kannst Du nichts Verteilen.

Du schreibst dann Skripte die das für Dich tun.

Mach das selbe mit RIS (RIS kann schon Softwareverteilen)

Nur noch ein bisschen drumherum und fertig.

Nur weil in einem Prospekt stand das geht nicht ???

 

Gruß,

 

Roi Danton

Share this post


Link to post

Hallo,

 

@Roi Danton:

 

Völlig richtig, ich habe auch schon mit RIS Installationen inkl. Softwareverteilung durchgeführt. Aber nur in einer W2k Domäne. In einer NT4 Domäne kannst Du z.B. noch kein RIS Implementieren.

Bei netranger ist kein Active Directory die nächsten zwei Jahre vorhanden, also is nich. Ich kennen auch noch Netzwerke, wo es erst nächstes Jahr Active Directory gibt.

Hätte ich vielleicht noch etwas ausführlicher erläutern sollen.

 

Was mich aber interessiert:

 

Wie hast Du es denn gemacht, verwendest Du RIS und Grouppolicys um zeitgesteuert zu arbeiten, wenn ja, sei so net und schmeiß mal bitte ein paar Anhaltspunkte rüber....

 

Mercy

 

Gruß

 

Torsten

Share this post


Link to post
Original geschrieben von torstenbeck

Hallo,

 

Was mich aber interessiert:

 

Wie hast Du es denn gemacht, verwendest Du RIS und Grouppolicys um zeitgesteuert zu arbeiten, wenn ja, sei so net und schmeiß mal bitte ein paar Anhaltspunkte rüber....

 

Mercy

 

Gruß

 

Torsten

Gemacht habe ich es noch nicht ;)

Aber ich stelle es mir nicht sehr kompliziert vor.

Du könntest ein Skript schreiben, welches einen Client in eine bestimmt OU verschiebt.

Das Zeitgesteuert laufen lassen und gut ist.

 

Andere Methode,

da die Rechner ja nur nach einem Reboot oder zwangsaktualisierung der Gruppenrichtlinie anfangen zu installieren, kannst Du alle PC in eine OU verschieben und dann zeitgesteuert einen shutdown einleiten.

Oder erst nur 10 Rechner in eine OU und dann rebooten.

 

Sollte möglich sein!

 

Gruß,

 

Roi Danton

Share this post


Link to post

Hi,

 

Ideen muß man haben. Greif ich bei Gelegenheit mal auf

 

Okay, ich setz am liebsten setze ich Ghost Enterprise Edition ein. Da kann ich zeitgesteuert Rechner neu installieren, Imagen, Software, Patches, Servicepacks installieren, Rechner einschalten und hochfahren und runterfahren und so on. Deswegen brauch ich maximal noch Skripts zum installieren.

Oder unattend installationen und dann per skript die Software drauf.

 

Aber Deine Variante hat aauch einen gewissen Charme, ging dann mit onboard Mittel. Werde ich mal prüfen...

 

Schreib Doch mal, welche Mittel Du / Ihr einsetzt

 

Gruß

 

Torsten

Share this post


Link to post
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...