Compartilhar via


Set-FileLabel

Define o rótulo de confidencialidade e a proteção de um arquivo por meio de rotulagem manual ou rótulo automático de acordo com a configuração de rótulo ou permissões personalizadas.

Sintaxe

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[]>]

Description

Para o cliente da Proteção de Informações do Microsoft Purview, o cmdlet Set-FileLabel define um rótulo de confidencialidade para um ou mais arquivos. Essa ação pode aplicar automaticamente a proteção quando os rótulos são configurados para aplicar criptografia.

Além disso, você pode usar esse cmdlet para aplicar permissões personalizadas quando elas forem criadas como um objeto de política de proteção ad hoc com o cmdlet New-CustomPermissions .

Quando o comando é executado com êxito, qualquer rótulo ou proteção existente pode ser substituído.

Você pode executar esse cmdlet de forma não interativa. Para obter mais informações, consulte o guia de administrador do cliente de rotulagem unificada.

Exemplos

Exemplo 1: aplicar o rótulo "Geral" a todos os arquivos que atualmente não têm um rótulo

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

Esse comando primeiro identifica todos os arquivos que não são rotulados usando o cmdlet Get-FileStatus . Em seguida, esses arquivos são rotulados especificando o rótulo "Geral" por sua ID.

Exemplo 2: aplicar o rótulo "Geral" a arquivos .docx que não são rotulados

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

Esse comando primeiro identifica todos os .docx arquivos na C:\Projects pasta (e suas subpastas) usando Get-Child-Item e, em seguida, localiza nesses arquivos aqueles que não estão rotulados usando o Get-FileStatus cmdlet. Os arquivos resultantes são rotulados especificando o rótulo Geral por seu ID.

Observação

Esse comando usa o alias Path de FullName, para que Get-Child-Item possa ser usado com Get-FileStatus.

Exemplo 3: aplicar o rótulo "Geral" a todos os arquivos em uma pasta e qualquer uma de suas subpastas

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

Este comando define um rótulo chamado "Geral" em todos os arquivos na C:\Projects pasta e em qualquer uma de suas subpastas.

Se o rótulo geral estiver configurado para aplicar criptografia, os arquivos que foram rotulados com êxito com esse comando também serão criptografados. Nesse caso, o proprietário do Rights Management (que tem a permissão de Controle Total do Rights Management) desses arquivos é o usuário que executou o comando do PowerShell.

Neste exemplo, um arquivo não foi rotulado (ignorado) porque exigia justificativa. Esse pode ser o resultado pretendido para garantir que um arquivo com um rótulo ou proteção de classificação mais alta não seja substituído acidentalmente por um rótulo de classificação inferior ou tenha a proteção removida.

Para habilitar essa proteção, a política de rótulo de classificação do Office 365 deve ser configurada para exigir justificativa para remover um rótulo ou reduzir a classificação. Quando você executa esse comando sem o parâmetro JustificationMessage e o rótulo dispara a justificativa, o arquivo é ignorado com o comentário "Nenhum rótulo a ser aplicado".

Exemplo 4: aplicar o rótulo "Geral" a um único arquivo, o que requer justificativa

$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

Esse comando define o rótulo "Geral" para um arquivo que já está rotulado com um rótulo de confidencialidade mais alto. A política de rótulo de confidencialidade é configurada para exigir justificativa para remover um rótulo ou reduzir a classificação. Como o comando inclui uma mensagem de justificativa, o novo rótulo é aplicado com êxito.

Exemplo 5: proteger um arquivo com permissões personalizadas

$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

O primeiro comando cria um objeto de política de proteção ad hoc que concede aos usuários de diferentes organizações direitos de uso das permissões do Revisor e também aplica uma data de validade.

O segundo comando protege um único arquivo nomeado Analysis.docx usando as permissões personalizadas no objeto de política de proteção ad hoc armazenado.

Exemplo 6: Aplicar um rótulo e permissões personalizadas ao arquivo

$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

