ラボドメインの一部であるWindows Server 2012マシンにMSIをインストールしようとしています。私はローカルおよびドメイン管理者ですが、このMSIをインストールできないようです。
明確にするために、管理者グループの一部であるドメインユーザーとしてログインしたVisual Studioのgit拡張機能( ここ )をインストールしようとすると、次のエラーが発生します
エラーを報告しているマシンはWindows Server 2012です。
なんらかのグループポリシーの制限であるに違いないと私はほぼ確信していますか?デフォルトのセキュリティレベルでない限り、何も設定されません。
明確にするために、私は知りたいのですがこのMSIがドメイン管理者によってインストールされない原因は何ですか?
グループポリシーを見て時間を費やした後、私の知る限り、関連するものは何もありませんでした。それから私は遭遇しました この投稿 管理者としてコマンドプロンプトを起動して実行しようとすることを示唆しています
msiexec /a install.msi
これは機能するように見えましたが、非常に速く実行されました-実際には機能しませんでした。気まぐれで、私はこれをadminコマンドプロンプト内で試しました。
msiexec /i install.msi
それは御馳走を働いた。
以前に「システム管理者がこのインストールを禁止するポリシーを設定している」でMSIのインストールが禁止されているこの動作に遭遇しました。これはデフォルトのWindowsソフトウェア制限ポリシーが原因であると思います。WindowsServer 2008 R2とWindows Server 2012の両方で確認しました。
おそらくポリシーを変更するためのより良いGUIベースの方法がありますが、マシンの管理者として次のregキーを設定するとうまくいきます。
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer]
"DisableMSI"=dword:00000000
これは通常、Windowsインストーラーを無効にするグループポリシーまたはローカルポリシーが原因です。
GPO「Windowsインストーラー」を無効にする場合は、ドメインコントローラーを確認します。コンピューターの構成>管理用テンプレート> Windowsコンポーネント> Windowsインストーラー>「Windowsインストーラーをオフにする」。
「未構成」または「無効」に設定されていることを確認します。
GPOで見つからない場合は、gpedit.mscを使用してコンピューターのローカルポリシーを確認してください。
注:ドメイン管理者であることは問題ではありません。それはすべて、GPOの範囲に依存します。
IsCmdBld.exe
を使用してMSIをビルドするときも同じ問題がありましたが、InstallShieldソフトウェアのユーザーインターフェイスからビルドするときはそうではありませんでした。
インストーラーを実行すると、OPによって示されたエラーが表示され、インストールログに次のように表示されます:MSI_LUA: Invalid Descriptor Format.
この問題の原因は、ProductCode Guid値を-z "ProductCode"="f176c219-dec0-4fa9-a373-94a711f28a3d"
のようにIsCmdBld.exeコマンドラインに渡していたことです。
ここで提供されるGuidは{
と}
で囲まれていないことがわかります。
括弧で囲まれたGUIDを渡すことで修正しました:-z "ProductCode"="{f176c219-dec0-4fa9-a373-94a711f28a3d}"
これは期待どおりに機能し、エラーを表示しなくなりました。
右クリック->管理者として実行