Exporten en opslaan

Binnen Powershell kan je ook heel makkelijk de resultaten die op je scherm komen opslaan in een file op je hardeschijf, zodat je deze later terug kan opvragen.

Export naar een CSV-Bestand

Met behulp van het Pipe-teken is het mogelijk de output op te slaan in een bestand. In dit eerste voorbeeld een CSV-bestand (Comma-seperated values).

Get-ChildItem -Path 'C:\Program Files' -Recurse | `
Export-Csv c:\logboek.csv

Convert-Csv

Nu wordt de output opgeslaan in een csv-bestand, je ziet ook geen output meer op het scherm.

Het kan zijn (Naargeland de versie die je gebruikt van Windows 10 dat je met dit script een foutmelding krijgt. Je moet hier niets van aantrekken, het CSV-bestand word wel aangemaakt met uitzondering van 1 map.

Get-ChildItem : Access to the path ‘C:\Program Files\Windows Defender Advanced Threat Protection\Classification\Configuration’ is
denied.
At line:1 char:1
+ Get-ChildItem -Path ‘C:\Program Files’ -Recurse | `
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : PermissionDenied: (C:\Program File…n\Configuration:String) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : DirUnauthorizedAccessError,Microsoft.PowerShell.Commands.GetChildItemCommand

Je kan nu je csv-bestand opendoen met notepad. Dit kan ook rechtstreeks in powershell

notepad .\logboek.csv
of
notepad c:\logboek.csv

Export naar een XML-Bestand

Get-ChildItem -Path 'C:\Program Files' -Recurse | `
Export-Clixml C:\logboek.xml

Export-Clixml

Nu wordt er het zelfde gedaan, enkel wordt de output nu opgeslaan als een xml bestand. De opbouw van een xml bestand ziet er wat anders uit, maar hte is dezelfde data die wordt opgeslaan.

Ook dit kan je open doen in een notpad.

notepad .\logboek.xml
of
notepad c:\logboek.xml

Er zijn nog andere manier om de output op te slaan zo kan je natuurlijk ook als een gewoon txt-betsand opslaan, dit gaat als volgt:

Get-ChildItem C:\data1\*.* | Out-File -FilePath c:\archief.txt

Dit geeft een onopgemaakte tekst net zoals je het op het scherm zou krijgen als je het niet zou exporteren. Alleen gebruiken we hier geen export-commando maar Out-File

Exporteren als HTML

Je kan ook de output gaan opslaan als een HTML-bestand, het enige andere dat hier moet gebeuren is dat je eerste de output moet gaan converteren naar HTML en dan pas gaan opslaan in een HTML-bestand. Je gaat dus gebruik maken van meerdere Pipe-tekens.

Get-Alias | ConvertTo-Html | Out-File aliases.html

ConvertTo-Html

Als je dit bestand nu rechtstreeks in Powershell zou willen opdoen in je default webbrowser kan je het volgende commando gebruiken:

Invoke-Item C:\aliases.html

Invoke-Item kijkt eigenlijk naar de extentie, in dit voorbeeld .html. En het default programma voor voor HTML is Microsoft Edge, FireFox, Google Chrome of nog iets anders. 

Als je nu bijvoorbeeld office hebt geinstalleerd en je doet invoke-Item Document1.doc dan ziet het commando .doc en weet hij dat het item moet opgaan in Word. In Windows kan je natuurlijk wel je Default programma gaan aanpassen per extentie en het is daar dat het commando ook gaat gaan kijken waarin een bepaald Item moet worden open gedaan.

Invoke-Item