Get computer name as variable to use in vbs script.
I have the following script below. I didn't write it. It finds Storage
groups, mail and public stores and paths on exchange 2003.
But it starts with a dialog box asking the user for tha name of the
server.
I want to have it run automatically unattended.
I want to get rid of the first two lines and define 'strServer' as a
variable that the script can find no matter what the name of the
server I put it on.
For example:
strServer=getTheNameOfThisServer.
So that I can use strServer later on in the script. How do I do that?
Thanks
===========================
strTitle="Mailbox Storage DB Report"
strServer=InputBox("What is the name of the Exchange
Server?",strTitle,"TANK")
SGReport strServer
WScript.Quit
Sub SGReport(strServer)
Dim iServer
Dim iSGs
Dim iMBS
Set iServer=CreateObject("CDOEXM.ExchangeServer")
Set iSGs=CreateObject("CDOEXM.StorageGroup")
Set iMBs=CreateObject("CDOEXM.MailboxStoreDB")
Set iMPs=CreateObject("CDOEXM.PublicStoreDB")
iServer.DataSource.Open strServer
On Error Resume Next
arrSGs=iServer.StorageGroups
For i=0 To UBound(arrSGs)
strSGUrl=arrSGs(i)
'WScript.Echo strSGUrl
iSGs.DataSource.Open "LDAP://" & iServer.DirectoryServer &
"/" & strSGUrl
strData=strData & iSGs.Name & vbcrlf
strData=strData & " LogPath: " &iSGs.LogFilePath & VBCRLF
strData=strData & " SysPath: " & iSGs.SystemFilePath &
VBCRLF & VBCRLF
arrPFStores=iSGs.PublicStoreDBs
For j=0 To UBound(arrPFStores)
iMPS.DataSource.open "LDAP://" & arrPFStores
(j)
strData=strData & " " & iMPS.Name& vbTab & " Path:" &
iMPS.DBPath&vbcrlf
next
Next
For k=0 To UBound(arrSGs)
strSGUrl=arrSGs(k)
'WScript.Echo strSGUrl
iSGs.DataSource.Open "LDAP://" & iServer.DirectoryServer &
"/" & strSGUrl
strData=strData & iSGs.Name & vbcrlf
strData=strData & " LogPath: " &iSGs.LogFilePath & VBCRLF
strData=strData & " SysPath: " & iSGs.SystemFilePath &
VBCRLF & VBCRLF
arrMBStores=iSGs.MailboxStoreDBs
For m=0 To UBound(arrMBStores)
iMBS.DataSource.open "LDAP://" & arrMBStores
(m)
strData=strData & " " & iMBS.Name& vbTab & "
Path:" & iMBS.DBPath&vbcrlf
Next
Next
WScript.Echo strData
End sub
===========================
Re: Get computer name as variable to use in vbs script.
Have a look at the wsshell.ExpandEnvironmentStrings method of the
WScript.Shell object. There is a complete example in the downloadable help
file script56.chm. The computer name is available as %ComputerName%.
Alternatively you'll find the computer name under the Wscript.Network
object.
Re: Get computer name as variable to use in vbs script.
I added this to the top of the script
Set wshShell = Wscript.CreateObject( "Wscript.Shell" )
WScript.Echo "HOSTNAME: " & wshShell.ExpandEnvironmentStrings
( "%COMPUTERNAME%" )
WScript.Echo "DOMAIN : " & wshShell.ExpandEnvironmentStrings
( "%USERDOMAIN%" )
WScript.Echo ""
strServer=wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%"
Re: Get computer name as variable to use in vbs script.
Thanks for the feedback. Note that the following will work too:
wscript.echo wshShell.ExpandEnvironmentStrings("User=%UserName%,
PC=%COMPUTERNAME%" )
Re: Get computer name as variable to use in vbs script.
There is also the WSHNetwork object ...
Set WshNetwork = CreateObject("WScript.Network")
WScript.Echo "Domain = " & WshNetwork.UserDomain
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
WScript.Echo "User Name = " & WshNetwork.UserName
Re: Get computer name as variable to use in vbs script.
Once you capture the name of the computer using any of the forementioned methods, how do you read the first 3 characters of the name?
For example, I have a script that I want to run on specific clients. The hostname on those clients start with the city of where they are located.
L-A-pcname
S-F-pcname
N-Y-pcname
I am looking to not only capture the name but do an if else statement so that it reads the first 3 characters of the hostname and based on the city let it install what is needed.
In this case I want L-A-pcname so I am thinking
IF %computername% ISEQUAL "L-A"
continue with script
ELSE
GOTOEND