Een logfile maken

In onderstaand voorbeeld maken we een script waarbij een aantal gegevens in een tekstbestand wordt geschreven. Een dergelijk script zou je als logfile kunnen gebruiken.

Allereerst moeten we bepalen welke gegevens van belang zijn om te worden opgenomen in de logfile:

Daarnaast moeten de gegevens aan een tekstbestand worden toe gevoegd zodat de vorige gegevens ook bewaard blijven. Het laatste doel is om die gegevens per maand in een tekstbestand te hebben zodat het makkelijker kan worden gearchiveerd.

De gebruikersnaam en de computernaam zijn vrij eenvoudig. Beide zijn bekend in de omgevingsvariabelen. Die omgevingsvariabelen zijn als provider in PowerShell benaderbaar. Net zoals je het bestandssysteem kunt benaderen door de schijfletter te gebruiken (bij voorbeeld C:), kun je de omgevingsvariabelen bereiken via ENV:

Dus met het commando:

Get-Content Env: USERNAME en Computername krijg je de juiste gegevens retour. Deze leg je vast in een variabele.

De datum en de tijd zijn ook vrij eenvoudig met het commando Get-Date te verkrijgen. Met de parameter -format kun je verder bepalen hoe je wilt dat de datum of tijd wordt vastgelegd. Daarbij zijn:

Op die manier wordt de variabele date gevuld. Maar je kunt de datum uiteraard ook gebruiken in een bestandsnaam ($filename).

Het lastigste is eigenlijk het IP-adres. Met het commando Get-NetIPAddress krijg je meer informatie dan alleen het IP-adres terug. Daarnaast kunnen er in een computer meerdere netwerk kaarten aanwezig zijn, naast wellicht een aantal virtuele kaarten. Het vastleggen van bijvoorbeeld het APIPA-adres (169.254.x.x) heeft geen zin. Door de parameter -IPAddress met het begin van een IP-adres op te geven worden alleen de gegevens van de netwerkkaart gekozen die beginnen met het IP-adres, bijvoorbeeld:

Get-NetIPAddress -IPAddress 172.16.*.*

Op de plaats van de * (wildcard!) mag dus elke waarde staan.

Nog steeds worden er te veel gegevens retour gegeven.


Opdracht 1

Maak met behulp van PowerShell een Login script. Sla de scripts op en kopieer de tekst van de scripts in je documentatie.


In Windows Server 2019 kun je via Group Policy een PowerShell-script als login script gebruiken.

Afb. 1 Maak een GPO om een PowerShell loginscript toe te passen