PowerShell для управления файлами (часть 7)

Опубликовано: 17 Марта, 2023

Если вы хотите прочитать другие части этой серии статей, перейдите по ссылке:

  • PowerShell для управления файлами (часть 1)
  • PowerShell для управления файлами (часть 2)
  • PowerShell для управления файлами (часть 3)
  • PowerShell для управления файлами (часть 4)
  • PowerShell для управления файлами (часть 5)
  • PowerShell для управления файлами (часть 6)

В предыдущей статье этой серии я начал показывать вам, как связать уведомления с экранами файлов FSRM. В этой статье я хочу продолжить обсуждение, рассмотрев командлет New-FsrmFmjNotification.

Как вы помните из предыдущей статьи, уведомления разбиты на два разных компонента. Есть само уведомление, а есть действие уведомления. Думайте об уведомлении как о триггере, а действие уведомления — как о действии, которое происходит в результате триггера.

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

Вот полный синтаксис командлета New-FsrmFMJNotification:


New-FsrmFMJNotification [Дней] <дней> [-Action <Action[]] [-AsJob] [-CimSession <CimSession[]>] [-ThrottleLimit <предел дроссельной заслонки>] [-Confirm] [-WhatIf] [CommonParameters]

Как видите, есть несколько параметров, которые вы можете использовать с этим командлетом. Однако хорошая новость заключается в том, что командлет не обязательно должен быть таким сложным, как может показаться из-за его синтаксиса. Многие из параметров, показанных в приведенном выше синтаксисе, являются необязательными. Единственным обязательным параметром является Дни. Хотите верьте, хотите нет, но даже параметр Action является необязательным согласно документации Microsoft (https://technet.microsoft.com/en-us/library/jj900652(v=wps.630).aspx).

Итак, с учетом сказанного, давайте посмотрим, как работает этот командлет. Поскольку параметр Days является обязательным, мы начнем с него.

Параметр Days очень прост в использовании. Он используется для указания количества дней до того, как задание управления файлами выполнит действие над файлом. Дата выражается целым числом, поэтому число 30 соответствует 30 дням.

Согласно ранее процитированной документации Microsoft, параметр -Action технически не требуется. Тем не менее, параметр -Action следует рассматривать как обязательное требование, потому что без него уведомлению нечего делать. Без назначенного действия уведомление теоретически будет ждать указанное количество дней, а затем ничего не делать.

Указание действия, как правило, очень простое. Задается параметр -Action, за которым следует действие, которое должно быть выполнено. Обычно действие выражается как переменная, поэтому параметр Action будет ссылаться на эту переменную. Чтобы показать вам, как это работает, давайте взглянем на простое уведомление.

В конце предыдущей статьи этой серии я привел следующий пример определения действия:

$action = New-FsrmFmjNotificationAction -Type Команда «C:WindowsSystem32cmd.exe» -CommandParameter

«Эхо. Это пример основного текста».

Как видите, действие сопоставляется с переменной с именем $Action. Как и следовало ожидать, действие основано на использовании командлета New-FsrmFmjNotificationAction. Это конкретное действие относится к типу Command. В результате этого действия запускается команда C:WindowsSystem32Cmd.exe. Эта конкретная команда просто открывает командную строку Windows, но не предпринимает никаких реальных действий. Обратите внимание, однако, что команда также включает параметр команды. В этом случае указанный параметр команды указывает команду, которая будет выполняться в командной строке Windows. Конечно, параметр command не делает ничего сверхзначимого. Он просто выводит пример текста.

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

Итак, вот как мы получаем уведомление о вызове действия:

New-FsrmFMJNotification -Days 14 -Action $Action

Эта команда сообщает Windows, что через две недели (14 дней) мы хотим выполнить любое действие, сопоставленное с переменной $Action.

Так что насчет тех других необязательных параметров, которые были включены в синтаксис команды? Из этих необязательных параметров наиболее полезным, вероятно, является -CimSession. Параметр CimSession позволяет запускать командлет New-FsrmFMJNotification в удаленной системе.

Должен признаться, что этот конкретный параметр представляет собой область, в которой я не согласен с тем, как работает Microsoft. Почти любой командлет PowerShell можно запустить в удаленной системе, но PowerShell действительно непоследовательна в отношении используемой для этого техники. В некоторых случаях для установки удаленного сеанса необходимо использовать командлет Enable-PSSession. Однако некоторые командлеты поддерживают использование параметра -Computer, который можно использовать для указания имени удаленной системы. Другие командлеты, такие как этот, требуют, чтобы вместо этого вы использовали CimSession. Отсутствие согласованности не является препятствием для функциональности. ИТ-специалисты должны просто помнить, что параметр CimSession используется для создания уведомлений в удаленных системах.

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

Еще один необязательный параметр, который иногда может быть полезен, — это ThrottleLimit. Параметр ThrottleLimit предназначен для обеспечения безопасности на случай, если вы выполняете действие, которое может привести к перегрузке сервера. Чтобы использовать этот параметр, просто введите -ThrottleLimit, а затем максимальное количество одновременных операций, которые вы хотите разрешить. Если вы опустите этот параметр, Windows автоматически определит оптимальный предел дроссельной заслонки. Имейте в виду, что это ограничение относится к командлету, а не к компьютеру в целом.

Вывод

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