2016-06-01 12 views
1

Script c:/chgpwd.ps1Powershell: kann nicht über die Pipeline Ausgang in Kombination mit -Outputformat XML-Datei und -File

Param(
    [parameter(Mandatory=$true)] 
    [string] $user, 
    [parameter(Mandatory=$true)] 
    [string] $oldPass, 
    [parameter(Mandatory=$true)] 
    [string] $newPass 
) 
write-host "before" 
$Computername = $env:COMPUTERNAME 
([adsi]"WinNT://$Computername/$user").ChangePassword("$oldPass", "$newPass") 
write-host "after" 

Datei Wenn diese

powershell -OutputFormat XML -ExecutionPolicy bypass -File c:\chgpwd.ps1 'myuser' 'a' 'b' 2>&1 > C:\out.xml 

Hinweis über die Ausführung: Der Benutzer existiert, aber sein neues Passwort (b) stimmt nicht mit der Passwortrichtlinie überein

Die Ausgabedatei (C: \ out.xml) enthält keine xml, aber die xml wird in angezeigt die Konsole raus.

Denn jetzt habe ich nur den Inhalt bekommen (out.xml)

Power: Exception "Change" mit "2" Argumente Aufruf (e): „Das Kennwort erfüllt nicht die Kennwortrichtlinie Anforderungen. Überprüfen Sie die Mindestlänge für Kennwortlänge, Kennwortkomplexität und Kennwortverlauf. " Bei Zeile: 1 Zeichen: 1 + Powershell -OutputFormat XML-ExecutionPolicy-Umgehung -File C: \ chgpwd.ps1 ... + ~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~ + CategoryInfo>>: NotSpecified: (:) [chgpwd.ps1], MethodInvo cationException + FullyQualifiedErrorId: CatchFromBaseAdapterMethodInvokeTI, chgpwd.ps1.ps1

Gibt es eine Möglichkeit ich die xml ouput in der Datei erhalten?

+0

Welche Leistung erwarten Sie verwendet? Warum brauchst du XML? –

+0

Ich hätte erwartet, dass das xml, das auf der Konsole gerendert wird, in der out-Datei ist (falls piped). Zum Parsen der Fehlermeldung wäre XML besser. – tobi

Antwort

0

Ich habe nicht die -OutputFormat Schalter vor, Sie können jedoch in der Lage zu verwenden export-clixml

try { 
    1/0 
} catch { 
    $_ | Export-Clixml C:\temp\text.xml 
    start C:\temp\text.xml 
} 
+0

Danke für die schnelle Antwort: Ich habe es versucht und es funktioniert gut, aber im Falle eines Syntaxfehlers im Skript wird dies nicht helfen oder wenn ein erforderlicher Parameter fehlt oder wenn es die Datei nicht finden kann. Besonders in meinem Fall stammt das Skript von Dritten. – tobi