先說明一下,如果要用以下的程式碼來建信箱的話,請記得要先在AD中建帳號,之後才能用這段程式碼來建信箱。
'記得在程式最前面要參考這三個
Imports System.Management.Automation
Imports System.Management.Automation.Runspaces
Imports System.Management.Automation.Remoting
Public Function create_Mailbox(ByVal usrAccount As String, ByVal DBName As String, Optional ) As Boolean
Dim enable_success As Boolean = True '用來確認是否已經完成信箱建立的工作的布林值
Dim newCred As PSCredential = Nothing '在建立遠端Runspace的認證資訊。設成nothing的話,就是使用現在登入者的認證資訊
Dim connectionInfo As New WSManConnectionInfo(New Uri("http://yourserver.local/powershell?serializationLevel=Full"),"http://schemas.microsoft.com/powershell/Microsoft.Exchange", newCred) '建立遠端Runspace的連線資訊(PowerShell 2.0導入的新功能)
connectionInfo.AuthenticationMechanism = AuthenticationMechanism.Kerberos '認證機制設為kerberos認證
'使用連線資訊線來建立遠端伺服器的單一runspace
Dim myRunspcae As Runspace = RunspaceFactory.CreateRunspace(connectionInfo)
'建立PowerShell物件
Dim myPowershell As PowerShell = PowerShell.Create()
Dim domainUser As String
domainUser = "yourdomain\" + Trim(usrAccount)
'建立PowerShell命令(用來啟用某個帳號的信箱),以下的指令組合之後就是 Enable-Mailbox -Identity "domain\usrAccount" -Alias "userAccount" -Database "DBName" )
Dim myCommand As New PSCommand()
myCommand.AddCommand("Enable-Mailbox")
myCommand.AddParameter("Identity", domainUser)
myCommand.AddParameter("Alias", usrAccount)
myCommand.AddParameter("Database", DBName)
myPowershell.Commands = myCommand
Dim cmdResult As ICollection(Of PSObject) = Nothing
Try
myRunspcae.Open()
myPowershell.Runspace = myRunspcae
cmdResult = myPowershell.Invoke()
Catch ex As Exception
Dim errStr As String = ex.InnerException.ToString()
enable_success = False
Finally
myRunspcae.Dispose()
myRunspcae = Nothing
myPowershell.Dispose()
myPowershell = Nothing
End Try
Return enable_success
End Function