开发者

How to set Authentication Methods in IIS programmatically

We are working on automating the deployment of some IIS applications. I've used cscript.exe inside a windows batch file to create the web app and such. There are however a few s开发者_JAVA技巧ettings currently done by hand that I need to automate. Namely, if you look at the properties of an app, under Directory Structure -> Authentication and access control -> Edit, I need to uncheck Enable anonymous access and check Integrated Windows authentication.

Is there an easy way to do this from a windows batch file?

EDIT: I should clarify this is IIS 6.0, so appcmd is not available.


hope this helpes:

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


I answered a very similar question a wee while back. The example uses the asdutil.vbs tool which you can call from your batch file:

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

Updated:

Because you've already got a CScript script to create the website, you can just set the AuthFlags in the script:

'' 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


See Configure Windows Authentication (IIS 7):

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

For IIS 6 probably WMI is the alternative:

  • Creating Sites and Virtual Directories, and Setting Properties Using WMI
  • IIsWebServiceSetting (WMI)
  • AuthFlags


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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