How to get domain name in Windows using command?

I need a similar command to Linux' domainname on Windows without using any third-party application.

Is there such a command?

1

6 Answers

Try:

echo %USERDOMAIN%

or

echo %USERDNSDOMAIN%

If that still doesn't work, you can try using systeminfo:

systeminfo | findstr /B /C:”Domain”
2

You can run below command on command prompt:

set user

It gives you a lot more information related to domain in addition to the name of domain as shown in the snapshot below:

enter image description here

List of details returned by the command are as below:

  1. User DNS Domain
  2. User Domain
  3. User Domain Roaming Profile
  4. User Name
  5. User Profile

Important Note: Domain on which your computer is registered might not be same as the domain on which the logged-in user is registered. Please read about transitivity and direction in domain trust to know how a user registered in one domain can login to a computer on another domain.

The %USERDOMAIN% and the network computer domain can be different. The systeminfo command will get the right answer but it is SLOW! Here is a solution I've used:

@REM + find the computer domain name FOR /F "usebackq tokens=*" %%a IN (`ipconfig /all`) DO ( @((ECHO %%a | findstr /i /c:"Primary Dns Suffix") && SET _str=%%a) > NUL 2>&1 ) FOR /F "tokens=2 delims=:" %%a IN ("%_str%") do SET _computerDomain=%%a SET _computerDomain=%_computerDomain: =% SET _fqdn=%COMPUTERNAME%.%_computerDomain%

@Mike: fine solution - but I had some problems with it in a multi-language enviroment. I have German and English servers.

I changed your script to use wmic.exe:

@REM + Find the computer domain name
@echo off
FOR /F "usebackq tokens=*" %%a IN (`wmic.exe COMPUTERSYSTEM GET DOMAIN /Value`) DO ( @((ECHO %%a | findstr /i /c:"Domain=") && SET _str=%%a) > NUL 2>&1
)
FOR /F "tokens=2 delims=^=" %%a IN ("%_str%") do SET _computerDomain=%%a
SET _computerDomain=%_computerDomain: =%
SET _fqdn=%COMPUTERNAME%.%_computerDomain%
echo %_fqdn%

Thx for your idea

One line is enough to get the domain using a local user:

FOR /F "usebackq tokens=2 delims==" %%a IN (`wmic.exe COMPUTERSYSTEM GET DOMAIN /Value ^|find /i "domain"`) DO set _computerDom=%%a

I just want to add my own solution just in case someone needs a fast way to do it.

My approach is using registry to get domain info:

reg query "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "Domain"

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like