I need a similar command to Linux' domainname on Windows without using any third-party application.
Is there such a command?
16 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 userIt gives you a lot more information related to domain in addition to the name of domain as shown in the snapshot below:
List of details returned by the command are as below:
- User DNS Domain
- User Domain
- User Domain Roaming Profile
- User Name
- 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"