22

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

Is there such a command?

1
  • For information - domain name of computer and domain name of the logged-in user might not be same. – RBT Feb 11 '19 at 9:17
30

Try:

echo %USERDOMAIN%

or

echo %USERDNSDOMAIN%

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

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

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 below snapshot:

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

enter image description here

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.

2

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%
1

@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

0

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

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.