Нет доступа к инструментам WMI. Файлы управления Windows были перемещены или удалены

Обновлено: 06.07.2024

Поддержание свободного места на диске имеет решающее значение при управлении серверами и системами. Как администраторы, вы бы не хотели, чтобы вас застали врасплох в ситуации «диск заполнен». Чтобы убедиться, что вы в безопасности, вы должны научиться использовать PowerShell для удаления файлов!

В этой статье вы узнаете обо всех способах удаления файлов из вашей системы с помощью PowerShell.

Начнем!

Оглавление

Предпосылки

В этой статье представлены примеры использования PowerShell, и если вы планируете следовать им, вам потребуется следующее.

  • Компьютер под управлением Windows 10 или более поздней версии.
  • Windows PowerShell 5.1 или PowerShell 7.0
  • Редактор сценариев, например Visual Studio Code, Atom или Notepad++.

Использование команды Remove-Item для удаления файлов

Когда вам просто нужно использовать PowerShell для удаления файла, вы, вероятно, сразу узнаете о командлете Remove-Item. Этот командлет является стандартом де-факто для удаления файлов с помощью PowerShell.

Использование команды Remove-Item в сочетании с командлетом Get-ChildItem для чтения файлов и папок, а также мощного конвейера PowerShell может значительно упростить задачу.

Знаете ли вы, что командлет Remove-Item имеет псевдоним del ? При работе в PowerShell использование команды Remove-Item или del приведет к выполнению одной и той же команды.

Использование PowerShell для удаления файла

Первый наиболее полезный пример — самый простой, т. е. удаление одного файла. Чтобы удалить только один файл, вам нужно всего лишь использовать команду ниже. Приведенный ниже код удаляет файл C:\temp\random.txt.

Выполнение приведенного выше кода в PowerShell ничего не отобразит на экране, если только не возникнет ошибка.

Использование PowerShell для удаления всех файлов в папке

В этом примере приведенный ниже код удаляет все файлы в папке. Командлет Get-ChildItem нацелен на C:\temp с помощью параметра -Path. Параметр -File указывает, что единственным типом элементов, которые должны быть включены, являются файлы. Get-ChildItem игнорирует папки.

Вывод должен выглядеть так, как показано на скриншоте ниже.

Успешно удалено все файлы в папке

Успешно удалены все файлы в папке

Использование PowerShell для рекурсивного удаления всех файлов

В предыдущем примере удалялись только файлы в папке C:\temp. Если вам нужно также удалить файлы внутри каждого подкаталога, вам нужно добавить переключатель -Recurse в командлет Get-ChildItem, чтобы получить все файлы рекурсивно.

Выполнение приведенного выше кода заставляет PowerShell просмотреть все вложенные папки и получить весь список файлов. Вывод ниже показывает, что код смог удалить файлы в верхней папке; однако не удалось получить файлы во вложенных папках.

 Не удалось получить файлы в подпапках

Не удалось получить файлы во вложенных папках

Решение проблемы длинного пути

Ошибка, показанная выше, указывает на то, что PowerShell «не удалось найти часть пути». Эта ошибка указывает на то, что путь, который пытается получить командлет, не существует, что вводит в заблуждение. .

В данном случае ошибка возникла из-за того, что путь, который Get-ChildItem пытается прочитать, превышает максимальную длину пути, равную 260 символам.

Снимок экрана ниже показывает, что путь или каталог и его подкаталоги существуют, а один текстовый файл с именем InTooDeep.txt находится в самом нижнем подкаталоге. Комбинация всех символов, составляющих имена вложенных каталогов, создает проблему с длинным путем.

Вложенные каталоги создание длинного имени пути

Вложенные каталоги, создающие длинное имя пути

В Windows PowerShell 5.1 есть решение проблемы с длинным путем. Обходной путь — использовать Unicode-версию пути. Вместо того, чтобы указывать такой путь — C:\temp, используйте версию Unicode, например, '\\?\C:\temp' для папок, расположенных локально, или '\\?\UNC\ \\Temp', если папка находится в пути UNC.

Используя приведенный выше модифицированный код, учитывающий длинное имя пути, приведенный ниже вывод показывает, что PowerShell успешно прочитал глубоко вложенное имя пути и удалил файл.

Удален файл с длинным путем

Удален файл с длинным путем

Обратите внимание, что проблема с длинным путем не влияет на PowerShell 7.0. В PowerShell 7.0 нет необходимости использовать Unicode-версию пути, поскольку она уже имеет встроенную поддержку длинных имен путей.

Если папки также необходимо удалить, просто удалите параметр -File из командлета Get-ChildItem, и PowerShell удалит все элементы, включая файлы и папки.

Использование PowerShell для удаления файлов старше x дней

Другим типичным примером очистки дискового пространства является удаление файлов, возраст которых превышает определенное количество дней. Этот пример полезен для удаления старых файлов журналов, например файлов, созданных веб-серверами IIS, для освобождения места на диске.

