Initial commit

This commit is contained in:
2026-02-11 14:24:03 +01:00
parent 03677dd0cc
commit c17917ebfb
25 changed files with 5986 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
Function TK_LoadModule {
<#
.SYNOPSIS
TK_LoadModule
.DESCRIPTION
Import a Powershell module from disk, if not present install from powershell gallery.
.PARAMETER ModuleName
The name of the PowerShell module
.EXAMPLE
TK_LoadModule -ModuleName AzureAD
Import module if possible. Otherwise try to install from local or, if not available local, from PowerShell Gallery
.NOTES
Author : Thomas Krampe | t.krampe@loginconsultants.de
Version : 1.0
Creation date : 05.08.2019 | v0.1 | Initial script
Last change : 06.08.2019 | v1.0 | Release
IMPORTANT NOTICE
----------------
THIS SCRIPT IS PROVIDED "AS IS" WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON- INFRINGEMENT.
LOGIN CONSULTANTS, SHALL NOT BE LIABLE FOR TECHNICAL OR EDITORIAL ERRORS OR OMISSIONS CONTAINED
HEREIN, NOT FOR DIRECT, INCIDENTAL, CONSEQUENTIAL OR ANY OTHER DAMAGES RESULTING FROM FURNISHING,
PERFORMANCE, OR USE OF THIS SCRIPT, EVEN IF LOGIN CONSULTANTS HAS BEEN ADVISED OF THE POSSIBILITY
OF SUCH DAMAGES IN ADVANCE.
#>
[CmdletBinding()]
Param(
[Parameter(Mandatory = $true, Position = 0)][String]$ModuleName
)
begin {
[string]$FunctionName = $PSCmdlet.MyInvocation.MyCommand.Name
Write-Verbose "START FUNCTION - $FunctionName"
}
process {
# If module is already imported there is nothing to do.
if (Get-Module | Where-Object { $_.Name -eq $ModuleName }) {
Write-Verbose "Module $ModuleName is already imported."
}
else {
# If module is not imported, but available on disk then import
if (Get-Module -ListAvailable | Where-Object { $_.Name -eq $ModuleName }) {
Import-Module $ModuleName -Verbose
}
else {
# If module is not imported, not available on disk, but is in online gallery then install and import
if (Find-Module -Name $ModuleName | Where-Object { $_.Name -eq $ModuleName }) {
Install-Module -Name $ModuleName -Force -Verbose -Scope CurrentUser
Import-Module $ModuleName -Verbose
}
else {
# If module is still not available then abort with exit code 1
Write-Warning "Module $ModuleName not imported, not local available and not in online gallery, exiting."
EXIT 1
}
}
}
}
end {
Write-Verbose "END FUNCTION - $FunctionName"
}
} #EndFunction TK_LoadModule