ExecWith_powershell

MGringel
Beiträge: 3
Registriert: 08 Nov 2021, 12:32

ExecWith_powershell

Beitrag von MGringel »

Hallo zusammen,

ich arbeite gerade an einem Office 2019 Paket. Office 2019 ist eine ClickToRun Installation.

Eine Silent Installation über Opsi für meine Zwecke habe ich hinbekommen. Benötigt habe ich dafür eine Config xml die ich auf der MS Seite erstellt habe.

Möchte ich das Paket jedoch individuell gestalten, in dem ich dem Benutzer die Möglichkeit gebe seinen eigenen Aktivierungskey über OpsiConfiged einzugeben, stoße ich auf ein Problem.

Über Powershell kann ich die config.xml einlesen und den Standart KEy gegen meinen ersetzen.

Code: Alles auswählen

$configXML=get-content -Path C:\tmp\officekonf\Konfiguration.xml
$configXML=$configXML.Replace("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX","7XXXV-N89LT-KOOOO-QABCD-TJH11")
Set-Content -Path C:\tmp\officekonf\Konfiguration.xml $configXML
Soweit tauscht es den XXX Key gegen den echten aus.

Versuche ich das mit folgendem Script:

Code: Alles auswählen

ExecWith_powershell powershell.exe

[ExecWith_powershell]
Set-ExecutionPolicy Unrestricted -Force
$configXML=get-content -Path C:\tmp\Offinst\Konfiguration.xml
$configXML=$configXML.Replace("XXXXX-XXXXX-XXXXX-XXXXX-XXXXX","$licencekey$")
Set-Content -Path C:\tmp\Offinst\Konfig.xml $configXML
Set-ExecutionPolicy restricted -Force
meckert Powershell natürlich über die Variable, verständlich wegen den Dollarzeichen (vermute ich)
Steht statt der Variable der eigentliche Schlüssel darin funktioniert es ohne Probleme. Ich möchte aber gerne das er den Inhalt der Benutzervariable nimmt.

Leider komme ich hier auch mit powershellcall nicht weiter.

Für einen Hinweis wäre ich sehr dankbar.

Viele Grüße

Michael
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: ExecWith_powershell

Beitrag von mattiasmab »

Hi,

generell sollte das gehen, da ich etwas sehr ähnliches benutze. Ich war immer davon ausgegangen, dass die Sektion für jede definierte Variable einen Replace durchführt und andere Dollar im Code somit keinen Einfluss haben können (also keine Rückwärtsauswertung stattfindet). Hier mal ein paar Anmerkungen zum Testen:
  • Ist die Variable wirklich genau so definiert UND auch zugewiesen - Vertipper ausgeschlossen. Was sagt ein Log auf Loglevel 7?
  • Die ExecutionPolicy kann dir in die Quere kommen, da die Anweisung IN dem Script nichts bringt, wenn das Script auf Grund dessen gar nicht erst gestartet werden kann. Schreibe hinter deinem "ExecWith_powershell powershell.exe" noch den Powershell-Parameter " -Executionpolicy bypass".
  • Du könntest das auch direkt mit OPSI-Script machen (bin zwar auch oft mit der Powershell unterwegs, aber vielleicht passt es dir) - das wäre sowas wie:

    Code: Alles auswählen

    PatchTextFile_ConfigXML "C:\tmp\officekonf\Konfiguration.xml" /encoding "utf8"
    
    [PatchTextFile_ConfigXML]
    FindLine_Containing "XXXXX-XXXXX-XXXXX-XXXXX-XXXXX"
    DeleteTheLine
    InsertLine '    <Product ID="WASAUCHIMMERINDERXMLSTAND" PIDKEY="12345-12345-12345-12345-12345">'
    
    Wichtig ist nur, dass es die komplette Zeile ersetzt...
MGringel
Beiträge: 3
Registriert: 08 Nov 2021, 12:32

Re: ExecWith_powershell

Beitrag von MGringel »

Hallo Matthias,

vielen Dank für deine Unterstützung.

Es lag wohl an dem Parameter " -Executionpolicy bypass" im Funktionsaufruf.


Nachdem in ihn eingetragen hatte funktionierte es. ;)

Viele Grüße

Michael
alexanderb
Beiträge: 6
Registriert: 11 Nov 2021, 10:50

Re: ExecWith_powershell

Beitrag von alexanderb »

.
Zuletzt geändert von alexanderb am 30 Jan 2022, 16:24, insgesamt 1-mal geändert.
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: ExecWith_powershell

Beitrag von mattiasmab »

alexanderb hat geschrieben: 11 Nov 2021, 11:20 Ich würde mich freuen wenn du mir erklären könntest wie du die silentinstallation gemach hast oder vielleiht deine xml Datei mit mir teilen könntest.
Wenn du Interesse hast, kann ich dir ebenfalls ein Paket dazu bereitstellen. Die Aktivierung wird über eine Paketeigenschaft gesteuert und kann nachträglich per ActionRequest "Update" (anstatt dem normalen Setup) dann aktiviert werden. Falls man MS nciht recht trauen mag, ob er das nicht einfach doch mache - da laufen ja immer seltsame Prozesse - könnte man den Key testweise auch erst weglassen und ebenfalls erst mit dem Update setzen. Schreibe mir ansonsten eine PM mit einer Adresse, an den ich dir einen Link schicken kann - hier wäre das einfach zu groß und der Link wäre eh nur wenige Stunden/Tage gültig.
alexanderb
Beiträge: 6
Registriert: 11 Nov 2021, 10:50

Re: ExecWith_powershell

Beitrag von alexanderb »

.
Zuletzt geändert von alexanderb am 30 Jan 2022, 16:24, insgesamt 2-mal geändert.
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: ExecWith_powershell

Beitrag von mattiasmab »

alexanderb hat geschrieben: 11 Nov 2021, 15:41 Leider hab ich keine möglichkeit gefunden dir eine PM zuschreiben.
Habe ich eben in einem anderen Kontext auch gemerkt - ist deaktiviert - sorry :roll:
Mail ist raus - kannst deine Mail-Adresse also gerne aus dem Beitrag löschen/editieren. Chio
alexanderb
Beiträge: 6
Registriert: 11 Nov 2021, 10:50

Re: ExecWith_powershell

Beitrag von alexanderb »

.
Zuletzt geändert von alexanderb am 30 Jan 2022, 16:25, insgesamt 1-mal geändert.
mattiasmab
Beiträge: 90
Registriert: 29 Jan 2021, 12:17

Re: ExecWith_powershell

Beitrag von mattiasmab »

Da ist ein Fehler in dem Script in Zeile 214 - dort fehlt das abschließende einfache Hochkomma. Das ist mir nie aufgefallen, da ich bislang ausschließlich ein "custom_config" File genutzt hatte und somit diese ganzen Sachen gar nicht greifen bzw. aufgerufen werden...
alexanderb
Beiträge: 6
Registriert: 11 Nov 2021, 10:50

Re: ExecWith_powershell

Beitrag von alexanderb »

.
Zuletzt geändert von alexanderb am 30 Jan 2022, 16:25, insgesamt 2-mal geändert.
Antworten