diff --git a/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs
index c6e92189aa..76d9121e4a 100644
--- a/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs
+++ b/src/PowerShell/Microsoft.WinGet.Client.Engine/Helpers/ManagementDeploymentFactory.cs
@@ -103,7 +103,14 @@ public static ManagementDeploymentFactory Instance
/// A instance.
public PackageManager CreatePackageManager()
{
- return Create(PackageManagerType, PackageManagerIid);
+ var result = Create(PackageManagerType, PackageManagerIid);
+
+ if (!Utilities.UsesInProcWinget)
+ {
+ _ = CoAllowSetForegroundWindow(result, IntPtr.Zero);
+ }
+
+ return result;
}
///
@@ -222,5 +229,8 @@ private static T Create(Type? type, in Guid iid)
return (T)instance;
#endif
}
+
+ [DllImport("ole32.dll", ExactSpelling = true, PreserveSig = true)]
+ private static extern int CoAllowSetForegroundWindow([MarshalAs(UnmanagedType.IUnknown)] object pUnk, IntPtr reserved);
}
}