O primeiro comando cria um objeto de política de proteção ad hoc que concede aos usuários de diferentes organizações direitos de uso das permissões do Revisor e também aplica uma data de validade.

O segundo comando aplica um rótulo a um único arquivo chamado Analysis.docx e também protege o arquivo usando as permissões personalizadas no objeto de política de proteção ad hoc armazenado. Se o rótulo estiver configurado para configurações de proteção, eles serão substituídos pelas permissões personalizadas.

Exemplo 7: Verificar todos os arquivos em uma árvore de pastas e aplicar rótulos de acordo com as condições configuradas

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    :

Esse comando examina todos os arquivos na pasta Projetos e em qualquer uma de suas subpastas e define rótulos de acordo com as condições configuradas na política de rotulagem automática. Neste exemplo, há cinco arquivos e dois arquivos são rotulados automaticamente. O Datasheet.pdf arquivo não é rotulado porque seu conteúdo não corresponde às condições configuradas para rotulagem Analysis.xlsx automática, já foi rotulado manualmente e Pricelist.xlsx tem um rótulo mais alto. Como o comando é executado sem o parâmetro Force , os rótulos existentes para Analysis.xlsx e Pricelist.xlsx não são substituídos.

Se os rótulos aplicados também estiverem configurados para aplicar a proteção do Rights Management, os arquivos rotulados com êxito com esse comando também serão protegidos. Nesse caso, o proprietário do Rights Management (que tem a permissão de Controle Total do Rights Management) desses arquivos é o usuário que executou o comando do PowerShell.

Como o parâmetro PreserveFileDetails é especificado, a Data de Modificação dos arquivos rotulados permanece inalterada.

Exemplo 8: Verificar todos os arquivos em uma árvore de pastas e aplicar rótulos de acordo com as condições configuradas, substituindo todos os rótulos existentes

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    :

Esse comando é semelhante ao exemplo anterior, pois também verifica todos os arquivos na pasta Projetos e em qualquer uma de suas subpastas e define rótulos de acordo com as condições configuradas para rotulagem automática. No entanto, desta vez, como o comando inclui o parâmetro Force , ele também substitui o rótulo existente para Dashboard.xlsx, e Pricelist.xlsx.

O conteúdo de não correspondeu a nenhuma condição configurada Datasheet.pdf e esse arquivo permanece sem um rótulo.

Exemplo 9: Verificar um arquivo para todos os tipos de informações confidenciais conhecidos

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                 :

Esse comando descobre todos os tipos de informações conhecidos em Project1.docx arquivo sem aplicar proteção ou um rótulo.

Exemplo 10: Verificar um arquivo em busca de tipos específicos de informações confidenciais

$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                 :

Esse comando descobre os tipos de informações específicas de Número de Cartão de Crédito e Número do Seguro Social (SSN) no Project1.docx arquivo sem aplicar proteção ou um rótulo.

Exemplo 11: Verificar um arquivo em busca de tipos específicos de informações confidenciais e exibir os valores encontrados

$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

Semelhante ao exemplo anterior, o primeiro comando descobre os tipos de informações específicas de Número de Cartão de Crédito e SSN (Número do Seguro Social) no Project1.docx arquivo sem aplicar proteção ou um rótulo. No entanto, neste exemplo, os resultados são armazenados em uma variável para processamento adicional.

Em seguida, o segundo comando é usado para exibir o conteúdo dos tipos de informações correspondentes, que inclui o parâmetro SensitiveContents.

O comando final exibe e formata para facilitar a leitura dos dados identificados pelo primeiro tipo de informação confidencial, que neste exemplo são os detalhes do cartão de crédito.

Parâmetros

-AutoLabel

Quando -AutoLabel é usado, o cmdlet é executado no modo de rotulagem automática. Quando -AutoLabel cmdlet não é usado, é executado no modo de rotulagem manual.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

SetAutoLabel
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-CustomPermissions

Especifica o nome da variável que armazena uma política de proteção ad hoc, que foi criada usando o cmdlet New-CustomPermissions . A política de proteção ad hoc é usada para proteger o arquivo ou arquivos com permissões personalizadas.

