2

Windows Server 2008R2、2008、および2003にカスタムビルドソフトウェアをインストールしようとしています。このソフトウェアをインストールするには、Windowsの「デスクトップエクスペリエンス」機能が必要です。

2003年と2008年にservermanagercmd.exeで確認できることはわかっています(ちょっと面倒ですが)-残念ながら、これはNSISインストーラー内からの2008R2(64ビット)では機能しなくなりました-コマンドを実行するだけで機能します。インストーラーから呼び出されると、「servermanagercmd.exeが内部または外部コマンド、操作可能なプログラム、またはバッチファイルとして認識されません。」-作業ディレクトリをc:\ windows \ system32に設定している場合でも、エラーが発生します。 (はい、64ビットマシンではありますが、sysWOW64にはservermanagercmd.exeがありません)。NSIS内のコード行は次のとおりです。

nsExec::ExecToStack 'servermanagercmd.exe -query | findstr "Desktop-Experience"'

2008R2では、PowerShellがデフォルトでインストールされるようになったため、状況は実際に改善されると思いました。ただし、情報を取得しようとするときは、最初にPowerShell内にServerManagerモジュールを読み込む必要がありますが、このモジュールは信頼できるインストーラーで読み取ることができません。そのため、同じ状況に再び直面しています。コマンドラインからPowerShellコマンドを実行している場合、それは機能しますが、NSISインストーラーの内部からは機能しません。繰り返しますが、NSIS内のコード行は次のとおりです。

nsExec::ExecToStack 'powershell.exe "& "Import-Module ServerManager"'

3つの(!)(二重)引用符は実際には正しいです。

では、NSISインストーラー内からDesktop-ExperienceがWindows Server 2008R2にインストールされているかどうか(インストールされていない場合はインストール)を確認する方法を知っている人はいますか?servermanagercmd.exeからの文字列解析がそこで機能するため、ソリューションはServer2003または2008で機能する必要はありません。

4

1 に答える 1

0

x64.nshのマクロを使用してWOW64リダイレクトをオフにしていますか?(または「$ windir \ sysnative \ servermanagercmd.exe」を使用します)

于 2011-06-28T13:17:39.560 に答える