Windows Server 2008 R2、2008および2003にカスタムビルドソフトウェアをインストールしようとしています。このソフトウェアには、Windowsの「Desktop-Experience」機能がインストールされている必要があります。残念ながら、これはもはや2008R2(64)NSISインストーラ内部からに動作しません - -NSISでインストールされたWindows Serverの機能を確認
は、私が2003年と2008年に(それは一種の面倒だにもかかわらず)ServerManagerCmd.exeのに確認することができます知っていることはありませんコマンドを実行するだけで動作します。インストーラから呼び出され、「servermanagercmd.exeが内部または外部のコマンド、実行可能なプログラム、またはバッチファイルとして認識されません」というエラーが表示される - 作業ディレクトリをc:\ windows \ system32に設定していてもエラー(はい、64ビットマシンでは、sysWOW64にservermanagercmd.exeはありません)。ここで はNSIS内のコードの行です:2008R2で
nsExec::ExecToStack 'servermanagercmd.exe -query | findstr "Desktop-Experience"'
PowerShellには、デフォルトでインストールされているように、私は、状況が実際に改善するだろうと思いました。しかし、情報を取得しようとすると、まずPowerManagerでServerManagerモジュールをロードする必要がありますが、このモジュールは信頼できるインストーラの読み込みには使用できません。だから私は同じ状況に直面している:私はコマンドラインから私のPowerShellコマンドを実行している場合、それは動作しますが、NSISインストーラの内部からではありません。 は再び、ここNSIS内のコードの行があります:(!)
nsExec::ExecToStack 'powershell.exe "& "Import-Module ServerManager"'
3(重)引用符は、実際には正しいです。
NSISインストーラの中からWindows Server 2008 R2にDesktop-Experienceがインストールされているかどうかを確認する方法を知っていますか? servermanagercmd.exeから解析された文字列がそこで動作するため、ソリューションはServer2003または2008で動作する必要はありません。
NSISインストーラは通常、「信頼できるインストーラ」として実行されません。この特別なユーザーとして実行してもよろしいですか? – Anders