如何验证PowerShell凭据是否为域凭据?
下面是我正在尝试的解决方案: 我的脚本要求域凭据作为参数传递。下面是我如何验证这些信誉的:如何验证PowerShell凭据是否为域凭据?,powershell,authentication,active-directory,credentials,Powershell,Authentication,Active Directory,Credentials,下面是我正在尝试的解决方案: 我的脚本要求域凭据作为参数传递。下面是我如何验证这些信誉的: if ($username -and $pass) { $Password = ConvertTo-SecureString $pass -AsPlainText -Force $Credentials = New-Object -Typename System.Management.Automation.PSCredential -ArgumentList $username, $Passwor
if ($username -and $pass) {
$Password = ConvertTo-SecureString $pass -AsPlainText -Force
$Credentials = New-Object -Typename System.Management.Automation.PSCredential -ArgumentList $username, $Password
$TestUsername = $Credentials.username
$TestPassword = $Credentials.GetNetworkCredential().password
# Get current domain using logged-on user's credentials
$CurrentDomain = "LDAP://" + ([ADSI]"").distinguishedName
$domain = New-Object System.DirectoryServices.DirectoryEntry($CurrentDomain,$TestUsername,$TestPassword)
if ($domain.name -eq $null) {
write-host "Authentication failed - please verify your username and password."
exit #terminate the script.
} else {
write-host "Successfully authenticated with domain $domain.name"
}
}
但由于某些原因,这总是导致我出现
“身份验证失败-请验证您的用户名和密码”
。问题是什么?您的解决方案是否也适用于不将cred作为参数传入的runas命令?我建议不要将纯文本密码作为参数传递给函数。对于如何验证runas命令中的用户是有效的域帐户,您有何意见?说清楚,我仍然需要这两种情况的答案。因为当在多台计算机上运行时,如果密码输入不正确,并且出现了太多失败的身份验证尝试,则用户帐户将被锁定。我承认这里似乎有问题,因为我可以复制您的问题,但您也可以计算过程中的失败次数,并设置阈值以防止您的问题。如果您在一台计算机上失败,然后,我建议停止进程并通知用户出现错误。我建议不要将纯文本密码作为参数传递给函数。关于如何验证runas命令中的用户是有效的域帐户,您有什么意见吗?说清楚,我仍然需要这两种情况的答案。因为当在多台计算机上运行时,如果密码输入不正确,并且出现了太多失败的身份验证尝试,则用户帐户将被锁定。我承认这里似乎有问题,因为我可以复制您的问题,但您也可以计算过程中的失败次数,并设置阈值以防止您的问题。如果您在一台计算机上失败,然后我建议停止进程并通知用户有错误。