Seite 1 von 1

[gelöst] programfiles in Powershell Skript wird verbogen

Verfasst: 20 Dez 2018, 16:39
von SimonF
Hallo OPSI-Community,

in meinem Installationsskript soll am Ende noch ein Powershell Skript ausgeführt werden. Das Skript wird auch aufgerufen, dummerweise wird dabei der Pfad innerhalb des Powershell Skripts verbogen.

Im Powershell Skript steht:

Code: Alles auswählen

$sourcePath = ${env:programfiles}+"\VideoLAN\VLC"
Ausgabe im ISE (oder auch wenn ich es auf der Zielmaschine ausführe):
C:\Program Files\VideoLAN\VLC
Soweit ist alles OK.

Sobald ich den OPSI Job laufen lasse erhalte ich als Ausgabe des Powershell Skripts:
C:\Program Files (x86)\VideoLAN\VLC
Das ist nicht OK.

Mir ist schon aufgefallen, dass OPSI eine merkwürdige Interpretation von "%programfiles%" hat, denn ich lande damit im "Program Files (x86)" Verzeichnis. Damit kann ich arbeiten. Jetzt wird der Pfad im Powershell Skript verbogen, damit kann ich nicht arbeiten.

Kann ich OPSI verbieten mein Powershell Skript anzufassen?
Muss ich das Powershell Skript anders aufrufen?
Was mache ich falsch?

Ich kann mir absolut nicht vorstellen wo das verbogen wird und warum.
Ich habe schon im Netz gesucht, hier im Forum und in die Handbücher geschaut. Entweder ich habe den entscheidenden Punkt übersehen oder es gibt ihn tatsächlich nicht. Daher bin ich für jeden Hinweis und jede Hilfe dankbar.

Re: programfiles in Powershell Skript wird verbogen

Verfasst: 20 Dez 2018, 19:21
von bernd670
Hallo,

eventuell mit ExecWith und dem Modifier /64bit oder /SysNative.

Wenn Du mehr Hilfe benötigst, solltest Du uns dein Script zeigen.

Re: programfiles in Powershell Skript wird verbogen

Verfasst: 21 Dez 2018, 10:35
von holgerv
SimonF hat geschrieben: Kann ich OPSI verbieten mein Powershell Skript anzufassen?
Muss ich das Powershell Skript anders aufrufen?
Was mache ich falsch?
Dein Windows hat zwei PowerShell-Interpreter:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
und
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

Starte mal die powershell.exe unter "SysWOW64" und gib "${env:programfiles}" ein. - Du wirst sehen: opsi hat nichts verbogen, sondern die Windows-eigene Powershell verhält sich anders, als Du es erwartet hast.

Um das zu beheben, kannst Du Dich am Hinweis von Bernd670 orientieren.

Viel Erfolg!

Re: programfiles in Powershell Skript wird verbogen

Verfasst: 21 Dez 2018, 11:05
von SimonF
Hallo Bernd,

vielen Dank für deine rasche Antwort und den Hinweis. Tatsächlich hat es geholfen und sieht nun so aus:

Code: Alles auswählen

ExecWith_CreatShortcutsB "%System%\WindowsPowershell\v1.0\powershell.exe" WINST /SysNative

[ExecWith_CreatShortcutsB]
	."$TempDir$\$Executable3$"
==> /64Bit funktioniert auch

Warum es mit dem DosBatch nicht klappen will verstehe ich immer noch nicht. Ist mir auch weiterhin ein Rätsel, warum OPSI "%programfiles%" verbiegen muss.
Aber das wird sich sicher alles irgendwann ergeben.

Danke nochmal und schöne Weihnachten.

Re: programfiles in Powershell Skript wird verbogen

Verfasst: 21 Dez 2018, 11:23
von SimonF
holgerv hat geschrieben: Dein Windows hat zwei PowerShell-Interpreter:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
und
C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe

Starte mal die powershell.exe unter "SysWOW64" und gib "${env:programfiles}" ein. - Du wirst sehen: opsi hat nichts verbogen, sondern die Windows-eigene Powershell verhält sich anders, als Du es erwartet hast.
Hallo Holger,

Ok, so langsam ergibt sich ein Bild. Ich bin natürlich davon ausgegangen, dass OPSI nicht explizit die 32-Bit Variante von Powershell/CMD nutzt. Hatte im Handbuch zwar gelesen, dass OPSI eine 32-Bit Anwendung ist, aber das ist an mir vorbei gegangen...

Super, vielen Dank auch dir und schöne Weihnachten.