Назад | Перейти на главную страницу

Powershell - как начать работу с учетными данными ActiveDirectory

Мой клиент контролирует доступ к своей базе данных с помощью ActiveDirectory. Я бы хотел сделать следующее:

$cred = Get-Credential
Start-Job -Credential $cred { 
    #do some stuff with the db
}

Это отлично работает для любого локального пользователя, но при использовании VPN и вводе моих учетных данных ActiveDirectory это не может пройти аутентификацию.

Я знаю что могу использовать runas запускать процессы как пользователь ActiveDirectory, только если я предоставлю /netonly флаг (иначе не работает). Я думал, что следующее может помочь

$cred = (Get-Credential).GetNetworkCredential()

но получившийся объект не может быть преобразован в PsCredential, а это то, что -Credential параметр принимает.

Относится к этот вопрос на SO но, похоже, я спрашивал не то.

Если вы пытаетесь выполнять SQL-запросы интегрированной безопасности, вы мощь уметь делать это с помощью модуля олицетворения. Я не пробовал SQL, но есть сообщение о том, как использовать модуль олицетворения PowerShell для доступа к сетевому ресурсу в моем блоге, и я считаю, что это те же сетевые учетные данные, которые вам нужны для SQL-сервера (например, такие же, как при использовании runas с / netonly).

Если вы просто используете задание, потому что думали, что оно позволит вам изменить учетные данные для доступа к сети, тогда просто избавьтесь от этого и используйте вместо этого Push-ImpersonationContext. если ты необходимость задание по какой-то другой причине, тогда вам нужно вызвать Push-ImpersonationContext внутри работы, что означает, что вам необходимо ввести свои учетные данные в задание (возможно, путем сериализации пароля и передачи его в виде зашифрованной безопасной строки).

Я не могу протестировать это прямо сейчас (у меня нет под рукой домена или даже сервера db), поэтому, ммм ... дайте мне знать, если это не сработает;)