В этом примере в c:\temp есть файлы старше 14 дней. С помощью приведенного ниже скрипта отображаются Name , CreationTIme и AgeInDays каждого файла в c:\temp.

Как видно на снимке экрана ниже, есть файлы возрастом 15 дней, 7 дней и 0 дней.

Список файлы в c:\temp

Список файлов в c:\temp

Теперь, когда вы знаете, какие файлы нужно удалить, вы можете создать скрипт, который будет удалять только файлы старше определенного количества дней, в данном случае старше 14 дней.

В приведенном ниже примере сценария файлы в папке C:\temp, значение CreationTime которых старше установленного порога, будут удалены.

Первая строка определяет путь для поиска Get-ChildItem. Путь сохраняется в переменной $path. Затем во второй строке указывается пороговое значение. Значение $threshold — возраст в днях, которому должен соответствовать удаляемый файл.

Следующая строка кода после переменной $threshold будет:

  • Получить набор файлов, расположенных в папке, указанной в переменной $path. В этом примере путь C:\temp.
  • Отфильтруйте выходные данные, чтобы включить только файлы, значение CreationTime которых старше, чем число дней, сохраненное в переменной $threshold. В этом примере порог – 14 дней.
  • Передайте отфильтрованный список файлов в значение Remove-Item, чтобы выполнить удаление этих файлов.

Когда вы запустите приведенный выше код, вы увидите вывод, как показано ниже.

Скрипт удалил файлы старше 14 дней

Скрипт удалил файлы старше 14 дней

Обратите внимание, что на снимке экрана выше, судя по подробному сообщению, сценарий удалил только пять файлов старше 14 дней. Чтобы убедиться, что файлы старше 14 дней все еще существуют, запустите приведенный ниже код, чтобы снова просмотреть их.

Результат ниже подтверждает, что команда Remove-Item не удалила более новые файлы.

Новые файлы остаются нетронутыми

Новые файлы остаются нетронутыми

Использование PowerShell для сопоставления и удаления шаблонов файлов

Удаление всех файлов, независимо от имени, типа или расширения, не всегда является лучшим подходом. Иногда вам нужно явно исключить или включить определенные файлы в процесс удаления.

В следующем примере ниже показано, как удалить файлы, которые соответствуют имени файла *.LOG. Один из способов сделать это — напрямую использовать командлет Remove-Item с параметром -Include, как показано ниже.

Еще один способ, возможно, более осторожный — сначала использовать Get-ChildItem для сбора списка файлов, подлежащих удалению. Только когда вас устроит список файлов для удаления, вы сможете, наконец, передать коллекцию командлету Remove-Item.

Например, приведенный ниже код получает файлы *.LOG в папке c:\temp.

.

В результате приведенного выше кода Get-ChildItem возвращает список файлов, соответствующих имени файла *.LOG.

Только файлы возвращается соответствие имени файла *.log

Возвращаются только файлы, соответствующие имени файла *.log

Но что, если вы хотите исключить файл, в имени которого содержится цифра 5? Вы можете сделать это, добавив параметр -Exclude, подобный следующему коду.

Поскольку вы исключили файл с номером 5, результат теперь другой. В частности, файла File_5.log больше нет в списке, как показано ниже.

Файл File_5.log был исключен

Файл File_5.log был исключен

Когда вы уже удовлетворены набором файлов, созданных вашим кодом, вы можете передать этот набор файлов командлету Remove-Item, чтобы окончательно удалить эти файлы.

После запуска вашего окончательного кода вы достигнете своей цели, удалив только те файлы, которые вы выбрали.

Удаление выбранного файлы

Удаление выбранных файлов

Удаление файлов с помощью WMI в PowerShell

Теперь, когда вы хорошо разобрались с использованием обычного командлета Remove-Item для удаления файлов, давайте перейдем к более сложному варианту использования. с помощью WMI.

PowerShell поставляется с поддержкой WMI. А поддержка WMI означает, что запросы и методы WMI можно вызывать из PowerShell. Да, WMI предназначен не только для сценариев Visual Basic, которые администраторы использовали в ранние дни Windows.

Microsoft выпустила командлеты CIM для WMI в PowerShell 3.0. Для удаления файлов будут использоваться командлеты CIM Get-CimInstance и Invoke-CimMethod .

Использование PowerShell и WMI для удаления файла

В этом примере предполагается, что вы знаете путь к конкретному удаляемому файлу. Командлет Get-CimInstance с классом Cim_DataFile используется для получения информации об удаляемом файле: C:\Temp\random.txt.

В приведенном выше коде параметр -Filter принимает запрос в формате WQL. Использование WQL требует экранирования некоторых символов, включая обратную косую черту. И, поскольку escape-символ WQL также является обратной косой чертой, в результате получается двойная обратная косая черта — \\ .

Выполнение приведенного выше кода приводит к результату, показанному на демонстрации ниже. Информация о C:\Temp\random.txt сохраняется в переменной $file2delete

