В результате ошибок в значениях некоторых параметров система Microsoft Systems Management Server (SMS) создала и не удалила несколько папок на большом количестве компьютеров в моей компании. Например, на одну из машин были добавлены папки, показанные на экране 1.
К папкам, созданным системой SMS, не применено разрешение Full Control Administrators, поэтому удаление этих папок включает следующие шаги:
- локальная или удаленная авторизация на каждой системе;
- применение разрешения Full Control Administrators к каждой папке, без этого разрешения папки не могут быть удалены администраторами;
- удаление папок.
Выполнение этих действий вручную потребовало бы много времени, поэтому я написал сценарий deljunkfolders.ps1 (см. листинг) на инструментарии PowerShell для автоматического удаления папок и их содержимого. Все папки содержат подкаталоги с именем update (экран 2). Сценарий deljunkfolders.ps1 проводит поиск подкаталогов с именем 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