Domanda

Sto cercando di cercare un processo su una macchina remota e superare un codice di uscita in modo che possa essere gestito da un altro processo.Quindi se il processo esiste il codice di uscita di uscita 1, se non non fare nulla. Ho scritto lo script qui sotto con qualche aiuto da un altro post.Funziona per una localmachina / processo locale ma non restituisce nulla per un processo / macchina remoto.Nello script qui sotto se utilizzo il comando TaskList TaskList funziona.

@echo off
setlocal enableDelayedExpansion

set "cmd=tasklist.exe /NH /s RemoteMachine /u RemoteMachine\administrator /p Password /fi "Imagename eq Install.exe""

for /F "delims=*" %%p in ('!cmd! ^| findstr "Install.exe" ') do (
  echo exit 1
)
.

È stato utile?

Soluzione

Ti consiglierei di cambiare la logica dietro i codici di uscita di ritorno.I comandi Windows come FINDSTR utilizzano una logica diversa per questo: Se c'è una corrispondenza, il codice di uscita è 0, e se non c'è nessuna corrispondenza, è 1. E poiché la logica è già implementata in FINDSTR, è possibile solo Usa IT:

@tasklist.exe /NH /s RemoteMachine /u RemoteMachine\administrator /p Password /fi "Imagename eq Install.exe" | findstr "Install.exe" >nul
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top