Skocz do zawartości

Dziennik zdarzeń - błędy i ostrzeżenia (XP SP3 Home)


Mysza

Rekomendowane odpowiedzi

Zakładam kolejny temat odnośnie KOMUNIKATÓW mojego DZIENNIKA ZDARZEŃ - powtarzające się błędy i ostrzeżenia

 

Źródła: Tcpip, CnxEtp, DCOM, Google Update, ESENT, Userenv i inne

 

a ponieważ trafiam często na archiwalne artykuły - chcę dodatkowo zweryfikować z MĄDRZEJSZYMI GŁOWAMI - aktualność wskazówek i dalszych kroków :lol:

 

Na początek - OSTRZEŻENIE "Protokół TCP/IP osiągnął limit zabezpieczeń ustalony dla liczby równoczesnych prób połączeń TCP."

 

Źródło : Tcpip
Identyfikator zdarzenia : 4226
Nazwa pliku : xpsp2res.dll
Wersja pliku : 5.1.2600.5512
Wersja programu 5.1.2600.5512

 

tcpip.jpg

 

Wg rady @300 w temacie Problemy z systemem- ostrzeżenie mogłam spróbować zweryfikować w poniższy sposób:

W punkcie 1 wykonujesz:
Start > Uruchom...
(wpisz) cmd
OK
I dalej...
(wpisz) netstat -no
OK
W wynikach powyższego polecenia odszukaj kolumnę 'State', i odpowiadającą mu sygnaturkę 'SYN_SENT'. 
Zaś z kolumny 'PID' numer procesu, oczywiście przypisany 'SYN_SENT', i to takie które będą miały sporą liczbę takiego samego 
PID jak sądzę. 
Z tym przechodzisz do pkt-u 2.

W punkcie 2 wykonujesz:
- dodajesz PID (Identyfikator procesu) do listy widocznych kolumn (co już z robiłaś).
- odszukujesz interesujący Cię 'PID' i patrzysz w kolumnie 'nazwa obrazu' o jaki proces bądź program chodzi.
Instrukcja wspomina o zamknięciu procesu, ale to raczej zależy od tego o co (jaki proces/program) dokładniej chodzi...

co z kolei w kontekście możliwego ostrzeżenia, że złośliwy program lub wirus może być uruchomiony w systemie, mogłoby służyć znalezieniu programu, który jest odpowiedzialny za połączenie i zamknięciu złośliwego programu z dużą liczbą otwartych połączeń...

 

Doszłam jednak do wniosku, że u mnie nie to jest przyczyną ostrzeżeń - nic niepokojącego nie znalazłam - poniżej zrzut z dzisiaj - pod nr PID krył się Firefox, więc chyba wszystko jest OK

 

cmdprocesypid18102010.jpg

 

 

Szukając dalej doszłam do wniosku, że przyczyną tego komunikatu może być ustawiony limit liczby połączeń TCP ograniczony do 10, którego celem jest

redukcja działalności robaków sieciowych (takich jak Blaster / Sasser) prowadzących do przepełnienia buforów i padów systemu.

 

... i teraz pytanie co lepsze ? pozostawienie limitu połączeń bez zmiany ( w ramach bezpieczeństwa systemu ) z jednoczesną akceptacją pojawiających się ostrzeżeń, czy lepiej zwiększyć limit połączeń i wyeliminować ostrzeżenia z dziennika zdarzeń :confused:

Znalazłam np. taką opinię KLIK:

W sieci krąży wiele mitów na temat cudownego zwiększenia wydajności aplikacji korzystających z internetu (głównie p2p)
poprzez spatchowanie pliku tcpip.sys w celu zmiany domyślnej wartości 10 na większą. 
W praktyce taka zmiana nie przynosi większych efektów ponieważ połączenia półotwarte powyżej limitu i tak zostaną wykonane ,
po prostu są kolejkowane więc gdy jedno zostanie zrealizowane całkowicie , następne jest przetwarzane. 
Sami twórcy aplikacji p2p np. eMule nie zalecają patchowania tcpip.sys dowodząc że nie ma to sensu.

 

 

Przyjmując, że bezpiecznym kompromisem będzie jednak zwiększenie np. do 50-100 limitu połączeń - pytanie, jaką metodą to najlepiej zrobić ?

 

SZUKAJĄC trafiłam na takie propozycje :

 

1)

W tym celu z menu Start wybieramy Uruchom i wpisujemy polecenie gpedit.msc. Uruchamiamy w ten sposób narzędzie Zasady grupy. W gałęzi Konfiguracja komputera rozwijamy Szablony administracyjne - Sieć - Harmonogram pakietów QoS.

W prawej części okna zaznaczamy opcję Ogranicz rezerwowalną przepustowość i z jego menu podręcznego wybieramy polecenie Właściwości. Teraz zaznaczamy pole Włączone i określamy limit przepustowości - proponuję 0%. Zatwierdzamy zmiany przyciskiem OK i restartujemy komputer

nie wiem, czy ta metoda jest nadal aktualna, ale i tak nie ma zastosowania w XP Home

 

2) druga metoda KLIK - też nie wiem czy nadal do stosowania ?

Kod: Zaznacz cały

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Psched]
"NonBestEffortLimit"=dword:00000000
"MaxOutstandingSends"=dword:0000ffff
"TimerResolution"=dword:0000000a

Otwórz notatnik i wklej podaną zawartość..
Z menu wybieramy Plik->Zapisz.
W polu Zapisz jako typ, wybierz: Wszystkie pliki *.*
Zapisz na pulpicie jako fix_ck.reg
Zamknij notatnik, kliknij podwójnie na ten plik. Pojawi się informacja czy chcesz dodać zawartość do rejestru,
na którą oczywiście zgódź się. Włącz na nowo komputer.

 

3) dalej trafiłam na propozycje programów - m.in. na SE - a ponieważ w artykule archiwalnym na FIXITPC wymieniany jest tylko jeden, to reszta chyba się zdezaktualizowała ?

xp-AntiSpy

LvlLord's Event ID 4226 Patcher

Universal Tcpip.sys Patch

TCP-Z

 

4) chciałabym się utwierdzić, że na dzień dzisiejszy do stosowania pozostał z ww tylko TCP-Z KLIK ... ponieważ znowu korzystam z ARCHIWUM i czy rzeczywiście pozwoli wyeliminować ostrzeżenie z dziennika zdarzeń ? :)

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Z mojej strony w jednym zdaniu:

SYN_SENT NIE= USTANOWIONO (ESTABLISHED).

 

@300 - nie jestem pewna, ale chyba nie jest to do końca odpowiedź na moje wątpliwości - co zrobić z tymi ostrzeżeniami z dziennika zdarzeń-"Protokół TCP/IP osiągnął limit zabezpieczeń ustalony dla liczby równoczesnych prób połączeń TCP" ?

 

Ten artykuł fajnie wyjaśnia na czym polegają połączenia TCP , jakie są jego stany, jak powstają , a co za tym idzie dlaczego powstają połączenia półotwarte ....

 

Wyjaśnię mój tok rozumowania ;)

Rozumiem to tak, że z mojego komputera jest inicjowane połączenie TCP >>>> jeśli w danym momencie ilość takich zainicjowanych połączeń przekroczy limit ( np. 10) to "ustawiają się" one w kolejce i mają status "półotwartych" >>>> w dzienniku zdarzeń generuje się ostrzeżenie o przekroczeniu limitu zabezpieczeń dla jednoczesnych prób połączeń >>>> połączenia po jakimś czasie i tak się nawiązują wg kolejki ...

... i teraz w ramach tych połączeń TCP mogą być prawidłowe, ale równocześnie jest to droga dla złośliwego programu lub wirusów - w tym momencie ( przynajmniej tak to rozumiem ) można zweryfikować, czy któreś z połączeń kolejkowanych nie jest złośliwe i czy go nie zamknąć , ale chyba zamknięcie złośliwego procesu nie będzie miało wpływu na te ostrzeżenia i będą one pojawiać się dalej w dzienniku zdarzeń ( bo limit jest bez zmian)

Dalej ...

korzystając z tej opcji poszukiwania winowajcy : start > uruchom > cmd > netstat -no rozumiem, a przynajmniej tak mi się wydaje ;) , że wyświetlam STAN POŁĄCZEŃ z numerami PID na dany MOMENT, inny niż ten, w którym generowane jest ostrzeżenie - czyli, że tego samego dnia o 15.00 będzie to wyglądało inaczej i o 18.00 też inaczej - a skoro problem w dzienniku zdarzeń pojawił się o określonej godzinie np. 12.00 to wydaje mi się, że aby ustalić, który proces wywołał ostrzeżenie to musiałabym wyświetlić stan połączeń przy użyciu ww komendy w tej samej minucie co komunikat-ostrzeżenie ... nie wiem, czy wyjaśniłam dostatecznie, co mam na myśli :confused:

 

Ja się teraz zastanawiam nie nad tym skąd się biorą połączenia i dlaczego pojawia się ostrzeżenie - zastanawiam się jak podejść do tych ostrzeżeń:

- czy nie zmieniać limitu i tylko starać się sprawdzać, czy w półotwartych połączeniach nie ma złośliwych, które trzeba wyeliminować

- czy zwiększyć gotowym programem limit połączeń i pozbyć się tym sposobem komunikatów - tylko na ile to jest bezpieczne

Odnośnik do komentarza

Dalej ...

korzystając z tej opcji poszukiwania winowajcy : start > uruchom > cmd > netstat -no rozumiem, a przynajmniej tak mi się wydaje ;) , że wyświetlam STAN POŁĄCZEŃ z numerami PID na dany MOMENT, inny niż ten, w którym generowane jest ostrzeżenie - czyli, że tego samego dnia o 15.00 będzie to wyglądało inaczej i o 18.00 też inaczej - a skoro problem w dzienniku zdarzeń pojawił się o określonej godzinie np. 12.00 to wydaje mi się, że aby ustalić, który proces wywołał ostrzeżenie to musiałabym wyświetlić stan połączeń przy użyciu ww komendy w tej samej minucie co komunikat-ostrzeżenie ... nie wiem, czy wyjaśniłam dostatecznie, co mam na myśli :confused:

Podoba mi się ten tok rozumowania. :) Dlatego wcześniej (chyba) wspomniałem o zweryfikowaniu prawidłowości pojawiania się tego ostrzeżenia w dzienniku systemowym. Jeśli np. pojawia się co określony limit czasu to w czym problem? Podobnież jeśli jest skutkiem uruchamiania jakiegoś programu np. emule, utorrent itp. Żeby uruchomić kilka razy polecenie netstat -no nie musisz go każdorazowo wpisywać z palca. Możesz skorzystać z przeszukiwania historii konsoli tj. strzałka w górę bądź w dół (dopóki nie zamkniesz okienka).

 

Jeśli nadal chcesz polować na czarownice, a procek ma wolne moce przerobowe, to spróbuj skryptu *.bat. Zapisz poniższy fragment kodu do pliku z rozszerzeniem bat tj. utwórz plik tekstowy i zmień rozszerzenie z txt na bat. Jeśli chciałabyś przeedytować plik bat = PPM na nim > Edytuj. Plik bat (skrypt) uruchamiasz oczywiście standardowo dwuklikiem. Skrypt uruchamiasz i zamykasz za jakiś czas.

 

1. Plik sys_sent.txt tworzy się w tej lokalizacji gdzie plik *.bat. Polecenia są dopisywane do pliku, więc jeśli chcesz zacząć od nowa musisz go wcześniej wyczyścić albo po prostu usunąć. Echo możesz zmienić na on (włączyć). Im dłużej będzie uruchomiony skrypt, tym plik wynikowy (syn_sent.txt) będzie bardziej puchnąć - stąd wersja 2 z katalogami...

@ECHO off
SET mycha69path=.\syn_sent.txt

:mycha69loop
TIME /T >> %mycha69path%
NETSTAT -no >> %mycha69path%
TASKLIST >> %mycha69path%
ECHO =oO==================================================================== >> %mycha69path%
GOTO mycha69loop

2. Możesz, ale nie musisz kasować utworzone wcześniej katalogi. Tworzą się one po osiągnięciu limitu licznika ustawionego w linijce

SET stoper_=1000

i tą wartość możesz sobie zmienić. Przykładowo dla wartości 5000 plik wynikowy przekraczał nieco 20 MB. Sprawdź wcześniej czy to działa na jakichś małych wartościach np. 10, 25...

 

@ECHO off
SET mycha69path=.\syn_sent.txt
SET licznik=0
SET katalog=1
SET stoper_=1000

:mycha69loop
IF %licznik% EQU 0 ( 
MKDIR .\%katalog%
CD .\%katalog%
TIME /T > %mycha69path%
) ELSE (
ECHO =oO==================================================================== >> %mycha69path%
TIME /T >> %mycha69path%
)
NETSTAT -no >> %mycha69path%
TASKLIST >> %mycha69path%
SET /A licznik+=1
@ECHO off
echo katalog=%katalog%, licznik=%licznik% z %stoper_%
@ECHO off
IF %licznik% EQU %stoper_% (
SET licznik=0
SET /A katalog+=1
CD ..
)
GOTO mycha69loop

O limity połączeń może lepiej spytaj w sieciach. :rolleyes: Ja tego nigdy nie ruszałem, ale też nie miałem potrzeby.

Odnośnik do komentarza

Mycha proszę nie rozbijaj tematów. Pytasz dwa razy o to samo w zasadzie w dwóch tematach i dwóch różnych działach, łączę.

 

Odpowiadając na pytanie: TCP-Z to jedyny patcher, który robi to w sposób nieingerencyjny, na zasadzie patchowania tylko pamięci (nie narusza struktury pliku tcpip.sys), a po restarcie systemu zmiana jest odkręcana. Dlatego jeśli mam polecać jakiś patcher, to tylko ten. Optymalny limit? A kto to wie. Metoda prób i błędów dopóki przestaje się pokazywać błąd w Dzienniku zdarzeń. Zacytuję co sądzi na ten temat autor innego patchera:

 

What is the optimal value of concurrent half-open outbound connections limit?

I consider the optimal value to be an equal 100. Increasing the limit will have effect only if you run several P2P programs simultaneously (e.g., µTorrent, BitComet, eMule, P2P TV, etc.), or your PC works as a server.

 

Można zacząć od 50 i podnosić ewentualnie wyżej, o ile potrzebne ...

 

dalej trafiłam na propozycje programów - m.in. na SE - a ponieważ w artykule archiwalnym na FIXITPC wymieniany jest tylko jeden, to reszta chyba się zdezaktualizowała ?

 

Nie porównuj tego co zostawiłam na SE. Na tamtym jest krzyżyk oraz brak pewnych modyfikacji, które uwzględniłam już tutaj.

 

 

PS.: Vista SP2 i Windows 7 nie mają domyślnie w ogóle tego limitu, zdjęto go (jest za to edycja rejestru która ... pozwala go włączyć).

 

 

.

Odnośnik do komentarza

Mycha proszę nie rozbijaj tematów. Pytasz dwa razy o to samo w zasadzie w dwóch tematach i dwóch różnych działach, łączę.

 

Odpowiadając na pytanie: TCP-Z to jedyny patcher, który robi to w sposób nieingerencyjny, na zasadzie patchowania tylko pamięci (nie narusza struktury pliku tcpip.sys), a po restarcie systemu zmiana jest odkręcana. Dlatego jeśli mam polecać jakiś patcher, to tylko ten. Optymalny limit? A kto to wie. Metoda prób i błędów dopóki przestaje się pokazywać błąd w Dzienniku zdarzeń.

 

Dziękuję @Picasso za wyjaśnienia w temacie - na pewno wykorzystam :)

 

i przepraszam za zamieszanie z tematami - pytanie w dziale Sieci zadałam sugerując się tym, że o limity połączeń TCP zapytałam nie tam gdzie trzeba ....

Odnośnik do komentarza

Mam pobrany program TCP-Z - przy limicie 50 ostrzeżenie w dzienniku zdarzeń się nie pojawiło, ale nie zamykam jeszcze tego wątku.

 

Jeśli nadal chcesz polować na czarownice, a procek ma wolne moce przerobowe, to spróbuj skryptu *.bat.

TAK, chcę polować :lol: - rozumiem, że aby coś "upolować" muszę z powrotem zmniejszyć limit do 10, bo inaczej nie będzie ostrzeżenia.

 

... spróbuj skryptu *.bat. Zapisz poniższy fragment kodu do pliku z rozszerzeniem bat tj. utwórz plik tekstowy i zmień rozszerzenie z txt na bat.

W jakiej lokalizacji zapisać ten plik ?

 

"Zapisz poniższy fragment kodu" - to znaczy ? czy to ten poniższy tekst mam wkleić do notatnika i zapisać go z rozszerzeniem *.bat ?

 

@ECHO off
SET mycha69path=.\syn_sent.txt

:mycha69loop
TIME /T >> %mycha69path%
NETSTAT -no >> %mycha69path%
TASKLIST >> %mycha69path%
ECHO =oO==================================================================== >> %mycha69path%
GOTO mycha69loop

Jaką nazwę wybrać dla pliku - dowolną ?

Gdzie znajdę plik sys_sent.txt na swoim dysku - czy już powinnam go mieć, czy też powstanie dopiero po dodaniu pliku *.bat ?

 

 

 

2. Możesz, ale nie musisz kasować utworzone wcześniej katalogi. Tworzą się one po osiągnięciu limitu licznika ustawionego w linijce

SET stoper_=1000

i tą wartość możesz sobie zmienić. Przykładowo dla wartości 5000 plik wynikowy przekraczał nieco 20 MB. Sprawdź wcześniej czy to działa na jakichś małych wartościach np. 10, 25...

 

@ECHO off
SET mycha69path=.\syn_sent.txt
SET licznik=0
SET katalog=1
SET stoper_=1000

:mycha69loop
IF %licznik% EQU 0 ( 
MKDIR .\%katalog%
CD .\%katalog%
TIME /T > %mycha69path%
) ELSE (
ECHO =oO==================================================================== >> %mycha69path%
TIME /T >> %mycha69path%
)
NETSTAT -no >> %mycha69path%
TASKLIST >> %mycha69path%
SET /A licznik+=1
@ECHO off
echo katalog=%katalog%, licznik=%licznik% z %stoper_%
@ECHO off
IF %licznik% EQU %stoper_% (
SET licznik=0
SET /A katalog+=1
CD ..
)
GOTO mycha69loop

czy powyższe to też gotowy plik do wykorzystania dla mnie, który po prostu mogę skopiować do utworzonego pliku *.bat ? bo jakbym miała na wzór powyższego stworzyć coś własnego to chyba w następnym życiu :lol:

Odnośnik do komentarza

Jedno i drugie robi to samo. Skrypt biega w pętli nieskończonej, więc po uruchomieniu musisz sama go zamknąć za jakiś czas (po prostu zamknąć okienko konsoli). Różnica polega na tym, że wersja 1 zapisuje wyniki poleceń do jednego pliku, a w wersji 2 licznik odlicza do iluś tam (do tylu ile wskazuje wartość po stoper_=) i po osiągnięciu tej wartości zeruje się a przy tym tworzy się nowy katalog, tworzy się w nim plik i do niego są zapisywane wyniki poleceń... i tak wkoło.

 

Możesz się otrzeć o prawo Murphy'ego: - Jeśli coś może pójść źle, pójdzie źle.

Nie jestem pewien czy u Ciebie zadziała polecenie

TIME /T

innymi słowy czy poeci nie postanowili go przetłumaczyć na... CZAS.

 

Nazwa skryptu może być dowolna. Tak... masz wkleić tekst do notatnika, zapisać, zamknąć i zmienić rozszerzenie pliku tekstowego na bat. W razie potrzeby wyłącz wcześniej w opcjach Explorera opcję Ukryj rozszerzenia znanych typów. Pliku syn_sent.txt nie musisz tworzyć.

 

Tak rozbierając nieco skrypt w wersji 1 na składowe to zanim go uruchomisz sprawdź...

Start > Uruchom...

(wpisz) cmd

OK

I wypróbuj polecenia:

1.

TIME /T

Jeśli jego wynikiem nie będzie wartość aktualnej godziny, to użyj... Halo Houston, mamy problem. ;) Wklej screen z wyniku polecenia HELP wykonanego w konsoli (zerknę sobie jakie tam masz dostępne polecenia). :rolleyes:

2.

TASKLIST

Jeśli jego wynikiem nie będzie to co widzisz szukając nazwy procesu znając jego PID... patrz wyżej. ;)

BTW

Jeśli tutaj będzie wszystko OK spróbuj także w skrypcie z przełącznikiem /svc tj.

TASKLIST /svc

Wiersz zawierający

ECHO =oO====================================================================

możesz wywalić...

 

W wierszu

SET mycha69path=.\syn_sent.txt

nazwę pliku syn_sent.txt możesz zmienić na dowolną.

Odnośnik do komentarza

Oczywiście nie dyskutuję co do wielkości skryptu bo jest klasyczny, ale też można zastosować interwał...., który będzie monitorował o określoną liczbę sekund połączenia.

 

post-24-040490500 1287870317_thumb.png

 

 

Przykład będzie monitorował co sekundę połączenia z zapisem danych na dysku C pod nazwą StatNetLog:

netstat -an 1 > C:\StatNetLog.txt

 

.....

 

post-24-046706300 1287870507_thumb.png

 

Ctrl + C - koniec działania. To tylko wzmianka :)

Odnośnik do komentarza

Sposobów wiele :P

Nestat też Ci pokaże PID procesu, ale pewnie o tym wiesz. Zobacz:

 

NETSTAT -NABV

 

post-24-052516800 1287908741_thumb.png

Proces, jego składniki, pid, ip

 

Może to jakoś przefiltrować?

NETSTAT -NABV | FINDstr ".exe .dll USTANOWIONO"

post-24-024163000 1287908897_thumb.png

 

Lub jeszcze inaczej:

post-24-020373900 1287909023_thumb.png

 

I sobie monitorować co np. 4 sekundy z zapisem (Ctrl + C - kończy działanie):

NETSTAT -NABV 4 | FINDstr ".exe .dll USTANOWIONO" >> C:\StatNetLog.txt

 

Można się pobawić, ale mi to obciąża procesor.

Odnośnik do komentarza

Nestat też Ci pokaże PID procesu, ale pewnie o tym wiesz. Zobacz:

NETSTAT -NABV

Ujmijmy to tak: - Teraz wiem! :D

Zerknąłem tylko na poniższy artykuł, klapki na oczy i dosztukowałem brakujące wg mnie ogniwa = wyszło co wyszło. O filtrowaniu wiedziałem, ale celowo pominąłem.

http://www.microsoft.com/technet/support/ee/transform.aspx?ProdName=Windows+Operating+System&ProdVer=5.2&EvtID=4226&EvtSrc=Tcpip&LCID=1033

Odnośnik do komentarza

@300

Sprawdziłam :

1. TIME /T- jest poprawnie

timer.jpg

 

2. TASKLIST- tu też wyszło OK

tasklist.jpg

 

3. TASKLIST /svc - To wyświetliło się tak :

tasklistsvc.jpg

 

 

Po czym wykonałam instrukcje wg punktu 1 - to znaczy wkleiłam dokładnie tekst

@ECHO off
SET mycha69path=.\syn_sent.txt

:mycha69loop
TIME /T >> %mycha69path%
NETSTAT -no >> %mycha69path%
TASKLIST >> %mycha69path%
GOTO mycha69loop

zmieniłam rozszerzenie na *bat i automatycznie utworzył mi się plik tekstowy z pierwszymi wynikami :)

tylko zastanawiałam się dlaczego w tym tekście pojawia się mycha69? - jakie to ma znaczenie, skoro to moja nazwa na forum i nie ma nic wspólnego z komputerem ?

 

i teraz jeszcze biorąc pod uwagę to co powiedział KolegaDudysa:

I sobie monitorować co np. 4 sekundy z zapisem (Ctrl + C - kończy działanie):

NETSTAT -NABV 4 | FINDstr ".exe .dll USTANOWIONO" >> C:\StatNetLog.txt

 

czy spróbować jeszcze raz uzupełniając plik o filtr - czyli, że zamiast

NETSTAT -no >> %mycha69path%

wpisać np.

NETSTAT -NABV 4 | FINDstr ".exe .dll NIEUSTANOWIONO" >> >> %mycha69path%

Odnośnik do komentarza

tylko zastanawiałam się dlaczego w tym tekście pojawia się mycha69? - jakie to ma znaczenie, skoro to moja nazwa na forum i nie ma nic wspólnego z komputerem ?

Nie masz innych zmartwień? :)

To tylko deklaracja zmiennej używanej wewnątrz skryptu. Słowo mycha69path możesz zastąpić dowolnym, byle nie pokrywało się ze zmiennymi środowiskowymi wskazywanymi przez polecenie SET - w szczególności nie może być to path. Podobnie z mycha69loop. Czyli równie dobrze mogłoby to wyglądać:

 

SET xiaoxiao=.\syn_sent.txt

:zztop
TIME /T >> %xiaoxiao%
NETSTAT -no >> %xiaoxiao%
TASKLIST >> %xiaoxiao%
GOTO zztop

lub tak (wywalając przy okazji deklarację zmiennej):

 

:xiaoxiao
TIME /T >> .\syn_sent.txt
NETSTAT -no >> .\syn_sent.txt
TASKLIST >> .\syn_sent.txt
GOTO xiaoxiao

Gdybyś chciała zmienić nazwę pliku syn_sent.txt (w szczególności ścieżkę do pliku) na inną to w pierwszym przypadku zmieniasz ją jeden raz w skrypcie, w drugim tyle razy ile występuje.

 

I... Nie... Albo użyjesz skryptu w takiej wersji jaka jest (lub tej z katalogami) albo odrobiny luksusu, który podarował Ci KolegaDudysa. To polecenie wstrzymałoby przetwarzanie skryptu... czyli polecenie TASKLIST wykonałoby się dopiero gdybyś zakończyła działanie "odrobiny luksusu" kombinacją klawiszy Ctrl+C, lub wcale gdybyś zamknęła okienko konsoli.

Oczywiście możesz w skrypcie umieścić samą odrobinę luksusu (lub po prostu wpisać ją w okienku konsoli z palca), ale...

1. Za dużo tego >> (wystarczy tylko raz). A możesz to zmienić na > co ma taki skutek, że każdorazowe następne wywołanie tego polecenia zamiast dopisywać do pliku najpierw skasuje jego poprzednią zawartość.

2. W przypadku wpisywania z palca zmieniasz %mychapath69% na .\syn_sent.txt lub ścieżkę w postaci jawnej tak jak pokazał to KolegaDudysa.

3. Nie wiem czy akurat SYN_SENT odpowiada (przetłumaczono na) NIEUSTANOWIONO. Jeśli jesteś tego pewna to OK.

Your choice. Have fun! :)

Edytowane przez 3oo
Odnośnik do komentarza

NA PEWNO ROBIĘ COŚ ŹLE :(

 

Propozycję filtrowania wg NIEUSTANOWIONO tak tylko dałam, nie wiedząc, czy to jest dobrze - bo skoro szukam, tych oczekujących/kolejkowanych połączeń TCP to chyba powinnam filtrować nie po tym, co USTANOWIONO, tylko po tym, co musiało czekać :confused:

 

Ale,

Błędy dziennika zdarzeń związane z ostrzeżeniami TCPIP wystąpiły 25.10.2010 o godz. 17:37, 20:14, 22:02, 23:41

i spodziewałam się, że z tych samych godzin odnajdę wpisy w pliku tekstowym syn_sent ,

a tymczasem dodały mi się zapisy z godziny 23:52 i 00:21 , oraz dopiero z dzisiejszego dnia 8:54 i kolejne minuty ...

 

Coś musiałam nie tak zrobić z tym plikiem *bat

Ale co ?

- może niepotrzebnie klikałam dwa razy na ten plik chcąc obejrzeć zawartość - wtedy otworzył mi się czarny ekran i po prostu krzyżykiem go zamknęłam - może przez to nie dodawały się zapisy w tych godzinach co ostrzeżenia,

- a dzisiaj z kolei weszłam w ten plik *bat jeszcze raz i przewijała mi się w nim lista związana z procesami ... po czym zamknęłam Ctr+C , odpowiadając na pytanie, czy chcę zakończyć działanie - Tak , no i teraz po tym zamknięciu i ponownym otwarciu jest znowu wielka czarna dziura i pusto , w międzyczasie dodało się ileś zapisów, ale z dzisiejszego dnia , a nie z godzin ostrzeżeń

 

Może powinnam to wszystko skasować i zrobić jeszcze raz od początku ?

 

I jeszcze - zakładałam temat mając w dzienniku zdarzeń dwa błędy/ostrzeżenia SYSTEMOWE - to z TCP i przerywanie połączeń internetowych ,

przez ostatnie 3 dni doszły mi kolejne cztery błędy - ale o tym później - sprawdzę, czy będą się powtarzać.

Odnośnik do komentarza

W sumie to lepiej by było gdyś podała jak wygląda Twoja wersja skryptu...

 

Wszelkie modyfikacje w pliku bat tylko poprzez PPM > Edytuj... tzn. jeśli spróbujesz uruchomić go dwuklikiem to uruchamiasz skrypt. I teraz jeśli używasz przekierowania do pliku w postaci > to kasuje to poprzednią zawartość pliku, natomiast >> będzie dopiywać do pliku.

Natomiast myk z odrobiną luskusu, IMHO, może nie zapisać Ci wszystkich wystąpień "filtra", bo ma ustawiony interwał czasu co jaki wykonuje się polecenie na 4 s (mam na myśli to w przykładach, a nie w Twojej wersji skryptu).

Odnośnik do komentarza

Teraz wersja skryptu wygląda tak:

 

@ECHO on
SET mycha69path=.\syn_sent.txt

:mycha69loop
TIME /T >> %mycha69path%
NETSTAT -no >> %mycha69path%
TASKLIST >> %mycha69path%
GOTO mycha69loop
Zmieniłam tylko dzisiaj wieczorem off na on - choć nie do końca rozumiem co to da,

na filtry i luksusy na razie sobie jeszcze nie pozwalałam ;)

 

I teraz otworzyłam skrypt i pozostawiłam okienko otwarte - między 23.55 a 00.42 dodały się wpisy do pliku tekstowego ( poprzednie usunęłam) , po czym po kliknięciu CTRL+C było znowu pytanie - czy zakończyć zadanie w trybie wsadowym ? - zrobiłam Tak - i wpisy na tym stanęły .

 

Ostatni wpis ostrzeżenia TCP z dzisiejszego dnia jest z godziny 16.26 , czyli w trakcie mojej obecności nie było żadnego ostrzeżenia, które mogłabym porównać z zapisami w pliku .

 

Zastanawiam się, czy aby skrypt działał to czy muszę w trakcie korzystania z komputera uruchamiać ten skrypt i pozostawiać otwarte okienko konsoli,

czy też jest możliwe, żeby skrypt uruchomił się bez ręcznej ingerencji - automatem po włączeniu komputera - gdy inny użytkownik z niego korzysta ( najczęściej ostrzeżenia TCP powstają, gdy jestem nieobecna )

Odnośnik do komentarza

No ale sam skrypt się nie domyśli, że musi zostać uruchomiony... :P To co przedstawiłaś samo od siebie nie kasowało poprzedniej zawartości. Użyj poniższej wersji:

 

@ECHO off
SET magazyn=.\skaner
SET katalog=1
SET licznik=0
SET nStoper=5000

IF NOT EXIST %magazyn% (
MKDIR %magazyn%
COMPACT %magazyn% /c
) ELSE (
FOR /f "tokens=*" %%G IN ('DIR %magazyn% /b') DO SET /a katalog+=1
)
CD %magazyn%

:Petla
IF %licznik% EQU 0 (
SET fanzine=.\syn_sent%katalog%.txt
)
TIME /T >> %fanzine%
NETSTAT -no >> %fanzine%
TASKLIST >> %fanzine%
SET /a licznik+=1
ECHO. >> %fanzine%
ECHO numer w nazwie pliku=%katalog%, licznik=%licznik% z %nStoper%
IF %licznik% EQU %nStoper% (
SET licznik=0
SET /a katalog+=1
)
GOTO Petla
Do testów zmień w linijce wartość 5000 na 10 (lub 100):

 

SET nStoper=5000
Uruchom skrypt na jakąś dłuższą chwilę. W katalogu skaner (sam się utworzy!) zerknij ile zajmuje (każdy) plik *.txt. Przyjmij, że jeśli zwiększysz nStoper 10x to plik wynikowy będzie także ważył 10x więcej. I tym sposobem ustal sobie interesującą Cię finalną wielkość pliku wynikowego, żeby łatwiej byłoby je odczytywać. Po czym usuń cały folder skaner, albo znajdujące się tam pliki.

 

W finalnej wersji skryptu usuń linijkę:

 

ECHO numer w nazwie pliku=%katalog%, licznik=%licznik% z %nStoper%
W tym samym miejscu co plik *.bat utwórz nowy plik tekstowy, wklej do niego poniższą zawartość i przy okazji zmień w nim wyrażenie Twoja_nazwa_pliku na nazwę Twojego skryptu.

 

Dim oShell
Set oShell = WScript.CreateObject ("WSCript.shell")
oShell.run "cmd /C .\Twoja_nazwa_pliku.bat",0
Set oShell = Nothing
Innymi słowy jeśli skrypt ma nazwę mycha69.bat to 3-cia linijka powinna wyglądać:

 

oShell.run "cmd /C .\mycha69.bat",0
Ważne!

- Zmień nazwę rozszerzenia z txt na vbs, ale nie uruchamiaj tego skryptu! On ukrywa okienko konsoli, więc ciężko Ci będzie je zamknąć. :P No chyba, że poprzez wylogowanie się...

 

Utwórz sobie skrót do tego skryptu *.vbs tj.

PPM na nim > Utwórz skrót

Przenieś go do Autostartu, możesz do All Users (w polskojęzycznym windows może to się nieco różnić) czyli do:

 

c:\Documents and Settings\All Users\Start Menu\Programs\Startup\
Skrypt powinien się włączać przy starcie, okienka nie będzie widać... Jeśli będziesz chciała zatrzymać działanie skryptu to usuń go z autostartu i... restart.

 

BTW

W skrypcie możesz poniższe dwie linijki zamienić i potestować... (nie będę tłumaczył dlaczego, sama się domyślisz).

 

NETSTAT -no >> %fanzine%
TASKLIST >> %fanzine%
zastąpić:

NETSTAT -nabv >> %fanzine%
TASKLIST >> %fanzine%
lub

NETSTAT -nabv >> %fanzine%
Katalogowi, w którym masz skrypty możesz nadać atrybut Ukryty (Hidden). Ale to ma sens o ile masz włączone ukrywanie plików ukrytych i systemowych.

PPM na nazwie katalogu > Właściwości

Odnośnik do komentarza

BTW - skąd Ty wiesz te wszystkie mądrości ? - tylko nie mów mi, że to wyłącznie Google ;)

A właśnie, że google. :lol:

 

Hmm... Tak właściwie pytanie o uruchomienie czegoś automatycznie paść w zasadzie nie powinno. Sprzatałaś już autostart więc powinnaś się domyślić, że coś się da do niego dorzucić. Jeśli usuniesz go (link do skryptu) ręcznie ze wskazanej lokalizacji autostartu to nic się nie będzie działo. Jeśli użyjesz metody:

Start > Uruchom...

(wpisz) msconfig

OK.

Wtedy możesz na zakładce Startup (Autouruchamianie) wyczyścić pole wyboru wskazujące na ten link do skryptu i zrestartować komputer. Link zostanie usunięty z autostartu, ale zostaniesz poinformowana o tzw. uruchamianiu selektywnym = czym się nie przejmujesz tylko zaznaczasz checkbox w okienku komunikatu i trzepiesz enter.

 

BTW

Do skryptu dodałem linijkę:

 

COMPACT %magazyn% /c
Niejako ustawia atrybut folderu na skompresowany. Wszystko co do niego wpada także ulega kompresji - co oszczędza miejsca na dysku. Żeby to zadziałało folder skaner musi być wcześniej usunięty, o ile nie został utworzony przez skrypt z tą poprawioną wersją.
Odnośnik do komentarza
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...