Test-PowershellModule.ps1
<#
.SYNOPSIS This function tests to see if a powershell module necessary for script execution is present. .DESCRIPTION This function tests to see if a powershell module necessary for script execution is present. .EXAMPLE Test-PowershellModule #> Function Test-PowershellModule { [cmdletbinding()] Param ( [Parameter(Mandatory = $true)] [string]$powershellModuleName, [Parameter(Mandatory = $false)] [boolean]$powershellVersionTest=$FALSE ) #Define variables that will be utilzed in the function. [array]$commandsArray=$NULL #Initiate the test. Out-LogFile -string "********************************************************************************" Out-LogFile -string "BEGIN TEST-POWERSHELLMODULE" Out-LogFile -string "********************************************************************************" #Write function parameter information and variables to a log file. Out-LogFile -string ("PowerShellModuleName = "+$powershellModuleName) try { $commandsArray = get-command -module $powershellModuleName -errorAction STOP } catch { Out-LogFile -string $_ -isError:$TRUE } if ($commandsArray.count -eq 0) { Out-LogFile -string "The powershell module was not found and is required for script functionality." -iserror:$TRUE } else { Out-LogFile -string "The powershell module was found." } if ($powershellVersionTest -eq $TRUE) { if (get-PackageProvider nuget) { out-logfile -string "Proceed with version test NUGET package provider installed." out-logfile -string "The powershell module is gallery installed - check versions and advise." $galleryModule = Find-Module -name $powershellModuleName -ErrorAction Continue if ($galleryModule.version -eq $commandsArray[0].version) { out-logfile -string "The version of the installed module is current." out-logfile -string ("Gallery Module "+$galleryModule.version) out-logfile -string ("Installed Module "+$commandsArray[0].version) } else { out-logfile -string "*******************" out-logfile -string "*******************" out-logfile -string ("Current gallery module is not installed for module"+$powershellModuleName) out-logfile -string ("Gallery Module "+$galleryModule.version) out-logfile -string ("Installed Module "+$commandsArray[0].version) out-logfile -string "RECOMMEND MODULE UPGRADE FOR FUTURE MIGRATIONS" out-logfile -string "*******************" out-logfile -string "*******************" } } else { out-logfile -string "NUGET package provier not available - version testing unavailable." } } Out-LogFile -string "END TEST-POWERSHELLMODULE" Out-LogFile -string "********************************************************************************" } |