The PsExec service running on is an incompatible version


 

spece_IT_Windows_Errors_3_210x210PSexec – genialne narzędzie, które od lat używam każdego prawie dnia – stanowi jedno z najbardziej przydatnych i niezawodnych programów, jakie znam. Miewałem jednak w swojej karierze sytuacje, w których najpewniej z winy Windowsów do których się łączyłem, narzędzie to nie działało i pojawiał się komunikat „The PsExec service running on is an incompatible version”. Dzisiaj opiszę ten problem i podam Wam jego rozwiązanie. Skupimy się na tym, aby wszystkie czynności wykonywać zdalnie – założenie jest takie, że bezpośredniego dostępu do serwera nie mamy lub nie mamy czasu iść do serwerowni – z tego samego powodu przecież w ogóle zaczęliśmy używać psexec’a :)

Sytuacja jest bardzo prosta. Chcemy wykonać zdalne polecenie (uruchomienie usługi MailSender), lecz dostajemy komunikat o błędzie:

C:\Users\Adminsitartor>psexec \\komputer_zdalny net start MailSender

PsExec v1.98 – Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals – www.sysinternals.com

The PsExec service running on komputer_zdalny is an incompatible version.
Local version: 190
Remote version: 0

Jak działa Psexec?

Aby znaleźć rozwiązanie, należy najpierw wyjaśnić jak działa psexec. Otóż, narzędzie to tymczasowo tworzy na udziale \\komputer_zdalny\admin$ plik psexesvc.exe, oraz tworzy usługę o nazwie psexecsvc:
psexec incompatible
Plik jak i usługa powinny zniknąć z systemu po zamknięciu sesji zdalnej. Bywa jednak, że tak się nie dzieje. Zazwyczaj, jeśli połączymy się drugi raz tą samą wersją psexec.exe, wszystko zadziała, jeśli jednak użyjemy innej – pojawi się błąd.

Możliwa przyczyna problemu

Za zaistniałą sytuację obwiniałbym nagłe zerwanie sesji zdalnej, albo przetrzymywanie pliku przez system lub program antywirusowy. Jak wspomniałem na początku, to są bardzo rzadkie przypadki. Jeśli udało Wam się namierzyć inne przyczyny – napiszcie koniecznie, co to było.

Rozwiązanie

Na początek, należy skasować plik na zdalnym komputerze. Jak wspomniałem, plik psexesvc.exe jest umieszczany na udziale Admin, który to zazwyczaj prowadzi do C:\Windows, aczkolwiek widywałem ten plik również C:\Windows\System32
Kasujemy go zatem z dwóch lokalizacji:

del \\komputer_zdalny\c$\windows\System32\psexecsvc.exe

del \\komputer_zdalny\c$\windows\psexecsvc.exe

I w sumie to jest największy haczyk w całym procesie naprawczym – łatwo przeoczyć fakt, że pliki mogą być dwa :)

Jeżeli podczas kasowania natkniemy się na komunikat w stylu „Access Denied” czy „Odmowa dostępu”, zabijmy proces który może te pliki trzymać. Można to zrobić na przykład przez Menedżer Zadań (Task Manager) przez Remote Desktop, ale ja polecam PSKILL (tutaj dokładniejszy opis tego narzedzia i kilku alternatyw)

pskill \\nazwa_komputera psexecsvc

Teraz musimy skasować usługę PSEXESVC. Polecenie SC opisywałem dokładniej całkiem niedawno:

sc \\nazwa_komputera delete PSEXESVC

To wszystko. Podane kroki powinny rozwiązać problem z Psexec’iem, a my będziemy mogli cieszyć się urokami zdalnej administracji :).


Podobne Tematy:

  • arek

    Aby znaleźć rozwiązanie, należy najpierw wyjaśnić jak działa psexec. otórz, narzędzie to tymczasowo

    Literówka :)

    • Łukasz Skalikow

      Literówka, to bardzo łaskawe określenie tego rażącego błędu ortograficznego. Dzięki :)