Einzelnen Beitrag anzeigen

RandomDD

Registriert seit: 11. Aug 2016
42 Beiträge
 
#1

Laufwerke aulesen per WMI (Windows 10)

  Alt 14. Aug 2016, 14:33
Bis Windows 7 habe ich per WMI immer die Laufwerke auslesen können.
Seit Windows 10 funktioniert das nicht mehr. Ich bekomme nur noch Laufwerke des Typs 2 (Diskette) ausgelesen.

Der Hauptcode zum Auslesen ohne Klimbim drumherum:

Delphi-Quellcode:
 CoInitialize(nil);

 // ...
const
 WbemUser = '';
 WbemPassword = '';
 WbemComputer = 'localhost';
 wbemFlagForwardOnly = $00000020;
var
 FSWbemLocator: OleVariant;
 FWMIService: OleVariant;
 FWbemObjectSet: OleVariant;
 FWbemObject: OleVariant;
 oEnum: IEnumvariant;
 iValue: LongWord;

 // ...
 
 FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
 FWMIService := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
 FWbemObjectSet := FWMIService.ExecQuery('SELECT * FROM Win32_LogicalDisk', 'WQL', wbemFlagForwardOnly);
 oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumvariant;

 // ...
 try
  i := 0;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
   begin
    try
     case FWbemObject.DriveType of
      2, 3, 4, 6:
       begin
        showmessage(string(FWbemObject.Caption));
        showmessage(IntToStr(FWbemObject.DriveType));
       end;
     end;
    finally
     FWbemObject := Unassigned;
    end;
   end;
 finally
  CoUninitialize;
 end;
 // ...
Hat sich bei Windows 10 diesbezüglich etwas geändert?
Oder liegt es daran, dass das Windows 10 in einer VM steckt?

Geändert von RandomDD (14. Aug 2016 um 14:59 Uhr)
  Mit Zitat antworten Zitat