Dynamischer Datenträger - WMI-Property

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Link.

    Dynamischer Datenträger - WMI-Property

    Hi,

    ich hab ein kleines Tool, das über die WMI div. Infos rausholt über Datenträger/Partitionen/Volumes.

    Was das Ding eigentlich tun soll: exakt bestimmen, ob ein Datenträger ein dynamischer Datenträger ist. Quasi Abfrage an eine Funktion "isDynamicDisk", die dann dieses und jenes macht und true oder false zurückgibt. Momentan hab ich ein Tool, das div. Partitions-Propertys auflistet (Size, DiskIndex, StatusInfo, Type etc...).

    Jetzt brauch ich jemanden aus dem Forum der mein Tool testet und an einem Rechner ausführt, an dem ein dynamischer Datenträger hängt. Ich kann es hier nicht testen aber ich muss wissen, welches die richtige Property ist, um einen dynamischen Datenträger zu identifizieren.

    Falls also jemand die Möglichkeit dazu hat das zu testen, einfach bitte das Tool ausführen und die Ausgabe hier als Beitrag posten.

    Datei: *entfernt; keine EXEn außerhalb des Showrooms!*

    Code:
    Spoiler anzeigen

    Nicht dass ihr denkt ich schick euch schädliche Tools ;)

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.IO
    3. Imports System.Text.RegularExpressions
    4. Imports System.Management
    5. Imports System.Collections.Specialized
    6. Module Module1
    7. Sub Main(ByVal args As String())
    8. Dim propNames As StringCollection = New StringCollection()
    9. Dim driveClass As ManagementClass = New ManagementClass("Win32_DiskPartition")
    10. Dim props As PropertyDataCollection = driveClass.Properties
    11. For Each driveProperty As PropertyData In props
    12. propNames.Add(driveProperty.Name)
    13. Next driveProperty
    14. Dim text As String = ""
    15. Dim idx As Integer = 0
    16. Dim drives As ManagementObjectCollection = driveClass.GetInstances()
    17. For Each drv As ManagementObject In drives
    18. Console.ForegroundColor = ConsoleColor.Magenta
    19. Console.WriteLine()
    20. Console.WriteLine()
    21. 'Console.WriteLine(" ******** Drive({0}) Properties ************", idx)
    22. Console.WriteLine(" ************ " & drv("DeviceID") & " ************ ")
    23. text &= vbNewLine & vbNewLine & " ************ " & drv("DeviceID") & " ************ " & vbNewLine
    24. For Each strProp As String In propNames
    25. Console.ForegroundColor = ConsoleColor.White
    26. If LCase(strProp) = LCase("type") Then Console.ForegroundColor = ConsoleColor.Yellow
    27. Console.WriteLine(" [ {0} ] => {1}", strProp, drv(strProp))
    28. text &= " [ " & strProp & " ] => " & drv(strProp) & vbNewLine
    29. Next strProp
    30. Next drv
    31. Try
    32. Console.WriteLine()
    33. IO.File.WriteAllText(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\ausgabe.txt", text)
    34. Shell("notepad.exe """ & Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & "\ausgabe.txt""", AppWinStyle.NormalFocus)
    35. Catch ex As Exception
    36. Console.ForegroundColor = ConsoleColor.Red
    37. Console.WriteLine(ex.Message.ToString)
    38. End Try
    39. Console.ReadLine()
    40. End Sub
    41. End Module



    Link :thumbup:
    Hello World

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Hi,

    das hatte ich auch schon versucht. Microsoft sagt (hier: msdn.microsoft.com/en-us/library/aa394132(v=vs.85).aspx) dass folgende Werte möglich sind:

    -------------
    MediaType
    Data type: stringAccess type: Read-onlyQualifiers: MappingStrings
    ("Win32API|Device Input and Output Structures|DISK_GEOMETRY|MediaType")


    Type of media used or accessed by this device.

    Starting with Windows Vista, possible values are:

    External hard disk media
    Removable media other than floppy
    Fixed hard disk media
    Format is unknown


    Windows Server 2003: Possible values are:

    Removable media ("Removable media other than floppy")Fixed hard disk ("Fixed hard disk media")Unknown ("Format is unknown")
    -------------

    Finde ich jetzt nicht so aufschlussreich. Zumindest sagst es mir nicht, ob es ein dynamischer oder ein Basis-Datenträger ist.


    Link :thumbup:
    Hello World
    Hm also dann befürchte ich, wirst es mit WMI nicht rausfinden. Ich bezweifel das es unter Win32_DiskPartition zu finden sein wird. Aber vll findes ja was. Alternativ kannst vll Diskpart.exe nehmen und unter list disk findest raus ob die disk dynamisch ist
    Das ist meine Signatur und sie wird wunderbar sein!
    Ja mit Diskpart geht das. Gibt ne extra Spalte "Dyn" wo ein "*" ist wenn es ein dynamischer Datenträger ist. Vielleicht muss ich irgendeinen Umweg finden, es mit Diskpart zu machen.

    Link :thumbup:
    Hello World