Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

리소스 센터블로그

가장 유용한 Office 365 PowerShell 명령 10가지

가장 유용한 Office 365 PowerShell 명령 10가지

Mar 17, 2023

Windows PowerShell을 사용해 Office 365를 관리하는 일 은 처음엔 다소 이상하게 느껴질 수 있습니다. 결국 클라우드 솔루션은 단순함과 사용 편의성을 약속하니까요. — 이런 형용사는 Windows PowerShell 과 관련해서는 좀처럼 쓰이지 않습니다. 하지만 조금만 기다려 주세요. 이 글에서는 시스템 관리자를 위한 가장 유용한 Office 365 PowerShell cmdlet 10가지를 소개하겠습니다. 이 안내를 읽고 나면, PowerShell이 클라우드 기반 시스템에서도 충분히 유용한 도구가 될 수 있다는 데 동의하게 되실지도 모릅니다.

1. PowerShell로 Office 365 인스턴스에 연결하기

먼저 Windows PowerShell용 Office 365 모듈을 설치하고 Office 365 인스턴스에 연결해야 합니다. 다음 단계를 수행하세요:

1. Microsoft Online Services Sign-In Assistant for IT Professionals RTW 를 다운로드하여 설치합니다.

2. Microsoft Azure Active Directory 및 Office 365용 Online Services PowerShell 모듈을 가져옵니다:

      Install-Module -Name AzureAD
Install-Module -Name MSOnline
      

3. Office 365 관리자 자격 증명을 입력합니다:

      $Cred = Get-Credential
      

4. 원격 PowerShell 세션을 생성합니다:

      $O365 = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://outlook.office365.com/powershell-liveid/ -Credential $Cred -Authentication Basic -AllowRedirection
      

5. 세션 명령을 로컬 Windows PowerShell 세션에 가져옵니다:

      Import-PSSession $O365
      

6. 모든 Office 365 서비스에 연결합니다:

      Connect-MsolService –Credential $O365
      

Windows PowerShell용 모듈을 가져왔다면, 이제 Office 365 인스턴스를 관리할 준비가 되었습니다.

2. PowerShell을 사용하여 Exchange Online 및 SharePoint Online에 연결하기

Microsoft Exchange Online과 Microsoft SharePoint Online에 각각 별도로 연결할 수도 있습니다. PowerShell을 사용하여 Exchange Online에 연결하는 것은 기본적으로 Office 365에 연결하는 것과 동일합니다:

      $Cred = Get-Credential

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

SharePoint Online에 연결하는 방법은 약간 다릅니다. SharePoint Online 테넌트를 관리하려면 먼저 SharePoint Online Management Shell 기능을 다운로드하여 설치해야 합니다. 그런 다음 다음 PowerShell 스크립트를 실행하세요:

      $admin="Admin@enterprise.onmicrosoft.com"
$orgname="enterprise"
$userCred = Get-Credential -UserName $admin -Message "Type the password."
Connect-SPOService -Url https://$orgname-admin.sharepoint.com -Credential $userCred
      

3. 사용 가능한 Office 365 PowerShell cmdlet 목록 가져오기

사용 가능한 모든 Office 365 PowerShell commands 목록을 가져오려면 Get-Command cmdlet을 실행해야 합니다:

      Get-Command -module MSOnline
      
Image

Azure Active Directory에 대한 cmdlet 목록도 가져올 수 있습니다:

      Get-Command -module AzureAD
      

4. PowerShell을 사용해 모든 Office 365 사용자의 목록 가져오기

Office 365 사용자와 라이선스 목록을 제공해야 한다면 Get-MsolUser cmdlet을 사용하세요. 이 cmdlet은 Office 365 테넌트에서 유효한 라이선스를 보유한 모든 사용자와 DisplayName, City, Department 및 ObjectID 매개변수를 함께 검색합니다.

      Get-MsolUser | Select DisplayName, City, Department, ObjectID
      

계정 라이선스의 개수를 확인하려면 다음 cmdlet을 실행해야 합니다:

      Get-MsolAccountSku
      

사용 가능한 서비스를 나열하려면 다음 스크립트를 실행하세요:

      Get-MsolAccountSku | select -ExpandProperty ServiceStatus
      
Image

5. PowerShell로 Office 365에서 새 사용자 만들기

새 사용자를 만들기 위해 New-MsolUser 명령을 사용합니다:

      New-MsolUser -UserPrincipalName JSmith@enterprise.onmicrosoft.com -DisplayName "John Smith"  -FirstName “John” -LastName “Smith”
      

시스템은 사용자의 비밀번호 및 라이선스 상태 데이터를 출력합니다.

6. PowerShell을 사용하여 모든 사이트에서 사용자 제거

모든 사이트에서 한 번에 사용자를 제거하려면 다음 명령을 사용합니다.

      Get-SPOSite | ForEach {Remove-SPOUser -Site $_.Url -LoginName " JSmith@enterprise.onmicrosoft.com"}
      

7. PowerShell을 사용하여 Office 365에서 비밀번호 변경

