Skocz do zawartości


tablety.pl
Zdjęcie

Skrypt do resetowania urządzeń




  • Zamknięty Temat jest zamknięty
25 odpowiedzi w tym temacie

#16 x33

x33

    First Rank

  • Na emeryturze
  • 16 postów

Napisano 09 02 2010 - 14:38

A u mnie wygląda to tak:

Dołączona grafika

W cmd z uprawnieniami administratora, UAC wyłączone.

EDIT: sprawdzone na 64 bit...

#17 Kolega Dudysa

Kolega Dudysa

    Good Rank

  • Na emeryturze
  • 700 postów
  • Płeć:Mężczyzna

Napisano 09 02 2010 - 14:51

Temat przeniosłem, z tego co napisałeś mogą być różne przyczyny takiego zachowania Twojej karty. Niestartująca usługa, sterownik, itd... W każdym razie musi to zostać sprawdzone pod innym kątem. A DevCon rozpoznaje urządzenie, ale jak widać nie potrafi go zrestartować.

#18 x33

x33

    First Rank

  • Na emeryturze
  • 16 postów

Napisano 09 02 2010 - 15:00

No dobra, ale ja nie chcę szukać przyczyny, bo z tego co do tej pory udało mi się ustalic wina leży po stronie konfliktów ze sprzętem.
Chciałem po prostu napisać skrypt do resetowania urządzenia i mieć z głowy, nie bawić się w wymianę karty WiFi, czy czegoś tam jeszcze...
No ale jak się nie da to trudno.

W każdym razie bardzo dziękuję za pomoc. To jedyne forum, gdzie zainteresowano się moim problemem.

#19 Kolega Dudysa

Kolega Dudysa

    Good Rank

  • Na emeryturze
  • 700 postów
  • Płeć:Mężczyzna

Napisano 10 02 2010 - 11:12

Wydziobałem trochę czasu i nieco poszukałem. Moim błędem było nie sprawdzenie specyfikacji i faktycznie, poprzedni skrypt PowerShell działa tylko i wyłącznie w systemie Vista, Win7 nie obsługuje podanej metody wyłączenia i włączenia karty. Ciekawy artykuł Hey, Scripting Guy! How Can I Enable or Disable My Network Adapter?

Patrząc w specyfikację, znalazłem opis metody wyłączenia karty Enable Method of the Win32_NetworkAdapter Class. Jest wzmianka -> Minimalne wspracie klienta -> Vista, Serwer 2008, można różnie odczytać słowo "minimalne". A nie mam jak teraz tego sprawdzić. Masz tam podany przykładowy skrypt vbs, włączający kartę sieciową. Na Viście będzie działał bez problemu.

Uzycie:
Cscript.exe C:\skrypt.vbs

I przypadkiem znalazłem takie coś: VB Script to disable Network Adapter . Są podane 2 skrypty VBS Wył. kartę/ Wł. kartę. Skrypt VBS:

Here is the script including Enable and Disable for Windows Vista and Windows 7 including the Admin raised level portion. I added a message box at the end to let them know when the script is completed.


Wł. karty

strComputer = "."

' This adds the Admin Run Function for Windows Vista and 7
' You must put this at the top below computer and End If at the
' very end of the script
If WScript.Arguments.length = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", """" & _
WScript.ScriptFullName & """" &_
" RunAsAdministrator", , "runas", 1
Else

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'False'")

For Each objItem in colItems
Wscript.Echo " Name: " & objItem.Name & VbCrLf & _
"Description: " & objItem.Description
objItem.Enable
' Wscript.Echo
Next

MsgBox("All Network Adapters have been Enabled.")

End If

Wył. karty:

strComputer = "."

' This adds the Admin Run Function for Windows Vista and 7
' You must put this at the top below computer and End If at the
' very end of the script
If WScript.Arguments.length = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", """" & _
WScript.ScriptFullName & """" &_
" RunAsAdministrator", , "runas", 1
Else

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'")

For Each objItem in colItems
Wscript.Echo "Name: " & objItem.Name & VbCrLf & _
"Description: " & objItem.Description
objItem.Disable
' Wscript.Echo
Next

MsgBox("All Network Adapters have been Disabled.")

End If

oraz jeszcze taki skrypt VBS w TechNet Script Center Gallery -> Enable Disable Network Adapter

Sprawdza stan karty, jeśli jest włączona to ją wyłączy i odwrotnie. W tej linii do góry:
sConnectionName = "Local Area Connection"

wpisujesz swoją nazwę połaczenia:

sConnectionName = "Połączenie lokalne"

Pomimo faktu że skrypt jest dedykowany prawie na wszystkie platformy, nie działa u mnie, przypomina mi to użycie narzędzia Netsh, gdzie inni posługują się metodą wyłączenia/włączenia:

