PowerShell 可以为您测试用户帐户密码。这适用于本地帐户和域帐户。这是一个称为 Test-Password
的示例函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| function Test-Password { param ( [Parameter(Mandatory)] [string] $Domain,
[Parameter(Mandatory)] [string] $Username,
[Parameter(Mandatory)] [string] $Password
)
Add-Type -AssemblyName System.DirectoryServices.AccountManagement
$local = $Domain -eq $env:COMPUTERNAME
if ($local) { $context = [System.DirectoryServices.AccountManagement.ContextType]::Machine } else { $context = [System.DirectoryServices.AccountManagement.ContextType]::Domain } $PrincipalContext = [System.DirectoryServices.AccountManagement.PrincipalContext]::new($context, $Domain) $PrincipalContext.ValidateCredentials($UserName,$Password) }
|
它需要域名(或本地计算机名),用户名和密码。密码正确时,该函数返回 $true
。
请注意,此处使用的系统方法需要明文密码。输入明文密码并不安全,因此在我们的下一个技巧中,我们将改进以隐藏方式提示密码的功能。