계정의 비밀번호를 변경해야 하는 경우 Set-MsolUserPassword cmdlet을 사용하십시오. 아래 예시처럼 새 비밀번호를 지정하거나, -NewPassword 매개변수를 생략하면 시스템이 임의의 비밀번호를 자동으로 생성합니다.

      Set-MsolUserPassword -UserPrincipalName JSmith@Netwrixqcspa.onmicrosoft.com -NewPassword P@SSw0rd!
      

8. PowerShell로 Office 365의 그룹 멤버십 관리

PowerShell cmdlet을 사용하여 Office 365 group도 관리할 수 있습니다. Office 365의 모든 그룹 목록을 가져오려면, 다음 명령을 그대로 사용하면 됩니다: Get-MsolGroup . 그룹에 사용자를 추가하려면 다음 Add-MsolGroupMember 명령을 사용하세요:

      Add-MsolGroupMember -GroupObjectId 5b61d9e1-a13f-4a2d-b5ba-773cebc08eec -GroupMemberObjectId a56cae92-a8b9-4fd0-acfc-6773a5c1c767 -GroupMembertype user
      

GroupObjectId 는 그룹의 16진수 ID이며, 다음 Get-MsolGroup 명령에서 확인할 수 있습니다. GroupMemberObejctId 는 사용자 개체 ID로, 다음 명령을 실행하면 찾을 수 있습니다:

      Get-MsolUser | Select ObjectID.
      

그룹에서 사용자를 제거하려면 Remove-MsoGroupMember cmdlet을 사용하세요.

9. PowerShell로 SharePoint 사이트 모음 만들기

PowerShell을 사용하여 SharePoint 사이트 컬렉션을 생성할 수도 있습니다:

      New-SPOSite -Url "https://enterprise.sharepoint.com/sites/NewSite" -Owner "JSmith@enterprise.onmicrosoft.com" -StorageQuota "100" -Title "New Site"
      

10. PowerShell로 Office 365에서 보고서 만들기

PowerShell은 다양한 보고서를 만드는 데 훌륭한 도구입니다. 다음은 PowerShell을 통해 생성할 수 있는 유용한 Office 365 report 예시입니다:

  • 모든 사서함에 대한 세부 정보:
      Get-mailbox | get-MailboxStatistics
      
  • 지난 30일 동안 로그인되지 않은 모든 사서함 목록:
      Get-Mailbox –RecipientType 'UserMailbox' | Get-MailboxStatistics | Sort-Object LastLogonTime | Where {$_.LastLogonTime –lt ([DateTime]::Now).AddDays(-30) } | Format-Table DisplayName, LastLogonTime
      
  • 가장 많은 발신자와 수신자에 대한 보고서:
      Get-MailTrafficTopReport
      
  • 모든 그룹과 해당 멤버에 대한 보고서:
      function Get-AllO365Members
{
    Try
    {   
     $O365Groups=Get-UnifiedGroup
        foreach ($O365Group in $O365Groups) 
        { 
            Write-Host "Group Membership: " $O365Group.DisplayName -ForegroundColor Green
            Get-UnifiedGroupLinks –Identity $O365Group.Identity –LinkType Members
            Write-Host
        } 
    }
    catch [System.Exception]
    {
        Write-Host -ForegroundColor Red $_.Exception.ToString()   
    } 
}
Get-AllO365Members
      

대부분의 보고용 cmdlet이 2018년 1월에 더 이상 사용되지 않도록(deprecated) 지정되었으며, 새로운 MS Graph Reporting API로 대체되었습니다. 따라서 일부 보고서는 현재 Office 365 Security & Compliance Center에서만 사용할 수 있습니다.

보시는 것처럼 PowerShell을 사용한 Office 365 관리는 Microsoft Windows Server에서와 마찬가지로 빠르고 쉽습니다. Office 365 환경에서 수행하는 모든 변경 사항을 반드시 감사(audit)하세요. 그러면 문제를 더 빠르게 파악하고 이슈에서 신속히 복구하는 데 도움이 됩니다. Office 365 환경에서 네이티브 감사를 구성하는 방법을 알아보려면, 당사 Exchange Online Auditing Quick Reference GuideExchange Online Mailbox Auditing Quick Reference Guide 를 참고하세요. Office 365 환경에서 어떤 일이 일어나고 있는지에 대한 실행 가능한 인사이트와 함께 유연한 리포팅, 사전 예방적 알림, Google과 같은 검색 등 훨씬 더 많은 기능이 필요하다면 Netwrix Auditor for Office 365 의 무료 평가판을 요청해 보십시오.

공유하기

더 알아보기

저자 소개

Asset Not Found

Jeff Melnick

시스템 엔지니어링 디렉터

Jeff는 Netwrix의 Global Solutions Engineering 분야 전(前) 디렉터입니다. 그는 오랜 기간 Netwrix 블로거이자 연사, 프레젠터로 활동해 왔습니다. Netwrix 블로그에서 Jeff는 시스템 관리 경험을 크게 향상시킬 수 있는 라이프해킹, 팁, 트릭을 공유합니다.