Last active
November 3, 2024 18:13
-
-
Save 9to5IT/9620683 to your computer and use it in GitHub Desktop.
PowerShell: Script Template
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#requires -version 2 | |
<# | |
.SYNOPSIS | |
<Overview of script> | |
.DESCRIPTION | |
<Brief description of script> | |
.PARAMETER <Parameter_Name> | |
<Brief description of parameter input required. Repeat this attribute if required> | |
.INPUTS | |
<Inputs if any, otherwise state None> | |
.OUTPUTS | |
<Outputs if any, otherwise state None - example: Log file stored in C:\Windows\Temp\<name>.log> | |
.NOTES | |
Version: 1.0 | |
Author: <Name> | |
Creation Date: <Date> | |
Purpose/Change: Initial script development | |
.EXAMPLE | |
<Example goes here. Repeat this attribute for more than one example> | |
#> | |
#---------------------------------------------------------[Initialisations]-------------------------------------------------------- | |
#Set Error Action to Silently Continue | |
$ErrorActionPreference = "SilentlyContinue" | |
#Dot Source required Function Libraries | |
. "C:\Scripts\Functions\Logging_Functions.ps1" | |
#----------------------------------------------------------[Declarations]---------------------------------------------------------- | |
#Script Version | |
$sScriptVersion = "1.0" | |
#Log File Info | |
$sLogPath = "C:\Windows\Temp" | |
$sLogName = "<script_name>.log" | |
$sLogFile = Join-Path -Path $sLogPath -ChildPath $sLogName | |
#-----------------------------------------------------------[Functions]------------------------------------------------------------ | |
<# | |
Function <FunctionName>{ | |
Param() | |
Begin{ | |
Log-Write -LogPath $sLogFile -LineValue "<description of what is going on>..." | |
} | |
Process{ | |
Try{ | |
<code goes here> | |
} | |
Catch{ | |
Log-Error -LogPath $sLogFile -ErrorDesc $_.Exception -ExitGracefully $True | |
Break | |
} | |
} | |
End{ | |
If($?){ | |
Log-Write -LogPath $sLogFile -LineValue "Completed Successfully." | |
Log-Write -LogPath $sLogFile -LineValue " " | |
} | |
} | |
} | |
#> | |
#-----------------------------------------------------------[Execution]------------------------------------------------------------ | |
#Log-Start -LogPath $sLogPath -LogName $sLogName -ScriptVersion $sScriptVersion | |
#Script Execution goes here | |
#Log-Finish -LogPath $sLogFile |
Why not getting the scriptname automatically?
$scriptName = $MyInvocation.MyCommand.Name
$sLogName = "$scriptName.log"
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Log-Start, Log-Write, Log-Finish and Log-Error are in reference to the PSLogging module which you can download from Powershell Gallery >>> https://www.powershellgallery.com/packages/PSLogging/2.5.2.
There is also more info here >>> https://9to5it.com/powershell-logging-v2-easily-create-log-files/