WSH実践講座---講座2 ユーザー、ディレクトリ、サイトの作成
著者:Eve Cole
更新時間:2009-05-30 19:53:49
講義 2 ユーザー、ディレクトリ、サイトの作成
-------------------------------------------------- ----------------------------------
この講義では、Active Directory サービス インターフェイスである ADSI を使用します。関連情報は 15Seconds.com で見つけることができます。
1. ユーザーを作成します。次のコードは、独立サーバーwhite 上にユーザー user1 を作成します。初期パスワードは user1 で、ADSI が使用されます。
コード:
-------------------------------------------------- ----------------------------------
Dim ユーザー名,ユーザーパス Dim oDomain,oUser ユーザー名 = "user1" UserPass = "user1" Set oDomain =
GetObject("WinNT://white") Set oUser = oDomain.Create ("user", UserName) If (err.number = 0) then
oUser.SetInfo oUser.SetPassword UserPass oUser.SetInfo Else WScript.Echo "ユーザーの作成" & ユーザー名 & "エラー!" End If Set oUser = Nothing Set oDomain = Nothing
-------------------------------------------------- ----------------------------------
2. ディレクトリの作成 FileSystemObject を使用してディレクトリを作成します。
コード:
-------------------------------------------------- ----------------------------------
Dim FsObject Dim tmpFolder Set FsObject = WScript.CreateObject("Scripting.FileSystemObject")
tmpFolder = "D:userdateuser1" FsObject.FolderExists(tmpFolder) でない場合
FsObject.CreateFolder(tmpFolder) If Err.Number<>0 then WScript.Echo "ディレクトリの作成" & tmpFolder
&「失敗だ!」
-------------------------------------------------- ----------------------------------
なお、ディレクトリを作成する前にディレクトリが存在するか確認してください。存在する場合は作成する必要はありません。
3. サイトの作成 次のサブルーチンは、WWW サイトの作成を担当します。各パラメータの意味は次のとおりです。サイトの IP アドレス、サイトのルート ディレクトリ、サイトの説明、ホスト名、ポート番号、コンピュータ名 (LOCALHOST に変更)、すぐに開始、匿名アクセスに使用されるアカウント、匿名アクセスに使用されるアカウントのパスワード、および LOG ファイルのディレクトリ。
この関数は、IIS で作成されたサイトのシリアル番号を返します (IIS では、すべてのサイトに連続した番号が付けられ、最初のサイトは 1 になります)。
呼び出しの例:
コード:
-------------------------------------------------- ----------------------------------
サイトID=
ASTCreateWebSite"10.1.3.122","d:userdatauser1","www_user1","","80","LocalHost",True,"IUSR_user1","8iui%
#","D:Logfiles")Function ASTCreateWebSite(IPAddress, RootDirectory, ServerComment, HostName, PortNum,
コンピューター、スタート、匿名ユーザー名、匿名ユーザーパス、ログファイルディレクトリ) Dim w3svc、Webサーバー、
NewWebServer、NewDir Dim Bindings、BindingString、NewBindings、Index、SiteObj、bDone On Error
次の再開 Err.Clear Set w3svc = GetObject("IIS://" & Computer & "/w3svc") If
Err.Number <> 0 then WScript.Echo "開けません: "&"IIS://" & Computer & "/w3svc" & VbCrlf & "プログラムは終了します。" WScript.Quit (1) End If BindingString = IpAddress & ":" & ポート番号 & ":" &
w3svc の各 Web サーバーのホスト名 WebServer.Class = "IIsWebServer" の場合
Bindings = WebServer.ServerBindings If BindingString = Bindings(0) then
WScript.Echo "IP アドレスの競合:" & IpAddress & ",IP アドレスを確認してください!." & VbCrlf & "このサイトの作成をキャンセルします。"
終了関数 End If End If Next Index = 1 bDone = False
(完了ではない) Err.Clear Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/" &
インデックス) If (Err.Number = 0) then インデックス = インデックス + 1 Else
Err.Clear Set NewWebServer = w3svc.Create("IIsWebServer", Index) If
(Err.Number <> 0) then Index = Index + 1 Else Err.Clear
Set SiteObj = GetObject("IIS://"&Computer&"/w3svc/" & Index) If
(Err.Number = 0) then bDone = True Else Index
= インデックス + 1 End If End If End If If (インデックス > 10000)
次に、 WScript.Echo "サイトを作成できないようです。作成中のサイトのシリアル番号は "&Index&" です。" & VbCrlf & "このサイトの作成をキャンセルします。" Exit Function End If Wend NewBindings = Array( 0)
NewBindings(0) = BindingString NewWebServer.ServerBindings = NewBindings
NewWebServer.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 If (Err.Number = 0) then Else WScript.Echo "ホーム ディレクトリの作成中にエラーが発生しました。"
End If Start = True then Err.Clear Set NewWebServer = GetObject("IIS://"
& コンピュータ & "/w3svc/" & Index) NewWebServer.Start If Err.Number <> 0 then
WScript.Echo "サイト開始エラー!" Err.Clear Else End If End If
ASTCreateWebSite = IndexEnd Function 次の関数は FTP サイトを作成します。 Function ASTCreateFtpSite(IPAddress,
RootDirectory、ServerComment、HostName、PortNum、Computer、Start、LogFileDirectory) Dim MSFTPSVC、
FtpServer、NewFtpServer、NewDir Dim Bindings、BindingString、NewBindings、Index、SiteObj、bDone
エラー時再開次エラークリア Set MSFTPSVC = GetObject("IIS://" & Computer & "/MSFTPSVC")
If Err.Number <> 0 then WScript.Echo "開けません: "&"IIS://" & Computer & "/MSFTPSVC" & VbCrlf
& "プログラムは終了します。" WScript.Quit (1) End If BindingString = IpAddress & ":" & PortNum
& ":" & MSFTPSVC の各 FtpServer のホスト名 If FtpServer.Class="IIsFtpServer" then
Bindings = FtpServer.ServerBindings If BindingString = Bindings(0) then
WScript.Echo "IP アドレスの競合:" & IpAddress & ",IP アドレスを確認してください!." & VbCrlf & "このサイトの作成をキャンセルします。"
関数 End If End If Next Index = 1 bDone = False While
(完了ではありません) Err.Clear Set SiteObj = GetObject("IIS://"&Computer&"/MSFTPSVC/" & Index)
If (Err.Number = 0) then Index = Index + 1 Else Err.Clear
Set NewFtpServer = MSFTPSVC.Create("IIsFtpServer", Index) If (Err.Number <>)
0) then Index = Index + 1 Else Err.Clear
Set SiteObj = GetObject("IIS://"&Computer&"/MSFTPSVC/" & Index) If (Err.Number = 0)
次に、 bDone = True Else Index = Index + 1
End If End If End If If (インデックス > 10000) then
WScript.Echo "サイトを作成できないようです。作成中のサイトのシリアル番号は「&Index&」です。" & VbCrlf & "このサイトの作成をキャンセルします。"
Exit Function 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 Set NewDir = NewFtpServer.Create
("IIsFtpVirtualDir", "ROOT") NewDir.Path = RootDirectory NewDir.AccessRead = true
Err.Clear NewDir.SetInfo If (Err.Number = 0) then Else WScript.Echo "ホーム ディレクトリの作成中にエラーが発生しました。" End If Start = True then Err.Clear Set NewFtpServer =
GetObject("IIS://" & コンピューター & "/MSFTPSVC/" & Index) NewFtpServer.Start If
Err.Number <> 0 then WScript.Echo "サイトの開始エラー!" Err.Clear Else
End If End If ASTCreateFtpSite = IndexEnd 関数
-------------------------------------------------- ----------------------------------