2

在我维护的 Web 服务器安装程序中,我们跟踪安装程序是否安装了 IIS 7 和/或 ASP(在 Vista 或更高版本下),如果是,则将适当的值保存到注册表中。在卸载过程中,如果该值存在并且该计算机上没有其他网站正在使用 IIS,则会询问用户是否要删除 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 位系统上运行良好,但在 64 位系统上根本不起作用,即使禁用了 WOW64 重定向。(忽略 /norestart 参数,因为安装程序在安装结束时会在必要时重新启动。)我什至尝试将此命令输入到管理员级别的命令提示符(没有 /norestart 参数),但无济于事.

我们在安装过程中用来安装 IIS 7/ASP 的命令也同样长,而且它总是有效,所以我无法想象问题是卸载命令行太长。(为了验证这个理论,我什至尝试将命令分成两个命令,一个只删除 ASP 组件,一个删除其余组件。同样的问题,没有删除任何内容。)

是否有其他命令可以在 64 位系统上执行我们想要的操作?如果是这样,我们是否必须禁用 WOW64 重定向,它是否也适用于 32 位系统?(它只会在 Vista 和更高版本的系统上调用。在更早的系统上,我们依靠用户确保预先安装了 IIS 和 ASP。)

4

3 回答 3

0

我不确定这是否适用于您的问题,但我一再被这样一个事实所困扰,即HKEY_LOCAL_MACHINE\SOFTWARE在 64 位 Windows 上访问密钥的 32 位程序实际上将被重定向到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node密钥。如果您混合使用 32 位和 64 位进程,则 64 位进程将不会具有与 32 位进程相同的注册表视图。

于 2009-07-27T18:06:15.443 回答
0

事实证明,我遇到的问题与 pkgmgr.exe 没有任何关系,除非您想在进行手动测试以查看它为什么不起作用时计算缺乏耐心。在安装程序中,问题是安装脚本做了一些阻止命令启动的事情。在手动测试的情况下,我只是没有等待足够长的时间让命令完成运行。(在上述命令行的情况下,大约需要几分钟。)

于 2009-09-21T17:29:34.340 回答
0

我尝试了许多解决方案,包括上面给出的解决方案。我无法在 Windows Enterprise x64 上删除 IIS 7 我最终重新安装了 IIS,然后禁用了 IIS 管理和万维网发布服务。

于 2011-06-08T04:26:28.660 回答