Como executar um script do powershell a partir de um aplicativo remoto como um usuário específico

2

Eu tenho um aplicativo que pode executar um script powershell na máquina Windows remota. Eu estou tentando mapear uma unidade de rede usando um script PowerShell. Quando o mesmo script é executado no nó de extremidade, o script funciona bem e consegue mapear uma unidade de rede. Mas quando o mesmo script foi executado a partir do meu aplicativo, mapeando uma unidade de rede feita, mas como uma unidade de rede desconectada.

Agora, minhas observações: Eu descobri que Meu aplicativo está executando o script com NT Authority\System account. Pode ser por causa disso, a unidade de rede mapeada é visível para um usuário específico como uma unidade desconectada. estou correto !!?

Agora, o problema: O que posso fazer para mapear uma unidade de rede disponível para todos os usuários? ou Posso executar meu script do powershell como um usuário específico, e essa unidade será mapeada apenas para esse usuário?

De qualquer forma, eu já tentei executar meu script do powershell como um usuário diferente do meu aplicativo usando Start-Process e Invoke-Command , ele gera um erro, diz executar winrm quickconfig , o que também não funcionou.

Qualquer ajuda? Estimado!!

    
por Pydev 22.05.2015 / 14:15

1 resposta

2

Quando mapeado de NT Authority\System , a unidade será mostrada como desconectada, mas deve funcionar: Mapear uma unidade de rede a ser usada por um serviço

NOTE: The newly created mapped drive will now appear for ALL users of this system but they will see it displayed as "Disconnected Network Drive (Z:)". Do not let the name fool you. It may claim to be disconnected but it will work for everyone.

Além disso, mapear uma unidade usando NT Authority\System é a única maneira (embora não oficialmente suportada) de disponibilizar uma unidade de rede para todos os usuários.

Se você quiser mapear uma unidade para um usuário específico, precisará executar o PowerShell como um usuário diferente . Mas isso também significa que você precisa obter credenciais para esse usuário.

Isso pode ser mitigado usando manipulação de token, mas é complicado. Veja a função Invoke-TokenManipulation e seu parâmetro ImpersonateUser .

    
por 22.05.2015 / 14:57