正如标题所述:我如何知道网络中哪些计算机的本地管理员帐户处于活动状态?因为,根据安全顾问的要求,我们必须知道网络上 300 多台笔记本电脑/台式机上的每个本地管理员帐户,并在可能的情况下禁用它们。
有net use
或wmi
命令可以解决这个问题吗?可以递归设置它来询问网络上的每台计算机吗?如果有用的话,我们有一个域控制器,但总有一些组的计算机未加入域。
答案1
我在这里发现了一些问题。
- 在未加入域的计算机上必须有一个即使不是名为 Administrator 的帐户,管理员帐户也处于活动状态。
- 在未加入域的计算机上,您需要一个帐户来运行查询
- 一般来说,您只能在计算机在线时运行查询,因此您需要安排查询定期运行,即使这样,您也不能保证获得所有查询,因为您无法保证 PC 在您运行查询的时间范围内在线。
话虽如此
在 Windows 10 PC 上,您可以运行以下命令来获取名为 Administrator 的帐户并查看该帐户是否已启用:
Get-LocalUser -Name Administrator | Select-Object Name, Enabled
您可以在类似以下脚本中使用此命令来获取计算机的状态。
[pscustomobject]@{
Computername = $env:Computername
AdminEnabled = Get-LocalUser -Name "Administrator" | Select-Object -ExpandProperty Enabled
} | Export-CSV -Path "\\a\share\where\you\can\put\this\$($env:Computername).csv"
然后,您可以在域中将上述命令作为启动脚本运行(请注意,共享文件夹需要对“域计算机”组具有可写权限)
在域外的 PC 上,您就有点倒霉了。如果您有一个可以在多个系统上远程登录的帐户,则可以使用如下方法:
$APSCredentialWhichHasTheRightsToDoThis = Get-Credential
Invoke-Command -Computername "RemotePC" -ScriptBlock {Get-LocalUser -Name "Administrator"} -Credential $APSCredentialWhichHasTheRightsToDoThis
获取远程计算机的状态。