Benutzer mit den meisten Antworten
Ausgabe von Befehlen

Frage
-
Hallo zusammen,
ich habe besonders mit komplexen Powershell-Gebilden Probleme. Daher möchte ich etwas tun, was ich schon bei Batch intensiv nutze: Ich lasse mir dort Befehle ausgeben (und auch ins Log schreiben), bevor ich sie ausführe. Z.B.
set cmd=cacls %Pfad% /T /E /C /G F:Administrator
echo %cmd%
%cmd%
Da evtl. die Variable %Pfad% in diesem Beispiel einen ungültigen Pfad enthält, möchte ich gerne den gesamten Befehl mit aufgelöster Variable in der Ausgabe/im Log haben. Denn nur dann kann ich vernünftig Fehlerbehebung betreiben. Alle meine BAT-Scripte laufen so.
Aber meine Versuche, selbiges bei der Powershell zu tun, scheitern kläglich. Ich weise das Powershell-CMD einer Variablen zu, gebe sie aus und kann sie auch ausführen. Aber bei der Ausgabe sind keinerlei Variablen aufgelöst. Und das ist gerade bei komplexen Powershell-Konstrukten extrem ungünstig.
Also: Wie bekommt man solch eine Ausgabe hin?
Danke und Gruß
Michael
Antworten
-
Powershell hat da noch mehr in Petto. Zum einen kannst du bei sehr vielen Befehlen den Parameter "-whatif" angeben, wodurch dir ein CMDlet detailiert anzeigt was es genau tun würde. Auch vielleicht interessant, du kannst ein komplettes Protokoll einer Powershell Sitzung aufzeichnen, mit Start-Transcript.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v3: Link
(Schneller, besser + einfacher scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort vorgeschlagen hpotsirhc Donnerstag, 30. Juli 2015 07:18
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 31. Juli 2015 14:18
Alle Antworten
-
Hi Michael,
sollte eigentlich so funktionieren:
z.B. # Variablen definieren $pfad = "C:\Programm" $Befehl = icacls $pfad /grant Administrator:(OI)(CI)F # Befehl in Logdatei ausgeben Add-Content -Path <Zielpfad>\<Logdatei>.log -Value $Befehl
Gruß
Ben
MCSA Windows 8 (.1) MCSA Windows Server 2012 (R2)
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)
Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können. -
Powershell hat da noch mehr in Petto. Zum einen kannst du bei sehr vielen Befehlen den Parameter "-whatif" angeben, wodurch dir ein CMDlet detailiert anzeigt was es genau tun würde. Auch vielleicht interessant, du kannst ein komplettes Protokoll einer Powershell Sitzung aufzeichnen, mit Start-Transcript.
Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Snippet Manager v3: Link
(Schneller, besser + einfacher scripten.)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort vorgeschlagen hpotsirhc Donnerstag, 30. Juli 2015 07:18
- Als Antwort markiert Denniver ReiningMVP, Moderator Freitag, 31. Juli 2015 14:18