【发布时间】:2013-11-12 06:55:53
【问题描述】:
我使用Powershell To Check Local Admin Credentials 作为这个 sn-p 的基础,但遇到了问题。 (不想线程劫持)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext('machine',$entry)
if($pc.ValidateCredentials("secretadmin", "secretpassword")){Write-host "good"}else{write-host "bad"}
它大约有 50% 的时间有效。剩下的时间,我明白了
使用“2”参数调用“ValidateCredentials”的异常: “同一用户与服务器或共享资源的多个连接, 不允许使用多个用户名。断开所有 以前与服务器或共享资源的连接,然后重试。
这让我想起了使用 net use 验证凭据的批处理脚本,我们只需要删除映射的驱动器即可解决问题。由于没有我知道的已保存对象,我不确定如何清除此登录。我检查了已登录的用户,但什么也没看到
基本上,我们正在为医院构建数百台服务器,并且需要确保符合政策,检查这些凭据只是其中的一部分,但这就是我遇到问题的地方。
任何帮助将不胜感激。在提出这些问题之前作为旁注。凭据是正确的,它们在脚本中是硬编码的,我可以收到失败并立即使用引发错误的相同凭据通过 RDP 和 psexec 登录。防火墙允许任何从我的主机到目的地。
【问题讨论】:
标签: windows powershell scripting