Office 365: İstemciler ve Çevrimiçi Hizmetler Azure Rights Management hizmetini kullanmak için yapılandırmaOffice 365: Configuration for clients and online services to use the Azure Rights Management service

Uygulama hedefi: Azure Information Protection, Office 365Applies to: Azure Information Protection, Office 365

Office 365 Azure Information protection'dan Azure Rights Management hizmetini yerel olarak desteklediğinden Word, Excel gibi uygulamalar için Bilgi Hakları Yönetimi (IRM) özelliklerini desteklemek üzere istemci bilgisayar yapılandırmasına gereklidir, PowerPoint, Outlook ve Outlook web üzerinde.Because Office 365 natively supports the Azure Rights Management service from Azure Information Protection, no client computer configuration is required to support the information rights management (IRM) features for applications such as Word, Excel, PowerPoint, Outlook, and Outlook on the web. Tüm kullanıcılar yapmanız gereken, Rights Management kimlik bilgileriyle Office uygulamalarında oturum açın.All users have to do, is sign in to their Office applications with their Rights Management credentials. Ardından, bunlar dosyaları ve e-postalarını ve dosyaları ve başkaları tarafından korunmuş bir e-postaları kullanın.Then, they can protect files and emails, and use files and emails that have been protected by others.

Ancak, kullanıcıların Office eklentisinden ve ek dosya türleri desteğinden yararlanabilmesi için bu uygulamalara Azure Information Protection istemcisini eklemenizi öneririz.However, we recommend that you supplement these applications with the Azure Information Protection client, so that users get the benefit of the Office add-in and support for additional file types. Daha fazla bilgi için Azure Information Protection istemcisi: İstemciler için yükleme ve yapılandırma.For more information, see Azure Information Protection client: Installation and configuration for clients.

Exchange Online: IRM yapılandırmasıExchange Online: IRM Configuration

Exchange Online IRM'nin Azure Rights Management hizmeti ile nasıl çalıştığı hakkında daha fazla bilgi için bkz: Exchange Online ve Exchange Server bölümü nasıl Office uygulamaları ve Hizmetleri Azure Rights desteği Yönetim.For information about how Exchange Online IRM works with the Azure Rights Management service, see the Exchange Online and Exchange Server section from How Office applications and services support Azure Rights Management.

Exchange Online zaten Azure Rights Management hizmetini kullanmak için etkinleştirilmemiş olabilir.Exchange Online might already be enabled to use the Azure Rights Management service. Denetlemek için aşağıdaki komutları çalıştırın:To check, run the following commands:

  1. Bilgisayarınızda Exchange Online için Windows PowerShell’i ilk defa kullanıyorsanız, Windows PowerShell’i imzalanmış komut dosyalarını çalıştırmak üzere yapılandırmanız gerekir.If this is the first time that you have used Windows PowerShell for Exchange Online on your computer, you must configure Windows PowerShell to run signed scripts. Yönetici olarak çalıştır seçeneğini kullanarak Windows PowerShell oturumunuzu başlatın ve ardından şunu yazın:Start your Windows PowerShell session by using the Run as administrator option, and then type:

     Set-ExecutionPolicy RemoteSigned
    

    Tuşuna Y onaylamak için.Press Y to confirm.

  2. Windows PowerShell oturumunuzda, uzak Kabuk erişimi için etkinleştirilmiş bir hesap kullanarak Exchange Online’a oturum açın.In your Windows PowerShell session, sign in to Exchange Online by using an account that is enabled for remote Shell access. Varsayılan olarak, Exchange Online’da oluşturulan tüm hesaplar, uzaktan Kabuk erişimi için etkinleştirilmiştir ancak bu, Set-User <UserIdentity> -RemotePowerShellEnabled komutu kullanılarak devre dışı bırakılabilir (ve etkinleştirilebilir).By default, all accounts that are created in Exchange Online are enabled for remote Shell access but this can be disabled (and enabled) by using the Set-User <UserIdentity> -RemotePowerShellEnabled command.

    Oturum açmak için önce yazın:To sign in, first type:

     $Cred = Get-Credential
    

    Ardından Windows PowerShell kimlik bilgileri isteği iletişim kutusunda, Office 365 kullanıcı adınızı ve parolanızı sağlayın.Then, in the Windows PowerShell credential request dialog box, supply your Office 365 user name and password.

  3. Bir değişken ayarlanarak Exchange Online hizmetine bağlanın:Connect to the Exchange Online service by first setting a variable:

     $Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic –AllowRedirection
    

    Ardından aşağıdaki komutu çalıştırın:Then run the following command:

     Import-PSSession $Session
    
  4. Çalıştırma Get-Irmconfiguration komutu, Exchange Online'nın koruma hizmeti yapılandırmasını görüntülemek için:Run the Get-IRMConfiguration command to view your Exchange Online configuration for the protection service:

     Get-IRMConfiguration
    

    Çıktıdaki bulun AzureRMSLicensingEnabled değeri:From the output, locate the AzureRMSLicensingEnabled value:

    • AzureRMSLicensingEnabled ayarlanırsa True, Exchange Online zaten etkin bir Azure Rights Management hizmeti için.If AzureRMSLicensingEnabled is set to True, Exchange Online is already enabled for the Azure Rights Management service.

    • AzureRMSLicensingEnabled ayarlarsanız False, Exchange Online için Azure Rights Management hizmetini etkinleştirmek için aşağıdaki komutu çalıştırın: Set-IRMConfiguration -AzureRMSLicensingEnabled $trueIf AzureRMSLicensingEnabled is set False, run the follow command to enable Exchange Online for the Azure Rights Management service: Set-IRMConfiguration -AzureRMSLicensingEnabled $true

  5. Exchange Online'Bu test etmek için başarılı bir şekilde, aşağıdaki komutu çalıştırın yapılandırılır:To test that Exchange Online is configured successfully, run the following command:

    Test-IRMConfiguration -Sender <user email address>
    

    Örneğin: Test-Irmconfiguration-Sender adams@contoso.comFor example: Test-IRMConfiguration -Sender adams@contoso.com

    Bu komut, hizmete bağlantıyı doğrulamayı, yapılandırmayı almayı, URI’leri lisansları ve herhangi bir şablonu almayı içeren bir dizi denetim çalıştırır.This command runs a series of checks that includes verifying connectivity to the service, retrieving the configuration, retrieving URIs, licenses, and any templates. Her şey bu denetimleri geçerse, Windows PowerShell oturumunda, her birinin sonucunu ve sonunda, görürsünüz: GENEL SONUCU: GEÇİŞİIn the Windows PowerShell session, you will see the results of each and at the end, if everything passes these checks: OVERALL RESULT: PASS

