我正在使用可以运行 powershell 代码段的 32 位应用程序。我需要加载 ServerManager 模块,我通常会这样做:

Import-Module ServerManager

但我收到此错误:

未加载指定的模块“ServerManager”,因为在任何模块目录中都找不到有效的模块文件。

我假设,这是因为 64 位模块目录中不存在 ServerManager 模块,因此我尝试了以下操作:
Import-Module "C:\Windows\sysnative\WindowsPowerShell\v1.0\Modules\ServerManager"

但现在我收到错误:

导入模块:无法加载 Windows PowerShell 管理单元 C:\Windows\assembly\GAC_MSIL\Microsoft.Windows.ServerManager.PowerSh
ell\6.1.0.0__31bf3856ad364e35\Microsoft.Windows.ServerManager.PowerShell.dll 由于以下错误:无法加载
一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。
加载器异常:

无法加载文件或程序集 'Microsoft.Windows.ServerManager, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集 'Microsoft.Windows.ServerManager, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集 'Microsoft.Windows.ServerManager, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集 'Microsoft.Windows.ServerManager, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集 'Microsoft.Windows.ServerManager, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集 'Microsoft.Windows.ServerManager, Version=6.1.0.0, Culture=neutral, PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
在行:1 字符:14

关于如何在 32 位 powershell 中使用 ServerManager 模块的任何建议?或者关于如何在 Server 2008 R2 上安装“桌面体验”功能的另一个建议(不使用 UI)?

最佳答案

您在这里唯一真正的选择是生成一个 64 位的 powershell.exe 实例来处理您的服务器管理器命令。由于父进程是 32 位的,因此您必须使用相同的 %windir%\sysnative 技巧来启动 powershell.exe。

%windir%\sysnative\windowspowershell\v1.0\powershell.exe
     -command '& { ipmo servermanager; add-windowsfeature foo }'

(为清晰起见,已包装)

关于powershell - 32 位 Powershell : Use the ServerManager module?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12678353/

10-16 02:08