Полностью отключение защиты системы на Win 7
У меня есть требование от руководства, чтобы моему приложению было необходимо отключить восстановление системы в системе после установки. Я нашел и реализовал код ниже для достижения этой цели. Код прекрасно работает на XP и Vista, но, похоже, не работает на Win7.
public void disableSystemRestore(string drive)
{
try
{
ManagementScope scope = new ManagementScope("\\\\localhost\\root\\default");
ManagementPath path = new ManagementPath("SystemRestore");
ObjectGetOptions options = new ObjectGetOptions();
ManagementClass process = new ManagementClass(scope, path, options);
ManagementBaseObject inParams = process.GetMethodParameters("Disable");
inParams["Drive"] = drive;
ManagementBaseObject outParams = process.InvokeMethod("Disable", inParams, null);
}
catch(ManagementException err)
{
MessageBox.Show("An error occurred while trying to execute the WMI method: " + err.Message);
}
}
Проблема в том, что на Win7 Восстановление системы заключено в Защиту системы. Защита системы имеет 3 варианта для каждого жесткого диска.
1) Восстановление системы и версия файла
2) только версия файла
3) Нет
Пока никто никогда не изменял этот параметр вручную, код работает просто отлично. Однако, если пользователь изменил этот параметр раньше, тогда код устанавливает Option2 вместо Option3. Как я могу это исправить?
Кроме того, я не могу найти хорошее описание того, что именно Option2 делает. Я видел различные описания того, какие файлы на самом деле охватываются этим, но только комментарии к темам здесь и там. Нет реального "хорошего" описания того, что он делает или как он работает.
РЕДАКТИРОВАТЬ: было много беспокойства по поводу "почему", я должен сделать это и, поверьте мне, я полностью понимаю и боролся, чтобы найти другой путь. Но это было невозможно. Еще немного информации, чтобы, надеюсь, успокоиться.
Этот продукт не предназначен для личного использования. Он будет использоваться на корпоративном уровне в закрытых системах. Это требование вытекает из отраслевых норм и стандартов. Подумайте, медицинские или кредитные карты. Защищаются не только "наши" журналы, журналы доступа к системе, журналы использования системы, журналы аудита файлов. Таким образом, хотя даже при деактивированной функции "Восстановление системы" они могли использовать другие средства для восстановления старой версии наших журналов, в журналах системного уровня регистрируется доступ к файлу и кто к нему обращался, поэтому мы, по крайней мере, знаем, что произошло вмешательство в журнал. По сути, используя ОС для аудита журнала регистрации. Точка восстановления также сбросит все это за один простой шаг.
Это требование, предъявляемое к пользователю для установки этого приложения с правами администратора. В настоящее время пользователи фактически должны выполнить этот шаг вручную, чтобы сайт мог поддерживать свою отраслевую сертификацию. Мы просто пытаемся упростить процесс установки. Администраторы сайта знают об этом требовании. Есть еще дюжина других изменений системного администратора, которые я также внедряю, чтобы упростить процесс установки.
1 ответ
Это не прямой ответ на ваш вопрос, но это было слишком долго для комментария.
Хотя это не совсем необоснованный запрос на внутреннее программное обеспечение, это ужасная идея для коммерческого программного обеспечения.
В этом плане, по крайней мере, шесть вещей, которые я могу видеть на макушке головы. Не стесняйтесь отправить этот список обратно руководству и посмотреть, сможете ли вы получить другую директиву.
Это похоже на корпоративное программное обеспечение, а не на пользовательское / личное программное обеспечение.Во многих корпорациях действуют политики Active Directory, которые делают невозможным отключение восстановления системы или которые автоматически его активируют.Только системный администратор сможет установить это, потому что обычный корпоративный пользователь не будет иметь разрешения.При этом ничто не помешает системному администратору, выполняющему установку, повторно включить восстановление системы после установки. (Если обычный пользователь может установить его самостоятельно, он также получит разрешение на его повторное включение)Все, что пытается отключить защиту системы во время установки, может быть помечено как вредоносное ПО антивирусной защитой. Это может помешать этому работать и / или полностью отключить ваше программное обеспечение. Это также может заставить системных администраторов рекомендовать против этого.
Ничто из отключения восстановления системы не помешает кому-либо вручную удалить журналы.
Ничто в этом плане не помешает другим решениям для резервного копирования (таким как SecondCopy или другое сетевое резервное копирование) восстановить "старые" журналы.
Фактически, ничто не помешает злонамеренному пользователю просто скопировать старый журнал, сделать свое дело и заменить старый журнал.Это может сделать вашу компанию ответственной за любые потерянные данные в системах, на которых она установлена. (IANAL. Убедитесь, что ваши юристы знают об этом и потенциальных последствиях при написании условий использования.)
Короче говоря, он не будет делать то, что вы хотите, его легко обойти, и это очень враждебная вещь.