ฉันต้องมีคำสั่งคล้ายกับลินุกซ์' DOMAINNAMEบน Windows ได้โดยไม่ต้องใช้โปรแกรมของบุคคลที่สามใด ๆ
มีคำสั่งดังกล่าวหรือไม่?
ฉันต้องมีคำสั่งคล้ายกับลินุกซ์' DOMAINNAMEบน Windows ได้โดยไม่ต้องใช้โปรแกรมของบุคคลที่สามใด ๆ
มีคำสั่งดังกล่าวหรือไม่?
คำตอบ:
ลอง:
echo %USERDOMAIN%
หรือ
echo %USERDNSDOMAIN%
หากยังไม่ได้ผลคุณสามารถลองใช้ systeminfo:
systeminfo | findstr /B /C:”Domain”
”Domain”
จะทำให้ไม่สามารถ grep สตริงได้
% USERDOMAIN% และโดเมนคอมพิวเตอร์เครือข่ายอาจแตกต่างกัน คำสั่ง systeminfo จะได้รับคำตอบที่ถูกต้อง แต่มันช้า! นี่คือทางออกที่ฉันใช้:
@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%
@ ไมค์: วิธีการแก้ปัญหาที่ดี - แต่ฉันมีปัญหาบางอย่างกับมันในสภาพแวดล้อมหลายภาษา ฉันมีเซิร์ฟเวอร์เยอรมันและอังกฤษ
ฉันเปลี่ยนสคริปต์ของคุณเพื่อใช้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%
ขอบคุณสำหรับความคิดของคุณ
คุณสามารถเรียกใช้คำสั่งด้านล่างในพรอมต์คำสั่ง:
set user
มันให้ข้อมูลเพิ่มเติมที่เกี่ยวข้องกับโดเมนนอกเหนือจากชื่อโดเมนตามที่แสดงในภาพรวมด้านล่าง:
หมายเหตุสำคัญ : โดเมนที่คอมพิวเตอร์ของคุณลงทะเบียนอาจไม่เหมือนกับโดเมนที่ผู้ใช้ที่เข้าสู่ระบบได้ลงทะเบียนไว้ โปรดอ่านเกี่ยวกับการโอนย้ายและทิศทางในความน่าเชื่อถือของโดเมนเพื่อทราบว่าผู้ใช้ที่ลงทะเบียนในหนึ่งโดเมนสามารถเข้าสู่ระบบคอมพิวเตอร์ในโดเมนอื่นได้อย่างไร
มีหนึ่งบรรทัดเพียงพอที่จะรับโดเมนโดยใช้ผู้ใช้ท้องถิ่น:
FOR / F "usebackq tokens = 2 delims ==" %% a (
wmic.exe COMPUTERSYSTEM GET DOMAIN /Value ^|find /i "domain"
) ตั้งค่า _computerDom = %% a