Mik*_*ler 5 windows windows-server-2008 command-line-interface
尝试找出是否有环境变量或其他方法可以从简单的命令行脚本获取给定计算机的登录域。
该变量%USERDOMAIN%将为我提供我的用户所在的域 - 并且在域 trsut 场景中不会返回计算机的域,而是返回我的域。
我的想法是,我希望能够让我的 cmd 脚本代码不关心它所在的域,但能够在运行时确定该信息。
这里有 VBScript 方法:
Set objRootDSE = GetObject("LDAP://RootDSE")
strDomain = objRootDSE.Get("DefaultNamingContext")
WScript.Echo strDomain
Run Code Online (Sandbox Code Playgroud)
另一种方法是这样的:
net config workstation | findstr /C:"Workstation domain"
Run Code Online (Sandbox Code Playgroud)
其输出:
Workstation domain DOMAINNAME
Run Code Online (Sandbox Code Playgroud)
但由于没有相当于 unix 的命令行cut,我发现很难将此信息放入变量中。
这应该适合你:
for /f "tokens=1-3 delims= " %%d in ('net config workstation ^| findstr /c:"Workstation domain"') do set machinedomain=%%f
Run Code Online (Sandbox Code Playgroud)
然后%machinedomain%将包含域。请注意,“工作站域”区分大小写。