Partilhar via


Set-FileLabel

Define o rótulo de sensibilidade e a proteção de um arquivo por meio de rotulagem manual ou rotulagem automática de acordo com a configuração do 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[]>]

Descrição

Para o cliente Microsoft Purview Information Protection, o cmdlet Set-FileLabel define um rótulo de confidencialidade para um ou mais arquivos. Essa ação pode aplicar proteção automaticamente 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 são 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 administração do cliente de rotulagem unificada.

Exemplos

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

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

Este 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 seu ID.

Exemplo 2: Aplicar o rótulo "Geral" a .docx arquivos que não estã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

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

Observação

Este 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 da C:\Projects pasta e em qualquer uma de suas subpastas.

Se a etiqueta Geral estiver configurada para aplicar encriptação, os ficheiros que foram rotulados com êxito com este comando também serão encriptados. Nesse caso, o proprietário do Rights Management (que tem a permissão Controle Total do Rights Management) desses arquivos é o usuário que executou o comando PowerShell.

Neste exemplo, um arquivo não foi rotulado (ignorado) porque exigia justificação. 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 acidentalmente substituído 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 uma 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 aciona a justificação, o arquivo é ignorado com o comentário "Nenhum rótulo a ser aplicado".

Exemplo 4: Aplicar o rótulo "Geral" a um único ficheiro, o que requer justificação

$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

Este comando define o rótulo "Geral" para um arquivo que já está rotulado com um rótulo de sensibilidade mais alta. A política de rótulo de sensibilidade é configurada para exigir justificativa para remover um rótulo ou baixar a classificação. Como o comando inclui uma mensagem de justificação, 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: Digitalizar 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    :

Este comando verifica todos os arquivos na pasta Projetos e 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 Controle Total do Rights Management) desses arquivos é o usuário que executou o comando PowerShell.

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

Exemplo 8: Analise todos os arquivos em uma árvore de pastas e aplique rótulos de acordo com as condições configuradas, substituindo quaisquer 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    :

Este comando é semelhante ao exemplo anterior, pois também verifica todos os arquivos na pasta Projetos e 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 do não corresponde a nenhuma condição configurada Datasheet.pdf e este 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                 :

Este comando descobre todos os tipos de informação conhecidos no Project1.docx ficheiro sem aplicar proteção ou uma etiqueta.

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                 :

Este comando descobre os tipos de informações específicas de Número de Cartão de Crédito e Número de Segurança Social (SSN) no Project1.docx ficheiro sem aplicar proteção ou uma etiqueta.

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 Número de Segurança Social (SSN) no Project1.docx arquivo sem aplicar proteção ou uma etiqueta. No entanto, neste exemplo, os resultados são armazenados em uma variável para processamento posterior.

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

O comando final exibe e formata para facilitar a leitura dos dados identificados pelo primeiro tipo de informação sensível, 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 dos parâmetros

Tipo:SwitchParameter
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

SetAutoLabel
Posição:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por 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 dos parâmetros

Tipo:AIPCustomPermissions
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabelCustom
Posição:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False
Custom
Posição:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False

-DiscoveryInfoTypes

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

Se desejar pesquisar tipos de informações confidenciais específicos, especifique o número de 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 do Número do Cartão de Crédito.

Propriedades dos parâmetros

Tipo:

String[]

Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

WhatIf
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False

-Force

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

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

SetAutoLabel
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False

-JustificationMessage

A razão justificativa para baixar o rótulo de classificação, remover um rótulo ou remover a proteção, se a política de sensibilidade exigir que os usuários forneçam essas informações. Se a definição de um rótulo acionar a justificação e este motivo não for fornecido, o rótulo não é aplicado. Neste caso, o status retornado é "Ignorado" com o comentário "Justificação necessária".

Propriedades dos parâmetros

Tipo:String
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabel
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False
SetLabelCustom
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False
SetAutoLabel
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False

-LabelId

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

Para encontrar o ID da etiqueta:

O valor de 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 localizar esse valor: Get-Label | Format-Table -Property DisplayName, Name, Guid

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

Propriedades dos parâmetros

Tipo:Guid
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabel
Posição:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False
SetLabelCustom
Posição:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False

-Owner

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

Propriedades dos parâmetros

Tipo:String
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

SetLabel
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False
SetLabelCustom
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False
Custom
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False
SetAutoLabel
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False

-Path

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

Não há suporte para curingas e locais WebDav não são suportados.

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 dos parâmetros

Tipo:

String[]

Valor padrão:None
Suporta curingas:False
DontShow:False
Pseudónimos:Nome Completo, Nome do arquivo

Conjuntos de parâmetros

(All)
Posição:0
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome da propriedade:True
Valor dos argumentos restantes:False

-PreserveFileDetails

Especifique este parâmetro para deixar os valores de data modificada (Windows e SharePoint) e modificados por (SharePoint) inalterados para documentos rotulados:

  • Para arquivos locais ou de rede, o valor Data de modificação permanece inalterado.

  • Para arquivos do SharePoint, os valores Data de modificação e Modificado por permanecem inalterados.

Propriedades dos parâmetros

Tipo:SwitchParameter
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

(All)
Posição:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por 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 dos parâmetros

Tipo:SwitchParameter
Valor padrão:None
Suporta curingas:False
DontShow:False

Conjuntos de parâmetros

WhatIf
Posição:Named
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome da propriedade:False
Valor dos argumentos restantes:False

Entradas

System.String

Saídas

Microsoft.InformationProtection.Powershell.AIP.Results.SetAIPFileResult

Notas

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 memória que não é mais necessária.