Click here to Skip to main content
15,884,537 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I am trying to set up a server for use at a university for our IS program. I have been working on a script to automate the process of creating users for the students. This server will be used for web application development. So far I have everything working but am stuck with a portion of my script. I want to be able to enter a student's name, generate a random password, create an FTP folder, and assign the user name to IIS manager users for FTP isolation. the problem I am having is that it does not seem to be setting the passwords, as I cannot log in as one of the users that are created until I manually enter a password. Here is the portion of the script where I assign the users to IIS manager. I will include more if needed.

VB
sub iisUser (userName, newpass)
	Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
	adminManager.CommitPath = "MACHINE/WEBROOT"
	adminManager.SetMetadata "pathMapper", "AdministrationConfig"

	Set authenticationSection = adminManager.GetAdminSection("system.webServer/management/authentication", "MACHINE/WEBROOT")
	Set credentialsCollection = authenticationSection.ChildElements.Item("credentials").Collection

	Set addElement = credentialsCollection.CreateNewElement("add")
	addElement.Properties.Item("name").Value = userName
	addElement.Properties.Item("password").Value = newpass
	addElement.Properties.Item("enabled").Value = True
	credentialsCollection.AddElement(addElement)

adminManager.CommitChanges()

end sub


sub iisAuthorization (userName, newpass)
Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT"
adminManager.SetMetadata "pathMapper", "AdministrationConfig"

Set authorizationSection = adminManager.GetAdminSection("system.webServer/management/authorization", "MACHINE/WEBROOT")
Set authorizationRulesCollection = authorizationSection.ChildElements.Item("authorizationRules").Collection

scopeElementPos = FindElement(authorizationRulesCollection, "scope", Array("path", "/ISFTP"))
If scopeElementPos = -1 Then
   Set scopeElement = authorizationRulesCollection.CreateNewElement("scope")
   scopeElement.Properties.Item("path").Value = "/ISFTP"
   authorizationRulesCollection.AddElement(scopeElement)
Else
   Set scopeElement = authorizationRulesCollection.Item(scopeElementPos)
End If

Set scopeCollection = scopeElement.Collection
Set addElement = scopeCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = userName
scopeCollection.AddElement(addElement)

adminManager.CommitChanges()
end sub
Posted

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900