Até onde eu sei, não há como passar credenciais alternativas usando o acelerador de tipo ADSI. Duas maneiras de tentar contornar isso em seu código são:
- execute o powershell.exe como o usuário do domínio em vez do usuário local - isso fará com que tudo no script use as credenciais de domínio
- use o cmdlet
Invoke-Command
, que permite que você passe um bloco de script para ser executado e credenciais alternativas.
Eu nunca experimentei nenhum destes, por isso vai demorar um pouco de tentativa e erro.
Outra opção que pode ser mais flexível para você é não usar o acelerador de tipo ADSI. Existem duas maneiras de fazer isso.
- Use as classes
DirectoryService
do .NET framework. Aqui está um bom artigo que orienta você nesse processo. Inclui um exemplo usando credenciais alternativas. - Use os cmdlets Gerenciamento do Active Directory da Quest . Estes são wrappers em torno de um monte de coisas AD que facilitam muito as coisas. Eles também permitem que você passe credenciais alternativas.