最近因為一些原因,碰到了需透過vbscript來建立Exchange 2007的信箱,
然而Exchange 2007僅可使用powershell去執行,所以展開了以下小研究心得,
並在此做一下筆記。
最近因為一些原因,碰到了需透過vbscript來建立Exchange 2007的信箱,
然而Exchange 2007僅可使用powershell去執行,所以展開了以下小研究心得,
並在此做一下筆記。
準備研究時,一開始傻傻的,印象中記得透過Exchange 2007的UI管理介面建立信箱時,
他會產生一個script,仿照這樣的script就可以依樣畫葫蘆的大量建立信箱啦!!
結果看了一下script,怎麼這麼醜呀
1: Enable-Mailbox
2: -identity 'domain.com/Users/TestUsers/TestUserA UA. Chen'
3: -alias 'TestUserA'
4: -Database 'Ex01\First Storage Group\Mailbox Database'
-identity 這一段怎麼回事,竟然使用canonicaName,
在某種程度上,也太麻煩了,為了得到這個資訊,還必須要重新去AD裡撈資料,
跟原本想像中直接使用sAMAccountName之類的不一樣呀,結果翻了一下文件和一些大師後才知道,
原來其實使用這樣就可以了
1: Enable-Mailbox
2: -identity 'domain\TestUserA'
3: -alias 'TestUserA'
4: -Database 'Ex01\First Storage Group\Mailbox Database'
參考:
接下來,平常想透過powershell去管理exchanget時,都會使用Exchange Management Shell,
因為他會先import一些特定的module才可以使用像是Enable-Mailbox之類的指令,
因此如果想要直接使用平常的powershell去執行的話該怎麼辦呢?
一開始想到是去檢查到底Exchange Management Shell是甚麼樣的捷徑,內容打開一看…
看到了這一段心想,心又涼了一半,
需要使用exshell.psc1以外,還要使用Exchange.ps1才可以順利執行?
再次地問了大師和查了文件才知道,似乎Exchange.ps1主要是開啟Exchange的管理介面
參考
因此只需要這樣即可
1: PowerShell.exe -PSConsoleFile "C:\Program Files\Microsoft\Exchange Server\Bin\ExShell.Psc1" -Command ". '<Path to Your Script>'"
參考
這樣子使用上就稍微輕鬆一些啦!
<插曲補充>
如果今天執行的這個Script並不在Exchange 2007的Server上時,
最後呢,就再利用vbscript包一下就可以執行啦!
1: Dim objExec
2: Dim strCmd
3: strCmd = "c:\windows\system32\windowspowershell\v1.0\powershell.exe -PSConsoleFile ""c:\program files\microsoft\exchange server\bin\exshell.psc1"" -command ""Enable-Mailbox -identity 'domain\TestUserA' -alias 'TestUserA' -database 'Ex01\first storage group\Mailbox Database'"""
4: Set objExec = ws.Exec (strCmd)
DONE!
說實在的,還是很醜XD
測試使用環境
- DC: Windows Server 2003 x86
- Exchange server :Windows Server 2003 x86 with Exchange 2007
相關參考整理