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";