Não estou ciente de nada realmente análogo à autenticação baseada em chave SSH para Windows. Mas aqui estão algumas ideias:
De aqui , Eu acho que se você se conectar primeiro ao compartilhamento ipc $ do host remoto, então execute o psexec, que o psexec será executado automaticamente no contexto da conexão ipc $.
Então, no seu arquivo de lote:
net use \myserver\IPC$ /user:MyID MyPassword
psexec \myserver c:\whatever.cmd
Isso impedirá que seu nome de usuário / senha seja enviado pela rede em texto não criptografado. No entanto, ele deixa seu nome de usuário / senha visível dentro do seu arquivo de lote.
Uma maneira de contornar isso é escrever um programa executável cuja única função é executar "net use \ [argumento de linha de comando] \ IPC $ / user: MyID MyPassword". (Pessoalmente eu usaria algo como autoit para escrever o exe.) Vamos dizer que o nome "nu.exe". Então seu nome de usuário / senha secreta é pelo menos incorporado dentro de "nu.exe" e, portanto, não está em texto puro. Embora seja provavelmente possível fazer engenharia reversa via descompilando-o , ele é pelo menos um pouco ofuscado.
Então o seu processo é:
nu.exe myserver
psexec \myserver c:\whatever.cmd
Mas, então, você precisa manter o nu.exe em um local seguro, porque qualquer um que tenha acesso a ele poderá executar programas em hosts remotos como qualquer ID que você tenha embutido no nu.exe.
Portanto, ambas as opções têm desvantagens, mas talvez uma delas funcione para você ...