私が保守している Web サーバー インストーラーでは、インストーラーが IIS 7 や ASP (Vista 以降) をインストールしたかどうかを追跡し、インストールした場合は適切な値をレジストリに保存します。アンインストール中に、その値が存在し、そのマシンで IIS を使用している Web サイトが他にない場合、ユーザーは IIS/ASP を削除するかどうかを尋ねられます。その場合、インストールしたものはすべて削除します。
以下は、IIS 7 と ASP を削除するために起動するコマンドです (わかりやすくするために改行が追加されています)。
C:\Windows\system32\pkgmgr.exe /norestart /uu:IIS-WebServerRole;
IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;
IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;
IIS-ApplicationDevelopment;IIS-ASP;IIS-ISAPIExtensions;
IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;
IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;
IIS-HttpCompressionStatic;IIS-WebServerManagementTools;
IIS-ManagementConsole;WAS-WindowsActivationService;
WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
これは 32 ビット システムでは正常に機能しますが、WOW64 リダイレクトが無効になっていても、64 ビット システムではまったく機能しません。(インストーラーは必要に応じてインストールの最後に再起動を行うため、/norestart パラメーターは無視してください。) このコマンドを管理者レベルのコマンド プロンプト (/norestart パラメーターなし) に入力しようとしましたが、役に立ちませんでした。 .
インストール中に IIS 7/ASP をインストールするために使用するコマンドも同様に長く、常に機能するため、アンインストール コマンド ラインが長すぎることが問題であるとは考えられません。(その理論をテストするために、コマンドを 2 つのコマンドに分割してみました。1 つは ASP コンポーネントのみを削除し、もう 1 つは残りを削除します。同じ問題で、何も削除されませんでした。)
64ビットシステムで必要なことを実行する他のコマンドはありますか? その場合、WOW64 リダイレクトを無効にする必要がありますか? また、32 ビット システムでも動作しますか? (Vista 以降のシステムでのみ呼び出されます。それ以前のシステムでは、ユーザーが IIS と ASP が事前にインストールされていることを確認する必要があります。)