ZIP ins Program Files entpacken...

Antworten
Tadls
Beiträge: 3
Registriert: 05 Jun 2019, 09:23

ZIP ins Program Files entpacken...

Beitrag von Tadls »

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
tklms
Beiträge: 17
Registriert: 10 Aug 2017, 08:38

Re: ZIP ins Program Files entpacken...

Beitrag von tklms »

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

Code: Alles auswählen

7z x %Scriptpath%\datei.zip -o"C:\Program Files\" -y
Voraussetzung ist, dass 7zip im path eingetragen ist. Sonst müsstest du

Code: Alles auswählen

<Pfad zu 7zip>\7z x %Scriptpath%\datei.zip -o"C:\Program Files\" -y
LG
Thore
AlexB
Beiträge: 80
Registriert: 07 Mär 2017, 17:41

Re: ZIP ins Program Files entpacken...

Beitrag von AlexB »

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.
Tadls
Beiträge: 3
Registriert: 05 Jun 2019, 09:23

Re: ZIP ins Program Files entpacken...

Beitrag von Tadls »

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.

Code: Alles auswählen

[Winbatch_RUN7ZIP]
"%programfiles64dir%\7-zip\7z.exe" -x %Scriptpath%\gr.zip -o'%programfiles32dir%' -y"
Aufruf über winst32.exe.
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
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.

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
Ich glaube, geht um Zugriffsrechte. Komisch, da opsi-Service läuft mit administrativen Rechten...
Benutzeravatar
ThomasT
uib-Team
Beiträge: 529
Registriert: 26 Jun 2013, 12:26

Re: ZIP ins Program Files entpacken...

Beitrag von ThomasT »

Hallo,

das hier klappt bei mir:

Code: Alles auswählen

[Actions]
powershellCall('Expand-Archive -LiteralPath "%scriptpath%\abc.zip" -DestinationPath "%programfiles32dir%"')
Beste Grüße

Thomas
Kein Support per DM!
_________________________
opsi support - https://www.uib.de/
For productive opsi installations we recommend support contracts.
Tadls
Beiträge: 3
Registriert: 05 Jun 2019, 09:23

Re: ZIP ins Program Files entpacken...

Beitrag von Tadls »

Bei mir auch! Danke!
Ich habe vorher so was getestet - ging's nicht. Jetzt geht aber auch... Seltsam...

Code: Alles auswählen

powershellCall('Expand-Archive %ScriptDir%\' + $Datei$ + ' ' + $ZielOrdner$  )
Benutzeravatar
SisterOfMercy
Beiträge: 1522
Registriert: 22 Jun 2012, 19:18

Re: ZIP ins Program Files entpacken...

Beitrag von SisterOfMercy »

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.
You should show your entire script, I guess you're missing a part in the actions-part.

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"
This is a special case for qgis, which comes in a load of .tar.bz2 files in various subdirectories:

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!
Antworten