« Lambdas in Powershell
Wenn Maus und Tastatur an einem Windows Rechner nicht mehr reagieren »
Für Powershell .Net Framework Tracing aktivieren
Manchmal ist nicht klar warum etwas nicht funktioniert. Da Powershell stark auf das .Net Framework angewiesen ist, kann man auch dessen Trace-Möglichkeiten nutzen, um eine tiefergehende Fehleranalyse zu ermöglichen. Hilfreich ist das Tracing z. B. in Verbindung mit der Netzwerkkommunikation.
Unter .Net kann man das Netzwerktracing wie in diesem Artikel beschrieben aktivieren: http://msdn.microsoft.com/en-us/library/ty48b824(v=vs.110).aspx. Damit der Trace-Mitschnitt in Powershell aktiviert werden kann, muss die in der betreffenden Powershellversion die Datei Powershell.exe.config angelegt, bzw. bearbeitet werden. Dabei ist von Bedeutung, ob man mit Powershell 32-Bit oder 64-Bit arbeitet. Zum Thema Powershell 32-/64-Bit siehe hier: https://newyear2006.wordpress.com/2012/06/20/prfen-ob-eine-powershell-sitzung-in-einer-32bit-oder-64bit-prozess-umgebung-luft/.
Kurz: Unter einem 64-Bit System findet man die 64-Bit Powershell-Version unter C:\WINDOWS\SYSTEM32\WINDOWSPOWERSHELL\V1.0 und die 32-Bit Powershell-Version unter C:\WINDOWS\SYSWOW64\WINDOWSPOWERSHELL\V1.0. Auf einem reinen 32-Bit-System ist der Pfad wieder wie bei der 64-Bit Fassung.
Wenn man nun also seine Powershell.exe.config, die so aussieht
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics>
<source name="System.Net">
<add name="System.Net"/>
<source name="System.Net.Sockets">
<switches>
<add name="System.Net" value="Verbose" />
<add name="System.Net.Sockets" value="Verbose" />
</switches>
<sharedListeners>
<add name="System.Net"
</sharedListeners>
<trace autoflush="true" />
im Verzeichnis C:\Windows\System32\WindowsPowershell\V1.0\ angelegt hat, kann man anschließend Powershell starten. Wichtig, die Einstellungen wirken sich erst aus, wenn eine neue Powershell.exe gestartet wird.
Man bekommt nun in der Datei System.Net.Log die Trace-Daten gespeichert. Die System.Net.Log wird in dem Verzeichnis der Powershell.exe gespeichert.
Möchte man die Trace-Möglichkeit in Powershell-ISE nutzen, muss man natürlich die Datei Powershell_ise.exe.config bearbeiten.
Das Format der Trace-Daten ist kurz hier angerissen: http://msdn.microsoft.com/en-us/library/46fcs6sz(v=vs.110).aspx.
This entry was posted on 13 Dezember 2014 at 21:16 and is filed under .Net Framework, Debugging, Powershell, Powershell V3, Powershell V4, TLS.	You can follow any responses to this entry through the RSS 2.0 feed.
3 Antworten to “Für Powershell .Net Framework Tracing aktivieren”
Quirel Says:	13 Dezember 2014 um 21:19 | Antwort Beschreibung für SSL/TLS-Tracing:
Quirel Says:	14 Dezember 2014 um 14:46 | Antwort Hier noch Infos zu den Trace-leveln: http://msdn.microsoft.com/en-us/library/3at424ac(v=vs.110).aspx
Probleme mit Transportverschlüsselung, Zertifikaten oder Passwörtern bei SMTP-Servern mittels Powershell überprüfen | Das nie endende Chaos! Says:	23 August 2015 um 22:59 | Antwort […] um mehr Infos bei Problemen zu erhalten, hier hab ich schon mal etwas darüber geschrieben: https://newyear2006.wordpress.com/2014/12/13/fr-powershell-net-framework-tracing-aktivieren/. Wer sich konkret dafür interessiert, was beim TLS-Handshake alles passiert, der möchte diesen […]