USB cihazını komut satırından kaldırın


61

Windows 7 için bir yedekleme betiği kuruyorum ve gerçekleştirmesini istediğim son eylem yedeklemekte olduğu USB sürücüsünü güvenli bir şekilde "kaldırmak". Sürücüyü her zaman aynı USB bağlantı noktasına takmanın aynı DEV_ID değerini koruyacağı izlenimindeyim (yanılıyorsam düzelt). Komut satırıyla (veya PowerShell), Windows'un kullanıcı girişi olmadan donanımı otomatik olarak güvenli bir şekilde kaldırmasını nasıl söyleyebilirim?

Tıpkı bir yer tutucu olarak, bunu yapmanın bir yolu olabilecek diğer işletim sistemleri de bilmek harika olurdu.


5
Ben açıkça belli ki ಠ_ಠ asked.` olarak otomasyon görev için yararsız seçenekleri istedi ve sağlanmaktadır anlamadı aşağıda “cevapları” bazıları tarafından hayal kırıklığı itiraf etmeliyim
Synetech

> Sürücüyü her zaman SAME USB portuna takmanın aynı DEV_ID değerini tutacağı izlenimi altındayım, hatalıysam beni düzeltin. Bu doğru. Windows bir sürücüye ve takılı olduğu bağlantı noktasına tanımlayıcı bir çift olarak davranır. Onu farklı bir bağlantı noktasına takarak (içine hiç takılmadı), Windows'un sürücü yükleme işlevini tetiklersiniz. Daha da kötüsü, birime ardışık olmayan bir sürücü harfi atadıysanız, onu yeni bir bağlantı noktasına takarak bu harfi tutmaz ve bir sonraki kullanılabilir harfi alır ve tekrar bir harf atamanız gerekir.
Synetech

1
(Bir sürücüyü bir bağlantı noktasına takıp Windows'un sürücü yüklemesine izin veriyorsanız, sonradan arka arkaya olmayan bir sürücü harfi atarsanız , aynı marka, modeldeki farklı bir sürücüdeki fişini prizden çekmeniz yeterlidir . ve boyut, daha sonra Windows tam olarak önceki sürücüye
takılıymış gibi davranır

Başlığı doğru olarak güncelleyebilir misiniz? USB "aygıtlarını" değil USB "aygıtlarını" kaldırma ile ilgili cevaplar arıyordum.

Yanıtlar:


32

RemoveDrive geçmişte bana iyi hizmet etti.


4
removalrive \ x64> RemoveDrive.exe f: -L , acelesi olanlar için olan
koddur

Bu benim için çalışmaya başladı. İlginçtir ki bir WqlEventQuery Telsizleştim, siz diski fiziksel olarak çekene kadar ateş etmek için hala bekliyor. Bu konuda bir ton bilmiyorum, ama beni şaşırttı. Bu durumda benim için bir sorun olmadı.
samuelesque

1
RemoveDrive iyidir, ancak sorun aslında tüm sürücüyü kaldırmasıdır. Kart okuyucular için, sadece kartı çıkarmak (sağ tıklamak ve Bilgisayarımdan Çıkar'ı seçmek gibi) ve başka bir fişi takmanıza izin vermek yerine, kart okuyucunun tamamını çıkarır, fiziksel olarak çıkarılmasını ve yeniden açılmasını gerektirir. Kart okuyucusu yerleşik ise, yeniden başlatılması takılı ya da daha kötüsü (yazılımla yapmak mümkündür ancak can sıkıcıdır).
Synetech

Bunu cygwin'den de çalıştırabilirsiniz.
Kevin Sadler

65

Uwe Sieber'ın RemoveDrive'ın diğer cevabında belirtilen yanı sıra , bunu başarabilecek bir sürü yardımcı program var. Küçük bir liste şöyle:

  • USB Disk İtici , temel olarak GUI tabanlı bir yardımcı programdır, ancak programın çalıştığı sürücüyü veya sürücü harfini / (kısmi) sürücü adını / takma noktasını vs. belirterek herhangi bir sürücüden çıkarmak için komut satırından eşit derecede kullanılabilir. Ücretsiz ve açık kaynak.

    USB Disk İtici

  • USB Güvenle Kaldır ücretsiz değil, ancakelbette komut satırı desteği de dahil olmak üzerebirçok gelişmiş özelliğe sahip steroidler üzerindeki bir disk temizleme aracıdır. Zentimo daha da fazla özelliği olan büyük ağabeyidir.

    USB Güvenle Kaldır

  • Microsoft'un kendi DevCon'u , Aygıt Yöneticisi'nin komut satırı sürümüdür. KB sayfasından erişilebilen orijinal Win2K / XP dönemi sürümünün yanı sıra, DevCon.exe makalesini burada bulabileceğiniz gibi, çeşitli MS kaynaklarından daha yeni sürümler (hem 32 ve 64 bit) edinilebilir . Windows 7 için DevCon.exe (ve muhtemelen Windows 8 de), bu konu başlığında belirtildiği gibi uygun Windows Sürücü Seti'ne (WDK) gömülü olarak bulunabilir (bu, çıkartılan çalıştırılabilir dosyaya indirme linkleri de içerir). ).

    devcon status *veya devcon hwids *veya devcon findall =usb(daha kompakt bir liste için) size cihazın donanım kimliğini söylemelidir. Örneğin:

    USB \ VID_0781 ve PID_7113 \ 0001162825
    İsim: USB Yığın Depolama Aygıtı
    Sürücüsü çalışıyor.

    Daha sonra cihazı çıkarmayı deneyebilirsiniz devcon remove "USB\VID_0781&PID_7113"(* gibi joker karakterlere izin verilir, ancak dikkatli olun veya başka bir şeyi tamamen kaldırabilirsiniz !)


Birisi " Bu bir kopyasını kopyası olarak kapatıldı ne yazık ki" DOS sürücü (Win7 gelen cmd.exe) bir başparmak sürücü çıkarmak için komut var mı? " Diye sordu . Ancak, soru, Windows Kurtarma Konsolu / Sistem Kurtarma Komut İstemi'ndeyken USB sürücülerin çıkarılmasıyla ilgili idi , bu nedenle yukarıdaki yardımcı programların herhangi birinin yardımcı olması pek mümkün değildir. Böyle bir durumda, DiskPart kullanarak aşağıdaki yöntem çalışmalıdır:

  1. Tip diskpart(ve Diskpart istemi bekleyin DISKPART>)

  2. tip list volume

  3. USB sürücünün ses numarasını dikkatlice not edin (yardım için sürücü harfi, etiket, tür ve boyut gibi listelenen özellikleri kullanın)

  4. Tür select volume <number>, <number>yukarıda belirtilen cilt numarası nerede

    Diskpart'ın

  5. tip remove all dismount

  6. Tip exitDiskPart'nden çıkmak için

Artık veri kaybından korkmadan USB sürücünüzü güvenle kaldırabilmelisiniz.


1
SU kapattıktan sonra bile soruma cevap vermek için zaman ayırdığınız için teşekkür ederiz. Devam ettim ve Jared Tritsch'in önerisine göre hareket ettim ve sürücüyü sadece kaldırarak çıkardım. Dizüstü bilgisayarı tekrar çalışır duruma getirdikten sonra, DISKPART ile deney yapacağım. İşte Microsoft’un DISKPART Özellikleri’nin bağlantısı. technet.microsoft.com/en-us/library/bb490893.aspx
zundarz

2
@zundarz: Rica ederim! Çıkarılabilir aygıtlar için Windows'taki varsayılan Kaldırma ilkesi , yazma işlemini önbelleğe almayı devre dışı bırakan ve sürücüyü ilk önce güvenle kaldırmanıza gerek kalmadan kaldırabilen Hızlı kaldırma'dır . Daha fazla bilgi için bu ekran görüntüsüne bakın . Bu nedenle, Jared'in sürücüyü takma konusundaki önerisi, eğer çıkarılabilir sürücüler Kurtarma Konsolu'nda da aynı şekilde kullanıldığında normalde veri kaybına neden olmamalıdır. Yine de, gönül rahatlığı için, her bir sürücüyü çekmeden önce her zaman güvenli bir şekilde çıkarmaya özen gösteriyorum. Plasebo olabilir, ama beni endişelendiriyor. :)
Karan

PS Diskpart ile dikkatli olun - bu güçlü ve dolayısıyla oldukça tehlikelidir. Sürücüyü sökmek için kullanmamın nedeni, hem XP'nin Kurtarma Konsolu hem de Vista / 7'nin Sistem Kurtarma Seçenekleri / Komut İstemi'nde mevcut olmasıdır.
Karan

DiskpartNormal Windows modundayken kullanmayı denedim . Yukarıdaki 5. adımı gerçekleştirdikten sonra aldığım mesaj bu. "DiskPart sürücü harfini başarıyla kaldırdı, ancak değişikliklerin yürürlüğe girmesinden önce bilgisayarınızın yeniden başlatılması gerekiyor. Diskpart birimi başarıyla çıkardı." Çıkarılabilir bir cihaz (SD kart okuyucu veya USB flash sürücü gibi) yerine çıkarılabilir bir medyada (SD kart) kullanmayı denedim. Okuyucunun üzerindeki LED göstergesi sönmedi ancak yanmaya devam etti (yani, bir SD kart sadece içine oturduğunda ara sıra olduğu gibi yanıp sönmeyi bıraktı). Yani o zaman çıkarmak güvenlidir sanırım.
Samir

3
To geriremove all dismount komutunu kullanmak gerekir mountvolkomutu. Daha fazla bilgi için, bkz. Technet kütüphanesi, burada ve burada . Kullandıktan sonra mountvoldeğişikliklerin geçerli olması için yeniden başlatmanız gerekir. Alternatif olarak, yeni bir sürücü harfi atamak için Disk Yönetimi'ni de kullanabilirsiniz.
Samir

16

Bu soruyu cevaplamak için ... Üçüncü taraflara ihtiyacınız yok.

Bir Komut Satırıyla (veya PowerShell), Windows'un kullanıcı girişi olmadan donanımı otomatik olarak güvenli bir şekilde kaldırmasını nasıl söyleyebilirim?

RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll Donanımı Güvenle Kaldır iletişim kutusunu açmak için bu komutu çalıştırın :

Donanımı Güvenle Kaldır İletişim Kutusu


4
Ne yaptığını tarif eder misin?
Kanadalı Luke

1
usb için güvenli kaldırma başlat
climenole 12:12

11
O zaman hala bir şeyi tıklamam gerekmeyecek mi?
Kanadalı Luke

2
Bu oldukça havalı, fakat ne yazık ki otomasyon için Karan'ın önerisinden daha iyi değil.
Synetech

1
kontrol hotplug.dll , yani, _RunDLL olmadan Vista SP2'de benim için çalışmıyor
user66001

2

Bir yedekleme aygıtı olduğundan, bir depolama aygıtı olduğu için powershell'den yapılabileceği anlamına gelir - sadece X: istediğiniz sürücü harfiyle değiştirin:

$driveEject = New-Object -comObject Shell.Application
$driveEject.Namespace(17).ParseName("X:").InvokeVerb("Eject")

1
Bu çözümü serverfault ve stackoverflow'ta gördüm, fakat harici HDD'mde çalışmasını sağlayamıyor gibiyim. Hata mesajı yok, hiçbir şey yapmıyor. Kullanılması "F:"veya "F:\"yönetici olarak PowerShell çalıştıran yaptığı gibi, bir fark yaratmak değildi. Görev Çubuğu ile güvenle kaldırılması çalışıyor. Neyi yanlış yapıyorum?
flolilo

Gerçek powershell komutu herhangi bir hata (kırmızı metin) mesajı döndürmüyor mu?
Olağanüstü Zeka

F: \ 'nin fişini çekip komutu çalıştırırsam, NULL olan bir yöntemi çalıştıramadığımda hata alıyorum (mesaj Almanca, bu yüzden çeviriyi doğru yaptığımdan tam olarak emin değilim). Komutları F: \ takılıyken çalıştırırsam, hiçbir mesaj yoktur - $errorboş. Bu arada, Win10 Pro'da PowerShell 5.1 kullanıyorum. F: \ yalnızca bir bölümü olan harici bir USB HDD'dir (F :) - görev çubuğundan sorunsuzca çıkarılabilir.
flolilo

İlginçtir, bir USB-pendrive kullandığımda (ayrıca bir bölümüyle), kusursuz çalışıyor. Her ikisi de Better performancekaldırılma politikalarında etkili olmuş, ancak bu bir fark yaratmıyor gibi görünüyor (USB pendrive her iki ayarda da çalışıyor, USB HDD çalışmıyor). Benim sahip olduğum ikinci bir pendrive da PowerShell komutu ile atılmaktan hoşlanmıyor. Çalışıyor: Transcend JetFlash 700 (16GB, FAT32), Çalışmıyor: Seagate Expansion Portable 2015 (4 TB, NTFS), Sandisk Extreme (32GB, exFAT). Hepsi aynı USB portunda birden çok kez denedi. Yine, Görev Çubuğu simgesiyle güvenli bir şekilde kaldırma her zaman işe yarar.
flolilo

@ flolilolilo ben de aynı sorun var ...
Ploni

1

Göre bu 7tutorials-makalesinde , "Quick kaldırılmasını" ayarlayarak güvenli fişini etkinleştirebilirsiniz. Bu, aygıt başına yazma önbelleğini devre dışı bırakır , performans etkisinin “ihmal edilebilir” olduğu mı? Windows 7 için attığı adımlar aşağıda.

( Düzenle ) Bu howtogeek makalesine göre , "Hızlı kaldırma" ayarını yaparken hala dikkatli olmalısınız. Bu, yazma önbelleğini devre dışı bırakacak ve böylece çoğu sorunu önleyecektir. Ancak bazı programlar açıkça çıkarılmadan / kaldırılıncaya kadar hala 'canlı' şeyler yazıyor olabilir. ( Düzenlemenin sonu )

Adımlar:

  • aygıtı USB sürücüsüne takın
  • Aygıt Yöneticisi'ni açın
  • Disk Sürücülerini genişlet
  • çıkarılabilir sürücünüze sağ tıklayın, örneğin "USB2.0 Flash Disk USB Aygıtı".
  • Özellikleri seçin
  • Politikalar sekmesini tıklayın
  • "Hızlı kaldırma" özelliğini etkinleştir ("Daha iyi performans" seçeneğini devre dışı bırak)

( Düzenle ) Ayarı değiştirmek için Aygıt Yöneticisi'ni kullanmanız gerektiğini unutmayın; bu işlem Dosya Gezgini'nden yapılamaz. (En azından Windows 10 sürümümde.)


1
Bu yedek sürücüler için harika bir fikir gibi geliyor! Görünüşe göre bu varsayılan ayar olsa da (En azından benim yerime Seagate BUP Slim BK USB External Drive).
Arvo Bowen

1
Yazma önbelleği etkin olan cihazlar hızlıca çıkarılamaz.
Olağanüstü Zeka

1
Bunu global olarak ayarlamak mümkün mü? Gelecekte ekli olan USB depolama birimleri için geçerli mi?
DuckMaestro
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.