Loguer facilement avec PowerShell
Lorsque vous écrivez un script PowerShell, vous voulez garder une trace de son exécution. Les raisons peuvent être multiples : étudier les éventuelles erreurs, savoir comment s’est déroulée une exécution planifiée, comprendre ce qu’il se passe sur un environnement sur lequel vous n’avez pas la main, etc.
Nativement PowerShell met à votre disposition un couple de commande : Start-Transcript et Stop-Transcript. Cela permet de dupliquer les lignes de l’invite de commande dans un fichier en rajoutant un entête et un pied de page horodatés.
"avant le transcript"
Start-Transcript "c:Transcript.txt"
dir
Stop-transcript
"après le transcript"</pre>
Le fichier de log ne contient que les lignes comprises entre les *-Transcript.
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-plain" data-lang="plain">**********************
Windows PowerShell Transcript Start
Start time: 20141029191656
Username : sps2010ghislain
Machine : sps2010 (Microsoft Windows NT 6.1.7601 Service Pack 1)
**********************
Transcript started, output file is c:Transcript.txt
Directory: C:Users&#092;&#048;0svcSPFarmDevDesktop
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 19/08/2014 17:46 Governance
d---- 03/06/2013 17:18 ILSpy_Master_2.1.0.1603_RTW_Binaries
d---- 05/06/2014 14:14 Permission Reporting
d---- 04/02/2014 14:32 SharePoint Manager 2010
-a--- 22/05/2013 10:02 90624 AutoSPInstaller.zip
-a--- 29/04/2014 14:31 12649871 PowerGUI.3.8.0.129.zip
-a--- 11/12/2013 10:52 290816 SharePointLogViewer.exe
----- 11/08/2011 21:38 557056 smtp4dev.exe
-a--- 29/10/2014 18:16 67 transcript.ps1
**********************
Windows PowerShell Transcript End
End time: 20141029191656
**********************</pre>
Une autre méthode plus _artisanale_ mais qui vous offre un meilleur découpage du temps :
<div class="highlight"><pre style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-powershell" data-lang="powershell">$logFileName = <span style="color:#e6db74">&#34;c:log.txt&#34;</span>
<span style="color:#66d9ef">Function</span> Log($text) {
Write-Host $text
<span style="color:#e6db74">&#34;[&#34;</span> + $(Get-Date <span style="color:#f92672">-f</span> o) + <span style="color:#e6db74">&#34;] [Info] : &#34;</span> + $text &amp;gt;&amp;gt; $logFileName
}
<span style="color:#66d9ef">Function</span> LogSuccess($text) {
Write-Host $text -foregroundcolor Green
<span style="color:#e6db74">&#34;[&#34;</span> + $(Get-Date <span style="color:#f92672">-f</span> o) + <span style="color:#e6db74">&#34;] [Success] : &#34;</span> + $text &amp;gt;&amp;gt; $logFileName
}
<span style="color:#66d9ef">Function</span> LogError($text) {
Write-Host $text -foregroundcolor Red
<span style="color:#e6db74">&#34;[&#34;</span> + $(Get-Date <span style="color:#f92672">-f</span> o) + <span style="color:#e6db74">&#34;] [Error] : &#34;</span> + $text &amp;gt;&amp;gt; $logFileName
}&lt;/pre&gt;
Avec ça, vous êtes paré.
**Références <span style="color:#960050;background-color:#1e0010">:</span>**
[Start-Transcript][1]
[Stop-Transcript][2]
[1]<span style="color:#960050;background-color:#1e0010">:</span> http<span style="color:#960050;background-color:#1e0010">:</span>//technet.microsoft.com/fr-fr/library/hh849687.aspx
[2]<span style="color:#960050;background-color:#1e0010">:</span> http<span style="color:#960050;background-color:#1e0010">:</span>//technet.microsoft.com/fr-fr/library/hh849688.aspx</code></pre></div></code></pre></div>