PsExec e Windows 2008 R2: 'Acesso negado'

6

Este é o meu cenário:

Estou tentando iniciar remotamente o & interrompa sites do IIS 7.0 no meu servidor a partir da minha máquina local, usando PsExec .

Alguns pontos importantes:

  • A máquina local executa o Windows Vista .
  • O servidor executa o Windows 2008 R2 .
  • Cada máquina é executada em diferentes domínios .
  • Existe uma confiança unidirecional do domínio da minha máquina local para o domínio do meu servidor.
  • O PsExec está usando uma conta de administrador de domínio , que é autenticada como administrador local na máquina do servidor.
  • A máquina local faz referência ao servidor por meio de um alias; ele não usa o nome real do servidor.

Estou usando o comando:

"C:\Program Files\PSTools\psexec.exe" \(server-alias) -u (server-domain)\(domain-admin) -p (password) C:\Windows\System32\inetsrv\appcmd.exe stop site "Default Web Site"

Isso retorna o erro:

PsExec v1.94 - Execute processes remotely
Copyright (C) 2001-2008 Mark Russinovich
Sysinternals - www.sysinternals.com
Could not start PsExec service on (server-alias):
Access is denied.

E algumas notas importantes sobre solução de problemas:

  • Este comando funciona quando executado a partir de outra máquina ( Windows 2003 R2 ) no domínio do servidor. ( Intra-domínio )
  • Este comando também funciona quando executado em outra máquina executando Windows 2003 R2 da minha máquina local; os dois estão em domínios diferentes. ( Inter-domínio )
  • Usar o mesmo comando PsExec, exceto com ping , em vez de appcmd.exe falhar.
  • O comando foi executado a partir do prompt de comando usando "Executar como administrador".
  • A chave de registro DisableStrictNameChecking foi definida no servidor para permitir que os aliases sejam usados.
  • A chave de registro LocalAccountTokenFilterPolicy = 1 foi definida no servidor e na máquina local.
  • O firewall do Windows não está sendo executado no servidor.
  • O UAC está desativado na máquina local.
  • O UAC está ativo no servidor.
  • O UAC tem o "Modo de aprovação do administrador" desativado no servidor; isso permitiu que o comando funcionasse dentro do domínio (em oposição ao interdomínio).

Parece sinalizar que isso é um problema específico do Windows 2008 R2 relacionado à configuração de segurança, provavelmente nas linhas de permissões de domínio ou administrativas. No entanto, estou sem ideias. Qualquer sugestão que você possa ter seria muito apreciada!

    
por David Elner 13.08.2010 / 16:09

3 respostas

3

Demorei horas para encontrar uma maneira de trabalhar no PsExec entre dois computadores com Windows 7 e usuários não-administradores iniciando o PsExec ... A desativação do UAC (EnableLUA = 0, ConsentPromptBehaviorAdmin = 0, LocalAccountTokenFilterPolicy = 1) não funcionou, desativando os Firewalls não funcionaram ...

Aqui encontrei o caminho de trabalho - obrigado JelmerS: (Informações de PSexec não está se conectando máquina usando nome de usuário e senha fornecidos )

Isso ocorre porque o psexec ainda tenta acessar o compartilhamento ADMIN $ com suas credenciais locais, antes de executar seu comando como outro usuário. De acordo com este encadeamento, você pode armazenar em cache as credenciais antes de executar o psexec: cmdkey.exe / add: MACHINE_NAME_HERE / user: MACHINE_NAME_HERE \ Administrator / pass: PASSWORD_HERE bloco de notas psexec.exe \ MACHINE_NAME_HERE -i cmdkey.exe / delete: MACHINE_NAME_HERE

Atenciosamente, Peter

    
por 26.02.2014 / 16:48
1

Você está executando o PSEXEC a partir de um prompt de comando elevado em sua estação de trabalho do Vista? Você definiu LocalAccountTokenFilterPolicy = 1? Consulte Perguntas frequentes: problemas comuns de PSTools

    
por 13.08.2010 / 17:16
0

Eu não tenho um ambiente semelhante para testar, mas o que posso recomendar é este: No domínio do cliente, configure os scripts em lote (.bat), um para cada site que você deseja reiniciar. (Eu os chamarei de " restart_site-sitename.bat ".) Crie um para cada domínio e salve-os em um diretório em um servidor de gerenciamento nesse domínio (onde coloco minhas ferramentas sysad, onde posso gerenciar tudo, caso algo aconteça meu laptop), incluindo o PSExec nesse diretório.

psexec.exe \(server-alias) C:\Windows\System32\inetsrv\appcmd.exe stop site "WebsiteName"

Agora, tente executar o psexec nesse servidor de gerenciamento, chamando um desses arquivos em lote.

"C:\Program Files\PSTools\psexec.exe" \(server-alias) -u (server-domain)\(domain-admin) -p (password) C:path\to\psexec_and_scripts\restart_site-sitename.bat"
    
por 05.10.2010 / 14:28