Jak zapobiec losowemu uruchamianiu przez system Windows (zielonego) dysku twardego USB?


1

Nawet jeśli funkcja oszczędzania energii w systemie Windows jest ustawiona tak, aby nigdy nie wyłączać mojego dysku twardego, moje zewnętrzne dyski USB nadal będą się automatycznie wyłączać po pewnym okresie bezczynności. Problem polega na tym, że obracają się one losowo, gdy komputer jest bezczynny lub podczas oglądania filmu / słuchania muzyki; to naprawdę bardzo denerwujące (nie tylko ze względu na hałas, który powoduje, ale także dlatego, że niepotrzebnie stresuje napęd za każdym razem, gdy to robi, co jest kilkanaście razy dziennie i to mnie martwi). Natknąłem się na stare bezpłatne narzędzie, którego można bardzo skutecznie zaradzić tej irytacji za pomocą dysków SATA / eSATA. To się nazywa revoSleep . Dokumentacja tego narzędzia ujawnia sztuczkę polegającą na przełączeniu dysku w tryb offline, zakręceniu nim, a następnie wyłączeniu sterownika urządzenia.

Zainspirowało mnie to do poszukiwania podobnego rozwiązania dla napędów USB, ale jak dotąd nie udało mi się znaleźć oprogramowania, które działałoby bez żadnych problemów. Korzystając z diskpart, mogę przełączyć mój dysk USB w tryb offline. Następnie, korzystając z darmowego narzędzia o nazwie HDDScan dla Windows (podobnego do „hdparm”), mogę obrócić dysk, a nawet mogę to zrobić z pliku wsadowego. Miły.

Ostatnim krokiem jest wyłączenie sterownika urządzenia z dysku z tego samego pliku wsadowego zamiast korzystania z Menedżera urządzeń. Korzystając z innego darmowego narzędzia o nazwie DevCon, szybko udało mi się zidentyfikować właściwy sterownik urządzenia. Okazuje się, że stara wersja DevCon (od 2003 r.) Nie mogła wyłączyć sterowników urządzeń w systemie Windows 7 lub 8. Więc skończyłem pobieranie Driver Developmet Kit (DDK) 7.1.0 z Centrum pobierania Microsoft, aby pobrać wersję, która działa. Po rozwiązaniu tego problemu mogłem w końcu wyłączyć sterownik urządzenia z dysku twardego USB. Teraz nadchodzi moje pytanie. Wat to najlepszy, najbardziej niezawodny sposób na zautomatyzowanie tych kroków w pliku wsadowym (lub skrypcie WSH itp.), Aby plik wsadowy / skrypt nie przypadkowo wybrał niewłaściwy dysk dla któregoś z poleceń, które wykona?

FWIW, natknąłem się na ten post, ale przykładowy kod używa tylko pierwszych 11 znaków etykiety woluminu do znalezienia numeru partycji. Zamiast tego chcę, aby używał (jeśli to możliwe) unikalnego numeru seryjnego dysku twardego w celu znalezienia numeru dysku, aby móc przełączyć właściwy dysk w tryb offline.


2
Czy nie powinieneś spróbować dowiedzieć się, dlaczego napęd losowo się kręci? Przyczyną tego musi być coś (usługa itp.) - być może możesz rozwiązać ten problem u źródła zamiast skakać przez obręcze.
Karan

Za pomocą Monitora procesów Sysintenal widzę, że przyczyną tego jest zwykle Svchost lub coś w tym rodzaju; tak naprawdę nigdy nie jestem w stanie z łatwością odnieść się do niczego innego niż sam system operacyjny.
willy

Odpowiedzi:


0

To może pomóc.

Jeśli znasz numer seryjny dysku twardego, możesz użyć poniższego skryptu wsadowego, aby uzyskać literę dysku. Stamtąd możesz użyć litery dysku, aby odkryć wolumin lub numer dysku za pomocą diskpart.

@echo off
setlocal EnableDelayedExpansion

set "xDrive="
rem Loop through all of the drives to find the external HDD
for %%D in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
    for /f "tokens=5" %%S in ('vol %%~D:') do set "xSerial=%%S"
    if "%xSerial%"=="ABCD-1234" (
        set "xDrive=%%~D:"
    )
)

echo Drive Found = %xDrive%

endlocal
pause

Dzięki, ale dowiedziałem się, że numer seryjny dysku twardego niekoniecznie jest unikalny i chociaż kolizje są prawdopodobnie rzadkie, istnieje lepszy sposób na znalezienie prawidłowego numeru dysku.
willy

Zakładając, że $ diid jest ciągiem, który przechowuje identyfikator instancji urządzenia HDD, $ disks = gwmi win32_diskdrive | ? pnpdeviceid -eq $ diid $ c = @ ($ dyski) .count if ($ c -eq 1) {$ diskid = $ disks.index $ dpscript = @ "sel disk $ diskid wyjście z dysku offline" @ $ dpscript | diskpart} else {write-host "ERROR"}
willy

0

Byłem w stanie napisać skrypt PowerShell 3.0, aby przełączyć mój zewnętrzny dysk twardy USB w tryb offline za pomocą Diskpart, następnie rozkręcić go za pomocą HDDScan dla Windows, a następnie ostatecznie wyłączyć sterownik urządzenia za pomocą DevCon. Jednak dysk twardy włącza się ponownie po kilku minutach, a następnie natychmiast obraca się ponownie. Sprawdziłem, że ten objaw występuje tylko raz po uruchomieniu skryptu. Wyślę nowe pytanie dotyczące tego problemu.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.