Elk PowerShell script van mij begint met een standaard aantal regels. In deze regels laad ik de standaard dingen die nodig zijn voor het gebruik van de script die ik nodig heb.
Ik heb hieronder een voorbeeld script geplaatst en daarin de uitleg waarom ik bepaalde dingen er in zet
Ik begin in het script om alle voorgaande parameters leeg ge maken,
daarna beging ik met een stuk informatie.
param ([switch]$Silent)
<#
.NOTES
===========================================================================
Created on: 2022-06-09
Created by: Vincent van Unen
Organization: Vincent van Unen
Filename: VUN-ABA-Printer_Install.ps1
===========================================================================
.DESCRIPTION
Create Printer to install on device
#>
#region Changelog
#################################################################################
Created on: wanneer is het script heb geschreven
Created by: Dat ik heb geschreven heb of dat ik hem aangepast heb met de bron van de eerdere auteur.
Organization: Voor welke organisatie ik het script geschreven heb. Ik ben veel voor verschillende klanten bezig en dan is het handig en snel te zien voor welke klant het script is geschreven
Filename: om snel te zien wat de filenaam is van het script
Hierna komen enkele vaste variabelen. $ScriptAuthor = "Vincent van Unen"
$ScripVersion = "0.1"
$ScriptChangeDate = "2022-11-05"
$ScriptChangeLog = ""
$Getcurrentdate = get-date -Format yyyy-MM-dd
$Getcurrentdatetime = get-date -Format "yyyy-MM-dd HH:mm"
Bij Changelog geef ik een changelog van het script weer. een script kan in de loop v/d tijd geupdate worden met nieuwe inzichten en informatie. dit schrijf ik weg met wat ik wanneer heb geweizigd
Hierna komt een stukje security settings zodat ik weet dat ik in de rest van het script geen fouten krijg
#Script functions
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Set Security protocol naar TLS12
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope LocalMachine -Force
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process -Force
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser -Force
Daarna controleer ik en maak mochten de mappen niet beschikbaar zijn een 3 tal mappen aan c:\TEMP c:\TMP & c:\Log
# Checking & Creatig log en temp directory
$VUNMyModuleDir1 = "C:\temp" # Check of c:\temp dir bestaat mocht deze niet bestaan dan word deze aangemaakt
if(!(Test-Path -Path $VUNMyModuleDir1 )){ New-Item -ItemType directory -Path $VUNMyModuleDir1 }
$VUNMyModuleDir2 = "C:\tmp" # Check of c:\tmp dir bestaat mocht deze niet bestaan dan word deze aangemaakt
if(!(Test-Path -Path $VUNMyModuleDir2 )){ New-Item -ItemType directory -Path $VUNMyModuleDir2 }
$VUNMyModuleDir3 = "C:\log" # Check of c:\log dir bestaat mocht deze niet bestaan dan word deze aangemaakt
if(!(Test-Path -Path $VUNMyModuleDir3 )){ New-Item -ItemType directory -Path $VUNMyModuleDir3 }
cls
deze locaties gebruik ik als tijdelijke opslag en voor het wegschrijven van log files van verschillende script informatie.
Daarna maak ik een log file aan waarin ik de settings we kan schrijven’
# Creating log file
$logfilepath = "$VUNMyModuleDir3\VUN_Printerinstall.log"
# Creating a function to write to the log file
function WriteToLogFile ($message)
{
Add-content $logfilepath -value $message
}
WriteToLogFile ""
WriteToLogFile "XXXXXXXXXXXXXXXXXxx"
WriteToLogFile ""
Overzicht van het volledige script 🙂
|