Como posso forçar a versão de 32 bits do cliente de área de trabalho remota a ser executada no Vista de 64 bits?

7

Normalmente, é muito fácil executar a versão de 32 bits de um aplicativo do Windows a partir da linha de comando, por exemplo, janela de execução:

C:\Windows\SysWOW64\Notepad.exe

Você pode dizer que o processo é de 32 bits, verificando no monitor de tarefas \ processos, como ele terá um * 32 ao lado do nome do arquivo.

No entanto, o cliente de área de trabalho remota (mstsc.exe) não quer jogar bola. Ele sempre executa a versão de 64 bits do C: \ Windows \ System32 \ mstsc.exe, independentemente de como eu a inicio (janela de execução, janelas cmd de 32 bits, etc.). Eu até tentei escrever um programa C ++ de 32 bits para criá-lo (normalmente processos filho também são 32 bits), mas isso não funcionou.

Precisamos executar a versão de 32 bits porque temos algumas dlls personalizadas que são integradas à área de trabalho remota e não é possível carregar uma dll de 32 bits em um processo de 64 bits.

Alguém sabe como contornar isso?

    
por John Sibly 15.06.2009 / 17:46

7 respostas

3

Encontrei uma maneira simples de superar isso.

link

Solução: Renomeie o mstsc.exe de 64 bits do System32 para impedir que ele substitua o processo de 32 bits.

Isso é simples se você tiver direitos para renomear esse arquivo. Se você usa o NTFS, pode receber um erro "Você precisa da permissão do TrustedInstaller para fazer alterações neste arquivo".

Para obter este erro, você pode assumir a propriedade do arquivo e conceder permissões completas:

  1. Navegue até% SystemRoot% \ System32
  2. Clique com o botão direito em mstsc.exe e escolha Propriedades
  3. Vá para a guia Segurança
  4. Clique em Avançado
  5. Ir para a guia Proprietário
  6. Clique em Editar
  7. Na lista "Alterar proprietário para:", escolha seu nome de usuário
  8. Clique em OK
  9. Vá para a guia Permissões
  10. Clique em Alterar permissões…
  11. Clique em Adicionar
  12. Digite seu nome de usuário e clique em OK
  13. Marque a caixa na coluna Permitir para Controle total
  14. Clique em OK
  15. Clique em OK
  16. Um aviso de segurança do Windows será exibido; clique em Sim para continuar
  17. Clique em OK

Agora, você pode renomear o arquivo mstsc.exe para algo como mstsc.exe.bak

Em seguida, você pode iniciar o mstsc.exe a partir de% SystemRoot% \ SysWOW64 e você terá a conexão de área de trabalho remota de 32 bits em execução.

    
por 01.12.2009 / 23:33
3

Eu descobri que a única maneira de forçar o mstsc a ser executado em 32 bits é executar o depende (do sysinternals) e abrir mstsc.exe do syswow64. Depois de executá-lo usando o perfil inicial, deixe a opção como padrão. Isso resultará em um mstsc * 32 bit em execução. No momento não encontrei nenhum outro caminho para o mesmo. Enxada esta ajuda Flavio

    
por 09.09.2009 / 15:00
2

Isso é confuso sobre as versões de 64 bits do Windows, mas as coisas localizadas no diretório SysWOW64 são os executáveis de 32 bits que são executados em 'WOW' (Windows no Windows). As coisas localizadas no diretório System32 são binários de 64 bits e não têm 32 bits equivalentes. A nomeação aqui é por razões de compatibilidade e é coxo, mas tenho certeza que algum software funciona por causa disso que, de outra forma, não funcionaria.

Você poderia tentar copiar o mstsc.exe de uma instalação de 32 bits para sua máquina de 64 bits e executá-lo, mas tanto quanto eu sei, o 64bit windows tem apenas 64bit exe para mstsc e, como tal, não pode ser forçado a rodar no modo 32bit. .

    
por 15.06.2009 / 17:57
2

Use o script abaixo como um arquivo .bat, para forçar o início do mstsc.exe x32.

@echo off
set WinDir=
start C:\Windows\SysWow64\mstsc.exe 
    
por 29.05.2012 / 16:18
1

Você já tentou copiar o executável de 32 bits de uma instalação existente de 32 bits e executá-lo?

    
por 15.06.2009 / 17:56
0

Você já tentou o modo de compatibilidade, tentando um sistema operacional mais antigo? Eu acho que o sistema olha o manifesto para o executável e se ele foi desenvolvido para o Vista, então ele não mostrará essa aba. Mas acho que você poderia editar o manifesto.

    
por 15.06.2009 / 20:21
0

Minha resposta é: tem uma versão de 32 bits do mstsc.exe? Eu assumo mstsc que vem com o Windows de 64 bits é a versão de 64 bits do mstsc.

A resposta real é: Se você quer escrever uma extensão dll para uma aplicação de 64-bit você deve recompilar sua dll's como 64-bit. A Microsoft não é nem deve ser obrigada a fornecer uma versão de 32 bits de todos os componentes do sistema operacional.

Outro exemplo: Se você deseja gravar uma extensão do shell para o Windows Explorer de 64 bits, ele deve ser uma DLL de 64 bits. Não há versão de 32 bits do Windows Explorer. Você pode suportar o Windows de 64 bits ou não.

    
por 28.07.2009 / 16:13