netsh interface set interface "Local Area Connection" DISABLED
netsh interface set interface "Local Area Connection" ENABLED

gdzie również należy umieścić nazwę swojego połaczenia:
netsh interface set interface "Połączenie lokalne" DISABLED

Co mi również nie działa, a po poprawce także:
netsh interface set interface name = "Połączenie lokalne" admin=ENABLED connect=DISCONNECTED newname="Połączenie lokalne"

Dołączona grafika

Masz i potestuj, mnie się pomysły skończyły.

EDIT:
A słuchaj użyj jeszcze raz narzędzia DevCon, wyłącz ręcznie kartę, a następnie włącz używając polecenia:

Devcon enable =net PCI\VEN_14E4

Coś w tym stylu:
Dołączona grafika

Użytkownik Kolega Dudysa edytował ten post 10 02 2010 - 11:33


#20 x33

x33

    First Rank

  • Na emeryturze
  • 16 postów

Napisano 10 02 2010 - 18:49

Co do pierwszych dwóch skryptów: DZIAŁA!!!
A kto by pomyślał, że Virtual Basic ma takie możliwości! Ja myślałem, że to język tylko dla makr w Exelu.
To ja sobie jeszcze pozmieniałem, żeby mnie nie wnerwiały te Mesege-Boxy (typu "All Network Adapters have been disabled")

Teraz wygląda to tak:

Start.vbs
strComputer = "."

' This adds the Admin Run Function for Windows Vista and 7
' You must put this at the top below computer and End If at the
' very end of the script
If WScript.Arguments.length = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", """" & _
WScript.ScriptFullName & """" &_
" RunAsAdministrator", , "runas", 1
Else

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'False'")

For Each objItem in colItems
objItem.Enable
Next

End If

Stop.vbs
strComputer = "."

' This adds the Admin Run Function for Windows Vista and 7
' You must put this at the top below computer and End If at the
' very end of the script
If WScript.Arguments.length = 0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", """" & _
WScript.ScriptFullName & """" &_
" RunAsAdministrator", , "runas", 1
Else

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
"SELECT * FROM Win32_NetworkAdapter Where NetEnabled = 'True'")

For Each objItem in colItems
objItem.Disable
Next

End If

Nie wiesz, jak zrobić, żeby UAC nie wyświetlał monitu za każdym razem, gdy włączam te skrypty? Bo przy każdym uruchomieniu komputera może się to stać bardzo irytujące...
Co do pozostałych poleceń, sprawdzę później.
A jeżeli chodzi o DevCon, to już próbowałem wielu innych metod. Dowiedziałem się, że działa poprawnie tylko na XP i 7 x86, a na Windows 7 x64 nie uzyskuje dostępu do zmian statusu sprzętu...

EDIT:
Program wsadowy CMD do uruchamiania w/w skryptów (wszystkie znajdują się w tej samej lokalizacji):
@echo off
stop.vbs
echo resetowanie karty sieciowej...
waitfor xyz /T 10
start.vbs


#21 Kolega Dudysa

Kolega Dudysa

    Good Rank

  • Na emeryturze
  • 700 postów
  • Płeć:Mężczyzna

Napisano 10 02 2010 - 20:51

To dobrze że działa, będe miał dostęp do siódemki to sprubóję to wykonać w PowerShell.


Nie wiesz, jak zrobić, żeby UAC nie wyświetlał monitu za każdym razem, gdy włączam te skrypty? Bo przy każdym uruchomieniu komputera może się to stać bardzo irytujące...
Co do pozostałych poleceń, sprawdzę później.
A jeżeli chodzi o DevCon, to już próbowałem wielu innych metod. Dowiedziałem się, że działa poprawnie tylko na XP i 7 x86, a na Windows 7 x64 nie uzyskuje dostępu do zmian statusu sprzętu...


Może poprubój z poleceniem RunAs. Jest taki artykuł, ale nie wiem czy Cię zadowoli: How to Enable or Disable UAC From the Command Line in Windows 7, ale metoda działa dopiero po restarcie.


Co do podanego skryptu z TechNet Script Center Gallery -> Enable Disable Network Adapter, nie miałem zbyt wiele czasu tego dokładniej sprawdzić, ale to ze mi nie działa bo nie odnajduje folderu sieciowego, chyba ma związek z ustawieniami językowymi, ale mogę się mylić, więc chyba najbardziej kompatybilny będzie wersji ENG. Ponieważ wziołem do przetestowania narzędzie do wł/wył karty How to configure ToggleNic.exe to work with Windows XP italian . I w pliku konfiguracyjnym ToggleNic.exe.config należy zmienić nazwę folderu sieciowego na taką jaka jest w systemie, zresztą jeszcze wcześniej trzeba ustawić kodowanie, ale pomijam to oraz dodać po polsku funkję Włącz/Wyłącz. I sobie to ustawiłem.

Dołączona grafika

Jak widać na screenie nie odnajduje folderu sieciowego, pije do skryptu TechNet Script Center Gallery -> Enable Disable Network Adapter, bo on mi pokazuje taki sam komunikat, bo choćby Vista nie ma folderu Połaczenia sieciowe, ale Centrum sieci i udostępniania, no ale to już zostawiam, kiedyś to będe musiał rozgryść, a jak Tobie będzie śmigać to jeszcze lepiej.

Pisałemm CI że DevCon nie poleci na 64bit :D

#22 Gość_picasso_*

Gość_picasso_*
  • Goście

Napisano 10 02 2010 - 20:54

Nie wiesz, jak zrobić, żeby UAC nie wyświetlał monitu za każdym razem, gdy włączam te skrypty? Bo przy każdym uruchomieniu komputera może się to stać bardzo irytujące...


Elewacja metodologią via Harmonogram zadań: KLIK / KLIK. Wtedy nie ma promptu UAC.

#23 x33

x33

    First Rank

  • Na emeryturze
  • 16 postów

Napisano 10 02 2010 - 21:00

noi przed chwilą się dowiedziałem, że nie działa.
Okazało się, że skrypty działają normalnie po uprzednim ręcznym zresetowaniu karty w menedżerze urządzeń... Rozumiecie? Bo ja nie. No co za syf!
Kto to wymyślił, żeby takie upierdliwe rzeczy robić? Raz mi sie rozwaliła płyta MSI, gdzie wszystko działało normalnie, to kupiłem Gigabyte'a i teraz takie jaja sie robią.

pozostałe polecenia sprawdzę później. Dziś nie mam już siły na tego złoma.

BTW: zamiana systemu z x64 na x86, czy win XP nie wchodzi w grę, bo miałbym mnóstwo roboty z instalowaniem i robieniem wszystkiego od nowa.

#24 Kolega Dudysa

Kolega Dudysa

    Good Rank

  • Na emeryturze
  • 700 postów
  • Płeć:Mężczyzna

Napisano 10 02 2010 - 22:04

Cześć. A może jednak założysz nowego posta w odpowiednim dziale? Bo to to tylko zapobieganie, a nie leczenie. Sam widzisz że nie zawsze działa, a powinno. Tutaj CI pomogą :) Sprawdzałeś jak się karta zachowuje w trybie awaryjnym z dostępem do sieci? Czy są jakieś błędy w dzienniku zdarzeń, itd... Może na początek wykonać loga stanu sterowników, zawsze się może przydać, wykonać po restarcie systemu, bo jak się domyślam sterownik karty jest ustawiony na auto, a z loga można troche odczytać, w wierszu polecenia:

wmic path Win32_SystemDriver get Name, Caption, Started, StartMode, Status, ErrorControl, State > C:\DriveLog.txt

Umieść na wklej. Zrobisz jak uważasz to Twój wybór :) Ale po co sobie nerwy psuć.

Użytkownik Kolega Dudysa edytował ten post 12 02 2010 - 09:01


#25 x33

x33

    First Rank

  • Na emeryturze
  • 16 postów

Napisano 11 02 2010 - 21:05

@echo off
netsh interface set interface "Polaczenie sieci bezprzewodowej" DISABLED
echo Resetowanie karty sieciowej...
waitfor xyz /T 5
netsh interface set interface "Polaczenie sieci bezprzewodowej" ENABLED

Srypt okazał się skuteczny i działa poprawnie (na razie).

Ale nowy wątek i tak zakładam, ponieważ w trybie awaryjnym z obsługą sieci sprzęt działa poprawnie.
Zapraszam:
Znajduje się tam m.in. link do LOGa, który chciałeś.

Co do tego, że polecenie netsh nie chciało u Ciebie działać:
U mnie początkowo były problemy, ponieważ plik .bat zmieniał "ł" i "ą" w nazwie na jakieś dziwne znaki. Trzeba było zmienić nazwę na "Polaczenie [...]". Później okazało się, że nie uruchomi się poprawnie bez uprawnień administratora. Ale póki co działa.

oraz jeszcze taki skrypt VBS w TechNet Script Center Gallery -> Enable Disable Network Adapter

-Ten skrypt nie chciał u mnie działać. Pojawiał błąd: "Couldn't find 'Network and Dial-up Connections' folder".

Link do nowego tematu: Brak połączenia przy starcie systemu

#26 Kolega Dudysa

Kolega Dudysa

    Good Rank

  • Na emeryturze
  • 700 postów
  • Płeć:Mężczyzna

Napisano 12 02 2010 - 09:01

Używałem Netsh, skryptu TechNet Script Center Gallery na róźne sposoby w samej konsoli. Gdzieś doczytałem że Netsh z tymi parametrami nie będzie działał na XP poprawnie.

Temat Zamykam.




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych