[Powershell] VBScript 透過 Powershell 管理 Exchange 2007

最近因為一些原因,碰到了需透過vbscript來建立Exchange 2007的信箱,
然而Exchange 2007僅可使用powershell去執行,所以展開了以下小研究心得,
並在此做一下筆記。

最近因為一些原因,碰到了需透過vbscript來建立Exchange 2007的信箱,
然而Exchange 2007僅可使用powershell去執行,所以展開了以下小研究心得,
並在此做一下筆記。

準備研究時,一開始傻傻的,印象中記得透過Exchange 2007的UI管理介面建立信箱時,
他會產生一個script,仿照這樣的script就可以依樣畫葫蘆的大量建立信箱啦!!

image

 

結果看了一下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,

image

 

因為他會先import一些特定的module才可以使用像是Enable-Mailbox之類的指令,
因此如果想要直接使用平常的powershell去執行的話該怎麼辦呢?

一開始想到是去檢查到底Exchange Management Shell是甚麼樣的捷徑,內容打開一看…

image

 

看到了這一段心想,心又涼了一半,
需要使用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上時,

記得要安裝Microsoft Exchange Server 2007 Management Tools才行順利使用

 

最後呢,就再利用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

 

 

相關參考整理

 


歡迎大家一起到MSDN學習與討論