Теперь, когда информация о файле C:\Temp\random.txt получена, результирующий объект в переменной $file2delete можно передать командлету Invoke-CimMethod. Командлет Invoke-CimMethod имеет параметр -Name , который представляет имя метода класса Cim_DataFile.

Как вы видите на снимке экрана ниже, значение ReturnValue равно 0, что означает, что команда выполнена успешно.

Файл успешно удалено с помощью WMI и PowerShell

Файл успешно удален с помощью WMI и PowerShell

Чтобы узнать о возможных кодах ReturnValue, перейдите по этой ссылке – Метод Delete класса CIM_DataFile

Кроме того, на снимке экрана ниже показано, что после запуска метода Invoke-CimMethod Delete() CIM удалил только файл C:\Temp\random.txt. Другие файлы не были удалены.

 Файл C:\Temp\random.txt был удален

Файл C:\Temp\random.txt удален

Использование PowerShell и WMI для удаления всех файлов в папке

В следующем примере показано, как удалить все файлы в папке с помощью PowerShell и WMI. Будут использоваться те же командлеты, что и в предыдущем примере, а именно Get-CimInstance и Invoke-CimMethod. Но на этот раз запрос WQL извлечет все файлы в папке, а не только один конкретный файл.

В следующем коде командлет Get-CimInstance извлекает все файлы, находящиеся в папке C:\temp. Как видно ниже, запрос фильтрует свойства Drive и Path класса Cim_DataFile.

Выполнение приведенного выше кода сохраняет полученную информацию о файлах в C:\temp в переменной $file2delete. Просмотр значений переменной $file2delete показывает вывод ниже.

Список все папки, найденные в c:\temp с помощью WMI

Список всех папок, найденных в c:\temp с помощью WMI

Теперь значения, хранящиеся в переменной $file2delete, можно передать методу Invoke-CimMethod для удаления всех файлов в c:\temp.

Помните, что код ReturnValue, равный 0, означает успешное выполнение, и для каждого файла, для которого был вызван метод удаления, будет свой собственный код ReturnValue.

Все файлы в c:\temp удалены с помощью WMI

Все файлы в c:\temp удалены с помощью WMI

Использование PowerShell и WMI для удаления файлов по расширению

В предыдущем примере вы видели, как удалить все файлы в папке независимо от расширения. Однако вы также можете контролировать, какие файлы будут удаляться в зависимости от расширения.

