I have scripted CmpOUC.bat to return the Active Directory OU or container where my computer is located.

The syntax for using CmpOUC.bat is:

\[Call\] CmpOUC OUorContainer

Where OUorContainer is a call directed environment variable that will contain the computer's the OU or container.

CmpOUC.bat contains:

@echo off
if \{%1\}==\{\} @echo Syntax: CmpOUC OUorContainer&goto :EOF
if exist "%TEMP%\CmpOUC.VBS" goto doit
@echo.sComputerDN = CreateObject("ADSystemInfo").ComputerName>"%TEMP%\CmpOUC.VBS"
@echo.if InStr(sComputerDN, ",CN=Computers,DC=") ^> 0 Then>>"%TEMP%\CmpOUC.VBS"
@echo. sOUDN="Computers,DC">>"%TEMP%\CmpOUC.VBS"
@echo.ELSE>>"%TEMP%\CmpOUC.VBS"
@echo. sOUDN = Mid(sComputerDN, InStr(sComputerDN, "OU=") + 3)>>"%TEMP%\CmpOUC.VBS"
@echo.END IF>>"%TEMP%\CmpOUC.VBS"
@echo.sComputerOU = Left(sOUDN, InStr(sOUDN, ",") - 1)>>"%TEMP%\CmpOUC.VBS"
@echo.Wscript.Echo sComputerOU>>"%TEMP%\CmpOUC.VBS"
:doit
for /f "Tokens=*" %%O in ('cscript //nologo "%TEMP%\CmpOUC.VBS"') do (
 set %1=%%O
)