Windowsの発電機能が私のハードドライブを停止しないように設定されていても、私の外部USB Harddrivesは依然として無活動の間に自動的にスピンされます。その問題は、コンピュータがアイドル状態である間、または映画を見ながら音楽を聴いている間にランダムに回転することです。それは本当に非常に厄介です(それがそれがするたびにドライブを不必要に強調しているので、それは一日中1日以上の時間以上、それが私を心配しています)。私は、SATA/eSATAドライブで非常に効果的にこの煩さに取り組むために使用できる古いフリーウェアユーティリティに出会いました。それは呼ばれています Revosleep 。このユーティリティのドキュメントは、トリックがディスクをオフラインにし、それをスピンし、そのデバイスドライバを無効にすることを明らかにします。
これは私にUSBドライブのための同様の解決策を探しました、しかしこれまでのところ私は問題なく機能するソフトウェアユーティリティを見つけることができませんでした。 DiskPartを使用すると、USBディスクをオフラインにすることができます。次に、Windows用のHDDSCANと呼ばれるフリーウェアユーティリティを使用して( 'HDParm'と同様)、ディスクをスピンダウンすることができ、BatchFileからさえそうすることもできます。良い。
最後のステップは、Device Managerを使用するのではなく、同じバッチファイル内からディスクのデバイスドライバを無効にすることです。 DevConと呼ばれる別のフリーウェアユーティリティを使用して、私はすぐに正しいデバイスドライバを識別できました。古いバージョンのDEVCON(2003)がWindows 7または8でデバイスドライバを無効にすることはできません。そのため、Microsoftのダウンロードセンターからドライバ開発キット(DDK)7.1.0をダウンロードして、機能するバージョンをつかみました。それが決済されたら、ついに私のUSB HardDriveのデバイスドライバを無効にすることができました。今ここに私の質問があります。 WATの最善のAKA BatchFile(またはWSHスクリプトまたはyhys)でこれらのステップを自動化するための最も信頼できる方法で、BatchFile/Scriptが実行されるコマンドのいずれかのコマンドに対して誤って間違ったドライブを選択することはできません。
FWIW、私は終了しました これは ポストですが、サンプルコードはボリュームラベルの最初の11文字のみを使用してパーティション番号を見つけます。代わりに、正しいディスクをオフラインにするために、ディスク番号を見つけるために、ハードドライブの固有のシリアル番号を使用したいと思います。
PowerShell 3.0スクリプトをDiskPartを使用してOfflineにしてから、HDDSCAN for Windowsを使用してオンにスピンしてから、DEVCONを使用してデバイスドライバを無効にします。ただし、HDDは数分後にバックアップし、その後すぐに再び滑ります。スクリプトが実行された後にこの症状が一度だけ発生することを確認しました。私は新しい質問をこの問題に投稿します。
これは助けるかもしれません。
HDDのシリアル番号がわかっている場合は、下記のバッチスクリプトを使用してドライブ文字を取得できます。そこからドライブ文字を使用して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
_