在我维护的Web服务器安装程序中,我们跟踪安装程序是否安装了IIS7和/或ASP (在Vista或更高版本下),如果安装了,则将适当的值保存到注册表中。在卸载过程中,如果存在该值,并且该计算机上没有其他Web站点正在使用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参数),但无济于事。
我们在安装过程中用来安装IIS7/ASP的命令也同样长,而且它总是有效的,所以我无法想象问题在于卸载命令行太长。(为了验证这一理论,我甚至尝试将命令分解为两个命令,一个用于删除ASP组件,另一个用于删除其余组件。同样的问题,没有删除任何东西。)
是否有其他命令可以在64位系统上执行我们想要的操作?如果是这样的话,我们是否必须禁用WOW64重定向,它在32位系统上也能工作吗?(它将仅在Vista和更高版本的系统上调用。在较早的系统上,我们依赖于用户确保预先安装了IIS和ASP。)
发布于 2009-09-21 17:29:34
事实证明,我遇到的问题与pkgmgr.exe没有任何关系,除非你想在做手动测试时计算缺乏耐心,看看为什么它不工作。在安装程序中,问题出在install脚本做了一些阻止命令启动的事情。在手动测试的情况下,我只是没有等待足够长的时间来完成命令的运行。(在使用上述命令行的情况下,大约需要几分钟。)
发布于 2009-07-27 18:06:15
我不确定这是否适用于你的问题,但我已经多次被这样的事实所困扰:在64位Windows上访问HKEY_LOCAL_MACHINE\SOFTWARE密钥的32位程序实际上会被重定向到HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node密钥。如果您混合使用32位和64位进程,则64位进程的注册表视图将与32位进程不同。
发布于 2011-06-08 12:26:29
我已经尝试了许多解决方案,包括上面给出的解决方案。我无法在Windows Enterprise x64上删除IIS7我最终还是重新安装了IIS,然后禁用了IIS Admin和万维网发布服务。
https://stackoverflow.com/questions/1189636
复制相似问题