diff --git a/scripts/Common/Scripts/SoftwareManagement.ps1 b/scripts/Common/Scripts/SoftwareManagement.ps1 index 8f781a63..8eaca234 100644 --- a/scripts/Common/Scripts/SoftwareManagement.ps1 +++ b/scripts/Common/Scripts/SoftwareManagement.ps1 @@ -102,3 +102,18 @@ function Test-PSPackage { [bool] (Get-Package $Name -ErrorAction SilentlyContinue); } + +<# + .SYNOPSIS + Checks whether a module with the specified name is installed. + + .PARAMETER Name + The name of the module to check. +#> +function Test-PSModule { + param( + [string] $Name + ) + + [bool](Get-Module -ListAvailable $Name -ErrorAction SilentlyContinue); +} diff --git a/scripts/Windows/OS/Install.ps1 b/scripts/Windows/OS/Install.ps1 index 92ec326d..a405a6cb 100644 --- a/scripts/Windows/OS/Install.ps1 +++ b/scripts/Windows/OS/Install.ps1 @@ -182,8 +182,10 @@ $null = New-Module { }; } - Install-Module -Scope AllUsers -AcceptLicense -Force $module[0] @parameters; - Import-Module $module[0]; + if (-not (Test-PSModule $module[0])) { + Install-Module -Scope AllUsers -AcceptLicense -Force -AllowClobber $module[0] @parameters; + Import-Module $module[0]; + } } . "$PSScriptRoot/../Software/PinnedItem/Manage.ps1";