В приведенном ниже коде вы заметите, что на этот раз в запрос добавлено условие (имя LIKE '%.log ). Это добавленное условие означает, что возвращаются только файлы с расширением .LOG. Знак процента ( % ) — это оператор WQL LIKE, который означает "Строка из нуля или более символов". В терминах программирования % эквивалентен подстановочному знаку, который является символом звездочки ( * ).

В приведенной ниже демонстрации показано, что перед выполнением приведенного выше кода имеется девять файлов *.LOG и только один файл *.TXT. После выполнения кода файлы *.LOG удаляются, и в папке остается только файл *.TXT.

Сравнение WMI и Remove-Item

На данный момент в этом руководстве вы получили общее представление о том, как использовать PowerShell для удаления файлов. Вы узнали об Remove-Item, а также о WMI. Оба выполняют схожие функции, но сильно различаются.

Какой метод следует использовать для удаления файлов; Remove-Item или WMI?

Использование встроенных команд PowerShell, таких как Get-ChildItem и Remove-Item, для извлечения и удаления файлов выполняется намного быстрее, чем при использовании WMI.

В приведенном ниже примере показано сравнение использования WMI и встроенного командлета PowerShell для получения списка файлов в каталоге C:\windows\web и его подкаталогах.

Когда вы запустите приведенный выше код в PowerShell, вы увидите вывод, аналогичный приведенному ниже.

Get- Сравнение ChildItem и Get-CimInstance с запросом WMI

Get-ChildItem и Get-CimInstance с запросом WMI

Как видно из результатов, показанных выше, перечисление файлов в C:\windows\web заняло почти в десять раз больше времени с помощью Get-CimInstance, чем время потребовалось для завершения Get-ChildItem!

Кроме того, вы заметили, что строка Get-ChildItem намного короче строки Get-CimInstance ? Get-ChildItem позволяет не только ускорить выполнение, но и получить более чистый и короткий код.

Дальнейшие шаги

В этой статье вы увидели два разных способа использования PowerShell для удаления файлов с помощью встроенных командлетов и WMI/CIM.

Помните, что для удаления файлов всегда следует использовать командлеты Get-ChildItem и Remove-Item. Эти встроенные командлеты более гибкие, простые и быстрые в использовании, чем при использовании WMI.

Попробуйте придумать сценарий, который будет выполнять за вас уборку дискового пространства. Конечно, для этой цели уже существуют некоторые сценарии; во что бы то ни стало, используйте их в качестве справочного материала, но если вы хотите практиковаться и учиться, попробуйте создать свой собственный.

Дополнительная литература

Ненавидите рекламу? Хотите поддержать писателя? Получите многие из наших руководств в виде руководства по ATA.

Ещё от ATA Learning & Partners

Резервное копирование Office 365 для чайников

Лучшее руководство по защите данных Microsoft Office 365. Изучите готовые функции безопасности.

Руководства ATA

ATA известна своими высококачественными письменными учебными пособиями в виде сообщений в блогах. Поддержите ATA с помощью электронных книг ATA Guidebook PDF, доступных в автономном режиме и без рекламы!

Эта тема заблокирована. Вы можете подписаться на вопрос или проголосовать за него как полезный, но вы не можете отвечать в этой теме.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Ответы (17) 

* Попробуйте уменьшить номер страницы.

* Пожалуйста, вводите только цифры.

* Попробуйте уменьшить номер страницы.

* Пожалуйста, вводите только цифры.

Чтобы устранить проблему, попробуйте выполнить шаги по устранению неполадок, указанные по ссылке ниже.

Msinfo32.exe генерирует сообщение об ошибке "Не удается собрать информацию"

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

Сообщите нам, как эта попытка сработает.

Хороший Bing – статья в базе знаний.

Тогда вы можете это исправить.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

Спасибо, но, к сожалению, мне это не помогло. У меня домашняя версия Windows XP, и в статье говорится, что она не распространяется на домашнюю версию.

Итак, что мне делать дальше??

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

Если файлы Windows повреждены или отсутствуют, запустите утилиту Sfc, это восстановит или заменит

файлы. Запускаем, набираем: cmd В cmd набираем: Sfc /scannow

После запуска установите xp install cd, выйдите из меню. После завершения Sfc введите:

CHKDSK C: /F Согласитесь на перезагрузку, введите: EXIT Удалите компакт-диск, перезагрузите компьютер.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

При запуске msinfo32 вы видите:

Не удается собрать информацию.
Не удается получить доступ к программному обеспечению инструментария управления Windows. Файлы управления Windows могут быть перемещены или отсутствуют.

Либо служба инструментария управления Windows не запущена, и/или ваши информационные файлы инструментария управления Windows отсутствуют или повреждены. Легко восстановить информационные файлы WMI и заменить любые поврежденные или подозрительные файлы.

Чтобы устранить проблему, остановите службу инструментария управления Windows, переименуйте подозрительную или поврежденную папку WMI, а затем перезагрузите систему. При перезапуске системы служба WMI запускается автоматически и автоматически перестраивает папку WMI и ее содержимое.

Вот процесс:

Нажмите «Пуск», «Выполнить» и в поле введите:

Нажмите "ОК", чтобы запустить приложение "Службы".

Найдите службу инструментария управления Windows. Если в столбце «Статус» указано, что служба WMI запущена (работает), щелкните правой кнопкой мыши службу WMI и выберите «Остановить службу WMI».

Ответьте утвердительно, если вас попросят остановить Центр безопасности и службы брандмауэра Windows (если эти службы будут остановлены, ваша система будет уязвима для атак из Интернета, поэтому не подключайтесь к Интернету снова, пока не перезагрузите систему).

Сейчас самое время также проверить свойства службы WMI и убедиться, что тип запуска установлен на «Автоматически», чтобы служба WMI запускалась автоматически при следующей перезагрузке системы.

С помощью проводника перейдите к следующей папке (при условии, что загрузочный диск C):

Найдите и переименуйте папку "Репозиторий" во что-нибудь, что вы помните, например:

Перезагрузите компьютер, а затем снова проверьте Службы, чтобы убедиться, что служба WMI перезапустилась автоматически и была создана новая папка репозитория вместо той, которая была переименована. Полное восстановление папки репозитория может занять некоторое время (несколько секунд или минут), поэтому дождитесь его завершения.

После перезагрузки вы заметите, что служба wmiprvse.exe запущена в диспетчере задач, и она будет работать до тех пор, пока не завершит перестроение репозитория (это может занять некоторое время).

Этот процесс восстановления может занять несколько минут в зависимости от вашей системы, но в конечном итоге служба wmiprvse.exe завершится и исчезнет из диспетчера задач.

Если вы затем посмотрите журнал приложения просмотра событий, там могут быть сообщения об ошибках, подобные этому:

Это нормально, поскольку при перезапуске системы процесс wmiprvse.exe также должен перестроить эти части репозитория. Это ошибка последовательности, как указано ниже. Вы не должны снова видеть эти ошибки после того, как система была перезагружена, исправилась и завершила перестроение репозитория WMI.

Объяснения ошибок, отображаемых в журнале приложения просмотра событий при перестроении репозитория WMI:

Объяснение
Инструментарий управления Windows мог попытаться скомпилировать (mofcomp) файл .mof, помеченный для автоматического восстановления, но компиляция не удалась. Этот сбой, вероятно, вызван проблемой последовательности.

Действие пользователя
Чтобы устранить проблему, попробуйте еще раз скомпилировать файл .mof. Если это не решит проблему, обратитесь в службу поддержки соответствующей программы.

Вам не нужно ничего делать с этими сообщениями об ошибках, и они больше не должны появляться после того, как XP завершит перестроение репозитория WMI.

Я не могу сказать, сколько времени займет эта перестройка, может минут 10-15, пока она полностью не уляжется.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

3 человека сочли этот ответ полезным

Был ли этот ответ полезен?

Извините, это не помогло.

Отлично! Благодарим за отзыв.

Насколько вы удовлетворены этим ответом?

Спасибо за ваш отзыв, он помогает нам улучшить сайт.

Насколько вы удовлетворены этим ответом?

Спасибо за отзыв.

Нет, это не то, что делает sfc, и вы можете убедиться в этом сами и узнать об этом с помощью этого небольшого теста:

Вот простой «эксперимент», который вы можете провести с файлом rundll32.exe, который может помочь вам понять, что делает и чего не делает команда sfc /scannow (вы также должны знать это сообщение об ошибке):

Переименуйте или просто удалите файл c:\windows\system32\rundll32.exe, чтобы он «отсутствовал».

переименовать rundll32.exe ----> rundll32.xxx

Если вы загрузились нормально, прежде чем вы сможете моргнуть, "отсутствующий" файл rundll32.exe будет быстро и незаметно заменен копией из папки dllcache. Вот как работает защита файлов Windows, поскольку она отслеживает 3498 защищенных файлов. В системном журнале просмотра событий вы увидите что-то вроде этого:

Тип события: Информация
Источник события: Защита файлов Windows
Категория события: Нет
Код события: 64002
Описание:
Попытка замены файла на защищенном системный файл c:\windows\system32\rundll32.exe. Этот файл был восстановлен до исходной версии для поддержания стабильности системы. Версия системного файла — 5.1.2600.5512.

Затем загрузите систему в безопасном режиме или в консоли восстановления, чтобы защита файлов Windows не работала.

Снова переименуйте или просто удалите файл c:\windows\system32\rundll32.exe, чтобы он «отсутствовал».

Теперь ваш файл rundll32.exe действительно отсутствует. Если бы защита файлов Windows была запущена, «отсутствующий» файл был бы быстро и незаметно заменен (попробуйте переименовать или удалить его в обычном режиме, и он будет заменен).

Это важный системный файл XP, верно? Он есть в списке файлов 3498, о которых знает защита файлов Windows и средство проверки системных файлов, но теперь он отсутствует.

Теперь, когда ваш файл rundll32.exe отсутствует, загрузитесь в обычном режиме и попробуйте использовать что-то вроде панели управления, чтобы открыть что-то вроде параметров питания, и вы увидите это знакомое сообщение:

Панель управления
Windows не может найти «C:\WINDOWS\system32\rundll32.exe». Убедитесь, что вы правильно ввели имя, а затем повторите попытку. Чтобы найти файл, нажмите кнопку «Пуск», а затем нажмите «Поиск».

Теперь вы воссоздали распространенную проблему с отсутствующим файлом и увидели ошибку своими глазами. Инженер службы поддержки Майкрософт обычно предлагает запустить sfc /scannow для такого рода проблем, но это не сработает и не поможет, и вы можете убедиться в этом сами.

Затем, пока ваша система загружается нормально, запустите sfc /scannow до завершения.

Взгляните, и вы увидите, что файл rundll32.exe по-прежнему отсутствует, верно? Как это может быть, если sfc /scannow должен заменять отсутствующие или поврежденные системные файлы?

Теперь вы знаете, чего не делает sfc /scannow. Он не заменяет отсутствующие или поврежденные файлы из папок system32 — вы только что это доказали.

Теперь перейдите в папку c:\windows\system32\dllcache и удалите или переименуйте оттуда файл rundll32.exe, и он останется удаленным и не будет заменен, поскольку защита файлов Windows не следит за содержимым этой папки.< /p>

Запустите sfc /scannow еще раз до завершения.

На этот раз отсутствующий файл rundll32.exe в папке dllcache будет заменен, так как это папка, о которой заботится sfc /scannow.

Теперь вы знаете, чего не делает команда sfc /scannow, а что делает.

Обязательно верните «отсутствующий» файл rundll32.exe обратно, либо переименовав его, либо заменив его из резервной копии в папке dllcache.

Собираетесь ли вы сообщить/предупредить автора, что если установлен пакет обновления 3 (SP3), запущенная команда sfc /scannow будет много раз запрашивать установочный компакт-диск с пакетом обновления 3 (SP3)?

Если у вас нет компакт-диска с тем же пакетом обновлений, что и у вашей установки (у большинства людей его нет), постеров ждут тяжелые и разочаровывающие времена.

Конечно, это не поможет MSE, публикующим невозможные вещи, которые не работают, но я решил опубликовать это в сотый раз.

Сообщить о нарушении

Домогательство – это любое поведение, направленное на то, чтобы побеспокоить или расстроить человека или группу людей. К угрозам относятся любые угрозы самоубийства, насилия или причинения вреда другому человеку. Любой контент на тему для взрослых или неуместный для веб-сайта сообщества. Любое изображение, ссылка или обсуждение наготы. Любое поведение, которое является оскорбительным, грубым, вульгарным, оскверняет или демонстрирует неуважение. Любое поведение, которое может нарушать лицензионные соглашения с конечными пользователями, включая предоставление ключей продукта или ссылок на пиратское программное обеспечение. Незапрашиваемая массовая рассылка или массовая реклама. Любые ссылки на вирусы, шпионское ПО, вредоносное ПО или фишинговые сайты или их пропаганда. Любой другой неприемлемый контент или поведение, как это определено Условиями использования или Кодексом поведения. Любое изображение, ссылка или обсуждение, связанные с детской порнографией, детской наготой или другим жестоким обращением с детьми или их эксплуатацией.

Инструментарий управления Windows (WMI), входящий в 20 лучших методов, включенный в раздел «Дополнительные исследования» отчета за 2020 год, впервые появляется в десятке лучших в отчете об обнаружении угроз за 2022 год.

Ранг техники
Процент затронутых клиентов
Общий объем угроз
Звуки угроз

Злоумышленник может использовать инструментарий управления Windows (WMI) для горизонтального перемещения по системе, фактически выдавая себя за администратора. Тем временем мы делаем вид, что инди-рок ранних нулевых все еще крут.

Анализ

Почему злоумышленники используют WMI?

Примечание. В WMI нет дополнительных методов.

Как и многие другие угрозы, описанные в этом отчете, WMI — это встроенная функция Windows, которую можно использовать в локальных или удаленных системах. Администраторы регулярно используют WMI для:

  • настроить системы
  • запускать процессы или сценарии
  • автоматизировать задачи

То, что делает WMI полезным для администраторов, также делает его привлекательным для злоумышленников. Обратите внимание: поскольку WMI может выполнять эти задачи как в локальных, так и в удаленных системах, злоумышленники могут использовать его для бокового перемещения. Кроме того, поскольку WMI обычно используется в безвредных целях, вредоносная деятельность часто смешивается с законной деятельностью.

Как злоумышленники используют WMI?

Злоумышленники используют WMI для:

  • сдвинуться в сторону
  • собирать информацию
  • изменить системы
  • добиться устойчивости

Прежде чем углубляться в то, как злоумышленники используют WMI, уясните, что WMI состоит из клиентского и серверного компонентов. Наиболее известными клиентами являются утилита командной строки wmic.exe (также известная как WMIC) и командлет PowerShell Get-WMIObject. Как администраторы, так и злоумышленники используют оба для целей, упомянутых выше. Поскольку wmic.exe встречается гораздо чаще, чем Get-WMIObject , приведенные ниже примеры будут сосредоточены на первом. На стороне сервера wmiprvse.exe — или узел поставщика WMI — обслуживает многие, но не все запросы, сделанные клиентами. Обратите внимание, что WMIC — не единственный клиент. Существует ряд двоичных файлов Windows, которые под капотом выполняют вызовы WMI, которые обрабатываются wmiprvse.exe — например, tasklist.exe.

Это важно помнить, потому что, если вы видите подозрительную активность, связанную с родительским процессом wmiprvse.exe , возможно, вы имеете дело со злоумышленником, который использует wmic.exe в удаленной системе для выполнения полезных нагрузок на система, которую вы исследуете, — форма бокового движения. Вот техника бокового движения WMI, которую мы часто видим:

На целевом хосте данный процесс будет отображаться как дочерний процесс wmiprvse.exe. Если ваши политики аудита безопасности регистрируют события входа в систему, вы должны увидеть соответствующее событие входа в сеть (тип 3), связанное с этим действием. Варианты приведенной выше командной строки могут включать переданные учетные данные.

Еще один распространенный способ использования злоумышленниками WMI, в частности WMIC, — сбор информации и изменение систем. Во время атак программ-вымогателей злоумышленники часто перечисляют и удаляют тени томов, которые используются для восстановления файлов. Поскольку операторы программ-вымогателей часто используют для этой цели утилиту Volume Shadow Administration, vssadmin.exe , многие организации отправляют предупреждения в SOC при ее выполнении. Однако wmic.exe также можно использовать для управления тенями томов без вызова vssadmin.exe с помощью следующей команды:

По иронии судьбы, мы иногда видим менее скрытую версию этой атаки с использованием WMIC:

Приведенный выше шаблон приведет к тому, что wmiprvse.exe порождает процесс vssadmin.exe.

Помимо перечисления и управления тенями томов, злоумышленники используют WMIC для перечисления и изменения десятков аспектов системы или среды Windows. Мы видели, как злоумышленники использовали WMIC для:

  • определить, какой антивирусный продукт может быть установлен
  • остановить службу брандмауэра
  • перечислить членство в группах (включая локальные и во многих конфигурациях учетные записи администратора домена)
  • изменить еще десятки интересных элементов

Мы также столкнулись с тем, что злоумышленники используют обработку сценариев XSL, которую можно использовать для обхода управления приложениями и — благодаря параметру WMIC /format — загрузки кода из удаленного места. Вот пример того, как это может выглядеть:

При выполнении приведенной выше команды будет загружено и выполнено содержимое файла XSL.

Злоумышленники также используют WMI для обеспечения устойчивости с помощью тройки потребителей событий WMI, фильтров и привязок между фильтрами и потребителями. Злоумышленники используют этот механизм сохраняемости для выполнения произвольного кода в ответ на действия на конечной точке, такие как вход или выход пользователя или запись файла по указанному пути.

Злоумышленник может использовать WMI для взаимодействия с локальными и удаленными системами и использовать его как средство выполнения различных действий, таких как сбор информации для обнаружения, а также удаленное выполнение файлов в рамках бокового перемещения. [3] [2]

Примеры процедур

Агент Тесла использовал запросы WMI для сбора информации из системы. [4]

APT29 использовал WMI для кражи учетных данных и запуска бэкдоров в будущем.[5] Они также использовали WMI для удаленного выполнения файлов для бокового перемещения. [6] [7]

APT32 использовала WMI для развертывания своих инструментов на удаленных компьютерах и сбора информации о процессе Outlook. [8]

APT41 использовал WMI несколькими способами, в том числе для выполнения команд через WMIEXEC, а также для сохранения данных через PowerSploit. [9] [10]

Astaroth использует WMIC для выполнения полезной нагрузки. [11]

Avaddon использует wmic.exe для удаления теневых копий. [12]

Bazar может выполнить запрос WMI для сбора информации об установленном антивирусном ядре. [13] [14]

Подключаемый модуль BlackEnergy 2 использует WMI для сбора сведений о хосте-жертве. [15]

Blue Mockingbird использовала wmic.exe для установки переменных среды. [16]

Chimera использует WMIC для выполнения удаленных команд. [17] [18]

Cobalt Strike может использовать WMI для доставки полезной нагрузки на удаленный хост. [19] [20]

CrackMapExec может выполнять удаленные команды с помощью инструментария управления Windows. [21]

DEATHRANSOM может использовать WMI для удаления теневых копий томов. [22]

Известно, что группа Deep Panda использует WMI для горизонтального перемещения. [23]

Дроппер DustySky использует инструментарий управления Windows для извлечения информации об операционной системе и активности антивируса. [24]

EKANS может использовать вызовы Windows Mangement Instrumentation (WMI) для выполнения операций. [25]

Emotet использовал WMI для запуска powershell.exe. [26]

Empire может использовать WMI для доставки полезной нагрузки на удаленный хост. [27]

EvilBunny использовал WMI для сбора информации о системе. [28]

EVILNUM использовал инструментарий управления Windows (WMI) для подсчета зараженных машин. [29]

FELIXROOT использует WMI для запросов к реестру Windows. [30]

FIN6 использует WMI для автоматизации удаленного выполнения сценариев PowerShell. [31]

FIN7 использовала WMI для установки вредоносных программ на целевые системы. [32]

Вредоносная полезная нагрузка целевого фишинга FIN8 использует WMI для запуска вредоносных программ и выполнения cmd.exe. FIN8 также использовала WMIC для бокового перемещения, а также во время действий по очистке от компрометации и после нее. [33] [34] [35]

FIVEHANDS может использовать WMI для удаления файлов на целевой машине. [22] [36]

FlawedAmmyy использует WMI для определения наличия антивируса на жертве. [37]

Франкенштейн использовал запросы WMI, чтобы проверить, запущены ли различные приложения безопасности, а также версию операционной системы. [38]

GALLIUM использовал WMI для выполнения, чтобы помочь в горизонтальном перемещении, а также для установки инструментов на несколько активов. [39]

GravityRAT собирает различную информацию с помощью запросов WMI, включая информацию о процессоре в записи Win32_Processor (идентификатор процессора, имя, производитель и тактовая частота). [40]

HALFBAKED может использовать запросы WMI для сбора системной информации. [41]

HELLOKITTY может использовать WMI для удаления теневых копий томов. [22]

HOPLIGHT использовала WMI для повторной компиляции файлов Managed Object Format (MOF) в репозитории WMI. [42]

IcedID использует WMI для выполнения двоичных файлов. [43]

Модуль wmiexec Impacket можно использовать для выполнения команд через WMI. [44]

Indrik Spider использовал WMIC для выполнения команд на удаленных компьютерах. [45]

jRAT использует WMIC для идентификации антивирусных продуктов, установленных на компьютере жертвы, и для получения сведений о брандмауэре. [46]

Казуар получает список запущенных процессов с помощью запросов WMI. [47]

Koadic может использовать WMI для выполнения команд. [48] ​​

KOMPROGO может выполнять запросы WMI. [49]

Вредоносная программа Lazarus Group SierraAlfa использует приложение командной строки Windows Management Instrumentation wmic для запуска себя в целевой системе во время бокового перемещения. [50] [51]

Левиафан использовал WMI для выполнения. [52]

Lucifer может использовать WMI для входа на удаленные машины для распространения. [53]

Компания Maze использовала WMI, чтобы попытаться удалить теневые тома на машине и подключить виртуальную машину к сетевому домену сети организации-жертвы. [54] [55]

menuPass использует модифицированную версию сценария пентестинга wmiexec.vbs, который входит в удаленную машину с помощью WMI. [56] [57] [58]

Micropsia ищет антивирусное программное обеспечение и брандмауэры, установленные на компьютере жертвы, с помощью WMI. [59] [60]

MoleNet может выполнять команды WMI в системе. [61]

Установщик Mosquito использует WMI для поиска отображаемых имен антивирусов. [62]

MuddyWater использует вредоносное ПО, использующее WMI для выполнения и запроса информации о хосте. [63] [64] [65]

Mustang Panda выполняет сценарии PowerShell через WMI. [66] [67]

Naikon использовал WMIC.exe для бокового перемещения. [68]

Netwalker может использовать WMI для удаления теневых томов. [69]

NotPetya может использовать wmic для распространения по сети. [70] [71]

Octopus использует wmic.exe для локального обнаружения информации. [72]

OilRig использовала WMI для выполнения. [73]

Olympic Destroyer использует WMI для распространения по сети. [74]

OopsIE использует WMI для выполнения методов обнаружения. [75]

Операция Wocao использовала WMI для выполнения команд. [76]

PoshC2 имеет ряд модулей, которые используют WMI для выполнения задач. [77]

Модуль PowerSploit Invoke-WmiCommand CodeExecution использует WMI для выполнения и извлечения выходных данных из полезной нагрузки PowerShell. [78] [79]

POWERSTATS может использовать запросы WMI для получения данных со взломанных хостов. [80] [64]

POWRUNER может использовать WMI при сборе информации о жертве. [81]

ProLock может использовать WMIC для выполнения сценариев на целевых хостах. [82]

QakBot может выполнять запросы WMI для сбора информации. [83]

RATANKBA использует WMI для мониторинга процессов. [84] [85]

Remexi выполняет полученные команды с помощью wmic.exe (для команд WMI). [86]

REvil может использовать WMI для мониторинга и уничтожения определенных процессов, перечисленных в его файле конфигурации. [87] [88]

RogueRobin использует различные запросы WMI, чтобы проверить, выполняется ли образец в изолированной программной среде. [89] [90]

Команда Sandworm использовала VBScript для выполнения запросов WMI. [91]

SharpStage может использовать WMI для выполнения. [61] [92]

Sibot использует WMI для обнаружения сетевых подключений и конфигураций. Sibot также использовал класс Win32_Process для запуска вредоносной DLL. [93]

Вредоносная программа Stealth Falcon собирает системную информацию с помощью инструментария управления Windows (WMI). [94]

StoneDrill использует утилиту командной строки WMI (WMIC) для запуска задач. [95]

Stuxnet использовал WMI с токеном explorer.exe для выполнения на удаленном общем ресурсе. [96]

SUNBURST использовал запрос WMI Select * From Win32_SystemDriver для получения списка драйверов. [97]

Инструмент Threat Group-3390 может использовать WMI для выполнения двоичного файла. [98]

Дропперы Ursnif использовали классы WMI для выполнения команд PowerShell. [99]

Валак может использовать вызов процесса wmic create в запланированной задаче для запуска подключаемых модулей и выполнения. [100]

WannaCry использует wmic для удаления теневых копий. [101] [102] [103]

Windshift использует WMI для сбора информации о целевых машинах. [104]

Wizard Spider использует запросы WMI и LDAP для обнаружения сети и горизонтального перемещения. [105] [106] [107] [108]

В одном из вариантов Zebrocy для сбора информации используются запросы WMI. [109]

Смягчение

В Windows 10 включите правила Attack Surface Reduction (ASR), чтобы блокировать запуск процессов, созданных командами WMI. Примечание: многие законные инструменты и приложения используют WMI для выполнения команд. [110]

Используйте контроль приложений, настроенный на блокировку выполнения wmic.exe, если это не требуется для данной системы или сети, чтобы предотвратить возможное неправомерное использование злоумышленниками. Например, в Windows 10 и Windows Server 2016 и более поздних версиях правила политики управления приложениями Защитника Windows (WDAC) могут применяться для блокировки приложения wmic.exe и предотвращения злоупотреблений. [111]

Предотвратите дублирование учетных данных в системах учетных записей администратора и привилегированных учетных записей. [2]

По умолчанию удаленное подключение с помощью WMI разрешено только администраторам. Ограничьте других пользователей, которым разрешено подключение, или запретите всем пользователям удаленное подключение к WMI.

Обнаружение

Отслеживание сетевого трафика для соединений WMI; использование WMI в средах, которые обычно не используют WMI, может вызывать подозрения. Выполняйте мониторинг процесса, чтобы перехватывать аргументы командной строки «wmic» и обнаруживать команды, которые используются для выполнения удаленного поведения. [2]

Читайте также: