Como posso fazer o software Windows executado como um usuário diferente dentro de um script?
-
01-07-2019 - |
Pergunta
Eu estou usando um script de construção que chama sábio para criar alguns arquivos de instalação. O problema é que a licença sábio só permite que ele seja executado sob uma conta de usuário particular, que não é a mesma conta que o meu script de construção será executado. Eu sei que o Windows tem o runas comando, mas isto não vai funcionar para um script automatizado como não há nenhuma maneira de inserir a senha via linha de comando.
Solução
Esta ajuda poder: Por que não o programa RunAs aceitar uma senha na linha de comando?
Outras dicas
Eu recomendo dar uma olhada CPAU .
ferramenta de linha de comando para o processo começando no contexto de segurança alternativo. Basicamente, este é um substituto runas. Também permite criar arquivos de trabalho e codificar o ID, senha e linha de comando em um arquivo para que possa ser usado por usuários normais.
Você pode usá-lo como este ( exemplos ):
CPAU -u user [-p password] -ex "WhatToRun" [switches]
Ou você pode criar um arquivo ".job", que terá o interior de usuário e senha codificada do mesmo. Desta forma, você pode evitar ter que colocar a senha para o usuário dentro do seu script de construção.
É um pouco de uma solução alternativa, mas você pode criar uma tarefa agendada que é executado como sua conta de usuário, e executá-lo regularmente, talvez uma vez a cada minuto. Sim, você vai ter que esperar para que ele seja executado em seguida.
Esta tarefa pode então olhar para alguns arquivos de dados para processar, e fazer o trabalho real apenas se eles estão lá.
Esta ajuda poderio, é uma classe que eu usei em outro projeto para que as pessoas fazem suas próprias contas; todos tinham que ter acesso ao programa, mas a mesma conta não poderiam ser autorizados a ter acesso ao material LDAP, para que o programa usa essa classe para executá-lo como um usuário diferente.
http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx