PowerShell для управления файлами (часть 6)
В моей предыдущей статье этой серии я показал вам, как использовать PowerShell для создания базовой блокировки файлов и как использовать PowerShell для проверки существования блокировки файлов. В конце этой статьи я объяснил, что существует ряд расширенных параметров, связанных с фильтрами файлов, и пообещал показать вам некоторые из этих параметров.
Итак, с учетом сказанного, я хочу на мгновение отвлечься от PowerShell и вместо этого взглянуть на диспетчер ресурсов файлового сервера. Если вы посмотрите на рисунок ниже, вы увидите экран ранее созданного файла, отображаемый в диспетчере ресурсов файлового сервера. Вы также можете видеть, что диалоговое окно, используемое для редактирования свойств экрана файлов, содержит ряд вкладок, таких как «Настройки», «Сообщение электронной почты», «Журнал событий», «Команда» и «Отчет».
Диалоговое окно «Свойства экрана файлов» содержит ряд вкладок.
Каждая из вкладок, показанных на рисунке выше, содержит один или несколько параметров конфигурации. Например, есть возможность отправлять предупреждения в журналы событий или создавать отчеты со списком повторяющихся файлов. Дело в том, что экраны FSRM содержат множество опций конфигурации, но когда мы используем командлет Get-FSRMFileScreen, мы этих опций не видим. Если вы посмотрите на рисунок ниже, вы увидите, что я даже использовал командлет Select-Object для отображения всех доступных фрагментов информации для файловых экранов FSRM.
PowerShell отображает часть доступных параметров конфигурации.
Причина, по которой на приведенном выше снимке экрана не показаны какие-либо дополнительные параметры, отображаемые на вкладках в первом снимке экрана в этой статье, заключается в том, что командлет Get-FSRMFileScreen не может сам предоставлять расширенные атрибуты экрана файлов. Вместо этого Microsoft выбрала подход с несколькими командлетами.
Как упоминалось ранее, вкладки в диалоговом окне «Свойства экрана файлов», которое было показано в начале этой статьи, включают в себя «Настройки», «Сообщения электронной почты», «Журнал событий», «Команда» и «Отчет». Хитрость заключается в том, что Microsoft классифицирует события, сообщения электронной почты и команды как уведомления (по крайней мере, когда речь идет об экранах файлов FSRM). Имея это в виду, еще раз взгляните на вывод PowerShell на снимке экрана выше. Если вы посмотрите на столбец слева, вы заметите объект под названием Notification.
Вам нужно знать о двух командлетах, связанных с уведомлениями. Это командлеты New-FsrmFmjNotification и New-FsrmFmjNotificationAction. Командлет New-FsrmFmjNotification возвращает объект уведомления для заданий управления файлами. Командлет New-FsrmFmjNotificationAction возвращает действие уведомления для задания управления файлами.
Это может показаться немного обратным, но обычно вам нужно создать действие уведомления, прежде чем вы сможете создать фактическое уведомление. Это потому, что уведомление вызывает действие уведомления. Чтобы показать вам, что я имею в виду, давайте рассмотрим пример, предоставленный Microsoft:
$action = New-FsrmFmjNotificationAction -Type Email -MailTo «[Администратор Email];[Владелец файла]» -Subject «Предупреждение: срок действия файлов скоро истечет» -Body «Срок действия прикрепленного списка файлов истечет через 30 дней». -AttachmentFileListSize 1000
New-FsrmFmjNotification –Days 30 –Action $action
В примере Microsoft первая строка устанавливает переменную с именем $Action. Соответственно, эта переменная связана с командлетом New-FsrmFmjNotificationAction. Теперь здесь все становится интереснее. Посмотрите, что будет дальше в команде. Корпорация Майкрософт использует параметр -Type, а для параметра Тип задано значение Электронная почта.
Помните, ранее я говорил, что сообщения электронной почты, команды и события классифицируются как действия? Что ж, параметр Type позволяет вам управлять типом создаваемого уведомления. Вы можете установить для параметра Тип значение Электронная почта, Событие или Команда. Следующие параметры значительно различаются в зависимости от типа, который вы укажете. В этом конкретном примере Microsoft установила для Типа значение Электронная почта, поэтому все последующие параметры связаны с электронной почтой. У нас есть параметры с именами MailTo, Subject, Body и AttachmentFileListSize.
Так что, если мы хотим, чтобы действие уведомления было событием? Что ж, в таком случае первая часть команды останется прежней, но параметр Type нужно будет установить в Event. Последующие параметры также изменятся, потому что они должны быть привязаны к конкретному событию. Наиболее часто используемые параметры события — это EventType и Body. Тип события определяет, является ли событие информационным, ошибкой и т. д. Тело — это фактический текст события. Вот пример того, как могла бы выглядеть первая строка приведенной выше команды, если бы мы создавали событие, а не сообщение электронной почты:
$action = New-FsrmFmjNotificationAction -Type Information -Body «Это пример основного текста события».
Процесс выполнения команды также несколько похож, поскольку команды также рассматриваются как действия уведомления. Как вы, наверное, уже догадались, выполнение команды требует установки для параметра Type значения Command. Однако необходимо указать два параметра – команду и параметры команды.
Концепция команды и параметры команды могут быть немного сложными для понимания просто из-за некоторых соглашений об именах, которые Microsoft решила использовать. Однако на практике все не так уж и сложно.
В последнем примере я показал вам, как создать информационное событие, отображающее текст с указанием «это пример основного текста». Итак, давайте отобразим похожий текст с помощью команды.
Старая команда DOS для отображения текста — Echo. Во времена DOS для отображения текста требовалось ввести Echo, за которым следовал текст, который вы хотели отобразить. Следовательно, мы могли бы сделать что-то вроде этого:
Эхо Это пример основного текста.
Хотя это допустимая команда DOS, она не будет работать сама по себе как команда действия уведомления. Помните, что каждая команда должна иметь команду и параметр команды. Мы могли бы использовать Echo в качестве параметра команды, но нам все равно нужна сама команда. Команда представляет собой инструкцию открыть окно командной строки, чтобы параметр команды (в данном случае команда Echo) имел место для запуска. Итак, вот как может выглядеть такая команда:
$action = New-FsrmFmjNotificationAction -Type Command «C:WindowsSystem32cmd.exe» -CommandParameter «Echo Это пример основного текста».
Заключительная мысль
В этой статье я начал показывать вам, как связать уведомления с экранами файлов FSRM. В следующей статье этой серии я продолжу обсуждение, рассмотрев командлет New-FsrmFmjNotification. А пока вы можете узнать больше о синтаксисе командлета New-FsrnFmjNotificationAction здесь.
- PowerShell для управления файлами (часть 5)