Поделиться через


Set-FileLabel

Задает метку конфиденциальности и защиту файла с помощью ручной метки или автоматической маркировки в соответствии с конфигурацией меток или пользовательскими разрешениями.

Синтаксис

SetLabel

Set-FileLabel
    [-Path] <String[]>
    -LabelId <Guid>
    [-JustificationMessage <String>]
    [-Owner <String>]
    [-PreserveFileDetails]

SetLabelCustom

Set-FileLabel
    [-Path] <String[]>
    -LabelId <Guid>
    -CustomPermissions <AIPCustomPermissions>
    [-JustificationMessage <String>]
    [-Owner <String>]
    [-PreserveFileDetails]

Custom

Set-FileLabel
    [-Path] <String[]>
    -CustomPermissions <AIPCustomPermissions>
    [-Owner <String>]
    [-PreserveFileDetails]

SetAutoLabel

Set-FileLabel
    [-Path] <String[]>
    [-JustificationMessage <String>]
    [-Owner <String>]
    [-Force]
    [-PreserveFileDetails]
    [-AutoLabel]

WhatIf

Set-FileLabel
    [-Path] <String[]>
    [-PreserveFileDetails]
    [-WhatIf]
    [-DiscoveryInfoTypes <String[]>]

Описание

Для клиента Microsoft Purview Information Protection командлет Set-FileLabel задает метку конфиденциальности для одного или нескольких файлов. Это действие может автоматически применять защиту, если метки настроены для применения шифрования.

Кроме того, этот командлет можно использовать для применения пользовательских разрешений при создании в качестве объекта политики защиты с помощью командлета New-CustomPermissions .

При успешном выполнении команды можно заменить любую существующую метку или защиту.

Этот командлет можно запускать неинтерактивно. Дополнительные сведения см. в руководстве администратора клиента унифицированных меток.

Примеры

Пример 1. Применение метки "Общие" ко всем файлам, которые в настоящее время не имеют метки

Get-FileStatus -Path \\Finance\Projects\ |
    Where-Object {$_.IsLabeled -eq $False} |
    Set-FileLabel -LabelId d9f23ae3-4321-4321-4321-f515f824c57b
FileName                              Status Comment
--------                              ------ ------------
\\Finance\Projects\Image.jpg          Success
\\Finance\Projects\Pricelist.pdf      Success
\\Finance\Projects\Announcement.docx  Success
\\Finance\Projects\Analysis.xlsx      Success

Эта команда сначала определяет все файлы, которые не помечены с помощью командлета Get-FileStatus . Затем эти файлы помечены путем указания метки "Общие" по идентификатору.

Пример 2. Применение метки "Общие" к .docx файлам, которые не помечены

Get-ChildItem C:\Projects\*.docx -File -Recurse |
    Get-FileStatus |
    Where-Object {$_.IsLabeled -eq $False} |
    Set-FileLabel -LabelId d9f23ae3-1234-1234-1234-f515f824c57b
FileName                   Status  Comment
--------                   ------  ------------
C:\Projects\Analysis.docx  Success
C:\Projects\Projects.docx  Success

Эта команда сначала определяет все .docx файлы в папке C:\Projects (и ее подпапках) с помощью Get-Child-Item, а затем находит из этих файлов те, которые не помечены с помощью Get-FileStatus командлета. Полученные файлы затем помечаются путем указания метки General по ее идентификатору.

Замечание

Эта команда использует псевдоним Path для FullName, так что Get-Child-Item можно использовать с Get-FileStatus.

Пример 3. Применение метки "Общие" ко всем файлам в папке и любой из ее вложенных папок

Set-FileLabel -Path C:\Projects\ -LabelId d9f23ae3-1324-1234-1234-f515f824c57b
FileName                    Status      Comment
--------                    ------      ------------
C:\Projects\Project1.docx   Success
C:\Projects\Datasheet.pdf   Success
C:\Projects\Image.jpg       Success
C:\Projects\Analysis.xlsx   Skipped    No label to apply
C:\Projects\Dashboard.xlsx  Success

Эта команда устанавливает метку с именем «Общие» для всех файлов в папке C:\Projects и любых ее подпапках.

Если метка "Общие" настроена для применения шифрования, файлы, успешно помеченные этой командой, также будут зашифрованы. В этом случае владелец Rights Management (у которого есть разрешение полного управления правами на управление правами) этих файлов , является пользователем, выполнившим команду PowerShell.

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

Чтобы обеспечить эту защиту, политика меток классификации Office 365 должна быть настроена, чтобы требовать обоснование удаления метки или снижения классификации. При выполнении этой команды без параметра JustificationMessage и триггеров метки файл пропускается с комментарием "Нет метки для применения".

Пример 4. Применение метки "Общие" к одному файлу, для которого требуется обоснование

$setFileLabelSplat = @{
    Path = '\\Finance\Projects\Analysis.xlsx'
    LabelId = 'd9f23ae3-1324-1234-1234-f515f824c57b'
    JustificationMessage = 'The previous label no longer applies'
}
Set-FileLabel @setFileLabelSplat
FileName                          Status      Comment
--------                          ------      ------------
\\finance\projects\analysis.xlsx  Success

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

Пример 5. Защита файла с пользовательскими разрешениями

$newCustomPermissionsSplat = @{
    Users = 'user1@contoso.com', 'user2@vanarsdel.com'
    Permissions = 'Reviewer'
    ExpirationDate = (Get-Date -Month 1 -Day 1 -Year 2020)
}
$permissions = New-CustomPermissions @newCustomPermissionsSplat
Set-FileLabel C:\Projects\Analysis.docx -CustomPermissions $permissions
FileName                   Status Comment
--------                   ------ ------------
C:\Projects\Analysis.docx  Success

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

Вторая команда защищает один файл с именем Analysis.docx с использованием пользовательских разрешений в хранящемся объекте специальной политики защиты.

Пример 6. Применение метки и пользовательских разрешений к файлу

$permissions = New-CustomPermissions -Users a@a.com, b@b.com -Permissions Reviewer
$setFileLabelSplat = @{
    LabelId = 'd9f23ae3-1324-1234-1234-f515f824c57b'
    CustomPermissions = $permissions
}
Set-FileLabel @setFileLabelSplat C:\Projects\Analysis.docx
FileName                   Status Comment
--------                   ------ ------------
C:\Projects\Analysis.docx  Success

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

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

Пример 7: Сканируйте все файлы в дереве папок и применяйте метки в соответствии с настроенными условиями

Set-FileLabel -AutoLabel -Path C:\Projects\ -PreserveFileDetails
FileName      : C:\Projects\Project1.docx
Status        : Success
Comment       :
MainLabelName : Confidential
MainLabelId   : 074e257c-1234-1234-1234-34a182080e71
SubLabelName  : Finance group
SubLabelId    : d9f23ae3-1234-1234-1234-f515f824c57b

FileName      : C:\Projects\Datasheet.pdf
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Analysis.xlsx
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Pricelist.xlsx
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Dashboard.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

Эта команда сканирует все файлы в папке "Проекты" и любой из ее вложенных папок и задает метки в соответствии с настроенными условиями в политике автоматической маркировки. В этом примере есть пять файлов и два файла автоматически помечены. Файл Datasheet.pdf не помечен, так как его содержимое не соответствует настроенным условиям для автоматической маркировки Analysis.xlsx , уже был помечен вручную, и Pricelist.xlsx имеет более высокую метку. Поскольку команда выполняется без параметра Force , существующие метки для Analysis.xlsx и Pricelist.xlsx не перезаписываются.

Если примененные метки также настроены для применения защиты Rights Management, файлы, которые успешно помечены этой командой, также защищены. В этом случае владелец Rights Management (у которого есть разрешение полного управления правами на управление правами) этих файлов , является пользователем, выполнившим команду PowerShell.

Так как указан параметр PreserveFileDetails , дата изменения помеченных файлов остается неизменной.

Пример 8: Сканирование всех файлов в дереве папок и применение меток в соответствии с настроенными условиями, переопределяя все существующие метки

Set-FileLabel -Autolabel -Path C:\Projects\ -Force -PreserveFileDetails
FileName      : C:\Projects\Project1.docx
Status        : Success
Comment       :
MainLabelName : Confidential
MainLabelId   : 074e257c-1234-1234-1234-34a182080e71
SubLabelName  : Finance group
SubLabelId    : d9f23ae3-1234-1234-1234-f515f824c57b

FileName      : C:\Projects\Datasheet.pdf
Status        : Skipped
Comment       : No label to apply
MainLabelName :
MainLabelId   :
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Analysis.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Pricelist.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

FileName      : C:\Projects\Dashboard.xlsx
Status        : Success
Comment       :
MainLabelName : Public
MainLabelId   : f018e9e7-0cfc-4c69-b27a-ac3cb7df43cc
SubLabelName  :
SubLabelId    :

Эта команда аналогична предыдущему примеру, что она также сканирует все файлы в папке "Проекты" и любой из ее вложенных папок и задает метки в соответствии с настроенными условиями автоматического добавления меток. Однако на этот раз, поскольку команда включает параметр Force , она также заменяет существующую метку для Dashboard.xlsx, и Pricelist.xlsx.

Содержимое файла не совпало ни с какими Datasheet.pdf настроенными условиями и этот файл остался без метки.

Пример 9. Сканирование файла для всех известных типов конфиденциальной информации

Set-FileLabel -AutoLabel -Path C:\Projects\Project1.docx -DiscoveryInfoTypes All
MainLabelName           : General
MainLabelId             : 89a453df-5df4-4976-8191-jdn2fsf9560a
SubLabelName            :
SubLabelId              :
WhatIf                  : True
MatchedInformationTypes : {Credit Card Number, U.S. Social Security Number (SSN), International Classification of
                          Diseases (ICD-10-CM), International Classification of Diseases (ICD-9-CM)}
LastModifiedBy          :
LastModifiedTime        : 8/19/2014 5:11:26 AM
FileName                : C:\Projects\Project1.docx
Status                  : Success
Comment                 :

Эта команда обнаруживает все известные типы информации в файле Project1.docx без применения защиты или метки.

Пример 10. Проверка файла для определенных типов конфиденциальной информации

$setFileLabelSplat = @{
    AutoLabel = -AutoLabel
    Path = 'C:\Projects\Project1.docx'
    DiscoveryInfoTypes = "50842eb7-edc8-4019-85dd-5a5c1f2bb085", "a44669fe-0d48-453d-a9b1-2cc83f2cba77"
}
Set-FileLabel @setFileLabelSplat
MainLabelName           : General
MainLabelId             : 89a453df-5df4-4976-8191-jdn2fsf9560a
SubLabelName            :
SubLabelId              :
WhatIf                  : True
MatchedInformationTypes : {Credit Card Number, U.S. Social Security Number (SSN)}
LastModifiedBy          :
LastModifiedTime        : 8/19/2014 5:11:26 AM
FileName                : Project1.docx
Status                  : Success
Comment                 :

Эта команда обнаруживает конкретные типы информации о номере кредитной карты и номере социального страхования (SSN) в Project1.docx файле без применения защиты или метки.

Пример 11. Сканирование файла для определенных типов конфиденциальной информации и отображение найденных значений

$setFileLabelSplat = @{
    AutoLabel = -AutoLabel
    Path = 'C:\Projects\Project1.docx'
    DiscoveryInfoTypes = '50842eb7-edc8-4019-85dd-5a5c1f2bb085',
        'a44669fe-0d48-453d-a9b1-2cc83f2cba77'
}
$x = Set-FileLabel @setFileLabelSplat
$x.MatchedInformationTypes
RulePackageSetId  : 00000000-0000-0000-0000-000000000000
RulePackageId     : 00000000-0000-0000-0000-000000000000
RuleId            : 50842eb7-edc8-4019-85dd-5a5c1f2bb085
Name              : Credit Card Number
Count             : 1
UniqueCount       : 1
Confidence        : 85
SensitiveContents : {Offset: 2089, Length: 19}

RulePackageSetId  : 00000000-0000-0000-0000-000000000000
RulePackageId     : 00000000-0000-0000-0000-000000000000
RuleId            : a44669fe-0d48-453d-a9b1-2cc83f2cba77
Name              : U.S. Social Security Number (SSN)
Count             : 1
UniqueCount       : 1
Confidence        : 85
SensitiveContents : {Offset: 7063, Length: 11}
$x.MatchedInformationTypes[0].SensitiveContents | Format-List
Offset  : 2089
Length  : 19
Value   : 4539-9572-7949-2212
Context : OLOGICAL SCIENCES     Credit Card #
          Expiration Date:      4539-9572-7949-2212
          8/2009                Department:     BIOLOGICAL SCIENCES     Anticipa

Как и в предыдущем примере, первая команда обнаруживает конкретные типы информации о номере кредитной карты и номере социального страхования (SSN) в Project1.docx файле без применения защиты или метки. Однако в этом примере результаты хранятся в переменной для дальнейшей обработки.

Вторая команда затем используется для отображения содержимого соответствующих типов информации, включая параметр SensitiveContents.

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

Параметры

-AutoLabel

При использовании -AutoLabel командлет выполняется в режиме автоматической маркировки. Если командлет -AutoLabel не используется, выполняется в режиме маркировки вручную.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SetAutoLabel
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-CustomPermissions

Указывает имя переменной, в которой хранится нерегламентированная политика защиты, созданная с помощью командлета New-CustomPermissions . Политика нерегламентированной защиты используется для защиты файла или файлов с пользовательскими разрешениями.

Свойства параметра

Тип:AIPCustomPermissions
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SetLabelCustom
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
Custom
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-DiscoveryInfoTypes

Укажите типы конфиденциальной информации, которые необходимо обнаружить при использовании параметра WhatIf .

Если вы хотите найти определенные типы конфиденциальной информации, укажите номер идентификатора сущности для этого типа информации, который можно найти в типах конфиденциальной информации в Exchange Server.

Например, "50842eb7-edc8-4019-85dd-5a5c1f2bb085" — это число, указываемое для типа конфиденциальной информации номера кредитной карты.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

WhatIf
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Force

Заменяет существующую метку при применении настроенных условий.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SetAutoLabel
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-JustificationMessage

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

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SetLabel
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
SetLabelCustom
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
SetAutoLabel
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-LabelId

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

Чтобы найти идентификатор метки, выполните следующие действия.

Значение идентификатора метки не отображается на портале соответствия Microsoft Purview. Однако для поиска этого значения можно использовать следующую команду Центра безопасности и соответствия требованиям Office 365: Get-Label | Format-Table -Property DisplayName, Name, Guid

Для файлов с примененными метками можно также запустить командлет Get-FileStatus , чтобы определить идентификатор метки (MainLabelId или SubLabelId).

Свойства параметра

Тип:Guid
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SetLabel
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
SetLabelCustom
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Owner

Указывает владельца для применения метки или защиты к файлу.

Свойства параметра

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SetLabel
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
SetLabelCustom
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
Custom
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
SetAutoLabel
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

Указывает локальный путь, сетевой путь или URL-адрес SharePoint Server для файлов, для которых требуется получить сведения о метках и защите.

Подстановочные знаки не поддерживаются, а расположения WebDav не поддерживаются.

Для путей SharePoint поддерживаются следующие:

  • SharePoint Server 2022
  • SharePoint Server 2019
  • SharePoint Server 2016
  • SharePoint Server 2013

Рассмотрим пример.

  • C:\Folder\
  • C:\Folder\Filename
  • \\Server\Folder
  • http://sharepoint.contoso.com/Shared%20Documents/Folder

Пути могут включать пробелы при закрытии значения пути с кавычками.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:Полное имя, Имя файла

Наборы параметров

(All)
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-PreserveFileDetails

Укажите этот параметр, чтобы оставить измененную дату (Windows и SharePoint) и изменить значения (SharePoint) без изменений для документов, которые вы метки:

  • Для локальных или сетевых файлов значение даты изменения остается неизменным.

  • Для файлов SharePoint дата изменения и измененные значения остаются неизменными.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-WhatIf

Показывает, что произойдет, если командлет будет запущен. Командлет не запускается.

Свойства параметра

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

WhatIf
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

Входные данные

System.String

Выходные данные

Microsoft.InformationProtection.Powershell.AIP.Results.SetAIPFileResult

Примечания

При выполнении Set-FileLabel командлета в цикле добавьте следующую команду после командлета:

  • [GC]::Collect()
  • [GC]::WaitForPendingFinalizers()

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