如何以编程方式在IIS中设置身份验证方法

时间:2009-12-07 18:50:38

标签: windows iis authentication wsh

我们正致力于自动部署某些IIS应用程序。我在Windows批处理文件中使用了cscript.exe来创建Web应用程序等。然而,目前手动完成的一些设置需要自动化。也就是说,如果您查看应用的属性,请在“目录结构”下 - >身份验证和访问控制 - >编辑,我需要取消选中启用匿名访问并检查集成Windows身份验证。

有一种简单的方法可以从Windows批处理文件中执行此操作吗?

编辑:我应该澄清这是IIS 6.0,因此appcmd不可用。

4 个答案:

答案 0 :(得分:2)

希望这会有所帮助:

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

答案 1 :(得分:1)

请参阅Configure Windows Authentication (IIS 7)

appcmd set config /section:windowsAuthentication /enabled:true | false

对于IIS 6,可能WMI是另一种选择:

答案 2 :(得分:1)

我回答时回答了一个非常相似的问题。该示例使用asdutil.vbs工具,您可以从批处理文件中调用该工具:

  

Setting NTAuthenticationProviders at an Application level in IIS 6 (Stack Overflow)

<强>更新

因为您已经有一个 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

答案 3 :(得分:0)

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