В результате ошибок в значениях некоторых параметров система Microsoft Systems Management Server (SMS) создала и не удалила несколько папок на большом количестве компьютеров в моей компании. Например, на одну из машин были добавлены папки, показанные на экране 1.

Экран 1. Пример папок, созданных, но не удаленных системой SMS

К папкам, созданным системой SMS, не применено разрешение Full Control Administrators, поэтому удаление этих папок включает следующие шаги:

  • локальная или удаленная авторизация на каждой системе;
  • применение разрешения Full Control Administrators к каждой папке, без этого разрешения папки не могут быть удалены администраторами;
  • удаление папок.

Выполнение этих действий вручную потребовало бы много времени, поэтому я написал сценарий deljunkfolders.ps1 (см. листинг) на инструментарии PowerShell для автоматического удаления папок и их содержимого. Все папки содержат подкаталоги с именем update (экран 2). Сценарий deljunkfolders.ps1 проводит поиск подкаталогов с именем update в папках верхнего уровня.

Экран 2. Поиск подкаталога update в папках верхнего уровня

После обнаружения папок верхнего уровня, содержащих подкаталог update, сценарий deljunkfolders.ps1 использует команду Get-Acl для копирования разрешений из папки, где администраторы имеют разрешение Full Control Administrators, и далее задействует команду Set-Acl для применения данного разрешения к папке, подлежащей удалению. В конце сценарий либо отображает список папок, которые необходимо удалить, либо удаляет их, в зависимости от команды, использованной для запуска сценария.

Чтобы предварительно просмотреть список папок, которые подлежат удалению, используйте следующую команду (при условии, что сценарий deljunkfolders.ps1 размещен на диске D):

Powershell.exe D:deljunkfolders.ps1
Pclist.txt

Файл Pclist.txt является входным списком, содержащим имена компьютеров, которые требуется проверить. При создании текстового файла имена компьютеров необходимо указывать в следующем формате:

Pc001
Pc002
Pc003

Если результаты, полученные на этапе предварительного просмотра, удовлетворительны, можно выполнить окончательное удаление папок с помощью команды

Powershell.exe D:deljunkfolders.ps1
Pclist.txt 1

Последний параметр (1) дает сценарию команду на удаление папок. Имейте в виду, что, если целевой компьютер недоступен, сценарий сообщит, что соединение с данной машиной установить невозможно.

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

Джеймс Лим (james_k_k_lim@apl.com) — менеджер в подразделении Distributed Systems and Services компании Neptune Orient Lines из Сингапура. Имеет звания MCSE, CISSP, Certified Ethical Hacker (CEH) и Oracle Certified Professional (OCP) 9i


Листинг. Сценарий deljunkfolders.ps1