Я нашел этот пост полезным, однако он не решил мою проблему, так как я пытался запустить его из скрипта с локальной учетной записью администратора. Кажется, он не работает как локальный администратор (только при входе в систему как пользователь домена).
Однако мне, наконец, удалось получить рабочее решение, и, так как это было так сложно, я решил поделиться им здесь, чтобы у кого-нибудь еще с этой проблемой был ответ прямо здесь. Оба ответа на одной странице в зависимости от ваших потребностей.
Обратите внимание, что выше в scipt (сюда не входит, так как это просто раздел get-credentials) установлен powergui, и он является обязательным требованием для этого кода ниже (а также строки «Add-PSSnapin Quest.ActiveRoles.ADManagement»). Не уверен, что Powergui делает это по-другому, но никто не мог сказать мне, и это работает.
Подставьте свое собственное доменное имя в разделы "имя_домена".
#Get credentials
$credential_ok = 0
while ($credential_ok -ne 1)
{
$credential = get-credential
$result = connect-qadservice -service *domain_name* -credential $credential
[string]$result_string = $result.domain
if ($result_string -eq "*domain_name*")
{
$credential_ok = 1
#authenticated
}
else
{
#failed
}
}
$username = $credential.username
$password = $credential.GetNetworkCredential().password
$date = get-date
Add-Content "c:\lbin\Install_log.txt" "Successfully authenticated XP script as $username $date"
AccountManagement.PrincipalContext.ValidateCredentials()
это не так (если вы предоставляете безопасную строку для пароля)?