การบรรยายภาคปฏิบัติของ WSH---การบรรยายที่ 2 การสร้างผู้ใช้ ไดเรกทอรี และไซต์
ผู้เขียน:Eve Cole
เวลาอัปเดต:2009-05-30 19:53:49
การบรรยายครั้งที่ 2 การสร้างผู้ใช้ ไดเร็กทอรี และไซต์
-------------------------------------------------- -------------------------------------------------- ----------------------------------
การบรรยายนี้จะใช้ ADSI ซึ่งเป็น Active Directory Service Interface คุณสามารถดูข้อมูลที่เกี่ยวข้องได้ที่ 15Seconds.com
1. สร้างผู้ใช้ รหัสต่อไปนี้จะสร้างผู้ใช้ 1 บนเซิร์ฟเวอร์อิสระสีขาว
รหัส:
-------------------------------------------------- -------------------------------------------------- ----------------------------------
ชื่อผู้ใช้ Dim, UserPass Dim oDomain, ชื่อผู้ใช้ oUser = "user1" UserPass = "user1" ตั้ง oDomain =
GetObject("WinNT://white") Set oUser = oDomain.Create ("user", ชื่อผู้ใช้) ถ้า (err.number = 0) จากนั้น
oUser.SetInfo oUser.SetPassword UserPass oUser.SetInfo อื่น 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", จริง, "IUSR_user1", "8iui%"
#","D:Logfiles")ฟังก์ชัน ASTCreateWebSite(ที่อยู่ IP, RootDirectory, ServerComment, ชื่อโฮสต์, PortNum,
คอมพิวเตอร์, เริ่ม, AnonymousUserName, AnonymousUserPass, LogFileDirectory) Dim w3svc, เว็บเซิร์ฟเวอร์,
NewWebServer, NewDir Dim Bindings, BindingString, NewBindings, ดัชนี, SiteObj, bDone เมื่อเกิดข้อผิดพลาด
ดำเนินการต่อไป Err.Clear Set w3svc = GetObject("IIS://" & Computer & "/w3svc") ถ้า
Err.Number <> 0 จากนั้น WScript.Echo "ไม่สามารถเปิดได้: "&"IIS://" & คอมพิวเตอร์ & "/w3svc" & VbCrlf & "โปรแกรมจะออก" WScript.Quit (1) สิ้นสุดถ้า BindingString = IpAddress & : & ; & PortNum & ; ; & ; &
ชื่อโฮสต์สำหรับแต่ละเว็บเซิร์ฟเวอร์ใน w3svc ถ้า WebServer.Class = "IIsWebServer" จากนั้น
Bindings = WebServer.ServerBindings ถ้า BindingString = Bindings(0) จากนั้น
WScript.Echo "ข้อขัดแย้งของที่อยู่ IP:" & IpAddress & ",โปรดตรวจสอบที่อยู่ IP!" & VbCrlf & "ยกเลิกการสร้างไซต์นี้"
ออกจากฟังก์ชัน End ถ้า End ถ้า Next Index = 1 bDone = False
ในขณะที่ (ไม่ใช่ bDone) Err.Clear Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/" &
Index) ถ้า (Err.Number = 0) ดังนั้น Index = Index + 1 Else
Err.Clear Set NewWebServer = w3svc.Create("IIsWebServer", Index) ถ้า
(Err.Number <> 0) จากนั้น Index = Index + 1 Else Err.Clear
ตั้งค่า SiteObj = GetObject("IIS://"&Computer&"/w3svc/" & Index) ถ้า
(Err.Number = 0) จากนั้น bDone = True Else Index
= ดัชนี + 1 สิ้นสุดถ้าสิ้นสุดถ้าสิ้นสุดถ้า (ดัชนี > 10000)
จากนั้น WScript.Echo "ดูเหมือนว่าไม่สามารถสร้างไซต์ได้ หมายเลขซีเรียลของไซต์ที่กำลังสร้างคือ: "&ดัชนี&" & VbCrlf & "ยกเลิกการสร้างไซต์นี้" ออกจากฟังก์ชันสิ้นสุดหาก 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 ตั้งค่า NewDir = NewWebServer.Create("IIsWebVirtualDir", "ROOT")
NewDir.Path = RootDirectory NewDir.AccessRead = true NewDir.AppFriendlyName = "แอปพลิเคชัน" &
ServerComment NewDir.AppCreate True NewDir.AccessScript = True Err.Clear
NewDir.SetInfo If (Err.Number = 0) ดังนั้น WScript.Echo อื่น "เกิดข้อผิดพลาดในการสร้างโฮมไดเร็กตอรี่"
สิ้นสุด ถ้าถ้า Start = True ดังนั้น Err.Clear Set NewWebServer = GetObject("IIS://"
& คอมพิวเตอร์ & "/w3svc/" & ดัชนี) NewWebServer.Start ถ้า Err.Number <> 0 แล้ว
WScript.Echo "เกิดข้อผิดพลาดในการเริ่มไซต์!" Err.Clear Else End If End If
ASTCreateWebSite = ฟังก์ชัน IndexEnd ฟังก์ชันต่อไปนี้จะสร้างไซต์ FTP: ฟังก์ชัน ASTCreateFtpSite(IPAddress,
RootDirectory, ServerComment, ชื่อโฮสต์, PortNum, คอมพิวเตอร์, เริ่ม, LogFileDirectory) Dim MSFTPSVC,
FtpServer, NewFtpServer, NewDir Dim Bindings, BindingString, NewBindings, ดัชนี, SiteObj, bDone
เมื่อเกิดข้อผิดพลาด ดำเนินการต่อ Err.Clear ถัดไป ตั้ง MSFTPSVC = GetObject("IIS://" & คอมพิวเตอร์ & "/MSFTPSVC")
หาก Err.Number <> 0 ดังนั้น WScript.Echo "ไม่สามารถเปิดได้: "&"IIS://" & คอมพิวเตอร์ & "/MSFTPSVC" & VbCrlf
& "โปรแกรมจะออก" WScript.Quit (1) สิ้นสุดถ้า BindingString = IpAddress & quot; & PortNum
& /// & ชื่อโฮสต์สำหรับ 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)
ถ้า (Err.Number = 0) ดังนั้น Index = Index + 1 Else Err.Clear
ตั้งค่า NewFtpServer = MSFTPSVC.Create("IIsFtpServer", Index) ถ้า (Err.Number <>
0) จากนั้นดัชนี = ดัชนี + 1 อื่น Err.Clear
ตั้งค่า SiteObj = GetObject("IIS://"&Computer&"/MSFTPSVC/" & Index) ถ้า (Err.Number = 0)
จากนั้น bDone = True Else Index = Index + 1
สิ้นสุดถ้าสิ้นสุดถ้าสิ้นสุดถ้า (ดัชนี> 10,000) แล้ว
WScript.Echo "ดูเหมือนว่าไม่สามารถสร้างไซต์ได้ หมายเลขซีเรียลของไซต์ที่กำลังสร้างคือ: "&ดัชนี&" & VbCrlf & "ยกเลิกการสร้างไซต์นี้"
ออกจากฟังก์ชัน End ถ้า Wend NewBindings = Array(0) NewBindings(0) =
BindingString NewFtpServer.ServerBindings = NewBindings NewFtpServer.ServerComment =
ServerComment NewFtpServer.AllowAnonymous = เท็จ 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 "เกิดข้อผิดพลาดขณะสร้างโฮมไดเร็กตอรี่" สิ้นสุด If If Start = True จากนั้น Err.Clear Set NewFtpServer =
GetObject("IIS://" & คอมพิวเตอร์ & "/MSFTPSVC/" & ดัชนี) NewFtpServer.Start ถ้า
Err.Number <> 0 จากนั้น WScript.Echo "เกิดข้อผิดพลาดในการเริ่มไซต์!" Err.Clear Else
สิ้นสุดถ้าสิ้นสุดถ้า ASTCreateFtpSite = ฟังก์ชัน IndexEnd
-------------------------------------------------- -------------------------------------------------- ----------------------------------