Powershell - como iniciar o trabalho com uma credencial do ActiveDirectory

2

Meu cliente controla o acesso ao banco de dados com o ActiveDirectory. Eu gostaria de fazer o seguinte:

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

Isso funciona bem para qualquer usuário local, mas quando está na vpn e digita minhas credenciais do ActiveDirectory, isso não autentica.

Eu sei que posso usar runas para iniciar processos como o usuário do ActiveDirectory somente se eu fornecer o sinalizador /netonly (ele não funciona de outra forma). Eu pensei que o seguinte poderia ajudar

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

mas o objeto resultante não é convertível em PsCredential , que é o que o parâmetro -Credential usa.

Relacionado a esta pergunta sobre SO mas parece Eu poderia estar perguntando a coisa errada.

    
por George Mauer 25.03.2013 / 15:14

1 resposta

2

Se você estiver tentando fazer consultas SQL de segurança integrada, poderá fazê-lo com o módulo de representação. Eu não tentei SQL, mas há um post sobre como usar o PowerShell Impersonation Module para acesso de compartilhamento de rede no meu blog, e acredito que sejam as mesmas credenciais de rede que você precisa para o SQL Server (por exemplo, o mesmo que usar runas com / netonly).

Se você está apenas usando o trabalho porque pensou que ele permitiria que você alterasse as credenciais de acesso à rede, basta remover esse código e usar o Push-ImpersonationContext. Se você precisar o trabalho por algum outro motivo, então você tem que chamar Push-ImpersonationContext dentro do trabalho , o que significa que você precisa colocar suas credenciais no trabalho (provavelmente por serializando a senha e passando-a como uma string segura criptografada).

Eu não posso testá-lo agora (não tenho um domínio ou mesmo um servidor de db à mão), então, uhm ... deixe-me saber se ele não funciona;)

    
por 26.03.2013 / 19:10