Практическая лекция WSH --- Лекция 2 Создание пользователей, каталогов и сайтов
Автор:Eve Cole
Время обновления:2009-05-30 19:53:49
Лекция 2 Создание пользователей, каталогов и сайтов
-------------------------------------------------- ----------------------------------
В этой лекции будет использоваться ADSI, интерфейс службы Active Directory. Соответствующую информацию можно найти на сайте 15Seconds.com.
1. Создайте пользователя. Следующий код создает пользователя user1 на независимом сервере. Исходный пароль — user1, используется ADSI.
Код:
-------------------------------------------------- ----------------------------------
Dim Username,UserPass Dim oDomain,oUser Имя пользователя = "user1" UserPass = "user1" Установить oDomain =
GetObject("WinNT://white") Set oUser = oDomain.Create ("user", UserName) Если (err.number = 0) Тогда
oUser.SetInfo oUser.SetPassword UserPass oUser.SetInfo Else WScript.Echo «Создать пользователя» и «Имя пользователя» и «Ошибка», если установлено oUser = Ничего Установить oDomain = Ничего
-------------------------------------------------- ----------------------------------
2. Создайте каталог. Используйте FileSystemObject для создания каталога:
Код:
-------------------------------------------------- ----------------------------------
Dim FsObject Dim tmpFolder Set FsObject = WScript.CreateObject("Scripting.FileSystemObject")
tmpFolder = "D:userdateuser1" Если не FsObject.FolderExists(tmpFolder) Тогда
FsObject.CreateFolder(tmpFolder) Если Err.Number<>0 Тогда WScript.Echo «Создать каталог» и tmpFolder
и «Неудача, конец, если, конец, если!»
-------------------------------------------------- ----------------------------------
Обратите внимание: перед созданием каталога проверьте, существует ли он. Если он существует, создавать его нет необходимости.
3. Создание сайта. Следующая подпрограмма отвечает за создание WWW-сайта. Значение каждого параметра: IP-адрес сайта, корневой каталог сайта, описание сайта, имя хоста, номер порта, имя компьютера (изменено на LOCALHOST), следует ли его использовать. начать немедленно, учетную запись, используемую для анонимного доступа, пароль учетной записи, используемой для анонимного доступа, и каталог файла LOG.
Функция возвращает серийный номер созданного сайта в IIS (в IIS все сайты нумеруются последовательно, первый из них равен 1).
Пример вызова:
Код:
-------------------------------------------------- ----------------------------------
идентификатор сайта=
ASTCreateWebSite"10.1.3.122","d:userdatauser1","www_user1","","80","LocalHost",True,"IUSR_user1","8iui%
#","D:Logfiles") Функция ASTCreateWebSite(IPAddress, RootDirectory, ServerComment, HostName, PortNum,
Компьютер, Пуск, AnonymousUserName, AnonymousUserPass, LogFileDirectory) Dim w3svc, Веб-сервер,
NewWebServer, NewDir Dim Bindings, BindingString, NewBindings, Index, SiteObj, bDone при ошибке
Возобновить следующую ошибку. Очистить Set w3svc = GetObject("IIS://" & Computer & "/w3svc") If
Err.Number <> 0 Тогда WScript.Echo «Невозможно открыть: «&»IIS://» & Компьютер & «/w3svc» & VbCrlf & «Программа закроется». WScript.Quit (1) End If BindingString = IpAddress. & ":" & Номер порта & ":" &
Имя хоста для каждого веб-сервера в w3svc Если WebServer.Class = «IIsWebServer» Тогда
Bindings = WebServer.ServerBindings Если BindingString = Bindings(0), Тогда
WScript.Echo «Конфликт IP-адресов:» & IpAddress & «Пожалуйста, проверьте IP-адрес!» & VbCrlf & «Отменить создание этого сайта».
Выход из функции End If End If Next Index = 1 bDone = False
Пока (не bDone) Err.Clear Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/" &
Индекс) Если (Номер ошибки = 0) Тогда Индекс = Индекс + 1 Иначе
Err.Clear Set NewWebServer = w3svc.Create("IIsWebServer", Index) Если
(Номер ошибки <> 0) Тогда Индекс = Индекс + 1 Иначе Очистить ошибку
Установите SiteObj = GetObject("IIS://"&Computer&"/w3svc/" & Index), если
(Err.Number = 0) Тогда bDone = True Else Index
= Индекс + 1 Конец Если Конец Если Конец Если Если (Индекс > 10000)
Затем WScript.Echo "Похоже, что сайт не может быть создан. Серийный номер создаваемого сайта: "&Index&"." & VbCrlf & "Отменить создание этого сайта. Выход из функции End If Wend NewBindings = Array(" 0)
NewBindings(0) = BindingString NewWebServer.ServerBindings = NewBindings
NewWebServer.ServerComment = ServerComment NewWebServer.AnonymousUserName = AnonymousUserName
NewWebServer.AnonymousUserPass = AnonymousUserPass NewWebServer.KeyType = "IIsWebServer"
NewWebServer.FrontPageWeb = True NewWebServer.EnableDefaultDoc = True NewWebServer.DefaultDoc
= "Default.htm, Default.asp, Index.htm, Index.asp" NewWebServer.LogFileDirectory = LogFileDirectory
NewWebServer.SetInfo Set NewDir = NewWebServer.Create("IIsWebVirtualDir", "ROOT")
NewDir.Path = RootDirectory NewDir.AccessRead = true NewDir.AppFriendlyName = «Приложение» &
ServerComment NewDir.AppCreate True NewDir.AccessScript = True Err.Clear
NewDir.SetInfo Если (Err.Number = 0) Тогда Иначе WScript.Echo «Ошибка при создании домашнего каталога».
End Если Start = True Тогда Err.Clear Set NewWebServer = GetObject("IIS://"
& Компьютер & "/w3svc/" & Index) NewWebServer.Start Если Err.Number <> 0 Тогда
WScript.Echo "Ошибка запуска сайта. Очистить еще End If End If!"
ASTCreateWebSite = Функция IndexEnd Следующая функция создает FTP-сайт: Функция ASTCreateFtpSite(IPAddress,
RootDirectory, ServerComment, HostName, PortNum, Computer, Start, LogFileDirectory) Dim MSFTPSVC,
FtpServer, NewFtpServer, NewDir Dim Bindings, BindingString, NewBindings, Index, SiteObj, bDone
При ошибке Возобновить следующую ошибку. Очистить Установить MSFTPSVC = GetObject("IIS://" & Computer & "/MSFTPSVC")
Если Err.Number <> 0 Тогда WScript.Echo "Невозможно открыть: "&"IIS://" & Computer & "/MSFTPSVC" & VbCrlf
& «Программа закроется». WScript.Quit (1) End If BindingString = IpAddress & «:» & PortNum
& ":" & HostName для каждого FtpServer в MSFTPSVC Если FtpServer.Class="IIsFtpServer" Тогда
Bindings = FtpServer.ServerBindings Если BindingString = Bindings(0), Тогда
WScript.Echo «Конфликт IP-адресов:» & IpAddress & «Пожалуйста, проверьте IP-адрес!» & VbCrlf & «Отменить создание этого сайта».
Конец функции, если конец, если следующий индекс = 1 bDone = ложь, пока
(Не bDone) Err.Clear Set SiteObj = GetObject("IIS://"&Computer&"/MSFTPSVC/" & Index)
Если (Номер ошибки = 0) Тогда Индекс = Индекс + 1 Иначе Очистить ошибку
Set NewFtpServer = MSFTPSVC.Create("IIsFtpServer", Index) If (Err.Number <>
0) Тогда Индекс = Индекс + 1 Иначе Ошибка.Очистить
Установить SiteObj = GetObject("IIS://"&Computer&"/MSFTPSVC/" & Index), если (Err.Number = 0)
Тогда bDone = True Else Индекс = Индекс + 1
Конец Если Конец Если Конец Если Если (Индекс > 10000) Тогда
WScript.Echo «Похоже, что сайт не может быть создан. Серийный номер создаваемого сайта: «&Index&».» & VbCrlf & «Отменить создание этого сайта».
Выход из функции End If Wend NewBindings = Array(0) NewBindings(0) =
BindingString NewFtpServer.ServerBindings = NewBindings NewFtpServer.ServerComment =
ServerComment NewFtpServer.AllowAnonymous = False NewFtpServer.AccessWrite = True
NewFtpServer.AccessRead = True NewFtpServer.DontLog = False NewFtpServer.LogFileDirectory =
LogFileDirectory NewFtpServer.SetInfo Установить NewDir = NewFtpServer.Create
(«IIsFtpVirtualDir», «ROOT») NewDir.Path = RootDirectory NewDir.AccessRead = true
Err.Clear NewDir.SetInfo If (Err.Number = 0) Тогда Else WScript.Echo «Произошла ошибка при создании домашнего каталога.» Конец Если Start = True Тогда Err.Clear Set NewFtpServer =
GetObject("IIS://" & Computer & "/MSFTPSVC/" & Index) NewFtpServer.Start If
Err.Number <> 0 Тогда WScript.Echo «Ошибка при запуске сайта!» Err.Clear Else!
Конец, если Конец, если ASTCreateFtpSite = Функция IndexEnd
-------------------------------------------------- ----------------------------------