Exchange 서버에 대한 원격 PowerShell 액세스 제어

Microsoft Exchange의 원격 PowerShell을 사용하면 내부 네트워크 또는 인터넷의 원격 컴퓨터에서 Exchange organization 관리할 수 있습니다. 원격 PowerShell 및 Exchange 관리 셸을 사용하여 Exchange 서버에 연결하는 사용자의 기능을 사용하지 않도록 설정하거나 사용하도록 설정할 수 있습니다. 원격 PowerShell에 대한 자세한 내용은 Exchange Server PowerShell(Exchange 관리 셸)을 참조하세요.

원격 PowerShell과 관련된 추가 관리 작업에 대한 자세한 내용은 원격 PowerShell을 사용하여 Exchange 서버에 연결을 참조하세요.

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

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

  • 기본적으로 모든 사용자 계정은 원격 PowerShell에 액세스할 수 있습니다. 그러나 실제로 원격 PowerShell을 사용하여 Exchange 서버에 연결하려면 사용자는 관리 역할 그룹의 구성원이거나 Exchange cmdlet을 실행할 수 있도록 하는 관리 역할을 직접 할당 받아야 합니다. 역할 그룹 및 관리 역할에 대한 자세한 내용은 Exchange Server 권한을 참조하세요.

    중요

    organization 원격 PowerShell 액세스를 신속하고 전역적으로 사용하지 않도록 설정하려면 서둘러 원격 PowerShell 액세스가 필요한 관리자 계정, 서비스 계정 또는 상태 모니터링 사서함을 고려하지 않고 명령을 Get-User | Set-User -RemotePowerShellEnabled $false 주의하세요. 이 문서의 절차를 사용하여 원격 PowerShell 액세스를 선택적으로 제거하거나 전역 제거 명령 Get-User | Where-Object {$_.UserPrincipalName -ne 'admin1@contoso.com' -and $_.UserPrincipalName -ne 'admin2@contoso.com'...} | Set-User -RemotePowerShellEnabled $false에서 다음 구문을 사용하여 필요한 사용자에 대한 액세스를 유지합니다.

    실수로 원격 PowerShell 액세스에서 자신을 잠그는 경우 Exchange Management Shell 스냅인(Add-PSSnapIn Microsoft.Exchange.Management.PowerShell.SnapIn)을 직접 로드하는 매우 권장되지 않는 메서드를 사용하여 액세스 권한을 부여해야 합니다. 이 메서드에서 사용 중인 시간과 변경 내용을 최소화합니다. 하나의 계정을 수정하고 Exchange 관리 셸을 열어 추가 변경 내용을 만듭니다.

  • PowerShell을 사용하여 이러한 절차만 수행할 수 있습니다. 온-프레미스 Exchange 조직에서 Exchange 관리 셸을 여는 방법을 확인하려면 Exchange 관리 셸 열기를 참조하세요.

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

  • 이러한 절차를 수행하려면 먼저 사용 권한을 할당받아야 합니다. 필요한 권한을 보려면 Exchange 인프라 및 PowerShell 권한 문서의 "원격 PowerShell " 항목을 참조하세요.

  • 타사 도구를 사용하여 사용자의 전자 메일 주소를 사용자 지정하는 경우 이 문서의 절차를 수행하려면 영향을 받는 사용자에 대한 이메일 주소 정책을 사용하지 않도록 설정해야 합니다. 그렇지 않은 경우 Set-User 명령은 해당 전자 메일 주소 정책과 일치하도록 사용자의 이메일 주소를 변경합니다. 사용자에 대한 이메일 주소 정책을 사용하지 않도록 설정하려면 EmailAddressPolicyEnabled 매개 변수 값을 Set-Mailbox cmdlet에서 $false 설정합니다.

문제가 있습니까? Exchange Server 포럼에서 도움을 요청하세요.

사용자의 원격 PowerShell 액세스 보기

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

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

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

Get-User -ResultSize unlimited | Format-Table Name,DisplayName,RemotePowerShellEnabled -AutoSize

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

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

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

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

Exchange 관리 셸을 사용하여 사용자의 원격 PowerShell 액세스를 사용하거나 사용하지 않도록 설정

이 예제에서는 Therese Lindqvist라는 사용자에 대한 원격 PowerShell 액세스를 사용하지 않도록 설정합니다.

Set-User "Therese Lindqvist" -RemotePowerShellEnabled $false

이 예에서는 사용자 Sirirat Kitjakarn의 원격 PowerShell 액세스를 사용하도록 설정합니다.

Set-User "Sirirat Kitjakarn" -RemotePowerShellEnabled $true

Exchange 관리 셸을 사용하여 많은 사용자에 대해 원격 PowerShell 액세스를 사용하지 않도록 설정

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

  • 기존 특성에 따라 사용자 필터링: 이 메서드는 대상 사용자 계정이 모두 고유한 필터링 가능한 특성을 공유한다고 가정합니다. 직함, 부서, 주소 정보, 전화 번호 등의 일부 특성은 Get-User cmdlet을 사용하는 경우에만 표시됩니다. CustomAttribute1-15 등의 기타 특성은 Get-Mailbox cmdlet을 사용하는 경우에만 표시됩니다.

  • 특정 사용자 목록 사용: 특정 사용자 목록을 생성한 후 해당 목록을 사용하여 원격 PowerShell에 대한 액세스를 사용하지 않도록 설정할 수 있습니다.

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

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

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

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

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

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

$DSA | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}

특정 사용자 목록 사용

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

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

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

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

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

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

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

$NPS | foreach {Set-User -Identity $_ -RemotePowerShellEnabled $false}