Установить свойство в Win32_Volume - PullRequest
2 голосов
/ 20 июня 2020

Я пытаюсь понять, как установить значение свойства IndexingEnabled для диска (индексация диска включена / отключена). Из документации следует, что это свойство можно читать / писать.

using (ManagementObjectSearcher Win32_Volume =
    new ManagementObjectSearcher("Select IndexingEnabled from Win32_Volume where DriveLetter = 'C:'"))
{
    foreach (ManagementObject volume in Win32_Volume.Get())
    {
        volume.SetPropertyValue("IndexingEnabled", true); // true or false
    }
}

или

ManagementScope scope = new ManagementScope("\\\\.\\root\\cimv2");
ObjectQuery query = new ObjectQuery("Select IndexingEnabled from Win32_Volume where DriveLetter='C:'");
scope.Connect();

using (ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query))
{
    foreach (ManagementBaseObject drive in searcher.Get())
    {
        drive.SetPropertyValue("IndexingEnabled", true);
    }
}

Ошибка не генерируется, но значение свойства не меняется. Права администратора активны. Что я делаю не так? спасибо

1 Ответ

1 голос
/ 21 июня 2020

SetPropertyValue обновляет только объект-оболочку. Изменения не фиксируются (и не вступают в силу) до тех пор, пока не будет вызван Put, например volume.Put();.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...