Exchange Online Azure Rights Management hizmetini kullanmak üzere etkinleştirildiğinde, Information protection'ı otomatik olarak uygulanan özellikler yapılandırabileceğiniz gibi posta akışı kuralları, veri kaybı önleme (DLP) İlkeleri , ve korumalı sesli posta (birleştirilmiş ileti).When Exchange Online is enabled to use the Azure Rights Management service, you can configure features that apply information protection automatically, such as mail flow rules, data loss prevention (DLP) policies, and protected voice mail (Unified Messaging).

SharePoint Online ve OneDrive iş: IRM yapılandırmasıSharePoint Online and OneDrive for Business: IRM Configuration

SharePoint Online IRM'nin Azure Rights Management hizmeti ile nasıl çalıştığı hakkında daha fazla bilgi için bkz: SharePoint Online ve SharePoint Server gelen Rights Management koruması bu bölümü belgeleri.For information about how SharePoint Online IRM works with the Azure Rights Management service, see SharePoint Online and SharePoint Server from the Rights Management protection section of this documentation.

SharePoint Online ve OneDrive iş Azure Rights Management hizmetini destekleyecek şekilde yapılandırmak için önce SharePoint Yönetim merkezini kullanarak SharePoint Online için Bilgi Hakları Yönetimi (IRM) hizmetini etkinleştirmeniz gerekir.To configure SharePoint Online and OneDrive for Business to support the Azure Rights Management service, you must first enable the information rights management (IRM) service for SharePoint Online by using the SharePoint admin center. Daha sonra site sahipleri SharePoint listelerini ve belge kitaplıklarını IRM ile koruyabilir ve kullanıcılar, buraya kaydedilen ve başkalarıyla paylaşılan belgelerinin Azure Rights Management hizmeti ile otomatik olarak korunması için OneDrive for Business kitaplıklarını IRM ile koruyabilir.Then, site owners can IRM-protect their SharePoint lists and document libraries, and users can IRM-protect their OneDrive for Business library so that documents that are saved there, and shared with others, are automatically protected by the Azure Rights Management service.

Not

Yeni OneDrive eşitleme istemcisini (OneDrive.exe) en son sürümünü ve sürümü, SharePoint ve OneDrive iş için IRM korumalı kitaplıklar gerektiren Microsoft Download Center RMS istemciden.IRM-protected libraries for SharePoint and OneDrive for Business require the latest version of the new OneDrive sync client (OneDrive.exe), and the version of the RMS client from the Microsoft Download Center. Azure Information Protection istemcisinin yüklü olduğu olsa bile, RMS istemcisinin bu sürümü yükleyin.Install this version of the RMS client even if you have installed the Azure Information Protection client. Bu dağıtım senaryosu hakkında daha fazla bilgi için bkz: kurumsal bir ortamda yeni OneDrive eşitleme istemcisi dağıtma.For more information about this deployment scenario, see Deploy the new OneDrive sync client in an enterprise environment.

SharePoint Online için Bilgi Hakları Yönetimi (IRM) hizmetini etkinleştirmek için Office belgeleri sitesindeki şu yönergelere bakın:To enable the information rights management (IRM) service for SharePoint Online, see the following instructions from the Office documentation:

Bu yapılandırma, Office 365 yöneticisi tarafından yapılır.This configuration is done by the Office 365 administrator.

IRM’yi kitaplıklar ve listeler için yapılandırmaConfiguring IRM for libraries and lists

SharePoint için IRM hizmetini etkinleştirdikten sonra, site sahipleri SharePoint belge kitaplıklarını ve listelerini IRM ile koruyabilir.After you have enabled the IRM service for SharePoint, site owners can IRM-protect their SharePoint document libraries and lists. Yönergeler için, Office web sitesinden aşağıdakilere bakın:For instructions, see the following from the Office website:

Bu yapılandırma, SharePoint site yöneticisi tarafından yapılır.This configuration is done by the SharePoint site administrator.

IRM’yi OneDrive İş için yapılandırmaConfiguring IRM for OneDrive for Business

SharePoint Online için IRM hizmetini etkinleştirdikten sonra kullanıcıların OneDrive iş belge kitaplığı veya tek tek klasörler ardından Rights Management koruması için yapılandırılabilir.After you have enabled the IRM service for SharePoint Online, users' OneDrive for Business document library or individual folders can then be configured for Rights Management protection. Kullanıcıların kendileri için kendi OneDrive Web sitesini kullanarak yapılandırabilirsiniz.Users can configure this for themselves by using their OneDrive website. Yöneticiler, SharePoint Yönetim merkezini kullanarak bu koruma yapılandıramasanız da, Windows PowerShell kullanarak bunu yapabilirsiniz.Although administrators cannot configure this protection for them by using the SharePoint admin center, you can do this by using Windows PowerShell.

Not

OneDrive İş’i yapılandırma hakkında daha fazla bilgi için, Office belgeleri Office 365’te OneDrive İş’i ayarlama’ya bakın.For more information about configuring OneDrive for Business, see the Office documentation, Set up OneDrive for Business in Office 365.

Kullanıcılar için yapılandırmaConfiguration for users

Kullanıcılar kendi OneDrive iş dosyalarını korumak iş yapılandırabileceği için aşağıdaki yönergeleri verin.Give users the following instructions so that they can configure their OneDrive for Business to protect their business files.

  1. Oturum açmak için Office 365 iş veya Okul hesabınızla ve Git OneDrive Web sitesi.Sign in to Office 365 with your work or school account and go to the OneDrive website.

  2. Alttaki Gezinti bölmesinde seçin döndürmek için Klasik OneDrive.In the navigation pane, at the bottom, select Return to classic OneDrive.

  3. Seçin ayarları simgesi.Select the Settings icon. İçinde ayarları bölmesinde, Şerit ayarlanır kapalı, Şerit açmak için bu ayarı seçin.In the Settings pane, if the Ribbon is set to Off, select this setting to turn the ribbon on.

  4. Korunacak tüm OneDrive iş dosyalarını yapılandırmak için seçin Kitaplığı Şerit sekmesini ve ardından kitaplık ayarları.To configure all OneDrive for Business files to be protected, select the LIBRARY tab from the ribbon, and then select Library Settings.

  5. Üzerinde belgeleri > ayarları sayfasında izinler ve Yönetim bölümünden Bilgi Hakları Yönetimi.On the Documents > Settings page, in the Permissions and Management section, select Information Rights Management.

  6. Üzerinde Bilgi Hakları Yönetimi Ayarları sayfasında indirme sırasında bu kitaplıktaki izinleri kısıtla onay kutusu.On the Information Rights Management Settings page, select Restrict permissions on this library on download check box. Ad ve izinler için bir açıklama seçiminizi belirtin ve isteğe bağlı olarak, tıklayın Seçenekleri Göster isteğe bağlı yapılandırmaları yapın ve ardından için Tamam.Specify your choice of name and a description for the permissions, and optionally, click SHOW OPTIONS to configure optional configurations, and then click OK.

    Yapılandırma seçenekleri hakkında daha fazla bilgi için, Office belgelerindeki Bir liste veya kitaplığa Bilgi Hakları Yönetimi uygulama için deki yönergelere bakın.For more information about the configuration options, see the instructions in Apply Information Rights Management to a list or library from the Office documentation.

