• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 510
  • Last Modified:

Mount information store with VB script

I found this script here on experts Exchange, but my complete lack of knowledge in VB scripts is making me cautious of just slapping it to my exchange server. I'm hoping someone that has used the script before or knows about VB can help me out a little bit.

http://exchange.mvps.org/E2K3/mount%20a%20store%20via%20cmd.htm 

First question, what section do I need to copy, as it says part of it are for deleting. Second qestion, can someone show me what the VB script should look like if my server name is server123 and the name of the store I want to mount is called PublicStore?
0
JacobC
Asked:
JacobC
  • 4
  • 2
1 Solution
 
endital1097Commented:
first i would update it to below

looking at the script you are going to execute it by typing the following at a command prompt and it will prompt for info

cscript script.vbs
Dim strMDBName
Dim strSGName
Dim strComputerName
Dim strAdmGrpName
Dim OrgName
Dim LdapDc

strMDBName = InputBox ("Name of the MDB to be dismounted","Mailbox Store
Name","Mailbox store (Server-A)")
strSGName = InputBox ("Name of the storage group that contains the
MDB","Storage Grop name","First storage group")
strComputerName = InputBox ("Name of the Exchange 2000 server","Server
Name","Server-a")
strAdmGrpName = InputBox ("Name Of the administrative group","Admin Group
name","First Administrative Group")
OrgName = InputBox ("Enter the Organization Name","Organization","NorthWind
Traders")
LdapDc = InputBox ("Enter LDAP Domain
Name","Dc=Domain,Dc=msft","DC=NorhWind,DC=Traders")

' Sub DismountMailboxStoreDB (strMDBName,strSGName,strComputerName )

Dim iMDB
Dim iServer
Dim strTemp
Dim strMDBUrl
Dim arrStGroup()

set iServer = CreateObject ("CDOEXM.ExchangeServer")
set iMDB = CreateObject ("CDOEXM.MailboxStoreDB")
iServer.DataSource.Open strComputerName
WScript.echo iServer.DirectoryServer

' Build the URL to the MailboxStoreDB
    strMDBUrl =
"LDAP://"&iServer.DirectoryServer&"/"&"cn="&strMDBName&",cn="&strSGName&",cn=InformationStore,cn="&strComputerName&",CN=Servers,CN=" &strAdmGrpName& ",CN=Administrative Groups,CN="&OrgName&",CN=Microsoft Exchange,CN=Services,CN=Configuration,"& LdapDc
WScript.echo  "the url is  " & strMDBUrl

'Bind to the MailboxStoreDB
    iMDB.DataSource.Open strMDBUrl

'Dismount the MailboxStoreDB
    iMDB.Dismount(30)
    WScript.echo "The database "& strMDBName & " was successfuly dismounted"

'Cleanup
    Set iServer = Nothing
    Set iMDB = Nothing

Open in new window

0
 
endital1097Commented:
or you could take the top half and run it from a command prompt using

cscript script.vbs mount server123 "First Storage Group" PublicStore


the first was dismount, you need to change the script from iMDB.Dismount(30) to iMDB.Mount
quot = chr(34) 

Set iServer = CreateObject ("CDOEXM.ExchangeServer")
Set iMDB = CreateObject ("CDOEXM.MailboxStoreDB")

' check command line
GetArgs strMode,strComputerName,strSGName,strMDBName,CorrectSyntax
If CorrectSyntax Then
BindMailboxStore strComputerName,strSGName,strMDBName
Select Case strMode
Case "mount"
wscript.echo "Mounting Database " & strMDBName & " in Storage Group " & strSGName & " on " & strComputerName
iMDB.mount
Case "dismount"
wscript.echo "Dismounting Database " & strMDBName & " in Storage Group " & strSGName & " on " & strComputerName
iMDB.dismount
Case "delete"
wscript.echo "Deleting Database " & strMDBName & " in Storage Group " & strSGName & " on " & strComputerName
iMDB.DataSource.delete
End Select

' Cleanup
Set iServer = Nothing
Set iMDB = Nothing
Else
DisplayHelp
wscript.quit
End If

Sub BindMailboxStore (strComputerName,strSGName,strMDBName)
' Bind to the Exchange Server
iServer.DataSource.Open strComputerName

' Build the first part of the URL to the MailboxStoreDB
strTemp = "LDAP://" & iServer.DirectoryServer & "/" & "cn=" & strMDBName & ","

' Set variant array to the ExchangeServer.StorageGroups
arrStGroup = iServer.StorageGroups

' Look in the StorageGroups array if the StorageGroup with strSGName exists
If strSGName = "" Then
' Add last part to the URL to the MailboxStoreDB
strMDBUrl = strTemp & iServer.StorageGroups(0)
Else
For i = 0 To UBound(arrStGroup)
If InStr(1, UCase(arrStGroup(i)), UCase(strSGName)) <> 0 Then
strMDBUrl = arrStGroup(i)
End If
Next
If strMDBUrl <> "" Then
' Add last part to the URL to the MailboxStoreDB
strMDBUrl = strTemp & strMDBUrl
End If
End If
' Bind to the MailboxStoreDB
iMDB.DataSource.Open strMDBUrl ', , , adCreateOverwrite
End Sub


Sub GetArgs(strMode,strComputerName,strSGName,strMDBName,CorrectSyntax)
Set Args = WScript.Arguments
If args.count = 4 Then
CorrectSyntax = True
strMode = args(0)
strComputerName = args(1)
strSGName = args(2)
strMDBName = args(3)
Else
CorrectSyntax = False
End If
Select Case lcase(strMode)
Case "mount","dismount","delete"
CorrectSyntax = True
Case "/?","/help","?","help"
CorrectSyntax = False
End Select
End Sub

Open in new window

0
 
JacobCAuthor Commented:
I dont see the server name or public folder name in either script set. I dont need to designate the IS i am trying to mount or the server?
0
Free tool for managing users' photos in Office 365

Easily upload multiple users’ photos to Office 365. Manage them with an intuitive GUI and use handy built-in cropping and resizing options. Link photos with users based on Azure AD attributes. Free tool!

 
endital1097Commented:
the first script will prompt you for the information

the second script you must call with the parameters as I showed before
the format for the parameters is:
mount/unmount servername storagegroup database

cscript script.vbs mount server123 "First Storage Group" PublicStore
0
 
JacobCAuthor Commented:
What if I want the information to be automaticly put in?
0
 
endital1097Commented:
see script below
quot = chr(34) 

Set iServer = CreateObject ("CDOEXM.ExchangeServer")
Set iMDB = CreateObject ("CDOEXM.MailboxStoreDB")

strMode = "mount"
strComputerName = "server123"
strSGName = "First Storage Group"
strMDBName = "PublicStore"
BindMailboxStore strComputerName,strSGName,strMDBName
Select Case strMode
Case "mount"
wscript.echo "Mounting Database " & strMDBName & " in Storage Group " & strSGName & " on " & strComputerName
iMDB.mount
Case "dismount"
wscript.echo "Dismounting Database " & strMDBName & " in Storage Group " & strSGName & " on " & strComputerName
iMDB.dismount
Case "delete"
wscript.echo "Deleting Database " & strMDBName & " in Storage Group " & strSGName & " on " & strComputerName
iMDB.DataSource.delete
End Select

' Cleanup
Set iServer = Nothing
Set iMDB = Nothing

Sub BindMailboxStore (strComputerName,strSGName,strMDBName)
' Bind to the Exchange Server
iServer.DataSource.Open strComputerName

' Build the first part of the URL to the MailboxStoreDB
strTemp = "LDAP://" & iServer.DirectoryServer & "/" & "cn=" & strMDBName & ","

' Set variant array to the ExchangeServer.StorageGroups
arrStGroup = iServer.StorageGroups

' Look in the StorageGroups array if the StorageGroup with strSGName exists
If strSGName = "" Then
' Add last part to the URL to the MailboxStoreDB
strMDBUrl = strTemp & iServer.StorageGroups(0)
Else
For i = 0 To UBound(arrStGroup)
If InStr(1, UCase(arrStGroup(i)), UCase(strSGName)) <> 0 Then
strMDBUrl = arrStGroup(i)
End If
Next
If strMDBUrl <> "" Then
' Add last part to the URL to the MailboxStoreDB
strMDBUrl = strTemp & strMDBUrl
End If
End If
' Bind to the MailboxStoreDB
iMDB.DataSource.Open strMDBUrl ', , , adCreateOverwrite
End Sub

Open in new window

0

Featured Post

Easily manage email signatures in Office 365

Managing email signatures in Office 365 can be a challenging task if you don't have the right tool. CodeTwo Email Signatures for Office 365 will help you implement a unified email signature look, no matter what email client is used by users. Test it for free!

  • 4
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now