unidad restablecer reparar reconocida que pendrive para memoria formatear dañada crear contraseña como abre .net usb

.net - reparar - unidad flash usb para restablecer contraseña



cómo determinar el fabricante de la unidad flash USB? (8)

Es posible que pueda obtener esta información a través de WMI. A continuación se muestra una secuencia de comandos vbs (copiar al archivo de texto con .vbs para ejecutar) que utiliza WMI para obtener información sobre los objetos Win32_DiskDrive . La información del fabricante podría simplemente decir Unidad de disco estándar, pero el número de modelo puede tener lo que está buscando.

Set Drives = GetObject("winmgmts:{impersonationLevel=impersonate,(Backup)}").ExecQuery("select * from Win32_DiskDrive") for each drive in drives Wscript.echo "Drive Information:" & vbnewline & _ "Availability: " & drive.Availability & vbnewline & _ "BytesPerSector: " & drive.BytesPerSector & vbnewline & _ "Caption: " & drive.Caption & vbnewline & _ "CompressionMethod: " & drive.CompressionMethod & vbnewline & _ "ConfigManagerErrorCode: " & drive.ConfigManagerErrorCode & vbnewline & _ "ConfigManagerUserConfig: " & drive.ConfigManagerUserConfig & vbnewline & _ "CreationClassName: " & drive.CreationClassName & vbnewline & _ "DefaultBlockSize: " & drive.DefaultBlockSize & vbnewline & _ "Description: " & drive.Description & vbnewline & _ "DeviceID: " & drive.DeviceID & vbnewline & _ "ErrorCleared: " & drive.ErrorCleared & vbnewline & _ "ErrorDescription: " & drive.ErrorDescription & vbnewline & _ "ErrorMethodology: " & drive.ErrorMethodology & vbnewline & _ "Index: " & drive.Index & vbnewline & _ "InterfaceType: " & drive.InterfaceType & vbnewline & _ "LastErrorCode: " & drive.LastErrorCode & vbnewline & _ "Manufacturer: " & drive.Manufacturer & vbnewline & _ "MaxBlockSize: " & drive.MaxBlockSize & vbnewline & _ "MaxMediaSize: " & drive.MaxMediaSize & vbnewline & _ "MediaLoaded: " & drive.MediaLoaded & vbnewline & _ "MediaType: " & drive.MediaType & vbnewline & _ "MinBlockSize: " & drive.MinBlockSize & vbnewline & _ "Model: " & drive.Model & vbnewline & _ "Name: " & drive.Name & vbnewline & _ "NeedsCleaning: " & drive.NeedsCleaning & vbnewline & _ "NumberOfMediaSupported: " & drive.NumberOfMediaSupported & vbnewline & _ "Partitions: " & drive.Partitions & vbnewline & _ "PNPDeviceID: " & drive.PNPDeviceID & vbnewline & _ "PowerManagementSupported: " & drive.PowerManagementSupported & vbnewline & _ "SCSIBus: " & drive.SCSIBus & vbnewline & _ "SCSILogicalUnit: " & drive.SCSILogicalUnit & vbnewline & _ "SCSIPort: " & drive.SCSIPort & vbnewline & _ "SCSITargetId: " & drive.SCSITargetId & vbnewline & _ "SectorsPerTrack: " & drive.SectorsPerTrack & vbnewline & _ "Signature: " & drive.Signature & vbnewline & _ "Size: " & drive.Size & vbnewline & _ "Status: " & drive.Status & vbnewline & _ "StatusInfo: " & drive.StatusInfo & vbnewline & _ "SystemCreationClassName: " & drive.SystemCreationClassName & vbnewline & _ "SystemName: " & drive.SystemName & vbnewline & _ "TotalCylinders: " & drive.TotalCylinders & vbnewline & _ "TotalHeads: " & drive.TotalHeads & vbnewline & _ "TotalSectors: " & drive.TotalSectors & vbnewline & _ "TotalTracks: " & drive.TotalTracks & vbnewline & _ "TracksPerCylinder: " & drive.TracksPerCylinder & vbnewline next

Necesito que mi programa funcione solo con ciertas unidades flash USB (de un solo fabricante) e ignoro todas las demás unidades flash USB (de cualquier otro fabricante).

