스크립트를 사용 하 여 사용자의 Office 365 보안 및 규정 준수 센터 eDiscovery 사례에 보류를 추가 하려면

참고:  사용자 언어로 가능한 한 빨리 가장 최신의 도움말 콘텐츠를 제공하고자 합니다. 이 페이지는 자동화를 통해 번역되었으며 문법 오류나 부정확한 설명을 포함할 수 있습니다. 이 목적은 콘텐츠가 사용자에게 유용하다는 것입니다. 이 페이지 하단의 정보가 도움이 되었다면 알려주세요. 쉽게 참조할 수 있는 영어 문서 가 여기 있습니다.

Office 365 보안 및 규정 준수 센터 만들기 및 eDiscovery 사례 관리와 관련 된 시간이 오래 걸리는 작업을 자동화 하는 다양 한 작업을 수행할 수 있습니다 Windows PowerShell cmdlet 제공 합니다. 현재, 많은 수의 위치에 저장할 후견인 콘텐츠를 배치 하려면 보안 및 규정 준수 센터 에서 eDiscovery 사례 도구를 사용 하는 안내 시간과 준비 합니다. 예를 들어 보류를 만들기 전에 보류 하려는 각 비즈니스용 OneDrive 사이트의 URL을 수집 해야 합니다. 다음 보류 하려는 각 사용자에 대해 해야 보류에 자신의 사서함 및 해당 비즈니스용 OneDrive 사이트를 추가 합니다. 나중에 보안 및 규정 준수 센터 릴리스의이 받게 수행할 작업을 쉽게 합니다. 그 때까지이 과정을 자동화할이 문서에서 스크립트를 사용할 수 있습니다.

