다음을 통해 공유


Exchange Online PowerShell에 대한 액세스 설정 또는 해제

Exchange Online PowerShell은 명령줄에서 Microsoft 365 organization Exchange Online 부분을 관리할 수 있는 관리 인터페이스입니다(에 대한 Microsoft Defender 모든 클라우드 사서함에 대한 많은 기본 제공 보안 기능 포함) Office 365).

기본적으로 Microsoft 365의 모든 계정은 Exchange Online PowerShell을 사용할 수 있습니다. 이 액세스 권한은 사용자에게 관리 기능을 제공하지 않습니다. 여전히 RBAC(역할 기반 액세스 제어)에 의해 제한됩니다. 예를 들어 자체 사서함에서 일부 설정을 구성하고 자신이 소유한 메일 그룹을 관리할 수 있지만 그 외에는 별로 관리할 수 없습니다.

관리자는 이 문서의 절차를 사용하여 Exchange Online PowerShell에 연결하는 사용자의 기능을 사용하지 않도록 설정하거나 사용하도록 설정할 수 있습니다.

시작하기 전에 알아야 할 사항은 무엇인가요?

  • 각 절차의 예상 완료 시간: 5분 미만

  • 이 문서의 절차는 Exchange Online PowerShell에서만 사용할 수 있습니다. Exchange Online PowerShell에 연결하려면 Exchange Online PowerShell에 연결을 참조하세요.

  • 이 문서의 절차를 수행하려면 권한이 할당되어야 합니다. 다음과 같은 옵션을 선택할 수 있습니다.

    • Exchange Online 권한: 조직 관리 또는 받는 사람 관리 역할 그룹의 멤버 자격입니다.
    • Microsoft Entra RBAC: Exchange 관리자 또는 전역 관리자* 역할의 멤버 자격은 사용자에게 Microsoft 365의 다른 기능에 필요한 권한 권한을 제공합니다.

    중요

    클라우드 기반 organization PowerShell 액세스를 빠르고 전역적으로 사용하지 않도록 설정하려면 관리자 계정을 고려하지 않고 같은 Get-User | Set-User -EXOModuleEnabled $false 명령을 조심하세요. 이 문서의 절차를 사용하여 PowerShell 액세스를 선택적으로 제거하거나 전역 제거 명령Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.onmicrosoft.com' -and $_.UserPrincipalName -ne 'admin2@contoso.onmicrosoft.com'...} | Set-User -EXOModuleEnabled $false에서 다음 구문을 사용하여 필요한 사용자에 대한 액세스를 유지합니다.

    실수로 PowerShell 액세스에서 자신을 잠그는 경우 Microsoft 365 관리 센터 새 관리자 계정을 만든 다음 해당 계정을 사용하여 이 문서의 절차를 사용하여 PowerShell 액세스 권한을 부여합니다.

    * 사용 권한이 가장 적은 역할을 사용하는 것이 좋습니다. 사용 권한이 낮은 계정을 사용하면 organization 대한 보안을 개선하는 데 도움이 됩니다. 전역 관리자는 기존 역할을 사용할 수 없는 경우 긴급 시나리오로 제한해야 하는 매우 권한이 높은 역할입니다.

  • Exchange Online OPATH 필터 구문에 대한 자세한 내용은 추가 OPATH 구문 정보를 참조하세요.

사용자가 원격 PowerShell에 액세스하거나 액세스하지 않도록 설정

이 예제에서는 사용자david@contoso.onmicrosoft.com에 대한 Exchange Online PowerShell에 대한 액세스를 사용하지 않도록 설정합니다.

Set-User -Identity david@contoso.onmicrosoft.com -EXOModuleEnabled $false

이 예제에서는 사용자chris@contoso.onmicrosoft.com에 대한 Exchange Online PowerShell에 액세스할 수 있습니다.

Set-User -Identity chris@contoso.onmicrosoft.com -EXOModuleEnabled $true

여러 사용자가 원격 PowerShell에 액세스하지 않도록 설정

특정 기존 사용자 그룹의 원격 PowerShell 액세스를 차단하려면 다음 옵션을 사용할 수 있습니다.

  • 기존 특성에 따라 사용자 필터링: 이 메서드는 대상 사용자 계정이 모두 고유한 필터링 가능한 특성을 공유한다고 가정합니다. 일부 특성(예: 제목, 부서, 주소 정보 및 전화 번호)은 Get-User cmdlet에서만 사용할 수 있습니다. 다른 특성(예: CustomAttribute1에서 CustomAttribute15로)은 Get-Mailbox cmdlet에서만 사용할 수 있습니다.
  • 특정 사용자 목록 사용: 특정 사용자 목록을 생성한 후 해당 목록을 사용하여 Exchange Online PowerShell에 대한 액세스를 사용하지 않도록 설정할 수 있습니다.

기존 특성을 기준으로 사용자 필터링

기존 특성을 기반으로 하는 사용자 수에 대해 Exchange Online PowerShell에 대한 액세스를 사용하지 않도록 설정하려면 다음 구문을 사용합니다.

$<VariableName> = <Get-Mailbox | Get-User> -ResultSize unlimited -Filter <Filter>

$<VariableName> | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

이 예에서는 Title 특성에 "Sales Associate" 값이 포함된 모든 사용자의 원격 PowerShell 액세스 권한을 제거합니다.

$DSA = Get-User -ResultSize unlimited -Filter "(RecipientType -eq 'UserMailbox') -and (Title -like 'Sales Associate*')"

$DSA | foreach {Set-User -Identity $_.WindowsEmailAddress -EXOModuleEnabled $false}

특정 사용자 목록 사용

특정 사용자 목록에 대해 원격 PowerShell 액세스를 사용하지 않도록 설정하려면 다음 구문을 사용합니다.

$<VariableName> = Get-Content <text file>

$<VariableName> | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

다음 예제에서는 텍스트 파일 C:\My Documents\NoPowerShell.txt 사용하여 계정으로 사용자를 식별합니다. 텍스트 파일에는 다음과 같이 각 줄에 하나의 계정이 포함되어야 합니다.

akol@contoso.onmicrosoft.com
tjohnston@contoso.onmicrosoft.com
kakers@contoso.onmicrosoft.com

업데이트하려는 사용자 계정으로 텍스트 파일을 채웁니다. 다음 명령을 실행합니다.

$NoPS = Get-Content "C:\My Documents\NoPowerShell.txt"

$NoPS | foreach {Set-User -Identity $_ -EXOModuleEnabled $false}

사용자에 대한 Exchange Online PowerShell 액세스 상태 보기

최신 EXOModuleEnabled 속성은 Get-User cmdlet의 Filter 매개 변수와 함께 사용할 수 없지만 속성 및 이전 RemotePowerShellEnabled 속성의 EXOModuleEnabled 값은 항상 동일하므로 Get-User cmdlet에서 Filter 매개 변수와 함께 속성을 사용합니다RemotePowerShellEnabled.

특정 사용자<에 대한 PowerShell 액세스 상태 보려면 UserIdentity>를 사용자의 이름 또는 UPN(사용자 계정 이름)으로 바꾸고 다음 명령을 실행합니다.

Get-User -Identity "<UserIdentity>" | Format-List EXOModuleEnabled

모든 사용자에 대한 Exchange Online PowerShell 액세스 상태 표시하려면 다음 명령을 실행합니다.

Get-User -ResultSize unlimited | Format-Table -Auto DisplayName,EXOModuleEnabled

Exchange Online PowerShell에 대한 액세스 권한이 없는 모든 사용자를 표시하려면 다음 명령을 실행합니다.

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $false'

Exchange Online PowerShell에 액세스할 수 있는 모든 사용자를 표시하려면 다음 명령을 실행합니다.

Get-User -ResultSize unlimited -Filter 'RemotePowerShellEnabled -eq $true'