Link to home
Start Free TrialLog in
Avatar of JacobC
JacobCFlag for United States of America

asked on

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?
Avatar of endital1097
endital1097
Flag of United States of America image

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

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

Avatar of JacobC

ASKER

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?
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
Avatar of JacobC

ASKER

What if I want the information to be automaticly put in?
ASKER CERTIFIED SOLUTION
Avatar of endital1097
endital1097
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial