Skocz do zawartości
gajowy

Ping i przyjazny komunikat

Rekomendowane odpowiedzi

Czasami zdarza się, że serwer lub drukarka sieciowa (co w sumie na jedno wychodzi - w końcu to serwer wydruku) jest wyłączony lub fizycznie odłączony od sieci. Nieświadomy tego użytkownik zanim się połapie, że coś jest nie tak próbuje np. drukować ten sam dokument wiele razy. Żeby uprościć sobie zadanie użyłem pliku wsadowego pingujący hosta:

ping 192.168.1.33
pause

 

I tu pojawia się pytanie: co zrobić, żeby zamiast tego:

Badanie 192.168.1.33 z użyciem 32 bajtów danych:

Odpowiedź z 192.168.1.33: bajtów=32 czas=7ms TTL=128
Odpowiedź z 192.168.1.33: bajtów=32 czas=1ms TTL=128
Odpowiedź z 192.168.1.33: bajtów=32 czas=2ms TTL=128
Odpowiedź z 192.168.1.33: bajtów=32 czas=3ms TTL=128

Statystyka badania ping dla 192.168.1.33:
    Pakiety: Wysłane = 4, Odebrane = 4, Utracone = 0 (0% straty),
Szacunkowy czas błądzenia pakietów w millisekundach:
    Minimum = 1 ms, Maksimum = 7 ms, Czas średni = 3 ms

 

poinformować użytkownika przyjaznym komunikatem w rodzaju "drukarka/serwer działa" lub w przypadku niepowodzenia "włącz drukarkę"?

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

1wsze co do głowy to listing:

 

net view

.............

\\biuro 
\\biuro1

net view \\biuro1
net view \\biuro1\drukarka

 

lub konsola wmic:

 

wmic /node:nazwaSer printer list status

Korzysta z klasy Win32_printer

Klik

 

Przydatne właściwości do uzyskania informacji:

Availability

ConfigManagerErrorCode

Default

Local

Name

Network

PrinterStatus

ShareName

ServerName

Status

StatusInfo

 

Opisy właściwości umieściłem w pliku txt:

print.txt

 

Przełączniki wmic (Opis NODE)

 

wmic /node:nazwaSer printer get name, Availability, Status

lokalnie mały przykład

wmic  printer get name, Availability, Status

wmic printer list brief

wmic printer list full

metody jakie można wykonywać na klasie:

Start -> cmd :

wmic path win32_printer call /?:full
(opisy w PL)
lub

wmic printer call /?:full

Nad każdą metodą jest wykaz stanu:
Implemented (metoda zaimplementowana)
Not found (brak metody/ nie odnaleziono)

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Dzięki za szybką odpowiedź. Może jednak sprecyzuje problem: nie chodzi mi o wyszukanie w sieci wszystkich dostępnych drukarek, a o sprawdzenie czy ta konkretna o znanym IP jest włączona. Ping załatwia sprawę, ale chciałbym żeby zamiast statystyki odebranych (lub utraconych) pakietów wyświetlił się komunikat "OK" jeśli 100% pakietów wróciło lub "brak drukarki" jeśli 0%. Jak użyć polecenia IF i jak ukryć statystyki (echo off wyłącza wyświetlanie poleceń, wyniki są widoczne).

 

Edyta

 

Przeczytałem jeszcze raz swój pierwszy post i widzę, że sam trochę zamieszałem. Drukarka jest sieciowa z własnym IP. Chciałem żeby było bardziej ogólnie, a wyszło mniej precyzyjnie :) 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Wybacz że teraz dopiero odpowiadam, ale niedawno co wróciłem z pracy :) Nie zdążyłem się za to zabrać, ale może to Cię zainteresuje:

 

VBS Script To Retrieve The Current Status Of A Specified Printer Share

 

Check Shared Printer Status

 

 

Tak na szybko z konsoli wmic można uzyć własciwości Shared (wartość TRUE/FALSE), która wskazuje czy drukarka jest udostępniona jako zasób sieciowy, lub STATUSINFO (wartość 3 "włączona" / 4 "wyłączona" )

 

wmic /node:nazwaSer printer get StatusInfo | Find /I  "3"

Jeśli urządzenie jest włączone bedzie wyświetlona informacja, jeśli nie zadanie przejdzie do znaku zachęty z brakiem wyniku. Miłego testowania :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...