Erstens möchte ich darauf hinweisen, dass ich ein PowerShell ScrapBooker bin und nicht wirklich viel Wissen über PowerShell.Powershell Log-Datei
Ich habe an einem Skript gearbeitet, das BGInfo installiert ... Ich habe die eigentliche Installation und Deinstallation funktioniert perfekt, und jetzt mache ich weiter, um die Protokollierung gut sortiert zu bekommen.
Ich fand diesen Artikel "Create Log File in Powershell", der wunderbar war und diese Funktion in mein Skript integriert hat.
Function Write-Log {
[CmdletBinding()]
Param(
[Parameter(Mandatory=$False)]
[ValidateSet("LABEL","INFO","WARN","ERROR","FATAL","DEBUG")]
[String]
$Level = "INFO",
[Parameter(Mandatory=$True)]
[string]
$Message,
[Parameter(Mandatory=$False)]
[string]
$logfile
)
$Stamp = (Get-Date).toString("yyyy/MM/dd HH:mm:ss")
IF ($Level -eq "LABEL") {
$Line = "$Message"
}
ELSE {
$Line = "$Stamp $Level $Message"
}
If($logfile) {
Add-Content $logfile -Value $Line
}
Else {
Write-Output $Line
}
}
Was ich wissen muss, ist, wie man dies verwendet, um die Ausgabe von Befehlen zu protokollieren.
Beispiel:
In meinem Skript habe ich diesen Befehl ein:
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run' -Name BgInfo -Value """$InstPath\Bginfo.exe"" $InstPath\$BGTemplateFile $InstOptions" -PropertyType 'String' -Force
oder diese ein:
Copy $SourcePath\Bginfo.exe $InstPath
Was Ich mag würde, wissen, wie ich meine Funktion verwenden kann um alle Ausgaben dieses Befehls zu erfassen und in meiner Protokolldatei zu protokollieren.
Ich denke, dass ich diese Informationen auch gerne verwenden und auf alle anderen Befehle anwenden würde, wo ich etwas protokollieren möchte.
Hoffentlich ist das alles klar und macht Sinn und dass mir jemand helfen kann.
Cheers,
Dave.
:)
Es gibt einige andere Optionen, aber sehen Sie sich 'Start-Transcript' an und prüfen Sie, ob es Ihren Anforderungen entspricht. –
Danke @MatthewWetmore - Ich werde mir das ansehen. :) –
Ich kann eine richtige Antwort von Mobile nicht tun, aber wenn Sie wirklich die Ausgabe von Befehlen in Ihre Protokollierungsfunktion leiten möchten, lautet der Ansatz "ValueFromPipeline". Ich werde morgen ein Beispiel bekommen. Siehe auch: https://technet.microsoft.com/en-us/library/hh360993.aspx –