10001 » How can a script determine if the computer it is running on is a Standalone Workstation, Member Workstation, Standalone Server, Member Server, Backup Domain Controller, or Primary Domain Controller? 23-Dec-05
I have scripted DomainRole.bat to determine which of the following roles describes the current computer:Standalone Workstation
Member Workstation
Standalone Server
Member Server
Backup Domain Controller
Primary Domain Controller
The syntax for using DomainRole.bat is:
call DomainRole string
Where string is a call directed environment variable that will contain one of the
following number-text strings:
0-Standalone Workstation
1-Member Workstation
2-Standalone Server
3-Member Server
4-Backup Domain Controller
5-Primary Domain Controller
DomainRole.bat contains:
@echo off
if {%1}=={} @echo Syntax: DomainRole Role&goto :EOF
setlocal
if exist "%TEMP%\DoomainRole.vbs" goto doit
@echo On Error Resume Next>"%TEMP%\DoomainRole.vbs"
@echo strComputer = ".">>"%TEMP%\DoomainRole.vbs"
@echo Set objWMIService = GetObject("winmgmts:\\" ^& strComputer ^& "\root\cimv2")>>"%TEMP%\DoomainRole.vbs"
@echo Set colItems = objWMIService.ExecQuery("Select DomainRole from Win32_ComputerSystem",,48)>>"%TEMP%\DoomainRole.vbs"
@echo For Each objItem in colItems>>"%TEMP%\DoomainRole.vbs"
@echo. Wscript.Echo objItem.DomainRole>>"%TEMP%\DoomainRole.vbs"
@echo Next>>"%TEMP%\DoomainRole.vbs"
:doit
for /f "Tokens=*" %%r in ('cscript //nologo "%TEMP%\DoomainRole.vbs"') do (
set /a role=1%%r -10
)
set /a role=%role% * 28
set table=0-Standalone Workstation 1-Member Workstation 2-Standalone Server 3-Member Server 4-Backup Domain Controller 5-Primary Domain Controller #
call set work=%%table:~%role%^,28%%#
set work=%work: =%
set work=%work: #=%
set work=%work:#=%
endlocal&set %1=%work%
End of Article