조직 내 사이트 도메인 자체입니다 (예: URL https://contoso-my.sharepoint.com에서 contoso ), 기존 eDiscovery 사례 이름, 새 이름의 이름을 누른 채 연결 된 전자 메일 목록 대/소문자 스크립트 메시지 주소에 포함 하려는 사용자를 잡고 쿼리 기반을 만들려는 경우 사용 하 여 검색 쿼리 대기 합니다. 스크립트 목록에서 각 사용자에 대 한 비즈니스용 OneDrive 사이트에 대 한 URL을 가져옵니다 새 보류 만들고 보류에 목록에서 각 사용자의 사서함과 비즈니스용 OneDrive 사이트를 추가 합니다. 스크립트 새 보류 하는 방법에 대 한 정보가 포함 된 로그 파일이 생성 됩니다.

다음은 이러한 과정을 진행 하는 단계입니다.

1 단계: SharePoint Online 관리 셸 설치

2 단계: 사용자의 목록을 생성합니다

보류를 만들어 사용자를 추가 하는 스크립트를 실행 하는 3 단계:

시작하기 전에

  • 보안 및 규정 준수 센터 와 3 단계에서에서 스크립트를 실행 하려면 SharePoint Online 전역 관리자에서 eDiscovery 관리자 역할 그룹의 구성원 이어야 해야 합니다. 자세한 내용은 Office 365 보안 및 규정 준수 센터에서 eDiscovery 사용 권한을 할당참조 합니다.

  • 최대 1, 000 사서함 및 100 사이트 보안 및 규정 준수 센터 에서 eDiscovery 사례와 연결 된 보류에 추가할 수 있습니다. 보류 하려는 모든 사용자에 게 비즈니스용 OneDrive 사이트를 가정할 스크립트를 사용 하 여이 문서의 보류를 최대 100 명의 사용자를 추가할 수 있습니다.

  • 2 단계와 3 단계에서에서 동일한 폴더에 스크립트에서 만든 사용자 목록에 저장 해야 합니다. 쉽게 수 스크립트를 실행 합니다.

  • 스크립트 기존 사례와 관련 된 새 대기에 사용자 목록을 추가 합니다. 연결 된 보류 하려는 사례 스크립트를 실행 하기 전에 만든이 있어야 합니다.

  • 스크립트는 최소한의 오류 처리 포함 되어 있습니다. OneDrive에서 각 사용자의 비즈니스 사이트에 대 한 길게 누르고 쉽고 빠르게 사서함 배치 하는 기본 목적입니다.

  • 이 항목에서 제공된 샘플 스크립트는 Microsoft 표준 지원 프로그램 또는 서비스에서는 지원되지 않습니다. 샘플 스크립트는 어떠한 보증도 없이 "있는 그대로" 제공됩니다. Microsoft는 묵시적인 모든 보증(상품성 또는 특정 목적에의 적합성에 대한 묵시적인 보증을 포함하되 이에 제한되지 않음)을 부인합니다. 샘플 스크립트 및 문서의 사용 또는 수행으로 인해 발생하는 모든 위험은 사용자의 책임입니다. 어떠한 경우에도 Microsoft, 스크립트 작성자 또는 스크립트의 작성, 생산 또는 제공과 관련된 사람은 누구나 샘플 스크립트 또는 문서의 사용 또는 사용 불가능으로 인해 발생하는 모든 손해(수익에 대한 손실, 비즈니스 중단, 비즈니스 정보 손실 또는 기타 금전상의 손실을 포함하되 이에 제한되지 않음)에 대해 책임지지 않습니다. 이는 Microsoft가 이러한 손해가 발생할 가능성에 대해 알고 있었더라고 마찬가지입니다.

맨 위로 이동

1 단계: SharePoint Online 관리 셸을 설치합니다

첫 번째 단계 로컬 컴퓨터에 설치 되어 있지 경우 SharePoint Online 관리 셸을 설치 하는 것입니다. 이 절차에서는 셸을 사용 하 여 않지만 3 단계를 실행 하는 스크립트에 필요한 필수 포함 하기 때문에 설치 해야 합니다. 이러한 필수 구성이 요소 비즈니스용 OneDrive 사이트에 대 한 Url을 SharePoint Online 통신 하는 스크립트를 허용 합니다.

SharePoint Online 관리 셸 Windows PowerShell 환경 설정 으로 이동한 SharePoint Online 관리 셸을 로컬 컴퓨터에 설치 하려면 1 단계와 2 단계를 수행 합니다.

맨 위로 이동

2 단계: 사용자의 목록을 생성합니다

3 단계에서에서 스크립트 사서함과 비즈니스용 OneDrive 사이트를 보류 하는 사용자 목록에 추가 하 고 eDiscovery 사례와 연결 된 보류를 만들어집니다. 텍스트 파일에서 전자 메일 주소를 입력 하면 또는 전자 메일 주소 목록 보기 및 (3 단계에서에서 스크립트를 저장할 수 있는 동일한 폴더에 있음) 파일을 저장 하려면 Windows PowerShell 명령을 실행할 수 있습니다.

PowerShell 명령을 ( Exchange Online 조직에 연결 된 원격 PowerShell을 사용 하 여 실행) 같습니다 조직의 모든 사용자에 대 한 전자 메일 주소 목록을 가져오고 텍스트 파일에 저장 하 라는 HoldUsers.txt 합니다.

Get-Mailbox -ResultSize unlimited -Filter { RecipientTypeDetails -eq 'UserMailbox'} | Select-Object PrimarySmtpAddress > HoldUsers.txt

이 명령을 실행 한 후 텍스트 파일을 열고 PrimarySmtpAddress속성 이름이 포함 된 머리글 제거 합니다. 3 단계에서에서 만들 수 있는 보류에 추가 하려는 사용자에 대 한 확인란을 제외한 모든 전자 메일 주소를 제거 합니다. 빈 행이 없는 앞 이나 뒤 전자 메일 주소 목록에 있는지 확인 합니다.

맨 위로 이동

보류를 만들어 사용자를 추가 하는 스크립트를 실행 하는 3 단계:

이 단계에서 스크립트를 실행할 때 다음 정보에 대 한 메시지가 표시 됩니다 것입니다. 스크립트를 실행 하기 전에 준비이 정보가 준비 해야 합니다.

  • 사용자 자격 증명    스크립트는 보안 및 규정 준수 센터 원격 powershell에 연결 하려면 자격 증명을 사용 합니다. 사용자 목록에 대 한 비즈니스용 OneDrive Url을 SharePoint Online 액세스 하려면 이러한 자격 증명도 사용 됩니다.

  • 내 사이트 도메인의 이름    내 사이트 도메인은 조직의 모든 비즈니스용 OneDrive 사이트를 포함 하는 도메인입니다. 예를 들어 https://contoso-my.sharepoint.comMySite 도메인에 대 한 URL을 사용 하는 경우는 입력 합니다 contoso 스크립트 MySite 도메인의 이름에 대 한 묻는 메시지를 표시 합니다.

  • 대/소문자의 이름    기존 사례의 이름입니다. 스크립트가 대/이 소문자와 관련 된 새 보류를 만들어집니다.

  • 보류의 이름    보류의 이름을 스크립트를 만들고 지정 된 대/소문자와 연결 합니다.

  • 쿼리 기반에 대 한 검색 쿼리 대기    지정 된 검색 조건을 충족 하는 내용을 보류 배치 되도록 쿼리 기반 보류를 만들 수 있습니다. 모든 콘텐츠를 보류를 배치 하려면 방금 enter 검색 쿼리에 대 한 묻는 메시지가 나타나면 합니다.

  • 보류를 설정 여부    만든 하거나 사용 하지 않고 보류 만들기 스크립트를 사용할 수 후 보류를 설정 하는 스크립트를 가질 수 있습니다. 보류를 설정 하는 스크립트를 설정 하지 않은 경우 보안 및 규정 준수 센터 의 뒷부분에 나오는 또는 다음 PowerShell 명령을 실행 하 여 시작할 수 있습니다.

    Set-CaseHoldPolicy -Identity <name of the hold> -Enabled $true
    Set-CaseHoldRule -Identity <name of the hold> -Disabled $false
  • 사용자의 목록 사용 하 여 텍스트 파일의 이름    보류에 추가할 사용자의 목록이 포함 된 2 단계에서에서 텍스트 파일의 이름입니다. 이 파일은 스크립트와 같은 폴더에 있는 경우 (예를 들어 HoldUsers.txt) 파일의 이름을 입력 합니다. 텍스트 파일이 다른 폴더에 파일의 전체 경로 입력 합니다.

스크립트를 묻는 메시지에 대 한 정보를 수집한 후 후 새 보류를 만들어 사용자를 추가 하 여 스크립트를 실행 하는 마지막 단계가입니다.

  1. .Ps1;의 파일 이름 접미사를 사용 하 여 다음 텍스트 Windows PowerShell 스크립트 파일에 저장 예를 들어 AddUsersToHold.ps1 합니다.

    #script begin
    " " 
    write-host "***********************************************"
    write-host "   Office 365 Security & Compliance Center   " -foregroundColor yellow -backgroundcolor darkgreen
    write-host "   eDiscovery cases - Add users to a hold   " -foregroundColor yellow -backgroundcolor darkgreen 
    write-host "***********************************************"
    " " 
    # Get user credentials & Connect to Office 365 SCC, SPO
    
    $credentials = Get-Credential -Message "Specify your credentials to connect to the Office 365 Security & Compliance Center and SharePoint Online"
    $s = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri "https://ps.compliance.protection.outlook.com/powershell-liveid" -Credential $credentials -Authentication Basic -AllowRedirection -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck)
    $a = Import-PSSession $s -AllowClobber
    
        if (!$s)
        {
            Write-Error "Couldn't create PowerShell session."
            return;
        }
    
    # Load the SharePoint assemblies from the SharePoint Online Management Shell
    # To install, go to http://go.microsoft.com/fwlink/p/?LinkId=255251
    if (!$SharePointClient -or !$SPRuntime -or !$SPUserProfile)
    {
        $SharePointClient = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
        $SPRuntime = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
        $SPUserProfile = [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")
    
        if (!$SharePointClient)
        {
            Write-Error "The SharePoint Online Management Shell isn't installed. Please install it from: http://go.microsoft.com/fwlink/p/?LinkId=255251 and then re-run this script."
            return;
        }
    }
    
    if (!$spCreds)
    {
        $spCreds = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($credentials.UserName, $credentials.Password)
    }
    
    # Get the user's MySite domain name. We use this to create the admin URL and root URL for OneDrive for Business
    ""
    $mySiteDomain = Read-Host "Enter the name of your organization's MySite domain. For example, 'contoso' for 'https://contoso-my.sharepoint.com'"
    ""
    
    # Get other required information
    do{
    $casename = Read-Host "Enter the name of the case"
    $caseexists = (get-compliancecase -identity "$casename" -erroraction SilentlyContinue).isvalid
    if($caseexists -ne 'True')
    {""
    write-host "A case named '$casename' doesn't exist. Please specify the name of an existing case, or create a new case and then re-run the script." -foregroundColor Yellow
    ""}
    }While($caseexists -ne 'True')
    
    ""
    do{
    $holdName = Read-Host "Enter the name of the new hold"
    $holdexists=(get-caseholdpolicy -identity "$holdname" -case "$casename" -erroraction SilentlyContinue).isvalid
    if($holdexists -eq 'True')
    {""
    write-host "A hold named '$holdname' already exists. Please specify a new hold name." -foregroundColor Yellow
    ""}
    }While($holdexists -eq 'True')
    
    ""
    $holdQuery = Read-Host "Enter a search query to create a query-based hold, or press Enter to hold all content"
    ""
    $holdstatus = read-host "Do you want the hold enabled after it's created? (Yes/No)"
    
    do{
    ""
    $inputfile = read-host "Enter the name of the text file that contains the email addresses of the users to add to the hold"
    ""
    $fileexists = test-path -path $inputfile
    if($fileexists -ne 'True'){write-host "$inputfile doesn't exist. Please enter a valid file name." -foregroundcolor Yellow}
    }while($fileexists -ne 'True')
    
    #Import the list of addresses from the txt file.  Trim any excess spaces and make sure all addresses 
        #in the list are unique.
    	[array]$emailAddresses = Get-Content $inputfile -ErrorAction SilentlyContinue | where {$_.trim() -ne ""}  | foreach{ $_.Trim() }
    	[int]$dupl = $emailAddresses.count
    	[array]$emailAddresses = $emailAddresses | select-object -unique
    	$dupl -= $emailAddresses.count
    
    #Validate email addresses so the hold creation does not run in to an error.
    if($emailaddresses.count -gt 0){
    write-host ($emailAddresses).count "addresses were found in the text file. There were $dupl duplicate entries in the file." -foregroundColor Yellow
    ""
    Write-host "Validating the email addresses. Please wait..." -foregroundColor Yellow
    ""
    $finallist =@()
    foreach($emailAddress in $emailAddresses)
    {
    if((get-recipient $emailaddress -erroraction SilentlyContinue).isvalid -eq 'True')
    {$finallist += $emailaddress}
    else {"Unable to find the user $emailaddress"
    [array]$excludedlist += $emailaddress}
    }
    ""
    #find user's OneDrive Site URL using email address
    Write-Host "Getting the URL for each user's OneDrive for Business site." -foregroundColor Yellow
    ""
    $AdminUrl = "https://$mySiteDomain-admin.sharepoint.com"
    $mySiteUrlRoot = "https://$mySiteDomain-my.sharepoint.com"
    
    # Add the path of the User Profile Service to the SPO admin URL, then create a new webservice proxy to access it
    $proxyaddr = "$AdminUrl/_vti_bin/UserProfileService.asmx?wsdl"
    $UserProfileService= New-WebServiceProxy -Uri $proxyaddr -UseDefaultCredential False
    $UserProfileService.Credentials = $credentials
    
    # Take care of auth cookies
    $strAuthCookie = $spCreds.GetAuthenticationCookie($AdminUrl)
    $uri = New-Object System.Uri($AdminUrl)
    $container = New-Object System.Net.CookieContainer
    $container.SetCookies($uri, $strAuthCookie)
    $UserProfileService.CookieContainer = $container
    $urls = @()
    foreach($emailAddress in $emailAddresses)
    {
          try{
            $prop = $UserProfileService.GetUserProfileByName("i:0#.f|membership|$emailAddress") | Where-Object { $_.Name -eq "PersonalSpace" }
            $url = $prop.values[0].value
    		if($url -ne $null){
            $furl = $mySiteUrlRoot + $url
            $urls += $furl
            Write-Host "- $emailAddress => $furl"
    		[array]$ODadded += $furl}
    	else{    
            Write-Warning "Couldn't locate OneDrive for $emailAddress"
    		[array]$ODExluded += $emailAddress
        }}
    	catch { 
    	Write-Warning "Could not locate OneDrive for $emailAddress"
    	[array]$ODExluded += $emailAddress
    	Continue }
    }
    
    if(($finallist.count -gt 0) -or ($urls.count -gt 0)){
    ""
    Write-Host "Creating the hold named $holdname. Please wait..." -foregroundColor Yellow
    if(($holdstatus -eq "Y") -or ($holdstatus -eq  "y") -or ($holdstatus -eq "yes") -or ($holdstatus -eq "YES")){
    New-CaseHoldPolicy -Name "$holdName" -Case "$casename" -ExchangeLocation $finallist -SharePointLocation $urls -Enabled $True | out-null
    New-CaseHoldRule -Name "$holdName" -Policy "$holdname" -ContentMatchQuery $holdQuery | out-null
    }
    else{
    New-CaseHoldPolicy -Name "$holdName" -Case "$casename" -ExchangeLocation $finallist -SharePointLocation $urls -Enabled $false | out-null
    New-CaseHoldRule -Name "$holdName" -Policy "$holdname" -ContentMatchQuery $holdQuery -disabled $true | out-null
    }
    ""
    }
    else {"No valid locations were identified. Therefore, the hold wasn't created."}
    
    #write log files (if needed)
    $newhold=Get-CaseHoldPolicy -Identity "$holdname" -Case "$casename" -erroraction SilentlyContinue
    $newholdrule=Get-CaseHoldRule -Identity "$holdName" -erroraction SilentlyContinue
    if(($ODAdded.count -gt 0) -or ($ODExluded.count -gt 0) -or ($finallist.count -gt 0) -or ($excludedlist.count -gt 0) -or ($newhold.isvalid -eq 'True') -or ($newholdrule.isvalid -eq 'True'))
    {
    Write-Host "Generating output files..." -foregroundColor Yellow
    if($ODAdded.count -gt 0){
    "OneDrive Locations" | add-content .\LocationsOnHold.txt
    "==================" | add-content .\LocationsOnHold.txt 
    $newhold.SharePointLocation.name | add-content .\LocationsOnHold.txt}
    if($ODExluded.count -gt 0){ 
    "Users without OneDrive locations" | add-content .\LocationsNotOnHold.txt
    "================================" | add-content .\LocationsNotOnHold.txt
    $ODExluded | add-content .\LocationsNotOnHold.txt}
    if($finallist.count -gt 0){
    " " | add-content .\LocationsOnHold.txt
    "Exchange Locations" | add-content .\LocationsOnHold.txt
    "==================" | add-content .\LocationsOnHold.txt 
    $newhold.ExchangeLocation.name | add-content .\LocationsOnHold.txt}
    if($excludedlist.count -gt 0){
    " "| add-content .\LocationsNotOnHold.txt
    "Mailboxes not added to the hold" | add-content .\LocationsNotOnHold.txt
    "===============================" | add-content .\LocationsNotOnHold.txt
    $excludedlist | add-content .\LocationsNotOnHold.txt}
    $FormatEnumerationLimit=-1
    if($newhold.isvalid -eq 'True'){$newhold|fl >.\GetCaseHoldPolicy.txt}
    if($newholdrule.isvalid -eq 'True'){$newholdrule|Fl >.\GetCaseHoldRule.txt}
    }
    }
    
    else {"The hold wasn't created because no valid entries were found in the text file."}
    ""
    Write-host "Script complete!" -foregroundColor Yellow
    ""
    #script end
  2. 로컬 컴퓨터에 Windows PowerShell 열고 스크립트 저장 한 폴더로 이동 합니다.

  3. 스크립트; 실행 예를 들어:

    .\AddUsersToHold.ps1
  4. 스크립트에 대 한 라는 메시지가 표시 되는 정보를 입력 합니다.

    스크립트는 보안 및 규정 준수 센터 원격 PowerShell을 사용 하 여에 연결 하 고 새 보류 eDiscovery 사례에 만들고 사서함과 비즈니스용 OneDrive 사용자가 목록에 추가 합니다. EDiscovery 페이지를 보려면 새 보류 보안 및 규정 준수 센터 에서 대/소문자를 이동할 수 있습니다.

스크립트 완료 되 면 다음 로그 파일을 만듭니다 및 스크립트 있는 폴더에 저장을 실행 합니다.

  • LocationsOnHold.txt    사서함 및 성공적으로 보류할 스크립트 길게 비즈니스용 OneDrive 사이트 목록이 포함 되어 있습니다.

  • LocationsNotOnHold.txt    스크립트 대기 배치 하지 않고 사서함 및 비즈니스용 OneDrive 사이트 목록이 포함 되어 있습니다. 사용자의 사서함 하지만 비즈니스용 OneDrive 사이트가 아닌 있으면 사용자의 보류할 되지 않은 비즈니스용 OneDrive 사이트 목록에 포함 됩니다.

  • GetCaseHoldPolicy.txt    새 보류를 만든 후 스크립트를 실행 하는 새 보류에 대 한 Get-CaseHoldPolicy cmdlet 출력 포함 되어 있습니다. 이 cmdlet에서 반환 되는 정보 사용자의 사서함과 비즈니스용 OneDrive 사이트 보류 및 보류 활성화 되어 있는지 여부에 배치 된 목록이 포함 되어 있습니다.

  • GetCaseHoldRule.txt    새 보류를 만든 후 스크립트를 실행 하는 새 보류에 대 한 Get-CaseHoldRule cmdlet 출력 포함 되어 있습니다. 이 cmdlet에서 반환 되는 정보 스크립트를 사용 하는 쿼리 기반 보류를 만들려는 경우 검색 쿼리를 포함 합니다.

맨 위로 이동

Office 기술 확장
교육 살펴보기
새로운 기능 우선 가져오기
Office Insider 참여

이 정보가 유용한가요?

의견 주셔서 감사합니다!

피드백을 주셔서 감사합니다. Office 지원 에이전트와 연락하는 것이 도움이 될 것 같습니다.

×