我们正致力于自动部署某些IIS应用程序。我在Windows批处理文件中使用了cscript.exe来创建Web应用程序等。然而,目前手动完成的一些设置需要自动化。也就是说,如果您查看应用的属性,请在“目录结构”下 - >身份验证和访问控制 - >编辑,我需要取消选中启用匿名访问并检查集成Windows身份验证。
有一种简单的方法可以从Windows批处理文件中执行此操作吗?
编辑:我应该澄清这是IIS 6.0,因此appcmd不可用。
答案 0 :(得分:2)
希望这会有所帮助:
答案 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