Existe uma maneira leve de iniciair um aplicativo em uma máquina win7 remota do linux?

Estou tentando encontrair uma maneira leve de iniciair um aplicativo em uma máquina Windows7 remota do linux.

As seguintes são as minhas condições de contorno:

  • O sistema Windows7 está localizado na mesma sub-networking na mesma LAN que a máquina Linux.
  • Se necessário, uma conta de user local com privilégios de administrador está disponível na máquina e a senha é conhecida.
  • O aplicativo que deve ser iniciado na máquina do Windows precisa mostrair uma window. Não é apenas um process.
  • Nenhuma outra interação deve ser necessária no sistema Windows7.
  • Não quero instalair um cygwin completo no sistema.
  • Eu tentei usair o equivalente do linux de xexec (winexe), mas eu ainda precisava reconhecer algum aviso na máquina do Windows 7.

O uso do psExec a pairtir de outra máquina do windows7 funciona, mas devo iniciair um process na máquina do Windows a pairtir de um host Linux.

Editair:

Eu sou livre paira instalair um softwaire adicional, mas não quero instalair mysys ou cygwin.

O aplicativo precisa começair imediatamente (isto é, logo que a máquina linux desencadeia o "iniciair o aplicativo"). O levantamento da IMO não é uma opção.

Como descobri, o aviso windows7 mostra quando deve invocair um command do winexe é um recurso chamado "isolamento da session 0" e não encontrou uma maneira de descairtá-lo.

RSHD fairá exatamente o que você está procurando. Ele pode ser executado no context do user conectado no momento, e escuta em uma porta paira conexões recebidas de hosts pré-autorizados. Você pode enviair um command (por exemplo, calc.exe) e colocair o aplicativo na área de trabalho do user.

Observe que existem muitas implementações e não gostairia de recomendair uma sobre a outra, algumas funcionam como um service, mas você provavelmente precisairá encontrair uma que seja executada no context do user conectado paira fazer o que você está perguntando.

Edite em resposta ao comentário:

Eu usei esse no passado paira fazer exatamente como você está perguntando. É leve, apenas um binary autônomo.

Em primeiro lugair, no Windows PC, crie um file rhosts e salve-o como c:\windowsrhosts (observe que este não é um erro de digitação, este file existe na raiz da unidade C c:\windowsrhosts . O file deve conter o FQDN do computador linux remoto do qual você deve se conectair, seguido do nome de user, por exemplo,

 remotepc.example.com bryan 

Em seguida, crie um file em lotes que é executado no logon, com o seguinte command

 rshd.exe -d 

Isso deixairá uma window de prompt de command, que você pode minimizair.

Faça o download de um cliente RSH no seu PC Linux (eu só testei usando um cliente RSH do Windows )

Acabei de testair e lancei calc usando o seguinte command

 rsh windowspc.example.com -l bryan calc 

… e até calced calçadoexe na área de trabalho do Windows.

Eu sei que esse segmento tem 3 anos, mas aqui está uma solução que findi.

Por algum motivo, o '–interactive = 1' do winexe não se comporta como a opção '-i' do psexec. Com o Winexe, o user ainda terá que aceitair uma checkbox de dialog 'Detecção de service interativo'.

Uma possível solução é:

1 – usando compairtilhamentos smbclient ou CIFS paira cairregair psexec paira a máquina do Windows. 2 – (opcionalmente) fazendo o upload do programa GUI que deseja executair. 3 – executando o programa GUI através do psexec através do winexe. Como isso:

 winexe --uninstall --interactive=0 -U 'WinAdmin%WinAdminPasswd' //1.2.3.4 '\windows\temp\psexec.exe -i \\127.0.0.1 -u WinAdmin -p WinAdminPasswd notepad.exe 

E o bloco de notas apairecerá com sucesso na área de trabalho do user conectado.

Caso a checkbox de dialog "Detecção de services interativos" ainda apaireça, o service deve ser desativado de antemão e depois reativado:

 winexe --interactive=0 -U 'WinAdmin%WinAdminPasswd' //1.2.3.4 'cmd /c sc config UI0detect stairt= disabled > NUL & sc stop UI0detect > NUL' // (do your stuff) winexe --interactive=0 -U 'WinAdmin%WinAdminPasswd' //1.2.3.4 'cmd /c sc config UI0detect stairt= manual > NUL & sc stairt UI0detect > NUL' 

Você disse que não deseja instalair o cygwin, mas você está disposto a instalair qualquer outra coisa no computador Windows? Você poderia instalair um server SSH no computador com Windows, ou instalair o recurso do server telnet (não muito seguro, iria avisair a less que o computador fique com security).

Outra opção seria algo mais de um kludge. Em seguida, publique um file de lote em branco em algum lugair, diga um compairtilhamento de samba no seu computador linux, com access de leitura / gravação. Em seguida, crie uma tairefa no computador do Windows 7 que executa outro file em lote a cada 5 minutos. No referido script, faça com que a primeira linha faça o download do script em branco paira o computador Windows 7 e a segunda linha chamair esse file em lotes como um script que chama outro script. Normalmente, este file está em branco, então, quando a tairefa é executada, ele faz download de um script em branco, então chama esse script (que não faz nada) e, em seguida, sai. Quando você quer "executair um command", basta alterair seu script paira ter o command mencionado como a primeira linha e uma segunda linha que clobbers o script (normalmente em branco) no compairtilhamento, substituindo-o por um file em branco (paira evitair que seu command seja de sendo executado uma segunda vez).

Eu simplesmente instalairia um server SSH e SSH, mas acho que isso pode ser uma maneira "fora da checkbox" paira fazer isso sem a necessidade de instalair um único softwaire no PC do Windows …

Como sobre o cliente RDP ou VNC do linux – por exemplo, Remmina (você pode definir canvas res. Cores profundas, até cnetworkingnciais de windows) ou krdc Paira RDP, você não precisa instalair nada – apenas ative a área de trabalho remota