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