Bu yapılandırma için IRM korumalı kendi OneDrive iş dosyalarını bir yönetici yerine kullanıcılara bağımlı olduğundan, kullanıcılar kendi dosyalarını ve bunun nasıl yapılacağı koruma avantajlarını eğitin.Because this configuration relies on users rather than an administrator to IRM-protect their OneDrive for Business files, educate users about the benefits of protecting their files and how to do this. Örneğin, OneDrive for Business’tan bir belge paylaştıklarında, dosya yeniden adlandırılsa ve başka bir yere kopyalansa dahi, bu belgeye yalnızca yetkilendirdikleri kişilerin, yapılandırdıkları kısıtlamalarla erişebileceğini anlatın.For example, explain that when they share a document from OneDrive for Business, only people they authorize can access it with any restrictions that they configure, even if the file is renamed and copied somewhere else.

Yöneticiler için yapılandırmaConfiguration for administrators

SharePoint yönetim merkezini kullanarak, IRM’yi kullanıcıların OneDrive İş’i için yapılandıramasanız da, bunu Windows PowerShell kullanarak yapabilirsiniz.Although you cannot configure IRM for users' OneDrive for Business by using the SharePoint admin center, you can do this by using Windows PowerShell. Bu kitaplıklar için IRM’yi etkinleştirmek amacıyla aşağıdaki adımları izleyin:To enable IRM for these libraries, follow these steps:

  1. SharePoint Online İstemci Bileşenleri SDK'sını indirin ve yükleyin.Download and install the SharePoint Online Client Components SDK.

  2. SharePoint Online Yönetim Kabuğunu indirin ve yükleyin.Download and install the SharePoint Online Management Shell.

  3. Aşağıdaki komut dosyasının içeriğini kopyalayın ve dosyayı bilgisayarınızda Set- IRMOnOneDriveForBusiness.ps1 olarak adlandırın.Copy the contents of the following script and name the file Set-IRMOnOneDriveForBusiness.ps1 on your computer.

    **Sorumluluk reddi**: Bu örnek betik, herhangi bir Microsoft standart destek programı veya hizmeti altında desteklenmez.**Disclaimer**: This sample script is not supported under any Microsoft standard support program or service. Bu örnek betik, hiçbir garanti olmaksızın OLDUĞU GİBİ sunulmaktadır.This sample script is provided AS IS without warranty of any kind.

    # Requires Windows PowerShell version 3
    
    <#
      Description:
    
        Configures IRM policy settings for OneDrive for Business and can also be used for SharePoint Online libraries and lists
    
     Script Installation Requirements:
    
       SharePoint Online Client Components SDK
       https://www.microsoft.com/en-us/download/details.aspx?id=42038
    
       SharePoint Online Management Shell
       https://www.microsoft.com/en-us/download/details.aspx?id=35588
    
    ======
    #>
    
    # URL will be in the format https://<tenant-name>-admin.sharepoint.com
    $sharepointAdminCenterUrl = "https://contoso-admin.sharepoint.com"
    
    $tenantAdmin = "admin@contoso.com"
    
    $webUrls = @("https://contoso-my.sharepoint.com/personal/user1_contoso_com",
                 "https://contoso-my.sharepoint.com/personal/user2_contoso_com",
                 "https://contoso-my.sharepoint.com/personal/user3_contoso_com")
    
    <# As an alternative to specifying the URLs as an array, you can import them from a CSV file (no header, single value per row).
       Then, use: $webUrls = Get-Content -Path "File_path_and_name.csv"
    
    #>
    
    $listTitle = "Documents"
    
    function Load-SharePointOnlineClientComponentAssemblies
    {
        [cmdletbinding()]
        param()
    
        process
        {
            # assembly location: C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI
            try
            {
                Write-Verbose "Loading Assembly: Microsoft.Office.Client.Policy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.Office.Client.Policy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.Office.Client.TranslationServices, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.Office.Client.TranslationServices, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.DocumentManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.DocumentManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Runtime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Runtime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Search.Applications, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Search.Applications, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.UserProfiles, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
                [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.UserProfiles, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null
    
                return $true
            }
            catch
            {
                if($_.Exception.Message -match "Could not load file or assembly")
                {
                    Write-Error -Message "Unable to load the SharePoint Server 2013 Client Components.`nDownload Location: https://www.microsoft.com/en-us/download/details.aspx?id=42038"
                }
                else
                {
                    Write-Error -Exception $_.Exception
                }
                return $false
            }
        }
    }
    
    function Load-SharePointOnlineModule
    {
        [cmdletbinding()]
        param()
    
        process
        {
            do
            {
                # Installation location: C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell
                $spoModule = Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ErrorAction SilentlyContinue
    
                if(-not $spoModule)
                {
                    try
                    {
                        Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
                        return $true
                    }
                    catch
                    {
                        if($_.Exception.Message -match "Could not load file or assembly")
                        {
                            Write-Error -Message "Unable to load the SharePoint Online Management Shell.`nDownload Location: https://www.microsoft.com/en-us/download/details.aspx?id=35588"
                        }
                        else
                        {
                            Write-Error -Exception $_.Exception
                        }
                        return $false
                    }
                }
                else
                {
                    return $true
                }
            }
            while(-not $spoModule)
        }
    }
    
    function Set-IrmConfiguration
    {
        [cmdletbinding()]
        param(
            [parameter(Mandatory=$true)][Microsoft.SharePoint.Client.List]$List,
            [parameter(Mandatory=$true)][string]$PolicyTitle,
            [parameter(Mandatory=$true)][string]$PolicyDescription,
            [parameter(Mandatory=$false)][switch]$IrmReject,
            [parameter(Mandatory=$false)][DateTime]$ProtectionExpirationDate,
            [parameter(Mandatory=$false)][switch]$DisableDocumentBrowserView,
            [parameter(Mandatory=$false)][switch]$AllowPrint,
            [parameter(Mandatory=$false)][switch]$AllowScript,
            [parameter(Mandatory=$false)][switch]$AllowWriteCopy,
            [parameter(Mandatory=$false)][int]$DocumentAccessExpireDays,
            [parameter(Mandatory=$false)][int]$LicenseCacheExpireDays,
            [parameter(Mandatory=$false)][string]$GroupName
        )
    
        process
        {
            Write-Verbose "Applying IRM Configuration on '$($List.Title)'"
    
            # reset the value to the default settings
            $list.InformationRightsManagementSettings.Reset()
    
            $list.IrmEnabled = $true
    
            # IRM Policy title and description
    
                $list.InformationRightsManagementSettings.PolicyTitle       = $PolicyTitle
                $list.InformationRightsManagementSettings.PolicyDescription = $PolicyDescription
    
            # Set additional IRM library settings
    
                # Do not allow users to upload documents that do not support IRM
                $list.IrmReject = $IrmReject.IsPresent
    
                $parsedDate = Get-Date
                if([DateTime]::TryParse($ProtectionExpirationDate, [ref]$parsedDate))
                {
                    # Stop restricting access to the library at <date>
                    $list.IrmExpire = $true
                    $list.InformationRightsManagementSettings.DocumentLibraryProtectionExpireDate = $ProtectionExpirationDate
                }
    
                # Prevent opening documents in the browser for this Document Library
                $list.InformationRightsManagementSettings.DisableDocumentBrowserView = $DisableDocumentBrowserView.IsPresent
    
            # Configure document access rights
    
                # Allow viewers to print
                $list.InformationRightsManagementSettings.AllowPrint = $AllowPrint.IsPresent
    
                # Allow viewers to run script and screen reader to function on downloaded documents
                $list.InformationRightsManagementSettings.AllowScript = $AllowScript.IsPresent
    
                # Allow viewers to write on a copy of the downloaded document
                $list.InformationRightsManagementSettings.AllowWriteCopy = $AllowWriteCopy.IsPresent
    
                if($DocumentAccessExpireDays)
                {
                    # After download, document access rights will expire after these number of days (1-365)
                    $list.InformationRightsManagementSettings.EnableDocumentAccessExpire = $true
                    $list.InformationRightsManagementSettings.DocumentAccessExpireDays   = $DocumentAccessExpireDays
                }
    
            # Set group protection and credentials interval
    
                if($LicenseCacheExpireDays)
                {
                    # Users must verify their credentials using this interval (days)
                    $list.InformationRightsManagementSettings.EnableLicenseCacheExpire = $true
                    $list.InformationRightsManagementSettings.LicenseCacheExpireDays   = $LicenseCacheExpireDays
                }
    
                if($GroupName)
                {
                    # Allow group protection. Default group:
                    $list.InformationRightsManagementSettings.EnableGroupProtection = $true
                    $list.InformationRightsManagementSettings.GroupName             = $GroupName
                }
        }
        end
        {
            if($list)
            {
                Write-Verbose "Committing IRM configuration settings on '$($list.Title)'"
                $list.InformationRightsManagementSettings.Update()
                $list.Update()
                $script:clientContext.Load($list)
                $script:clientContext.ExecuteQuery()
            }
        }
    }
    
    function Get-CredentialFromCredentialCache
    {
        [cmdletbinding()]
        param([string]$CredentialName)
    
        #if( Test-Path variable:\global:CredentialCache )
        if( Get-Variable O365TenantAdminCredentialCache -Scope Global -ErrorAction SilentlyContinue )
        {
            if($global:O365TenantAdminCredentialCache.ContainsKey($CredentialName))
            {
                Write-Verbose "Credential Cache Hit: $CredentialName"
                return $global:O365TenantAdminCredentialCache[$CredentialName]
            }
        }
        Write-Verbose "Credential Cache Miss: $CredentialName"
        return $null
    }
    
    function Add-CredentialToCredentialCache
    {
        [cmdletbinding()]
        param([System.Management.Automation.PSCredential]$Credential)
    
        if(-not (Get-Variable CredentialCache -Scope Global -ErrorAction SilentlyContinue))
        {
            Write-Verbose "Initializing the Credential Cache"
            $global:O365TenantAdminCredentialCache = @{}
        }
    
        Write-Verbose "Adding Credential to the Credential Cache"
        $global:O365TenantAdminCredentialCache[$Credential.UserName] = $Credential
    }
    
    # load the required assemblies and Windows PowerShell modules
    
        if(-not ((Load-SharePointOnlineClientComponentAssemblies) -and (Load-SharePointOnlineModule)) ) { return }
    
    # Add the credentials to the client context and SharePoint Online service connection
    
        # check for cached credentials to use
        $o365TenantAdminCredential = Get-CredentialFromCredentialCache -CredentialName $tenantAdmin
    
        if(-not $o365TenantAdminCredential)
        {
            # when credentials are not cached, prompt for the tenant admin credentials
            $o365TenantAdminCredential = Get-Credential -UserName $tenantAdmin -Message "Enter the password for the Office 365 admin"
    
            if(-not $o365TenantAdminCredential -or -not $o365TenantAdminCredential.UserName -or $o365TenantAdminCredential.Password.Length -eq 0 )
            {
                Write-Error -Message "Could not validate the supplied tenant admin credentials"
                return
            }
    
            # add the credentials to the cache
            Add-CredentialToCredentialCache -Credential $o365TenantAdminCredential
        }
    
    # connect to Office365 first, required for SharePoint Online cmdlets to run
    
        Connect-SPOService -Url $sharepointAdminCenterUrl -Credential $o365TenantAdminCredential
    
    # enumerate each of the specified site URLs
    
        foreach($webUrl in $webUrls)
        {
            $grantedSiteCollectionAdmin = $false
    
            try
            {
                # establish the client context and set the credentials to connect to the site
                $script:clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)
                $script:clientContext.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($o365TenantAdminCredential.UserName, $o365TenantAdminCredential.Password)
    
                # initialize the site and web context
                $script:clientContext.Load($script:clientContext.Site)
                $script:clientContext.Load($script:clientContext.Web)
                $script:clientContext.ExecuteQuery()
    
                # load and ensure the tenant admin user account if present on the target SharePoint site
                $tenantAdminUser = $script:clientContext.Web.EnsureUser($o365TenantAdminCredential.UserName)
                $script:clientContext.Load($tenantAdminUser)
                $script:clientContext.ExecuteQuery()
    
                # check if the tenant admin is a site admin
                if( -not $tenantAdminUser.IsSiteAdmin )
                {
                    try
                    {
                        # grant the tenant admin temporary admin rights to the site collection
                        Set-SPOUser -Site $script:clientContext.Site.Url -LoginName $o365TenantAdminCredential.UserName -IsSiteCollectionAdmin $true | Out-Null
                        $grantedSiteCollectionAdmin = $true
                    }
                    catch
                    {
                        Write-Error $_.Exception
                        return
                    }
                }
    
                try
                {
                    # load the list orlibrary using CSOM
    
                    $list = $null
                    $list = $script:clientContext.Web.Lists.GetByTitle($listTitle)
                    $script:clientContext.Load($list)
                    $script:clientContext.ExecuteQuery()
    
                    # **************  ADMIN INSTRUCTIONS  **************
                    # If necessary, modify the following Set-IrmConfiguration parameters to match your required values
                    # The supplied options and values are for example only
                    # Example that shows the Set-IrmConfiguration command with all parameters: Set-IrmConfiguration -List $list -PolicyTitle "Protected Files" -PolicyDescription "This policy restricts access to authorized users" -IrmReject -ProtectionExpirationDate $(Get-Date).AddDays(180) -DisableDocumentBrowserView -AllowPrint -AllowScript -AllowWriteCopy -LicenseCacheExpireDays 25 -DocumentAccessExpireDays 90
    
                    Set-IrmConfiguration -List $list -PolicyTitle "Protected Files" -PolicyDescription "This policy restricts access to authorized users"  
                }
                catch
                {
                    Write-Error -Message "Error setting IRM configuration on site: $webUrl.`nError Details: $($_.Exception.ToString())"
                }
           }
           finally
           {
                if($grantedSiteCollectionAdmin)
                {
                    # remove the temporary admin rights to the site collection
                    Set-SPOUser -Site $script:clientContext.Site.Url -LoginName $o365TenantAdminCredential.UserName -IsSiteCollectionAdmin $false | Out-Null
                }
           }
        }
    
    Disconnect-SPOService -ErrorAction SilentlyContinue
    
  4. Komut dosyasını gözden geçirin ve aşağıdaki değişiklikleri yapın:Review the script and make the following changes:

    1. $sharepointAdminCenterUrl arayın ve örnek değeri kendi SharePoint yönetim merkezi URL’niz ile değiştirin.Search for $sharepointAdminCenterUrl and replace the example value with your own SharePoint admin center URL.

      SharePoint yönetim merkezine gittiğinizde ve https://<kiracı_adı>-admin.sharepoint.com biçimine sahip olduğunda bu değerin temel URL olduğunu göreceksinizYou'll find this value as the base URL when you go into the SharePoint admin center, and it has the following format: https://<tenant_name>-admin.sharepoint.com

      Kiracı adı "contoso" ise, örneğin, ardından belirtirsiniz: https://contoso-admin.sharepoint.comFor example, if the tenant name is "contoso", then you would specify: https://contoso-admin.sharepoint.com

    2. $tenantAdmin arayın ve örnek değeri, Office 365 için kendi tam genel yönetici hesabınızla değiştirin.Search for $tenantAdmin and replace the example value with your own fully qualified global administrator account for Office 365.

      Bu değer Microsoft 365 Yönetim Merkezi genel Yöneticisi olarak oturum açın ve aşağıdaki biçimdedir aynıdır: kullanıcı_adı @<Kiracı etki alanı adı>.comThis value is the same as the one you use to sign in to the Microsoft 365 admin center as the global administrator and has the following format: user_name@<tenant domain name>.com

      Örneğin, Office 365 genel yönetici kullanıcı adı "contoso.com" kiracı etki alanı için "yönetim" ise, şunu belirtmeniz gerekir: admin@contoso.comFor example, if the Office 365 global administrator user name is "admin" for the "contoso.com" tenant domain, you would specify: admin@contoso.com

    3. $webUrls arayın ve örnek değerleri, gerektiği kadar giriş ekleyerek veya silerek, kullanıcılarınızın OneDrive İş web URL'leriyle değiştirin.Search for $webUrls and replace the example values with your users' OneDrive for Business web URLs, adding or deleting as many entries as you need.

      Alternatif olarak, yapılandırmanız gereken tüm URL’leri içeren bir .CSV dosyasını içeri aktararak bu dizinin nasıl değiştirileceğiyle ilgili, komut dosyasında yer alan yorumlara bakın.Alternatively, see the comments in the script about how to replace this array by importing a .CSV file that contains all the URLs you need to configure. Bu .CSV dosyasını doldurmak üzere URL’leri otomatik olarak aramak ve ayıklamak için başka bir örnek komut dosyası sağladık.We've provided another sample script to automatically search for and extract the URLs to populate this .CSV file. Bunu yapmaya hazır olduğunuzda, bu adımlardan hemen sonra Tüm OneDrive İş URL’lerini bir .CSV dosyasına çıkarmak için ek komut dosyası bölümünü kullanın.When you're ready to do this, use the Additional script to output all OneDrive for Business URLs to a .CSV file section immediately after these steps.

      Kullanıcının OneDrive İş’i için web URL’si şu biçimdedir: https://<kiracı adı>-my.sharepoint.com/personal/<kullanıcı_adı>_<kiracı adı>comThe web URL for the user's OneDrive for Business is in the following format: https://<tenant name>-my.sharepoint.com/personal/<user_name><tenant name>_com

      Örneğin, contoso kiracısındaki kullanıcı "rsimone" kullanıcı adları varsa, şunu belirtmeniz gerekir: https://contoso-my.sharepoint.com/personal/rsimone_contoso_comFor example, if the user in the contoso tenant has a user name of "rsimone", you would specify: https://contoso-my.sharepoint.com/personal/rsimone_contoso_com

    4. OneDrive İş’i yapılandırmak için komut dosyasını kullandığımız için, Belgeler değerini $listTitle değişkeni için değiştirmeyin.Because we are using the script to configure OneDrive for Business, do not change the value of Documents for the $listTitle variable.

    5. ADMIN INSTRUCTIONS arayın.Search for ADMIN INSTRUCTIONS. Bu bölüme bir değişiklik yapmazsanız, kullanıcının OneDrive İş’i, "Korumalı Dosyalar" ilke başlığı ve "Bu ilke yetkili kullanıcılara erişimi sınırlar" açıklaması ile IRM için yapılandırılır.If you make no changes to this section, the user's OneDrive for Business will be configured for IRM with the policy title of "Protected Files" and the description of "This policy restricts access to authorized users". Başka IRM seçeneği ayarlanmaz, bu muhtemelen çoğu ortam için uygundur.No other IRM options will be set, which is probably appropriate for most environments. Ancak, önerilen ilke başlığını ve açıklamayı değiştirebilirsiniz ve ayrıca, ortamınız için uygun olan diğer herhangi bir IRM seçeneğini ekleyebilirsiniz.However, you can change the suggested policy title and description, and also add any other IRM options that are appropriate for your environment. Set-IrmConfiguration komutunuz için kendi parametre kümenizi inşa etmenize yardımcı olması için, komut dosyasındaki yorum yapılan örneğe bakın.See the commented example in the script to help you construct your own set of parameters for the Set-IrmConfiguration command.

  5. Komut dosyasını kaydedin ve imzalayın.Save the script and sign it. Komut dosyasını imzalamazsanız (daha güvenli), Windows PowerShell, bilgisayarınızda, imzalanmamış komut dosyalarını çalıştırmak üzere yapılandırılmalıdır.If you do not sign the script (more secure), Windows PowerShell must be configured on your computer to run unsigned scripts. Bunu yapmak için bir Windows PowerShell oturumu çalıştırın yönetici olarak çalıştır seçeneği ve türü: Set-ExecutionPolicy sınırsız.To do this, run a Windows PowerShell session with the Run as Administrator option, and type: Set-ExecutionPolicy Unrestricted. Ancak, bu yapılandırma tüm imzalanmamış komut dosyalarının çalıştırılmasını sağlar (daha az güvenlidir).However, this configuration lets all unsigned scripts run (less secure).

    Windows PowerShell komut dosyalarını imzalama hakkında daha fazla bilgi için, bkz. PowerShell belge kitaplığında about_Signing.For more information about signing Windows PowerShell scripts, see about_Signing in the PowerShell documentation library.

  6. Komut dosyasını çalıştırın ve istenirse, Office 365 yönetici hesabının parolasını sağlayın.Run the script and if prompted, supply the password for the Office 365 admin account. Komut dosyasını değiştirirseniz ve aynı Windows PowerShell oturumunda çalıştırırsanız, kimlik bilgileri istenmez.If you modify the script and run it in the same Windows PowerShell session, you won't be prompted for credentials.

İpucu

Bu komut dosyasını, IRM’yi bir SharePoint Online kitaplığı için yapılandırmak üzere de kullanabilirsiniz.You can also use this script to configure IRM for a SharePoint Online library. Bu yapılandırma için, kitaplığın yalnızca korunan belgeleri içermesini sağlamak amacıyla muhtemelen Kullanıcıların, IRM'yi desteklemeyen belgeleri karşıya yüklemesine izin verme ek seçeneğini etkinleştirmek isteyeceksiniz.For this configuration, you will likely want to enable the additional option Do not allow users to upload documents that do not support IRM, to ensure that the library contains only protected documents. Bunu yapmak için, komut dosyasındaki Set-IrmConfiguration komutuna -IrmReject parametresini ekleyin.To do that, add the -IrmReject parameter to the Set-IrmConfiguration command in the script.

Değiştirilecek gerekir $webUrls değişkeni (örneğin, https://contoso.sharepoint.com) ve $listTitle değişkeni (örneğin, $Reports).You would also need to modify the $webUrls variable (for example, https://contoso.sharepoint.com) and $listTitle variable (for example, $Reports).

Kullanıcının OneDrive İş kitaplıkları için IRM’yi devre dışı bırakmanız gerekirse, OneDrive İş için IRM’yi devre dışı bırakmaya yönelik komut dosyası bölümüne bakın.If you need to disable IRM for user's OneDrive for Business libraries, see the Script to disable IRM for OneDrive for Business section.

Tüm OneDrive İş URL'lerini bir .CSV dosyasına çıkarmak için ek komut dosyasıAdditional script to output all OneDrive for Business URLs to a .CSV file

Yukarıdaki adım 4c için, tüm kullanıcıların OneDrive İş kitaplıkları için URL’leri ayıklamak amacıyla aşağıdaki Windows PowerShell komut dosyasını kullanabilirsiniz, ardından bu URL’leri denetleyebilir, gerekirse düzenleyebilir ve ardından ana komut dosyası içine aktarabilirsiniz.For step 4c above, you can use the following Windows PowerShell script to extract the URLs for all users' OneDrive for Business libraries, which you can then check, edit if necessary, and then import into the main script.

Bu komut dosyası ayrıca, SharePoint Online İstemci Bileşenleri SDK'sı ve SharePoint Online Yönetim Kabuğu’nu da gerektirir.This script also requires the SharePoint Online Client Components SDK and the SharePoint Online Management Shell. Aynı yönergeleri izleyerek onu kopyalayın ve yapıştırın, dosyayı yerel olarak kaydedin (örneğin, "Report-OneDriveForBusinessSiteInfo.ps1"), $sharepointAdminCenterUrl ve $tenantAdmin değerlerini önceki gibi değiştirin ve ardından komut dosyasını çalıştırın.Follow the same instructions to copy and paste it, save the file locally (for example, "Report-OneDriveForBusinessSiteInfo.ps1"), modify the $sharepointAdminCenterUrl and $tenantAdmin values as before, and then run the script.

**Sorumluluk reddi**: Bu örnek betik, herhangi bir Microsoft standart destek programı veya hizmeti altında desteklenmez.**Disclaimer**: This sample script is not supported under any Microsoft standard support program or service. Bu örnek betik, hiçbir garanti olmaksızın OLDUĞU GİBİ sunulmaktadır.This sample script is provided AS IS without warranty of any kind.

# Requires Windows PowerShell version 3

<#
  Description:

    Queries the search service of an Office 365 tenant to retrieve all OneDrive for Business sites.  
    Details of the discovered sites are written to a .CSV file (by default,"OneDriveForBusinessSiteInfo_<date>.csv").

 Script Installation Requirements:

   SharePoint Online Client Components SDK
   https://www.microsoft.com/en-us/download/details.aspx?id=42038

   SharePoint Online Management Shell
   https://www.microsoft.com/en-us/download/details.aspx?id=35588

======
#>

# URL will be in the format https://<tenant-name>-admin.sharepoint.com
$sharepointAdminCenterUrl = "https://contoso-admin.sharepoint.com"

$tenantAdmin = "admin@contoso.onmicrosoft.com"                           

$reportName = "OneDriveForBusinessSiteInfo_$((Get-Date).ToString("yyyy-MM-dd_hh.mm.ss")).csv"

$oneDriveForBusinessSiteUrls= @()
$resultsProcessed = 0

function Load-SharePointOnlineClientComponentAssemblies
{
    [cmdletbinding()]
    param()

    process
    {
        # assembly location: C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI
        try
        {
            Write-Verbose "Loading Assembly: Microsoft.Office.Client.Policy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.Office.Client.Policy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.Office.Client.TranslationServices, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.Office.Client.TranslationServices, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.DocumentManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.DocumentManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Runtime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Runtime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Search.Applications, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Search.Applications, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.UserProfiles, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.UserProfiles, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            return $true
        }
        catch
        {
            if($_.Exception.Message -match "Could not load file or assembly")
            {
                Write-Error -Message "Unable to load the SharePoint Server 2013 Client Components.`nDownload Location: https://www.microsoft.com/en-us/download/details.aspx?id=42038"
            }
            else
            {
                Write-Error -Exception $_.Exception
            }
            return $false
        }
    }
}

function Load-SharePointOnlineModule
{
    [cmdletbinding()]
    param()

    process
    {
        do
        {
            # Installation location: C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell
            $spoModule = Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ErrorAction SilentlyContinue

            if(-not $spoModule)
            {
                try
                {
                    Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
                    return $true
                }
                catch
                {
                    if($_.Exception.Message -match "Could not load file or assembly")
                    {
                        Write-Error -Message "Unable to load the SharePoint Online Management Shell.`nDownload Location: https://www.microsoft.com/en-us/download/details.aspx?id=35588"
                    }
                    else
                    {
                        Write-Error -Exception $_.Exception
                    }
                    return $false
                }
            }
            else
            {
                return $true
            }
        }
        while(-not $spoModule)
    }
}

function Get-CredentialFromCredentialCache
{
    [cmdletbinding()]
    param([string]$CredentialName)

    #if( Test-Path variable:\global:CredentialCache )
    if( Get-Variable O365TenantAdminCredentialCache -Scope Global -ErrorAction SilentlyContinue )
    {
        if($global:O365TenantAdminCredentialCache.ContainsKey($CredentialName))
        {
            Write-Verbose "Credential Cache Hit: $CredentialName"
            return $global:O365TenantAdminCredentialCache[$CredentialName]
        }
    }
    Write-Verbose "Credential Cache Miss: $CredentialName"
    return $null
}

function Add-CredentialToCredentialCache
{
    [cmdletbinding()]
    param([System.Management.Automation.PSCredential]$Credential)

    if(-not (Get-Variable CredentialCache -Scope Global -ErrorAction SilentlyContinue))
    {
        Write-Verbose "Initializing the Credential Cache"
        $global:O365TenantAdminCredentialCache = @{}
    }

    Write-Verbose "Adding Credential to the Credential Cache"
    $global:O365TenantAdminCredentialCache[$Credential.UserName] = $Credential
}

# load the required assemblies and Windows PowerShell modules

    if(-not ((Load-SharePointOnlineClientComponentAssemblies) -and (Load-SharePointOnlineModule)) ) { return }

# Add the credentials to the client context and SharePoint Online service connection

    # check for cached credentials to use
    $o365TenantAdminCredential = Get-CredentialFromCredentialCache -CredentialName $tenantAdmin

    if(-not $o365TenantAdminCredential)
    {
        # when credentials are not cached, prompt for the tenant admin credentials
        $o365TenantAdminCredential = Get-Credential -UserName $tenantAdmin -Message "Enter the password for the Office 365 admin"

        if(-not $o365TenantAdminCredential -or -not $o365TenantAdminCredential.UserName -or $o365TenantAdminCredential.Password.Length -eq 0 )
        {
            Write-Error -Message "Could not validate the supplied tenant admin credentials"
            return
        }

        # add the credentials to the cache
        Add-CredentialToCredentialCache -Credential $o365TenantAdminCredential
    }

# establish the client context and set the credentials to connect to the site

    $clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($sharepointAdminCenterUrl)
    $clientContext.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($o365TenantAdminCredential.UserName, $o365TenantAdminCredential.Password)

# run a query against the Office 365 tenant search service to retrieve all OneDrive for Business URLs

    do
    {
        # build the query object
        $query = New-Object Microsoft.SharePoint.Client.Search.Query.KeywordQuery($clientContext)
        $query.TrimDuplicates        = $false
        $query.RowLimit              = 500
        $query.QueryText             = "SPSiteUrl:'/personal/' AND contentclass:STS_Site"
        $query.StartRow              = $resultsProcessed
        $query.TotalRowsExactMinimum = 500000

        # run the query
        $searchExecutor = New-Object Microsoft.SharePoint.Client.Search.Query.SearchExecutor($clientContext)
        $queryResults = $searchExecutor.ExecuteQuery($query)
        $clientContext.ExecuteQuery()

        # enumerate the search results and store the site URLs
        $queryResults.Value[0].ResultRows | % {
            $oneDriveForBusinessSiteUrls += $_.Path
            $resultsProcessed++
        }
    }
    while($resultsProcessed -lt $queryResults.Value.TotalRows)

$oneDriveForBusinessSiteUrls | Out-File -FilePath $reportName
IRM’yi OneDrive İş için devre dışı bırakma komut dosyasıScript to disable IRM for OneDrive for Business

IRM’yi kullanıcıların OneDrive İş’i için devre dışı bırakmanız gerekirse aşağıdaki örnek komut dosyasını kullanın.Use the following sample script if you need to disable IRM for users' OneDrive for Business.

Bu komut dosyası ayrıca, SharePoint Online İstemci Bileşenleri SDK'sı ve SharePoint Online Yönetim Kabuğu’nu da gerektirir.This script also requires the SharePoint Online Client Components SDK and the SharePoint Online Management Shell. İçeriği kopyalayın ve yapıştırın, dosyayı yerel olarak kaydedin (örneğin, "Disable-IRMOnOneDriveForBusiness.ps1") ve $sharepointAdminCenterUrl ile $tenantAdmin değerlerini değiştirin.Copy and paste the contents, save the file locally (for example, "Disable-IRMOnOneDriveForBusiness.ps1"), and modify the $sharepointAdminCenterUrl and $tenantAdmin values. OneDrive İş URL'lerini el ile belirtin veya bunlar içeri aktarabilmek üzere önceki bölümde yer alan komut dosyasını kullanın ve sonra komut dosyasını çalıştırın.Manually specify the OneDrive for Business URLs or use the script in the previous section so that you can import these, and then run the script.

**Sorumluluk reddi**: Bu örnek betik, herhangi bir Microsoft standart destek programı veya hizmeti altında desteklenmez.**Disclaimer**: This sample script is not supported under any Microsoft standard support program or service. Bu örnek betik, hiçbir garanti olmaksızın OLDUĞU GİBİ sunulmaktadır.This sample script is provided AS IS without warranty of any kind.

# Requires Windows PowerShell version 3

<#
  Description:

    Disables IRM for OneDrive for Business and can also be used for SharePoint Online libraries and lists

 Script Installation Requirements:

   SharePoint Online Client Components SDK
   https://www.microsoft.com/en-us/download/details.aspx?id=42038

   SharePoint Online Management Shell
   https://www.microsoft.com/en-us/download/details.aspx?id=35588

======
#>

$sharepointAdminCenterUrl = "https://contoso-admin.sharepoint.com"

$tenantAdmin = "admin@contoso.com"

$webUrls = @("https://contoso-my.sharepoint.com/personal/user1_contoso_com",
             "https://contoso-my.sharepoint.com/personal/user2_contoso_com",
             "https://contoso-my.sharepoint.com/personal/person3_contoso_com")

<# As an alternative to specifying the URLs as an array, you can import them from a CSV file (no header, single value per row).
   Then, use: $webUrls = Get-Content -Path "File_path_and_name.csv"

#>

$listTitle = "Documents"

function Load-SharePointOnlineClientComponentAssemblies
{
    [cmdletbinding()]
    param()

    process
    {
        # assembly location: C:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI
        try
        {
            Write-Verbose "Loading Assembly: Microsoft.Office.Client.Policy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.Office.Client.Policy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.Office.Client.TranslationServices, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.Office.Client.TranslationServices, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.DocumentManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.DocumentManagement, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Publishing, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Runtime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Runtime, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Search.Applications, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Search.Applications, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Search, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.Taxonomy, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            Write-Verbose "Loading Assembly: Microsoft.SharePoint.Client.UserProfiles, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
            [System.Reflection.Assembly]::Load("Microsoft.SharePoint.Client.UserProfiles, Version=16.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") | Out-Null

            return $true
        }
        catch
        {
            if($_.Exception.Message -match "Could not load file or assembly")
            {
                Write-Error -Message "Unable to load the SharePoint Server 2013 Client Components.`nDownload Location: https://www.microsoft.com/en-us/download/details.aspx?id=42038"
            }
            else
            {
                Write-Error -Exception $_.Exception
            }
            return $false
        }
    }
}

function Load-SharePointOnlineModule
{
    [cmdletbinding()]
    param()

    process
    {
        do
        {
            # Installation location: C:\Program Files\SharePoint Online Management Shell\Microsoft.Online.SharePoint.PowerShell
            $spoModule = Get-Module -Name Microsoft.Online.SharePoint.PowerShell -ErrorAction SilentlyContinue

            if(-not $spoModule)
            {
                try
                {
                    Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking
                    return $true
                }
                catch
                {
                    if($_.Exception.Message -match "Could not load file or assembly")
                    {
                        Write-Error -Message "Unable to load the SharePoint Online Management Shell.`nDownload Location: https://www.microsoft.com/en-us/download/details.aspx?id=35588"
                    }
                    else
                    {
                        Write-Error -Exception $_.Exception
                    }
                    return $false
                }
            }
            else
            {
                return $true
            }
        }
        while(-not $spoModule)
    }
}

function Remove-IrmConfiguration
{
    [cmdletbinding()]
    param(
        [parameter(Mandatory=$true)][Microsoft.SharePoint.Client.List]$List
    )

    process
    {
        Write-Verbose "Disabling IRM Configuration on '$($List.Title)'"

        $List.IrmEnabled = $false
        $List.IrmExpire  = $false
        $List.IrmReject  = $false
        $List.InformationRightsManagementSettings.Reset()
    }
    end
    {
        if($List)
        {
            Write-Verbose "Committing IRM configuration settings on '$($list.Title)'"
            $list.InformationRightsManagementSettings.Update()
            $list.Update()
            $script:clientContext.Load($list)
            $script:clientContext.ExecuteQuery()
        }
    }
}

function Get-CredentialFromCredentialCache
{
    [cmdletbinding()]
    param([string]$CredentialName)

    #if( Test-Path variable:\global:CredentialCache )
    if( Get-Variable O365TenantAdminCredentialCache -Scope Global -ErrorAction SilentlyContinue )
    {
        if($global:O365TenantAdminCredentialCache.ContainsKey($CredentialName))
        {
            Write-Verbose "Credential Cache Hit: $CredentialName"
            return $global:O365TenantAdminCredentialCache[$CredentialName]
        }
    }
    Write-Verbose "Credential Cache Miss: $CredentialName"
    return $null
}

function Add-CredentialToCredentialCache
{
    [cmdletbinding()]
    param([System.Management.Automation.PSCredential]$Credential)

    if(-not (Get-Variable CredentialCache -Scope Global -ErrorAction SilentlyContinue))
    {
        Write-Verbose "Initializing the Credential Cache"
        $global:O365TenantAdminCredentialCache = @{}
    }

    Write-Verbose "Adding Credential to the Credential Cache"
    $global:O365TenantAdminCredentialCache[$Credential.UserName] = $Credential
}

# load the required assemblies and Windows PowerShell modules

    if(-not ((Load-SharePointOnlineClientComponentAssemblies) -and (Load-SharePointOnlineModule)) ) { return }

# Add the credentials to the client context and SharePoint Online service connection

    # check for cached credentials to use
    $o365TenantAdminCredential = Get-CredentialFromCredentialCache -CredentialName $tenantAdmin

    if(-not $o365TenantAdminCredential)
    {
        # when credentials are not cached, prompt for the tenant admin credentials
        $o365TenantAdminCredential = Get-Credential -UserName $tenantAdmin -Message "Enter the password for the Office 365 admin"

        if(-not $o365TenantAdminCredential -or -not $o365TenantAdminCredential.UserName -or $o365TenantAdminCredential.Password.Length -eq 0 )
        {
            Write-Error -Message "Could not validate the supplied tenant admin credentials"
            return
        }

        # add the credentials to the cache
        Add-CredentialToCredentialCache -Credential $o365TenantAdminCredential
    }

# connect to Office365 first, required for SharePoint Online cmdlets to run

    Connect-SPOService -Url $sharepointAdminCenterUrl -Credential $o365TenantAdminCredential

# enumerate each of the specified site URLs

    foreach($webUrl in $webUrls)
    {
        $grantedSiteCollectionAdmin = $false

        try
        {
            # establish the client context and set the credentials to connect to the site
            $script:clientContext = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)
            $script:clientContext.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($o365TenantAdminCredential.UserName, $o365TenantAdminCredential.Password)

            # initialize the site and web context
            $script:clientContext.Load($script:clientContext.Site)
            $script:clientContext.Load($script:clientContext.Web)
            $script:clientContext.ExecuteQuery()

            # load and ensure the tenant admin user account if present on the target SharePoint site
            $tenantAdminUser = $script:clientContext.Web.EnsureUser($o365TenantAdminCredential.UserName)
            $script:clientContext.Load($tenantAdminUser)
            $script:clientContext.ExecuteQuery()

            # check if the tenant admin is a site admin
            if( -not $tenantAdminUser.IsSiteAdmin )
            {
                try
                {
                    # grant the tenant admin temporary admin rights to the site collection
                    Set-SPOUser -Site $script:clientContext.Site.Url -LoginName $o365TenantAdminCredential.UserName -IsSiteCollectionAdmin $true | Out-Null
                    $grantedSiteCollectionAdmin = $true
                }
                catch
                {
                    Write-Error $_.Exception
                    return
                }
            }

            try
            {
                # load the list orlibrary using CSOM

                $list = $null
                $list = $script:clientContext.Web.Lists.GetByTitle($listTitle)
                $script:clientContext.Load($list)
                $script:clientContext.ExecuteQuery()

               Remove-IrmConfiguration -List $list                 
            }
            catch
            {
                Write-Error -Message "Error setting IRM configuration on site: $webUrl.`nError Details: $($_.Exception.ToString())"
            }
       }
       finally
       {
            if($grantedSiteCollectionAdmin)
            {
                # remove the temporary admin rights to the site collection
                Set-SPOUser -Site $script:clientContext.Site.Url -LoginName $o365TenantAdminCredential.UserName -IsSiteCollectionAdmin $false | Out-Null
            }
       }
    }

Disconnect-SPOService -ErrorAction SilentlyContinue