作为工作的一部分,我有时会连接到具有 AD 环境/域的网络,并接收域用户凭据。但是,我的机器不是域的一部分。因此,当我尝试查询域(在 runas /netonly 窗口内)时,我得到了以下信息:
C:\Windows\system32>net accounts /do
The request will be processed at a domain controller for domain WORKGROUP.
System error 1355 has occurred.
The specified domain either does not exist or could not be contacted.
但是,如果我从该域内的计算机运行相同的命令,我会得到:
C:\Windows\system32>net accounts /do
Force user logoff how long after time expires?: Never
Minimum password age (days): 0
Maximum password age (days): 42
Minimum password length: 0
Length of password history maintained: None
Lockout threshold: Never
Lockout duration (minutes): 30
Lockout observation window (minutes): 30
Computer role: domain.local
The command completed successfully.
同样,这是在标题为“cmd/exe(以 domain.loca\username 身份运行)”的 runas /netonly 窗口中。
所有类似命令(例如“net user username /domain”)都会发生同样的情况
有没有办法从域外的计算机查询这些“网络”命令(当然要有域用户)?
另外需要注意的是,一些外部工具(如 Windows Resource Kit 甚至 PingCastle)可以与 runas / netonly 完美配合。
答案1
根据微软支持文章Windows 操作系统上的网络命令,NET 命令的/domain
开关在当前域的域控制器上执行请求的操作。
对于未加入 Active Directory 域的计算机,“当前域”是计算机的工作组。但工作组没有域控制器,这就是 NET 命令失败的原因:
该请求将在域控制器上处理工作组。
发生系统错误 1355。
指定的域不存在或无法联系。
(重点是我的)
没有办法解决这个问题。交换机/domain
经过硬编码,可以读取本地计算机的域成员身份,以确定在何处查找域控制器。它与您执行命令时使用的凭据无关,因此使用域用户的凭据运行它不会产生任何影响。
最好的选择是从您想要查询的域的成员机器执行这些命令。