WIN1@Codename

Codename

DNS ServerのProvisioning

DNSへの働きかけはWMIにてインターフェースが公開されていますので、これを利用します。
今回はホスティング仕様のDNS登録をおこないますので、ユニークドメインを使用した場合のDNSゾーンの作成および、CNAMEレコードの作成を行います。
 

'ゾーンの作成
Dim objManagementScope As New ManagementScope("\\localhost\root\MicrosoftDNS", Nothing)
Dim objDNSZone As New ManagementClass(objManagementScope, New ManagementPath("MicrosoftDNS_Zone"), Nothing)
Dim objDNSParameters As ManagementBaseObject = objDNSZone.GetMethodParameters("CreateZone")
objDNSParameters("ZoneName") = "win1.jp"
objDNSParameters("ZoneType") = 0
objDNSZone.InvokeMethod("CreateZone", objDNSParameters, Nothing

'CNAMEレコードの作成
Dim objDNSResourceRecord As New ManagementClass(objManagementScope, New ManagementPath("MicrosoftDNS_ResourceRecord"), Nothing)
Dim objDNSParameters As ManagementBaseObject = objDNSResourceRecord.GetMethodParameters("CreateInstanceFromTextRepresentation")
objDNSParameters("TextRepresentation") = "www IN CNAME web.hosting.jp" '[1] 
objDNSParameters("ContainerName") = "win1.jp"
objDNSParameters("DnsServerName") = "localhost"
Try
    objDNSResourceRecord.InvokeMethod("CreateInstanceFromTextRepresentation", objDNSParameters, Nothing) '[2] 
Catch ex As Exception
End Try 
 

[1] www.win1.jp が web.hosting.jp を参照するようにレコードを登録します。
[2] CNAMEの登録に関してはエラーは無視して問題ありません。

 

以上で、IISおよびWSSまで一通りのProvisioningが完了したことになります。
参考にコードを記載しましたが、現在はPowerShellで同様の設定か可能と考えられます。


FrontPage Server ExtensionのProvisioning

FrontPage Server Extension(FPSE)を作成したWebサイトにインストールします。
FPSEとWSSは同一サイトにはインストールできない為、今回はWSSは別サイトに作成し、FPSEはWebサイトと同じ場所にインストールすることとします。
FPSEの設定は管理ツールの「stsadm.exe」を使用して行います。
 

Dim objProcess As Process = New Process
objProcess.StartInfo.FileName = "C:\Program Files\Common Files\Microsoft Shared\web server extensions\50\bin\owsadm.exe"
objProcess.StartInfo.Arguments = "-o install -m www.win1.jp -u NewUser"
objProcess.Start() 
 

これにより、WebサイトがFPSE対応サイトに拡張されます。


Windows SharePoint ServicesのProvisioning

WindowsSharPoint(WSS)のサブウェブを作成します。
今回は、サブウェブとしてWSSを提供していますが、ルートサイトにWSSを設定することも可能です。
ただし、WSSはFrontPage Server Extensionと同一サイト上にインストールすることができませんので設定時には注意が必要です。
WSSの設定は管理ツールの「stsadm.exe」を使用して行います。
 

Imports System.Diagnostics

Dim objProcess As Process = New Process
objProcess.StartInfo.FileName = "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\stsadm.exe"
'WSSサブウェブ作成
objProcess.StartInfo.Arguments = "-o createweb -url http://wss.win1.jp/NewSite/ -sitetemplate STS#0 -description NewUser -title NewWSS -unique"
objProcess.Start()
'アカウント設定
objProcess.StartInfo.Arguments = "-o adduser -url http://wss.win1.jp/NewSite/ -userlogin smallbusiness\NewUser -useremail newuser@win1.jp -role ""Administrator""-username NewUser"
objProcess.Start() 
 

一度サブウェブを作成した後、ユーザーアカウントをサブウェブに追加するといった手順となります。


ユーザーアカウントのProvisioning

ユーザー アカウントを作成します。
FTPを使用する場合、ユーザーアカウント名をFTPの仮想ディレクトリ名と同じにすることで、FTP接続時に自分のFTPフォルダにリダイレクトされます。
この辺りも後ほど別コーナーにて紹介します。
 

Dim strLDAPPath As String = "LDAP://CN=Users,DC=provision,DC=local"
Dim objDirectoryEntry As DirectoryEntry = New DirectoryEntry(strLDAPPath, "AdminAccount", "AdminPassword")
objDirectoryEntry.RefreshCache()

'Directoryオブジェクトの作成
Dim objNewUser As DirectoryEntry = objDirectoryEntry.Children.Add("CN=NewUser", "User") '[1]
With objNewUser
    .Properties("SamAccountName").Add("NewUser") '[2]
    .Invoke("Put", New Object() {"Description", "新しいユーザー"})
    .CommitChanges() '[3]
    .Invoke("SetPassword", New Object() {"FtpPassword"}) '[4]
    .Invoke("Put", "userPrincipalName", "NewUser@provision.local")
    .Properties("userAccountControl").Value = 512 + 65536 '[5]
    .CommitChanges()
End With 
 

ActiveDirectoryへのユーザー作成は少々コツが必要となっています。
順序としては、
[1] ActiveDirectoryにユーザーオブジェクトを作成
[2] アカウント名を設定
[3] 一度確定します。 これを行わないとパスワードの設定ができません。
[4] パスワード設定。 パスワードはポリシーなどでブランク禁止や、長さなど設定している場合もあるので、適切なものを入力してください。
[5] アカウント状態を設定。 (参考:UserAccountControl フラグを使用してユーザー アカウント プロパティを操作する方法


FTPのProvisioning

次にFTP仮想ディレクトリを作成します。
FTPはWebサイトのようにホストヘッダーなどでサイト判別することができないので、IISではルートのFTPサイト配下に仮想ディレクトリを配置することでマルチユーザーに対応することができます。
これらホスティング仕様設定に関しては、別コーナーにて後ほど紹介するつもりです。
 

Dim objAppPools As New DirectoryEntry("IIS://localhost/MSFTPSVC/1/ROOT")
Dim objAppPool As DirectoryEntry = objAppPools.Invoke("Create", "IIsFtpVirtualDir", "NewUser")
objAppPool.Invoke("Put", "Path", "C:\WebSite\NewSite")
objAppPool.Invoke("Put", "AccessFlags", 3) '1 + 2 AccessRead + AccessWrite
objAppPool.Invoke("SetInfo"
 

Webサイトのように複雑は設定はありません。


次のページ

FC2Ad