Ich habe meine eigene Powershell Logging-Funktion Log
mit den Parametern stream
(in welchem Stream die Nachricht geschrieben wurde) und message
(die zu schreibende Nachricht) geschrieben.
Die Idee ist, dass ich die Ausgaben sowohl in die Konsole als auch in eine Log-Datei schreiben kann. Was ich in der Funktion mache, ist im Grunde festzustellen, auf welchem Stream die Nachricht veröffentlicht werden soll (mit einer switch-Anweisung) und dann schreibe ich die Nachricht in den Stream und die Log-Datei:
%Vor%Die Frage ist nun, ob es möglich ist zu überprüfen, ob das Argument -Verbose gegeben wurde.
Das Ziel besteht darin, die Nachricht nur in die Protokolldatei zu schreiben, wenn die -Verbose angegeben wurde.
Ich habe schon in den folgenden Hilfedokumenten nachgeschaut, aber nichts hilfreiches gefunden:
- help about_Parameters
- help about_commonparameters
Der Parameter -WhatIf funktioniert auch nicht mit Write-Verbose.
Vielen Dank für Ihre Antworten!
Ebenfalls verfügbar: Überprüfen Sie den Parameter '$ VerbosePreference'. Wenn es auf 'SilentlyContinue' gesetzt ist, wurde $ Verbose nicht in der Befehlszeile angegeben. Wenn es auf '$ Continue' gesetzt ist, können Sie davon ausgehen, dass es gesetzt wurde.
Gilt auch für die folgenden anderen allgemeinen Parameter:
%Vor%Aus einer MSDN-Blog-Seite von vor langer Zeit ... , sollte es mit relativ alten Versionen von Powershell relevant sein. Siehe auch "Get-Help about_CommonParameters" in Powershell v4.
Allgemeiner: Da in der Befehlszeile -Verbose: $ false angegeben werden kann, behandelt der folgende Code diesen Fall. Es funktioniert auch für jeden anderen Schalterparameter:
%Vor%Tags und Links powershell