Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Ps1 und Commandline-Argumente like vbscript oder CMD

Frage Entwicklung Batch & Shell

Mitglied: mayho33

mayho33 (Level 2) - Jetzt verbinden

27.06.2014, aktualisiert 17:54 Uhr, 2109 Aufrufe, 7 Kommentare

Hallo @ All

Eventuell ist mein Ansatz komplett falsch, aber ich versuche folgendes Problem zu lösen und hoffe wieder mal auf Eure Hilfe:

Wir haben eine Install-Wrapper als cmdlet. Der enthält alle Funktionen usw. die wir zur Umsetzung der Installationen via SCCM 2012 R2 benötigen und ist lokal auf jedem Client installiert (installierte Applikationen auslesen, Deinstallieren, Installieren, usw.)

Angestoßen wird das ganze nun über eine "INSTALL.PS1" in der der Wrapper gesteuert wird.


vereinfachtes, symbolisches Beispiel der Install.ps1:
$env:_BootMode = "reboot"
$env:_NotificationMode = "silent"
$env:_InstallMode = "uninstall"
$env:_Kontext = "machine"

Start-Wrapper -Uninstall "Adobe Reader*"
Start-Wrapper -Uninstall "Irgend eine andere App"
Start-Wrapper -Install "$cdir\Paketname\ProgrammA.msi"
Start-Wrapper -Install "$cdir\Paketname\ProgrammB.exe" -Arguments "/VERYSILENT"
Start-Wrapper -RemoveShortCut ....
usw.

nun kommt es vor, dass z.B. bei einem Paket im Script (INSTALL.PS1) ein angegebener Reboot deaktiviert werden soll. Dazu möchte ich einfach im Program des SCCM-Pakets einen Parameter mitgeben können um nicht extra das Script ändern und somit ein Update der Distribution-Points antriggern zu müssen.

Bsp:
1cf56880bf094a77905dc3aef3478ebd - Klicke auf das Bild, um es zu vergrößern


Irgendwie stehe ich da aber vor einem unlösbaren Problem. Wenn ich der Install.ps1 testweise ein paar Argumente mitgebe, habe ich diese zwar in $args gespeichert und kann sie ausgeben, aber ich kann sie nicht weiterverarbeiten oder an den Wrapper übergeben.

Hat eventuell jemand einen Ansatz oder Lösungsvorschlag? Die Install.PS1 beinhaltet absichtlich keine Functions usw. sondern nur die Schritte die abgearbeitet werden soll. jede Logik ist in den Wrapper (CMDLET) ausgelagert.

Danke für eure Hilfe!

mayho
Mitglied: colinardo
27.06.2014, aktualisiert um 17:35 Uhr
Hallo mayho,
also wenn du im INSTALL.ps1 auf die Parameter bzw. Werte zugreifen kannst sollten sie auf jeden Fall auch an ein CMDlet weitergereicht werden können. Anstatt $args kannst du in der INSTALL.ps1 ganz am Anfang:
param($par1,$par2)
usw. deine gewünschten Parameter definieren, in dann in der INSTALL.ps1 an deinen Wrapper via Parameter übergeben .

Wie man Parameter korrekt an eine PS1 Datei übergibt kannst du hier nachlesen:
http://stackoverflow.com/questions/6359618/pass-parameter-from-batch-fi ...

Grüße Uwe
Bitte warten ..
Mitglied: Pjordorf
27.06.2014 um 17:14 Uhr
Hallo Uwe,

Zitat von colinardo:
Mir hat mein Sophos gerade gesagt das sich in dein Link ein Troj/JSRedir-OL versteckt. Oder spinnt mein Sophos?

Gruß,
Peter
Bitte warten ..
Mitglied: mayho33
27.06.2014 um 17:19 Uhr
Hallo Uwe (alias Lebensretter?)!

Also wenn du nicht wärst...Hast mir ja schon öfter aus der patsche geholfen. Werde ich mir Zuhause zu Gemüte führen. Vorausgesetzt mein AV sagt mir nicht das gleiche:
a023dfde4024581c52fed66c8a9501da - Klicke auf das Bild, um es zu vergrößern

lg Christian
Bitte warten ..
Mitglied: colinardo
27.06.2014, aktualisiert um 17:27 Uhr
Komisch die Seite hatte ich bisher immer ohne Probleme benutzt, die Virenscanner sind sich da zumindest nicht alle Einig:
https://www.virustotal.com/de/url/dfd0e9269fa2369236962117e42bb912c45843 ...
Die Mehrheit hält es für unbedenklich, ich checke das mal. Danke für die Info !
Bitte warten ..
Mitglied: mayho33
27.06.2014 um 17:29 Uhr
Tja, Mein Malwarebites am NB sagt mir ebenfalls: ...Bedrohung...wurde blokiert... usw.
Kannst du die betreffenden Stelle einfach mal Copy-Pasten?

mayho
Bitte warten ..
Mitglied: colinardo
LÖSUNG 27.06.2014, aktualisiert um 18:16 Uhr
Tja, Mein Malwarebites am NB sagt mir ebenfalls: ...Bedrohung...wurde blokiert... usw.
habe die Seite schon länger nicht mehr aufgerufen, und nur in meiner Bookmarkliste gehabt, die fliegt jetzt da raus
Kannst du die betreffenden Stelle einfach mal Copy-Pasten?
Methoden zum Starten von PS-Scripten aus Batch und Kommendozeilen heraus:
Hier gibt es unterschiedliche Methoden, je nach Anforderungen gibt es einige Besonderheiten vor allem bei Leerzeichen in Pfaden zu beachten.
Der einfachste Aufruf sieht hier so aus:
powershell.exe -File "C:\Pfad\Script.ps1"
Wenn man dem Script Parameter übergeben möchte:
powershell.exe -File "C:\Pfad\Script.ps1" "Parameter 1" "Parameter 2"
Wenn man "benannte" Parameter übergeben möchte (die einfachen Hochkommas um den Scriptpfad werden benötigt wenn er Leerzeichen beinhaltet):
powershell.exe -command "&'C:\Pfad\Script.ps1' -par1 'Wert1' -par2 'Wert2'"
Man kann auch mehrere Scripte hintereinander ausführen lassen:
powershell.exe -command "&'C:\Pfad\Script1.ps1';&'C:\Pfad\Script2.ps1'"
Bitte warten ..
Mitglied: mayho33
27.06.2014, aktualisiert um 17:54 Uhr
Danke!

Da war also der "Hund" vergraben. Am Anfang des Script einfach nur die Variable $args angeben. Schon klappts auch mit dem Wrapper. Simpler geht's wohl kaum mehr. An sowas hätte ich im leben nicht gedacht. Suuuper!

grüße, mayho
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Schleife mit todos CMD

Frage von TommyDerWalker zum Thema Batch & Shell ...

Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...