====== getExchangeMailboxInfo.vbs ====== 'the main work was taken from Microsoft's sample code On Error Resume Next Dim aArgs Dim strUsage Dim strArgs Dim server_arg strUsage = "Usage: cscript.exe " & wscript.ScriptName & " ExchangeServerName [ServerName2 ServerName3...]" Set aArgs = wscript.Arguments If aArgs.count = 0 Then wscript.echo strUsage wscript.quit(1) End If 'If aArgs.count > 0 Then ' If aArgs.Count > 1 Then ' wscript.echo strUsage ' wscript.Quit(1) ' End If strArg = aArgs(0) 'some error handling On Error Resume Next 'End If For Each server_arg in aArgs WMIGetMailboxList(server_arg) Next Function WMIGetMailboxList(server_name) Dim cComputerName Const cWMINameSpace = "root/MicrosoftExchangeV2" Const cWMIInstance = "Exchange_Mailbox" 'cComputerName = "cuit-x1" 'cComputerName = aArgs(0) cComputerName = server_arg Dim strWinMgmts ' Connection string for WMI Dim objWMIExchange ' Exchange Namespace WMI object Dim listExchange_Mailboxs ' ExchangeLogons collection Dim objExchange_Mailbox ' A single ExchangeLogon WMI object ' Create the object string, indicating WMI (winmgmts), using the ' current user credentials (impersonationLevel=impersonate), ' on the computer specified in the constant cComputerName, and ' using the CIM namespace for the Exchange provider. strWinMgmts = "" strWinMgmts = "winmgmts:{impersonationLevel=impersonate}!//"&cComputerName&"/"&cWMINameSpace Set objWMIExchange = GetObject(strWinMgmts) ' Verify we were able to correctly set the object. If Err.Number <> 0 Then WScript.Echo "ERROR: Unable to connect to the WMI namespace: " & strWinMgmts & "error number: " & err.Number Else ' ' The Resources that currently exist appear as a list of ' Exchange_Mailbox instances in the Exchange namespace. Set listExchange_Mailboxes = objWMIExchange.InstancesOf(cWMIInstance) ' ' Were any Exchange_Mailbox Instances returned? If (listExchange_Mailboxes.count > 0) Then ' If yes, do the following: ' Iterate through the list of Exchange_Mailbox objects. WScript.echo "MailboxDisplayName,Size,LastLogonTime,ServerName,StorageGroupName,StoreName,TotalItems,DeletedMessageSizeExtended " For Each objExchange_Mailbox in listExchange_Mailboxes 'Two things of note: 'objExchange_Mailbox.LegacyDN 'objExchange_Mailbox.MailboxDisplayName 'Return the mailbox fields we want... WScript.echo """" & objExchange_Mailbox.LegacyDN & """,""" & objExchange_Mailbox.Size & """,""" & _ objExchange_Mailbox.LastLogonTime & """,""" & objExchange_Mailbox.ServerName & """,""" & _ objExchange_Mailbox.StorageGroupName & """,""" & _ objExchange_Mailbox.StoreName & """,""" & objExchange_Mailbox.TotalItems & """,""" & _ objExchange_Mailbox.DeletedMessageSizeExtended & """" Next Else ' If no Exchange_Mailbox instances were returned, ' display that. WScript.Echo "WARNING: No Exchange_Mailbox instances were returned." End If End If End Function