DOS i Tasklist

Jeżeli chcesz zrzucić proces o nazwie sidebar dla użytkownika Administrator to np coś takiego

tasklist /v /FI "imagename eq sidebar.exe" /FI "username eq Administrator"> zrzut.txt

Chociaż tak naprawdę jako, że proces i tak jest uruchamiany przez użytkownika, a na windowsie pracuje 1 osoba bo to nie serwer to wystarczy to:

tasklist /v /FI "imagename eq sidebar.exe"> zrzut.txt

Nie marudź, przepfiltruj w inny sposób np. | findstr sidebar.exe
:slight_smile:

Mógłbyś to wyjaśnić?
Co mam filtrować, gdy nie mam żadnego zrzutu?
Chyba, że masz na myśli bimber. :grinning:

tasklist /v nic Ci nie pokazuje?

Bo akurat tego używasz, Komputer pracuje w systemie 16-stkowym, I nawet głupi zrzut ekranu zabiera pamięć. Nie ma dokładnie.

32732 K a 65˙232 K to, 2-krotna różnica

Jak zrobić zrzut aktualnych procesów?

Jeżeli zagłębiamy się już co do bajta, to nie wiem czy to jest fizycznie możliwe. Program rejestrujący już zużywa. Sygnał na monitor też zużywa. wszystko to są zawsze szacunki.
Temat ciekawy, pewnie w jakimś laboratorium dało by się zmierzyć…

ale sidebar.exe zmienia się na bieżąco w bajtach a nie w kilobajtych,
czyli nic nie może tego uchwycić w danym momencie?

Nie znam składni dla tcc prompt ale jeżeli jeżeli nie rozpoznaje ci składni tasklist to po prostu wejdź w folder Windows\System32 i uruchom z tamtąd przez terminal tasklist.exe z tym parametrami co podałem.

Przy okazji dlaczego uruchamiasz cmd z dysku B a nie standardowo C?
Zwykle te litery były rezerwowane chyba dla napędu dysku dla dyskietek?

tam przeważnie wszystko robię. Jest to virtualna partycja z RAM’u.

Problem jest w tym. że często zdarza się, że po uruchomieniu Windowsa 7 64-bit
gadżety na pulpicie nie są wyświetlane. Sidebar.exe jest w menedżerze zadań ale pamięć
pobierana jest dużo mniejsza. Chciałbym przy starcie porównać tę pamięć
i jeśli jest za mała to wyłączyłbym automatycznie ten task i ponownie uruchomiłbym
sidebar.exe, oczywiście przy pomocy skryptu.
Może ma ktoś lepszy pomysł jak z tym się uporać?

Take Command:
TASKLIST [/C /D /L /M /N /O /P /T /U[“owner”] /X /Z] [name]
name : process name
/C(priority) /M(emory)
/N(names) /T(ime)
/D(modules) /U(owner)
/O(rder) /U"owner" (only)
/L(ine) /X(hex)
/P(ause) /Z(parent PID)

cmd.exe:
Tasklist nie jest rozpoznawane jako polecenie.

Podałeś dla tasklist a nie dla tasklist.exe.
To są oddzielne rzeczy i inaczej działają :grinning:

Ja pewnie napisałbym skrypt w Python z wykorzystaniem psutil.



https://thispointer.com/python-check-if-a-process-is-running-by-name-and-find-its-process-id-pid/
https://www.programcreek.com/python/example/53887/psutil.Process

Najpierw jednak sprawdziłbym, który widget blokuje mi start sidebar.exe - wyłączając po jedenym i patrząc czy pomogło.

To dzieje się raz w tygodniu albo i rzadziej.
Mógłbyś to napisać w Pythonie (który ba zapisał to w pliku.txt w temp) i skompilować do exe?
Wywołałbym ten plik ze skryptu VBS i po sprawie.
Ale najpierw należałoby sprawdzić np. task explorer.exe, czy wyniki są podobne.
1000 bajtów nie robi różnicy.

Nie mam na tyle czasu, ale wkleiłem wszystkie niezbędne informacje, żeby taki skrypt napisać. Może ktoś zechce. W takim razie wyłącz jakiś widget, zaczekaj tydzień czy dwa, jeżeli sidebar.exe się nie zawiesi to znaczy że trafiłeś:)

Pewnie można też to sprawdzić jakimś narzędziem do debugowania uruchomionego progrmau, ale niestety nie znam się na tym.

A jak nie, to mam pecha :grinning:
Około 10 gadżetów to akurat skończy się epidemia.:grinning:

Więc maks 5 miesięcy i załatwione :wink:

Pod Linux można co nieco dowiedzieć się o uruchomionym procesie puszczając go np pod strace. Np w sytuacjach gdy proces wygląda jakby wpadł w pętlę albo w nieskończoność na coś oczekiwał. Niestety nie miałem do czynienia z takim narzędziem pod Windows. Google podpowiada, że https://stackoverflow.com/questions/3847745/systrace-for-windows

Albo mam pecha i w ciągu 2 tygodni nic się nie stanie
i pójdę dalej nic nie znajdując. :grinning::grinning::grinning:

Dobra wróciłem

To jest dokładnie to samo tasklist jest dowiązaniem do tego pliku exe

[edit]
U ciebie tasklist nie jest rozpoznany bo startujesz system na dysku B: gdzie domyślne dowiązania są pewnie pozostawione do C: więc wypluwa ci (Tasklist nie jest rozpoznawane jako polecenie.), możesz więc ręcznie dodać dowiązanie albo odnieść się do właściwego pliku exe

Masz rację, muszę być dokładnie w C:\Windows\System32
tasklist /v /FI “imagename eq sidebar.exe” /FI “username eq Administrator”> %TEMP%\sidebar.txt
polecenie działa.

Ja robię tym
C:\Windows\System32\tasklist.exe /fi “imagename eq sidebar.exe” > %TEMP%\sidebar.txt
i działa wszedzie. :grinning:

Co nadal nie rozwiązuje problemu. Może jakieś inne polecenie TYPE, czy coś tam…

OK. Znalazłem rozwiązanie problemu.
Dzięki za pomoc.