Как изменить значения элементов BcdStore с помощью WMI?
В этой статье Msdn-BcdStore показано, как управлять хранилищем BCD с помощью WMI API.
Используя эту платформу, я попытался изменить элемент политики Nx загрузчика Boot. Согласно bcdedit /enum
текущее значение политики Nx равно 1 (т.е. OptOut).
Приведенный ниже скрипт Powershell пытается установить для политики nx загрузчика в системном BcdStore значение AlwaysOff.
$store = (Invoke-WmiMethod -Path BcdStore -Namespace root\wmi -name openstore -argumentlist '').Store
$loaders = (Invoke-WmiMethod -Path $store.__RELPATH -Namespace root\wmi -name EnumerateObjects -argumentlist 270532611).Objects
#Picking up the default OS loader
$osloader = $loaders[1]
Invoke-WmiMethod -Path $osloader.__RELPATH -Namespace root\wmi -name SetIntegerElement -argumentlist 620757024,2
Вышеуказанный скрипт успешно выполнен без ошибок. Это означает, что он должен был изменить значение политики Nx на 2 (то есть AlwaysOff). Но мой bcdedit /enum
по-прежнему показывает политику Nx как OptOut
,
Я заметил DeleteElement
Функция под BcdObject удаляет элемент. Но SetIntegerElement
не устанавливает значение элемента.
Я не могу получить то, что мне здесь не хватает. Пожалуйста, помогите мне с этим вопросом.