Execute o comando do Windows SC como outro usuário

2

Eu gostaria de executar o comando SC em um destino de rede como um usuário diferente. Eu preciso ser capaz de especificar o nome de usuário e senha na linha de comando também, pois isso é para fins de script. No entanto, não vejo opções no SC para executar um comando como outro usuário. Eu vejo a opção 'obj' que aceita um nome de usuário, mas que parece ser para definir a conta de usuário sob a qual o serviço deve ser executado.

Se não houver nenhuma maneira de alterar o contexto de usuário da execução, existe outro comando que me permitirá criar / iniciar / parar um serviço do Windows de maneira programável (chamando do TeamCity)

    
por CoolUserName 11.02.2012 / 00:16

3 respostas

8

Use a ferramenta de linha de comando "RunAs" , que permite fornecer um conjunto de credenciais explícito e suporta o "Domínio \ Nome de usuário "e formatação UPN, permitindo que você se autentique como outro usuário e execute seu comando:

   Runas /user:Domain\user "sc \remoteServer stop serviceKeyName"

Alternativa:

Configure uma tarefa agendada com uma conta de logon específica

    
por 11.02.2012 / 00:42
3

Acabamos de instalar e usar o PsExec - link . Permite a especificação in-line de nome de usuário / senha, portanto, é programável por script.

    
por 13.02.2012 / 18:58
1

No PowerShell:

(get-wmiobject win32_service -comp servername -cred domain\user -filter "name='browser'").stopservice()

-cred exibirá uma caixa de diálogo de credenciais também

Substitua servername , domain\user e name= pelos valores adequados

com -cred você pode até usar credenciais armazenadas.

    
por 11.02.2012 / 02:01