Today I’m going to play around with functions.

I use functions to do repetitive admin tasks to make my life easier.

Functions can be simple and complex depending on your need, sometimes it’s static and won’t need any dynamic parameters.

Function Reset-WUFolder {
# Stop Windows update and BITS services
Stop-Service -Name wuauserv
Stop-Service -Name BITS
# Remove WU Folder
Remove-Item -Path $env:SystemRoot\SoftwareDistribution -Force
# Start Windows update and BITS services again
Start-Service -Name wuauserv
Start-Service -Name BITS
}

Run the code and you can call your function from the command line.

Reset-WUFolder

Sometimes you want to use dynamic variables in your functions.

Function Copy-TestDocument {
# Setup parameters
param(
$TempFolder,
$FileLocation
)
# Check if the TempFolder exists
if(!(Test-Path -Path $TempFolder)) {
New-Item $TempFolder -ItemType Directory
}
# Copy the file from FileLocation variable and output into logfile inside the TempFolder
Copy-Item $FileLocation -Destination $TempFolder -Verbose 4> $TempFolder\LogFile.txt
}

Then run it from the command line

Copy-TestDocument -TempFolder "C:\TempFolder" -FileLocation "C:\temp\test.txt"

These functions are pretty simple but can be very useful and fairly easy to understand and use.

Some functions you need to define the type of parameter and if you want to make it a mandatory or even have a switch enabled.

Function Display-Types {
param(
[parameter(Mandatory=$true)][DateTime] $Date,
[parameter(Mandatory=$true)][string] $String,
[parameter(Mandatory=$false)][Switch] $Log
)
if($log) {
$Date | Out-File C:\temp\log.txt -Append
$String | Out-File C:\temp\log.txt -Append
} else {
$Date
$String
}
}

Then run it in command line

Display-Types -Date (Get-Date).ToString() -String "Test String" -Log

As you can see that playing with functions can be fun to play around with.
I’ll not be going into advanced functions yet as I will go into that later in my series.

I hope you can enjoy and find this useful and don’t hesitate to be in contact if you want to know more or if I can help you write a successful function or whole scripts.

That’s it for now,
Hallgrimur #TheMachine