Страницы

воскресенье, 31 марта 2013 г.

Запускаем Denwer на Windows 8.

Казалось бы - что может быть проще: скачали установочный пакет с оффсайта, распаковали, стартанули... и Apache благополучно падает.
Причина - кто-то слушает 80-й порт. В моем случае пришлось отключить две службы: Web Deployment Agent Service и Службу веб-публикаций.

Быстрое решение на VBScript:
Set objWMI = GetObject("winmgmts:\\.\Root\CIMV2")

DisableService objWMI, "W3SVC", "Manual"
DisableService objWMI, "MsDepSvc", "Manual"

Set objWMI = Nothing

Sub DisableService(objWMI, serviceName, serviceStartMode) 
 Set colServiceList = objWMI.ExecQuery _
  ("Select * from Win32_Service Where Name = '" & serviceName & "'")
 If colServiceList.Count = 0 Then Exit Sub
 For Each objService in colServiceList
  If objService.Started Then  
   If objService.StopService() <> 0 Then _
    MsgBox "Не удалось остановить службу '" & objService.DisplayName & "'",vbCritical
  End If
  If objService.StartMode <> "Manual" Or objService.StartMode <> "Disabled" Then
   If objService.ChangeStartMode(serviceStartMode) <> 0 Then _
    MsgBox "Не удалось изменить режим запуска службы '" & objService.DisplayName & "'",vbCritical
  End If
 Next
 Set colServiceList = Nothing 
End Sub
Копируем код в блокнот, сохраняем файл с именем StopWebServices.vbs.

Для запуска от имени администратора пишем еще один скрипт:
With CreateObject("Scripting.FileSystemObject")
 f = .BuildPath(.GetParentFolderName(WScript.ScriptFullName),"StopWebServices.vbs")
 If .FileExists(f) Then
  CreateObject("Shell.Application").ShellExecute "wscript.exe", Chr(34) & f & Chr(34),, "runas",1
 Else
  MsgBox "Файл " & f & " не найден",vbExclamation
 End If
End With
Я назвал его runus.vbs. Стандартный код для запуска от имени.
Запускаем... и нашему индейцу больше никто не мешает выполнять свою работу.