4

我正在使用可以运行 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,版本=6.1.0.0,文化=中性,PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集“Microsoft.Windows.ServerManager,版本=6.1.0.0,文化=中性,PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集“Microsoft.Windows.ServerManager,版本=6.1.0.0,文化=中性,PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集“Microsoft.Windows.ServerManager,版本=6.1.0.0,文化=中性,PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集“Microsoft.Windows.ServerManager,版本=6.1.0.0,文化=中性,PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
无法加载文件或程序集“Microsoft.Windows.ServerManager,版本=6.1.0.0,文化=中性,PublicKeyToken=31bf3856
ad364e35' 或其依赖项之一。该系统找不到指定的文件。
在行:1 字符:14

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

4

1 回答 1

4

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

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

(为清楚起见包装)

于 2012-10-02T12:37:41.997 回答