Propriedades do parâmetro

Tipo:AIPCustomPermissions
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabelCustom
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
Custom
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-DiscoveryInfoTypes

Especifique os tipos de informações confidenciais a serem descobertos ao usar o parâmetro WhatIf .

Se você quiser pesquisar tipos de informações confidenciais específicos, especifique o número da ID da entidade para esse tipo de informação, que você pode encontrar listado em tipos de informações confidenciais no Exchange Server.

Por exemplo, "50842eb7-edc8-4019-85dd-5a5c1f2bb085" é o número a ser especificado para o tipo de informação confidencial Número do Cartão de Crédito.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

WhatIf
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Force

Substitui um rótulo existente quando as condições configuradas se aplicam.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

SetAutoLabel
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-JustificationMessage

O motivo da justificativa para reduzir o rótulo de classificação, remover um rótulo ou remover a proteção, se a política de confidencialidade exigir que os usuários forneçam essas informações. Se a configuração de um rótulo disparar a justificativa e esse motivo não for fornecido, o rótulo não será aplicado. Nesse caso, o status retornado é "Ignorado" com o comentário "Justificativa necessária".

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabel
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
SetLabelCustom
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
SetAutoLabel
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-LabelId

Especifica a identidade (ID) do rótulo a ser aplicado. Quando um rótulo tem sub-rótulos, sempre especifique a ID de apenas um sub-rótulo e não o rótulo pai.

Para localizar a ID do rótulo:

O valor da ID do rótulo não é exibido no portal de conformidade do Microsoft Purview. No entanto, você pode usar o seguinte comando do PowerShell do Office 365 Security &Compliance Center para encontrar esse valor: Get-Label | Format-Table -Property DisplayName, Name, Guid

Para arquivos que têm rótulos aplicados, você também pode executar o cmdlet Get-FileStatus para identificar a ID do rótulo (MainLabelId ou SubLabelId).

Propriedades do parâmetro

Tipo:Guid
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabel
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
SetLabelCustom
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Owner

Especifica o proprietário para aplicar rótulo ou proteção ao arquivo.

Propriedades do parâmetro

Tipo:String
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabel
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
SetLabelCustom
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
Custom
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False
SetAutoLabel
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-Path

Especifica um caminho local, um caminho de rede ou uma URL do SharePoint Server para os arquivos para os quais você deseja obter as informações de rótulo e proteção.

Os carateres universais não são suportados e as localizações webDav não são suportadas.

Para caminhos do SharePoint, há suporte para o seguinte:

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

Por exemplo:

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

Os caminhos podem incluir espaços quando você coloca o valor do caminho entre aspas.

Propriedades do parâmetro

Tipo:

String[]

Valor padrão:None
Dá suporte a curingas:False
DontShow:False
Aliases:Nome Completo, Nome do Arquivo

Conjuntos de parâmetros

(All)
Cargo:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline pelo nome da propriedade:True
Valor dos argumentos restantes:False

-PreserveFileDetails

Especifique este parâmetro para deixar a data modificada (Windows e SharePoint) e os valores modificados por (SharePoint) inalterados para documentos que você rotula:

  • Para arquivos locais ou de rede, o valor modificado de data permanece inalterado.

  • Para arquivos do SharePoint, a data modificada e modificados por valores permanecem inalterados.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Cargo:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

-WhatIf

Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.

Propriedades do parâmetro

Tipo:SwitchParameter
Valor padrão:None
Dá suporte a curingas:False
DontShow:False

Conjuntos de parâmetros

WhatIf
Cargo:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline pelo nome da propriedade:False
Valor dos argumentos restantes:False

Entradas

System.String

Saídas

Microsoft.InformationProtection.Powershell.AIP.Results.SetAIPFileResult

Observações

Ao executar o Set-FileLabel cmdlet em um loop, adicione o seguinte comando após o cmdlet:

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

Esses comandos garantem que o coletor de lixo seja executado e libere a memória que não é mais necessária.