¿Es posible verificar que una tarjeta USB específica esté insertada en Windows usando .NET 2.0? ¿cómo?

si lo encuentro a través de WMI, ¿puedo de alguna manera determinar en qué letra de unidad está la unidad USB?


Hola, intente esto usando WMI

Option Explicit Dim objWMIService, objItem, colItems, strComputer '' On Error Resume Next strComputer = "." Set objWMIService = GetObject("winmgmts://" _ & strComputer & "/root/cimv2") Set colItems = objWMIService.ExecQuery(_ "Select Manufacturer from Win32_DiskDrive") For Each objItem in colItems Wscript.Echo "Computer: " & objItem.SystemName & VbCr & _ "Manufacturer: " & objItem.Manufacturer & VbCr & _ "Model: " & objItem.Model Next

Model podría ser más útil que Manufacturer. Miras FirmwareRevision si quieres bloquear tu aplicación ahora en un solo Fabricante y una (alguna) Revisión de Firmware.

Espero eso ayude.


Pasando por Win32 CM_ (Device Management) o WMI y tomando la ID de PNP. Busque VID (ID del vendedor).

Veo información para el dispositivo que acabo de insertar en Win32_USBControllerDevice y Win32_DiskDrive .



Si los objetos Win32_DiskDrive no proporcionan la información que está buscando, también puede mirar la clase Win32_PhysicalMedia de los objetos WMI. Tienen propiedades de Fabricante, Modelo, PartNumber y descripción que pueden ser útiles.



En caso de que alguien más esté lo suficientemente loco como para hacer esto en C ++ - CLI, aquí hay una respuesta de puerto de smink:

using namespace System; using namespace System::Management; void GetUSBDeviceList() { try { ManagementObjectSearcher^ searcher = gcnew ManagementObjectSearcher("root//CIMV2", "SELECT * FROM Win32_DiskDrive"); for each (ManagementObject^ queryObj in searcher->Get()) { Console::WriteLine("DeviceID: {0}", queryObj["DeviceID"]); Console::WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]); Console::WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]); Console::WriteLine("Model: {0}", queryObj["Model"]); for each (ManagementObject^ b in queryObj->GetRelated("Win32_DiskPartition")) { Console::WriteLine(" Name: {0}", b["Name"]); for each (ManagementBaseObject^ c in b->GetRelated("Win32_LogicalDisk")) { Console::WriteLine(" Name: {0}", c["Name"]); // here it will print drive letter } } // ... Console::WriteLine("--------------------------------------------"); } } catch (ManagementException^ e) { Console::WriteLine(e->StackTrace); } Console::ReadLine(); }

Nota: Tuve que agregar manualmente una referencia a la biblioteca System.Management en mis propiedades de portales.


EDITAR: código agregado para imprimir letra de unidad.

Verifica si este ejemplo funciona para ti. Utiliza WMI.

Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]); ... Console.WriteLine(" Name: {0}", c["Name"]); // here it will print drive letter

La muestra del código completo:

namespace WMISample { using System; using System.Management; public class MyWMIQuery { public static void Main() { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root//CIMV2", "SELECT * FROM Win32_DiskDrive"); foreach (ManagementObject queryObj in searcher.Get()) { Console.WriteLine("DeviceID: {0}", queryObj["DeviceID"]); Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]); Console.WriteLine("Manufacturer: {0}", queryObj["Manufacturer"]); Console.WriteLine("Model: {0}", queryObj["Model"]); foreach (ManagementObject b in queryObj.GetRelated("Win32_DiskPartition")) { Console.WriteLine(" Name: {0}", b["Name"]); foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk")) { Console.WriteLine(" Name: {0}", c["Name"]); // here it will print drive letter } } // ... Console.WriteLine("--------------------------------------------"); } } catch (ManagementException e) { Console.WriteLine(e.StackTrace); } Console.ReadLine(); } } }

Creo que esas propiedades deberían ayudarlo a distinguir las unidades USB genuinas de las demás. Pruebe con varias unidades de lápiz para verificar si los valores son los mismos. Consulte la referencia completa de las propiedades de Win32_DiskDrive aquí:

http://msdn.microsoft.com/en-us/library/aa394132(VS.85).aspx

Comprueba si este artículo también te puede ayudar:

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/48a9758c-d4db-4144-bad1-e87f2e9fc979