Witajcie!
Mam następujący program, chce się połączyć za pomocą skryptu z innym komputerem w domenie.
Interesuje mnie czy ma włączonego messengera, czy nie. I w skrypcie chcę dostać informację wzrotną w postaci np "Running", "Stopped" .
Aby lokalnie zczytać pozycję status messengera należy użyć kodu:
"psexec.exe" \\nazwa_kompa -u domena\konto -c "
FOR /F "tokens=4 delims= " %%A IN ('SC query messenger ^| FIND "STATE"') DO SET status=%%A"
echo status jest %status%
pause
Żeby zczytać informację o messengerze należy użyć:
"psexec.exe" \\nazwa_kompa -u domena\konto -s SC query messenger
pause
Dostajemy coś takiego :
SERVICE_NAME: messenger
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
SC exited on nazwa_kompa with error code 0.
Cały widz polega na wykroleniu z tego wartości pola status i przypisania do zmiennej powiedzmy %x%.
Zatem jak znaeźć tylko pozycję status ?? ...
Mój kod nie działa :
"psexec.exe" \\nazwa_kompa -u domena\konto -c "
FOR /F "tokens=4 delims= " %%A IN ('SC query messenger ^| FIND "STATE"') DO SET status=%%A"
echo status jest %status%
pause
Zatem co należy w nim zmienić ??