2009-07-27 4 views
2

В инсталляторе веб-сервера, который я поддерживаю, мы отслеживаем, не установил ли установщик IIS 7 и/или ASP (под Vista или более поздней версией), либо , и сохраните соответствующее значение в реестре, если это так. Во время удаления, если это значение есть, и никакие другие веб-сайты не используют IIS на этом компьютере, пользователю задается вопрос, следует ли удалять IIS/ASP. Если это так, мы удалим все установленные нами .Как удалить IIS 7 под WOW64?

Ниже приводится команда, мы запускаем, чтобы удалить 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 предварительно установлены.)

+0

Какая ошибка возвращается в 64-разрядной системе? –

+0

как это относится к serverfault? с каких пор серверная ошибка Windows Vista? –

+0

Поскольку это проблема конфигурации операционной системы? Потому что это не проблема программирования? – blowdart

ответ

0

Как оказалось, проблема, с которой я сталкиваюсь, не имеет ничего общего с pkgmgr.exe, если вы не хотите считать отсутствие терпения при проведении ручного теста, чтобы понять, почему он не работает. В установщике проблема заключалась в том, что скрипт установки делал то, что не позволяло команде запускаться. В случае ручных тестов я просто не ожидал достаточно долго, чтобы команда завершила работу. (Требуется около двух минут, в случае вышеуказанной командной строки.)

0

Я не уверен, что это относится к вашей проблеме, но Я неоднократно был укушен фактом, что 32-разрядная программа, которая обращается к ключу HKEY_LOCAL_MACHINE\SOFTWARE на 64-битной Windows, фактически будет перенаправлена ​​на ключ HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node. Если вы смешиваете 32-разрядные и 64-разрядные процессы, 64-битный процесс не будет иметь тот же вид реестра, что и 32-битный процесс.

+0

Как я упоминал в своем сообщении, я отключу перенаправление WOW64 при запуске команды. Во время установки используется (аналогичная) команда, которую я использую для установки IIS и ASP. Как и команды для установки и удаления только ASP (в случае, когда IIS предварительно установлен без ASP). – RobH

0

Я пробовал множество решений, включая приведенные выше. Я просто не могу удалить IIS 7 на Windows Enterprise x64 Я, наконец, закончил переустановку IIS, а затем отключил службы публикации IIS Admin и World Wide Web.