ZIP ins Program Files entpacken...
ZIP ins Program Files entpacken...
Hallo zusammen,
ich bin neu bei Opsi. Könnte mir jemand einfachste OpsiScript zum Zip-Datei ins "Program Files" entpacken hier einfügen?
Ich bin schon dritte Tag mit shellCall, powershellCall, trap, Get-Process, getOutStreamFrom, takeString und unzählige Google-Beispiele beschäftigt und funktioniert nichts. Theoretisch am einfachsten wäre mit PowerShell da die Expand-Archive-Funktion schon eingebaut ist, aber wenn es noch einfacher geht - gerne. So simple wie möglich, ohne Prüfungen, ob da genug Platz ist usw. Wir gehen davon aus, dass die Quell-Datei da ist, Client-PC an, "C:\Program Files\" ist auch vorhanden. Jetzt möchte ich ein Opsi-Packet erstellen, auf Opsi-Server hochladen und anschließend, das Opsi-Packet "zip_test", "on_demand" auf PC01 auspacken. Natürlich Opsi-Server soll Rückmeldung bekommen: hat's geklappt oder nicht.
Danke im Voraus.
Grüß
Tadls
ich bin neu bei Opsi. Könnte mir jemand einfachste OpsiScript zum Zip-Datei ins "Program Files" entpacken hier einfügen?
Ich bin schon dritte Tag mit shellCall, powershellCall, trap, Get-Process, getOutStreamFrom, takeString und unzählige Google-Beispiele beschäftigt und funktioniert nichts. Theoretisch am einfachsten wäre mit PowerShell da die Expand-Archive-Funktion schon eingebaut ist, aber wenn es noch einfacher geht - gerne. So simple wie möglich, ohne Prüfungen, ob da genug Platz ist usw. Wir gehen davon aus, dass die Quell-Datei da ist, Client-PC an, "C:\Program Files\" ist auch vorhanden. Jetzt möchte ich ein Opsi-Packet erstellen, auf Opsi-Server hochladen und anschließend, das Opsi-Packet "zip_test", "on_demand" auf PC01 auspacken. Natürlich Opsi-Server soll Rückmeldung bekommen: hat's geklappt oder nicht.
Danke im Voraus.
Grüß
Tadls
Re: ZIP ins Program Files entpacken...
Wenn du dazu 7zip benutzt ist das relativ einfach. Es gibt auch andere unzip Programme, die sich einfach über Kommandozeile bedienen lassen.
Der Befehl für 7zip ist
Voraussetzung ist, dass 7zip im path eingetragen ist. Sonst müsstest du
LG
Thore
Der Befehl für 7zip ist
Code: Alles auswählen
7z x %Scriptpath%\datei.zip -o"C:\Program Files\" -y
Code: Alles auswählen
<Pfad zu 7zip>\7z x %Scriptpath%\datei.zip -o"C:\Program Files\" -y
Thore
Re: ZIP ins Program Files entpacken...
Solang die Zip keine Ordner enthält, kannst du "copy" mit dem "x" parameter in einer Files-Sektion nutzen.
Siehe: https://download.uib.de/opsi4.1/documen ... inst-files
Falls du das Zip erstellst, wäre es auch einfacher direkt ein SFX mittels 7zip zuerstellen und das dann über Parameter -y und -o<outputpfad> zu entpacken (kannst einfach über eine Winbatch-Sektion machen).
Für Beispiele schau im OPSI-Wiki, da gibts reichlich Stoff.
Siehe: https://download.uib.de/opsi4.1/documen ... inst-files
Falls du das Zip erstellst, wäre es auch einfacher direkt ein SFX mittels 7zip zuerstellen und das dann über Parameter -y und -o<outputpfad> zu entpacken (kannst einfach über eine Winbatch-Sektion machen).
Für Beispiele schau im OPSI-Wiki, da gibts reichlich Stoff.
Re: ZIP ins Program Files entpacken...
Hallo zusammen,
danke für die Hinweise. Leider es ist grundsätzlich ein Ordner mit Unterordnern (so was wie portable Versionen von Software).
Zu dem Aufruf mit 7zip - ich wollte vermeiden extra Software, wenn man Expand-Archive "on-Bord" hat. Trotzdem habe ich versucht.
Aufruf über winst32.exe.
Ergebnis in opsi-script.log
Also gut!? Leider nicht. Gibt's gar nichts entpackt im Program Files...
Mit PackageBuilder bearbeitet, aufs Server hochgeladen, opsi-Reload und "on_demand" ausführen.
(halbe Minute später)
Oberfläche zeigt "installed, success (setup) 1.0-151" (wie gewollt).
In "Program Files (x86)" nichts da.
Ich glaube, geht um Zugriffsrechte. Komisch, da opsi-Service läuft mit administrativen Rechten...
danke für die Hinweise. Leider es ist grundsätzlich ein Ordner mit Unterordnern (so was wie portable Versionen von Software).
Zu dem Aufruf mit 7zip - ich wollte vermeiden extra Software, wenn man Expand-Archive "on-Bord" hat. Trotzdem habe ich versucht.
Code: Alles auswählen
[Winbatch_RUN7ZIP]
"%programfiles64dir%\7-zip\7z.exe" -x %Scriptpath%\gr.zip -o'%programfiles32dir%' -y"
Ergebnis in opsi-script.log
Code: Alles auswählen
(44) [1] [Jun 06 17:03:14:387] opsi-script running with admin privileges
(45) [1] [Jun 06 17:03:14:392] opsi-script running in standard script mode
(46) [1] [Jun 06 17:03:14:398] executing: "C:\Program Files (x86)\opsi.org\opsi-client-agent\opsi-winst\winst32.exe"
(47) [1] [Jun 06 17:03:14:404] system infos:
(48) (ANONYMIZED)
(51) [1] [Jun 06 17:03:14:432] DEU - System default locale
(53) [1] [Jun 06 17:03:14:443] MS Windows 10.0 64 Bit, Edition: PRODUCT_PROFESSIONAL
(54) [1] [Jun 06 17:03:14:452]
(72) [5] [Jun 06 17:03:14:616] Execution of: Winbatch_RUN7ZIP
(73) [5] [Jun 06 17:03:14:622]
(78) [1] [Jun 06 17:03:15:734] ___________________
(79) [1] [Jun 06 17:03:15:742] script finished: success
(80) [1] [Jun 06 17:03:15:751] 0 errors
(81) [1] [Jun 06 17:03:15:759] 0 warnings
Mit PackageBuilder bearbeitet, aufs Server hochgeladen, opsi-Reload und "on_demand" ausführen.
(halbe Minute später)
Oberfläche zeigt "installed, success (setup) 1.0-151" (wie gewollt).
In "Program Files (x86)" nichts da.
Code: Alles auswählen
(126) [1] [Jun 06 17:14:25:898] [grtest] opsi service version : 4
(127) [1] [Jun 06 17:14:25:898] [grtest]
(143) [5] [Jun 06 17:14:25:971] [grtest] Execution of: Winbatch_RUN7ZIP
(144) [5] [Jun 06 17:14:25:971] [grtest]
(149) [1] [Jun 06 17:14:26:996] [grtest] ___________________
(150) [1] [Jun 06 17:14:26:996] [grtest] script finished: success
(151) [1] [Jun 06 17:14:26:996] [grtest] 0 errors
(152) [1] [Jun 06 17:14:26:996] [grtest] 0 warnings
(153) [1] [Jun 06 17:14:26:997] [grtest]
(154) [1] [Jun 06 17:14:26:997] [grtest] installed product: grtest Version: 1.0-151
Re: ZIP ins Program Files entpacken...
Hallo,
das hier klappt bei mir:
Beste Grüße
Thomas
das hier klappt bei mir:
Code: Alles auswählen
[Actions]
powershellCall('Expand-Archive -LiteralPath "%scriptpath%\abc.zip" -DestinationPath "%programfiles32dir%"')
Thomas
Kein Support per DM!
_________________________
opsi support - https://www.uib.de/
For productive opsi installations we recommend support contracts.
_________________________
opsi support - https://www.uib.de/
For productive opsi installations we recommend support contracts.
Re: ZIP ins Program Files entpacken...
Bei mir auch! Danke!
Ich habe vorher so was getestet - ging's nicht. Jetzt geht aber auch... Seltsam...
Ich habe vorher so was getestet - ging's nicht. Jetzt geht aber auch... Seltsam...
Code: Alles auswählen
powershellCall('Expand-Archive %ScriptDir%\' + $Datei$ + ' ' + $ZielOrdner$ )
- SisterOfMercy
- Beiträge: 1522
- Registriert: 22 Jun 2012, 19:18
Re: ZIP ins Program Files entpacken...
You should show your entire script, I guess you're missing a part in the actions-part.Tadls hat geschrieben:Hallo zusammen,
danke für die Hinweise. Leider es ist grundsätzlich ein Ordner mit Unterordnern (so was wie portable Versionen von Software).
Zu dem Aufruf mit 7zip - ich wollte vermeiden extra Software, wenn man Expand-Archive "on-Bord" hat. Trotzdem habe ich versucht.
My pseudocode for this operation:
- copy files to local drive
- extract files
- remove unneeded files
Has anybody tested if copying the archive files first makes sense? Hmm, maybe I should test that myself one time.
Code: Alles auswählen
[Actions]
comment "Copy files"
Files_install_64 /64Bit
comment "Extract files"
Winbatch_extract_64 /64Bit
comment "Cleanup files"
Files_cleanup_64 /64Bit
endif
[Winbatch_extract_64]
"$InstallDir64$\7z.exe" x -r -y "$InstallDir64$\ProgramData.7z" -o"$InstallDir64$\"
[Files_install_64]
copy "%ScriptPath%\files\7z.*" "$InstallDir64$"
copy "%ScriptPath%\files\ProgramData.7z" "$InstallDir64$"
[Files_cleanup_64]
delete -f "$InstallDir64$\7z.dll"
delete -f "$InstallDir64$\7z.exe"
delete -f "$InstallDir64$\ProgramData.7z"
Code: Alles auswählen
[Winbatch_extract_64]
"$InstallDir64$\extract\7z.exe" x -y -an -air!"$InstallDir64$\extract\*.tar.bz2" -r -o"$InstallDir64$\extract\"
"$InstallDir64$\extract\7z.exe" x -y -an -air!"$InstallDir64$\extract\*.tar" -r -o"$InstallDir64$\"
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!