![测试用户账号和密码的工具(测试登录)](https://linux22.com/image/494412/%E6%B5%8B%E8%AF%95%E7%94%A8%E6%88%B7%E8%B4%A6%E5%8F%B7%E5%92%8C%E5%AF%86%E7%A0%81%E7%9A%84%E5%B7%A5%E5%85%B7%EF%BC%88%E6%B5%8B%E8%AF%95%E7%99%BB%E5%BD%95%EF%BC%89.png)
是的,我可以启动虚拟机或远程进入某个地方并尝试密码...我知道...但是是否有一个工具或脚本可以模拟登录以确认或否认密码是否正确?
设想:
服务器服务帐户的密码“被遗忘”了...但我们认为我们知道它是什么。我想将凭据传递给某个东西,然后让它以“正确密码”或“错误密码”返回。
我甚至考虑过一个驱动器映射脚本,传递该用户帐户和密码来查看它是否成功映射了驱动器,但却迷失在让它正常工作的逻辑中......例如:
-Script 通过 msgbox 询问用户名 -script 通过 msgbox 询问密码 -script 尝试将驱动器映射到每个人都可以访问的公共共享 -script 如果成功则取消驱动器映射 -script 返回弹出消息框,指出“密码正确”,否则返回“密码不正确”
任何帮助都值得感激...您可能会认为这是一种罕见的现象,不需要工具来支持它,但是......好吧......
答案1
runas /u:yourdomain\a_test_user notepad.exe
该实用程序将提示输入密码,如果提供了正确的密码,记事本将启动,否则将产生错误 1326:用户名或密码不正确
答案2
Powershell 脚本:
#usage: Test-UserCredential -username UserNameToTest -password (Read-Host)
Function Test-UserCredential {
Param($username, $password)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$ct = [System.DirectoryServices.AccountManagement.ContextType]::Machine, $env:computername
$opt = [System.DirectoryServices.AccountManagement.ContextOptions]::SimpleBind
$pc = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ct
$Result = $pc.ValidateCredentials($username, $password).ToString()
$Result
}
http://powershellcommunity.org/Forums/tabid/54/aft/8034/Default.aspx
答案3
您还可以使用:
net use \\计算机名\共享名 [密码] /USER:]用户名]
如果远程计算机上有同名的共享。或者,C$
如果帐户是管理员,则使用。
答案4
您可以编写一个简单的 vbscript 函数来验证这一点...类似于:
Function GoodPassword(strAdminUsername, strAdminPassword, strNTDomain)
Const ADS_SECURE_AUTHENTICATION = 1
On Error Resume Next
Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://" & _
strNTDomain, strAdminUserame, _
strAdminPassword, _
ADS_SECURE_AUTHENTICATION)
if err.number = 0 then
GoodPassword = True
Else
GoodPassword = False
End If
On Error GoTO 0
End Function
资料来源: