An Powershell 2.0 script übergebene Argumente a eingebundenes Modul psm1 weiterleiten
Hallo @ All
Wir stellen wegen SCCM 2012 und Windows 8 langsam um auf Powershell. Die ganzen Funktionalitäten die bisher in script.vbs und Modul.inc abgearbeitet wurden sollen in Powersehll übernommen werden.
Mein Problem:
Wir rufen für die automatisierte Installation von Software eine VBS auf in der alle "Doings" stehen. die VBS bindet ein INC-Modul ein (nicht wirklich ein Modul) in dem alle Funktionen abgelegt sind die die eigentliche Arbeit machen. Unter anderem die Parameter auslesen mit denen die VBS aufgerufen wird:
BSP: Install.vbs /nomsg /noreboot (/nomsg = Keine Verständigung des Users, /noreboot = reboot wird unterbunden auch wenn ein Programm das verlangt)
Bisher war der Vorgang so, dass die Funktion für das Auslesen der Argumente die an die VBS in der Commandline übergeben werden (ist im Modul abgelegt), einfach angestoßen wurde >>ReadArguments<< und die Funktion hat die Argumente geholt (Set objArgs = WScript.Arguments) und entsprechend weiter verarbeitet.
Da wir keinen VBS-Code in Powershell verwenden wollen, bzw. so weit wie möglich verhindern wollen, suche ich beinahe verzweifelt an einer entsprechen Möglichkeit in Powershell. Finde aber nicht viel.
Hat eventuell einer von Euch eine idee wie ich das umsetzen könnte?
Danke für die Hilfe!
Mayho
PS: wegen der Abwärtskompatibilität zu XP (derzeit immer noch vorhanden) ist PS 2.0 - kopatibilität erforderlich
EDIT:
habe die Losung gefunden. Ist etwas umständlich aber besser als nichts:
1) Powershell.exe script.ps1 Arg1 Arg2 Arg3
2) Im Script.ps1 den Code am Anfang: ForEach ($arg in $args) {$CommandlineParams = $CommandlineParams + $arg + "|"}
3) FUNCTION ([string]$CommandlineParams)
4) den String auswerten
Bin aber gerne für Verbesserungesvorschläge offen!
Grüße!!
Wir stellen wegen SCCM 2012 und Windows 8 langsam um auf Powershell. Die ganzen Funktionalitäten die bisher in script.vbs und Modul.inc abgearbeitet wurden sollen in Powersehll übernommen werden.
Mein Problem:
Wir rufen für die automatisierte Installation von Software eine VBS auf in der alle "Doings" stehen. die VBS bindet ein INC-Modul ein (nicht wirklich ein Modul) in dem alle Funktionen abgelegt sind die die eigentliche Arbeit machen. Unter anderem die Parameter auslesen mit denen die VBS aufgerufen wird:
BSP: Install.vbs /nomsg /noreboot (/nomsg = Keine Verständigung des Users, /noreboot = reboot wird unterbunden auch wenn ein Programm das verlangt)
Bisher war der Vorgang so, dass die Funktion für das Auslesen der Argumente die an die VBS in der Commandline übergeben werden (ist im Modul abgelegt), einfach angestoßen wurde >>ReadArguments<< und die Funktion hat die Argumente geholt (Set objArgs = WScript.Arguments) und entsprechend weiter verarbeitet.
Da wir keinen VBS-Code in Powershell verwenden wollen, bzw. so weit wie möglich verhindern wollen, suche ich beinahe verzweifelt an einer entsprechen Möglichkeit in Powershell. Finde aber nicht viel.
Hat eventuell einer von Euch eine idee wie ich das umsetzen könnte?
Danke für die Hilfe!
Mayho
PS: wegen der Abwärtskompatibilität zu XP (derzeit immer noch vorhanden) ist PS 2.0 - kopatibilität erforderlich
EDIT:
habe die Losung gefunden. Ist etwas umständlich aber besser als nichts:
1) Powershell.exe script.ps1 Arg1 Arg2 Arg3
2) Im Script.ps1 den Code am Anfang: ForEach ($arg in $args) {$CommandlineParams = $CommandlineParams + $arg + "|"}
3) FUNCTION ([string]$CommandlineParams)
4) den String auswerten
Bin aber gerne für Verbesserungesvorschläge offen!
Grüße!!
Please also mark the comments that contributed to the solution of the article
Content-ID: 208047
Url: https://administrator.de/contentid/208047
Printed on: October 6, 2024 at 16:10 o'clock
2 Comments
Latest comment
Hallo mayho33,
alles über commandline Parameter der Powershell kannst du hier nachlesen:
https://devcentral.f5.com/blogs/us/powershell-abcs-p-is-for-parameters#. ...
Grüsse Uwe
alles über commandline Parameter der Powershell kannst du hier nachlesen:
https://devcentral.f5.com/blogs/us/powershell-abcs-p-is-for-parameters#. ...
Grüsse Uwe