Как установить методы аутентификации в IIS программно - PullRequest
1 голос
/ 07 декабря 2009

Мы работаем над автоматизацией развертывания некоторых приложений IIS. Я использовал cscript.exe внутри командного файла Windows для создания веб-приложения и тому подобное. Однако в настоящее время есть несколько настроек, которые мне нужно автоматизировать. А именно, если вы посмотрите на свойства приложения, в разделе Структура каталогов -> Аутентификация и контроль доступа -> Изменить, мне нужно снять флажок Включить анонимный доступ и проверить встроенную проверку подлинности Windows.

Есть ли простой способ сделать это из пакетного файла Windows?

РЕДАКТИРОВАТЬ: я должен уточнить, что это IIS 6.0, поэтому appcmd не доступен.

Ответы [ 4 ]

2 голосов
/ 07 декабря 2009

надеюсь, это поможет:

http://forums.iis.net/t/1159665.aspx

1 голос
/ 08 декабря 2009

Я недавно ответил на очень похожий вопрос. В примере используется инструмент asdutil.vbs, который вы можете вызвать из своего пакетного файла:

Настройка NTAuthenticationProviders на уровне приложения в IIS 6 (переполнение стека)

Изменено:

Поскольку у вас уже есть сценарий CScript для создания веб-сайта, вы можете просто установить AuthFlags в сценарии:

'' Some values just as an example
iisNumber = 668
ipAddress = "172.16.3.200"
hostName = "myserver.com"
wwwfolder = "c:\mysites\www"


Dim serverBindings(1)
serverBindings(0) = ipAddress & ":80:www." & hostName
serverBindings(1) = ipAddress & ":80:" & hostName


'' Create server
Set w3svc = GetObject("IIS://localhost/w3svc")
Set newWebServer = w3svc.Create("IIsWebServer", iisNumber)
newWebServer.ServerBindings = serverBindings
newWebServer.ServerComment = "Server is: " & hostName
newWebServer.SetInfo

'' Create /root app
Set rootApp = newWebServer.Create("IIsWebVirtualDir", "ROOT")
rootApp.Path = wwwFolder
rootApp.AccessRead = true
rootApp.AccessScript = true
rootApp.AppCreate(True)
rootApp.AuthFlags = 4 '' <== Set AuthFlags here
rootApp.SetInfo
1 голос
/ 07 декабря 2009
0 голосов
/ 20 января 2012
Dim sSitePath = "1" 'Set the site ID here
Set oSite =  GetObject("IIS://localhost/" & sSitePath & "/root")

Select Case oSite.AuthFlags
  Case 1
    Wscript.Echo "Anonymous"
  Case 2
    Wscript.Echo "Basic"
  Case 4
    Wscript.Echo "NTLM"
  Case 6
    Wscript.Echo "MD5"
  Case 64
    Wscript.Echo "Passport"
End Select
...