Windows Azure Active Directory를 사용하여 Office 365 관리

 

마지막으로 수정된 항목: 2015-03-09

**요약:**Windows PowerShell에서 Windows PowerShell cmdlet, 스크립트 및 일괄 프로세스를 사용하여 Office 365를 관리합니다.

일반적으로는 Azure Active Directory가 Windows PowerShell을 사용하여 Office 365를 관리하는 방법이라고 생각하는 사용자는 거의 없습니다. 그러나 "Azure"는 오랫동안 Microsoft 클라우드 서비스의 이름이었으며, "Active Directory"는 Active Directory의 이름이었습니다. 이 두 가지가 합쳐진 것이 Azure Active Directory Directory입니다. 이 기술을 사용하면 Windows PowerShell을 통해 Office 365 사용자, 그룹, 라이선스 및 구독을 관리할 수 있습니다. 이 항목에는 다음 정보가 포함됩니다.

  • Office 365 사용자 계정 정보 반환

  • 반환할 사용자 계정 속성 값 선택

  • 사용자 계정 속성 값 구성

  • Office 365 사용자 라이선스 작업

  • 위치 매개 변수 및 Office 365 관련 참고 사항

Azure Active Directory cmdlet에 대해 자세히 확인하려면 Windows PowerShell를 참조하세요.

Office 365 사용자 계정 정보 반환

Azure Active Directory를 사용하면 다양한 관리 작업을 수행할 수 있습니다. Azure Active Directory에는 66개의 cmdlet이 포함되어 있으며 그 중 대부분은 Office 365 사용자, 그룹 및 라이선스를 관리하는 데 사용됩니다. 예를 들어 Office 365 사용자 목록을 신속하게 확인해야 하는 경우 다음 명령을 실행해 보세요.

Get-MsolUser

다소 늦은 감은 있지만 여기서 cmdlet 이름에 대해 언급하고 넘어가겠습니다. Azure Active Directory cmdlet의 이름에는 한 가지 공통점이 있습니다.

  • Add-MsolForeignGroupToRole

  • Add-MsolGroupMember

  • Add-MsolRoleMember

  • Confirm-MsolDomain

  • Connect-MsolService

보시다시피 각 cmdlet의 명사, 즉 하이픈 뒤의 이름 부분은 모두 접두사 Msol로 시작하며 이것은 우연의 일치가 아닙니다. MsOnline의 약어인 Msol 접두사는 이러한 cmdlet을 Azure Active Directory cmdlet으로 식별하는 데 사용됩니다. 모든 Azure Active Directory cmdlet에는 접두사 Msol이 있어야 하며 다른 Windows PowerShell cmdlet은 Msol 접두사를 사용할 수 없습니다. 예를 들어 모든 SharePoint Online cmdlet에는 다음 접두사가 있습니다.

  • Add-SPOUser

  • Connect-SPOService

  • Disconnect-SPOService

  • Get-SPOAppErrors

  • Get-SPOAppInfo

그리고 Lync Online cmdlet에는 모두 Cs 접두사가 있습니다.

  • Get-CsAudioConferencingProvider

  • Get-CsOnlineUser

  • Get-CsTenant

  • Get-CsTenantFederationConfiguration

  • Get-CsTenantHybridConfiguration

Cs 접두사는 Communication Server의 약어입니다. Lync Server의 이전 이름이 Office Communications Server였기 때문입니다. 해당 이름이 공식적으로 변경되었을 당시에는 대부분의 cmdlet이 이미 완성된 상태였습니다. 후반 단계에서 cmdlet 이름을 변경하면 제품 출시가 지연될 수 있었으므로 Cs 접두사는 그대로 유지되었습니다.

그런데 Exchange cmdlet에는 접두사가 없습니다.

  • Add-RecipientPermission

  • Get-LinkedUser

  • Get-RecipientPermission

  • Get-RemovedMailbox

  • Get-SendAddress

그 이유는 Exchange가 Windows PowerShell cmdlet 집합을 제공한 최초의 서버 제품이었기 때문입니다. 그 당시에는 특별히 cmdlet 접두사나 기타 식별자를 사용할 필요가 없었습니다. 그러나 다른 서버 팀에서 cmdlet을 만들기 시작하면서 문제가 발생했습니다. 예를 들어 Exchange에 Set-User라는 cmdlet이 있다면 다른 팀에서는 사용자 속성을 설정하는 cmdlet에 다른 이름을 지정해야 합니다. cmdlet 이름은 고유해야 하기 때문입니다. 이러한 이유로 접두사가 사용되기 시작했습니다. 그 결과 이제는 cmdlet 이름이 Set-MsolUser, Set-CsUser, Set-SPOSiteUser 등으로 지정됩니다.

어쨌든 Get-MsolUser를 실행하면 다음과 비슷한 정보가 반환됩니다.

UserPrincipalName                     DisplayName           isLicensed
-----------------                     -----------           ----------
ZrinkaM@litwareinc.onmicrosoft.com    Zrinka Makovac        True
BonnieK@litwareinc.onmicrosoft.com    Bonnie Kearney        True
FabriceC@litwareinc.onmicrosoft.com   Fabrice Canel         True
BrianJ@litwareinc.onmicrosoft.com     Brian Johnson         False 
AnneWlitwareinc.onmicrosoft.com       Anne Wallace          True

위에 나와 있는 것이 모든 Office 365 사용자입니다.

이번에는 라이선스가 없는 사용자, 즉 Office 365에 추가는 되었지만 소프트웨어 응용 프로그램 사용 권한이 부여되지는 않은 사용자 목록만 확인하려는 경우를 가정해 보겠습니다. 이 정보도 쉽게 확인할 수 있습니다.

Get-MsolUser -UnlicensedUsersOnly

마찬가지로 Get-MsolUser cmdlet을 호출하되, 이번에는 UnlicensedUsersOnly 매개 변수를 사용합니다. 이름에서 알 수 있듯이 해당 매개 변수는 반환되는 데이터를 라이선스가 발급되지 않은 사용자로 제한합니다.

UserPrincipalName                     DisplayName           isLicensed
-----------------                     -----------           ----------
BrianJ@litwareinc.onmicrosoft.com     Brian Johnson         False
ScottW@litwareinc.onmicrosoft.com     Scott Wallace         False

따라서 원하는 정보를 쉽게 확인할 수 있습니다.

또한 Windows PowerShell은 복잡한 컴퓨터 언어로 정평이 나 있습니다. 대부분의 사용자는 Windows PowerShell 명령을 다음과 같이 생각합니다.

gc test.txt | sort {[int]$_} |% {$i = 1}{while ($i -lt $_){$i;$i++};$i++}

그러나 실제 Windows PowerShell 명령은 그렇게 복잡하지 않습니다. 위에서 Office 365 사용 권한이 부여되지 않은 사용자만을 반환하는 명령을 살펴보았는데요. 이 정보를 반환하려면 Get-MsolUser라는 cmdlet과 UnlicensedUsersOnly라는 매개 변수를 사용하면 됩니다.

Get-MsolUser -UnlicensedUsersOnly

이 명령을 실행하면 라이선스가 없는 사용자만 반환됩니다.

다시 말해서 Windows PowerShell은 필요에 따라 복잡하게 사용할 수도 있고 단순하고 알기 쉽게 사용할 수도 있습니다.

반환할 사용자 계정 속성 값 선택

Windows PowerShell에서는 작업을 원하는 방식으로 수행할 수 있습니다. 예를 들어 Get-MsolUser cmdlet을 실행하면 다음 속성 값 3개가 반환된다는 것은 이미 살펴보았습니다.

  • UserPrincipalName

  • DisplayName

  • isLicensed

그렇다면 사용자의 표시 이름, 사용자의 근무 부서 및 사용자가 Office 365 서비스를 "사용"하는 국가/지역을 보려면 어떻게 하면 될까요?

참고

위에서 "사용"이라는 표현이 그다지 적절하지는 않습니다만, UsageLocation 속성은 사용자가 일반적으로 Office 365를 사용하는 지리적 위치를 나타냅니다. 이 속성은 매우 중요합니다. Office 365 라이선스, 정책 및 사용 가능한 기능은 이 위치에 따라 달라지기 때문입니다.

앞에서도 살펴본 것처럼 Get-MsolUser는 흔히 사용되는 속성 중 하나인 DisplayName만 표시합니다. 따라서 그 외의 정보는 확인할 수 없습니다.

그렇다면 다음 명령을 대신 실행합니다.

Get-MsolUser | Select-Object DisplayName, Department, UsageLocation

이 명령은 다음 결과를 반환합니다.

DisplayName             Department                       UsageLocation
-----------             ----------                       -------------
Zrinka Makovac          Sales & Marketing                US
Bonnie Kearney          Sales & Marketing                US
Fabrice Canel           Legal                            US
Brian Johnson
Anne Wallace            Executive Management             US
Alex Darrow             Sales & Marketing                US
David Longmuir          Operations                       US

이 문서는 개요이므로 이 명령의 작동 방식에 대해 복잡하게 설명하지 않습니다. 여기서는 Windows PowerShell 3.0의 일부분으로 제공되는 Select-Object cmdlet을 사용하면 cmdlet에서 반환하도록 할 속성을 선택할 수 있다는 것만 알고 있으면 됩니다. UsageLocation 속성의 값만 보려는 경우 Select-Object이 해당 속성 하나만 반환하도록 지정하면 됩니다.

Get-MsolUser | Select-Object DisplayName

Select-Object를 사용하여 항목의 모든 속성 값을 반환할 수도 있습니다. 예를 들어 다음과 같은 명령을 실행할 수 있습니다.

Get-MsolUser | Select-Object *

앞에서도 살펴보았듯이 cmdlet이 항목에 대해 사용 가능한 모든 정보를 항상 반환하는 것은 아니므로 이러한 명령은 매우 유용합니다. Get-MsolUser가 사용자에 대해 제공하는 모든 정보를 확인하려면 다음 명령을 사용합니다.

Get-MsolUser -UserPrincipalName "BelindaN@litwareinc.onmicosoft.com" | Select-Object *

또한 사용 위치가 설정되어 있지 않은 사용자에 대한 정보를 반환하는 명령도 있습니다. 사용자의 위치가 설정되지 않으면 특정 작업을 수행할 수 없으므로 이 명령 역시 중요합니다. 해당 명령은 다음과 같습니다.

Get-MsolUser | Where-Object {$_.UsageLocation -eq $Null} | Select-Object DisplayName, Department, UsageLocation

위의 명령은 다음과 같은 데이터를 반환합니다.

DisplayName              Department                      UsageLocation
-----------              ----------                      -------------
Brian Johnson 
Scott Wallace            Operations

현재는 위의 두 사용자에 대해서만 UsageLocation이 설정되어 있지 않은 것입니다.

사용자 계정 속성 값 구성

지금까지 Windows PowerShell을 사용하여 정보를 반환하는 방법을 살펴보았습니다. Azure Active Directory cmdlet을 사용하면 정보를 구성할 수도 있습니다. Belinda Newman이 프랑스로 이주하여 사용 위치를 프랑스의 ISO(국제 표준화 기구) 코드인 FR로 변경해야 하는 경우를 예로 들어 보겠습니다.

Set-MsolUser -UserPrincipalName "BelindaN@litwareinc.onmicosoft.com" -UsageLocation "FR"

위와 같은 간단한 명령을 사용할 수 있습니다. Get-MsolUser cmdlet이 UageLocation이라는 속성을 반환할 수 있다는 것은 앞에서 이미 확인했습니다. 이 속성 값을 설정하려면 해당하는 Set-MsolUser cmdlet과 UsageLocation 매개 변수를 사용하면 됩니다.

Set-MsolUser -UserPrincipalName "BelindaN@litwareinc.onmicosoft.com" -UsageLocation "FR"

이처럼 명령 자체는 매우 간단합니다.

그리고 단일 사용자뿐 아니라 프랑스로 이주한 모든 사용자를 확인할 수도 있습니다. 이렇게 하려면 다음 명령을 사용합니다.

Get-MsolUser | Set-MsolUser -UsageLocation "FR"

여기서는 Get-MsolUser cmdlet을 사용하여 모든 사용자 계정을 반환합니다. 그런 다음 해당 정보를 Set-MsolUser cmdlet에 "파이핑"합니다. 보시다시피 위의 명령에는 다음과 같은 파이프 구분 기호 문자가 있습니다.

|

Windows PowerShell 명령에 파이프 문자가 있으면 첫 번째 cmdlet(Get-MsolUser)을 사용하여 검색한 정보를 모두 가져와서 두 번째 cmdlet(Set-MsolUser)에 전달한다는 의미입니다. 위 명령의 경우에는 Set-MsolUser가 모든 사용자 계정을 가져와 UsageLocation 속성을 FR로 설정하게 됩니다.

따라서 번거로운 수동 작업이 필요하지 않으므로 매우 편리합니다.

참고

파이프 사용에 익숙하지 않은 사용자라면 Windows PowerShell에서 파이프라이닝을 사용하는 방법을 확인할 수 있습니다.

Office 365 사용자 라이선스 작업

앞서 살펴본 것처럼 Azure cmdlet을 사용하여 다양한 작업을 수행할 수 있습니다. 예를 들어 다음 명령은 보유 중인 Office 365 라이선스 및 아직 배포하지 않은 라이선스 수에 대한 정보를 반환합니다.

Get-MsolAccountSku

이 명령을 실행하면 다음과 비슷한 데이터가 반환됩니다.

AccountSkuId                 ActiveUnits   WarningUnits  ConsumedUnits
------------                 -----------   ------------   ------------
litwareinc:ENTERPRISEPACK    25            0              25

샘플 데이터에서 litwareinc 도메인은 라이선스(ActiveUnits) 25개를 발급했으며, 현재 라이선스 25개가 모두 사용자에게 할당되어 있습니다(ConsumedUnits).

이러한 명령도 유용하지만, 개별 사용자에게 할당된 라이선스를 파악하는 기능 또한 유용할 것입니다. 간단하게 설명하자면, 현재 Ken Myer에게 할당되어 있는 라이선스를 확인하는 명령은 다음과 같습니다.

Get-MsolUser -UserPrincipalName "kenmyer@litwareinc.onmicrosoft.com" | Select-Object -ExpandProperty Licenses | Select-Object -ExpandProperty ServiceStatus

이 명령은 다소 복잡하므로 약간 설명하고 넘어가겠습니다. 이 명령에서는 먼저 Get-MsolUser를 사용하여 kenmyer@litwareinc.onmicrosoft.com 사용자에 대한 정보를 반환합니다. 그런 다음 해당 정보를 Select-Object cmdlet에 파이프하고 ExpandProperty 속성을 사용하여 Licenses 속성을 "확장"합니다. Licenses는 다중값 속성이므로 여러 값, 이 경우 여러 라이선스가 포함되므로 모든 라이선스가 포함되도록 속성을 확장해야 합니다. 그런 후에는 개별 라이선스에 대한 상세 정보를 가져오기 위해 라이선스 정보를 Select-Object에 파이핑하고 ServiceStatus 속성을 확장합니다.

참고

자세한 설명은 다중 속성 값 관련 문서를 참조하세요.

이러한 작업을 완료하고 나면 다음과 비슷한 결과가 반환됩니다.

ServicePlan                      ProvisioningStatus
-----------                      ------------------
YAMMER_ENTERPRISE                None
RMS_S_ENTERPRISE                 Success
OFFICESUBSCRIPTION               Success
MCOSTANDARD                      Success
SHAREPOINTWAC                    Success
SHAREPOINTENTERPRISE             Success
EXCHANGE_S_ENTERPRISE            Success

이 결과로는 원하는 값을 즉시 파악하기가 어려울 수도 있지만, 자세히 확인해 보면 많은 정보를 알 수 있습니다. ServicePlan 속성에는 라이선스 컬렉션이 포함됩니다. 조직에서 사용 가능한 라이선스는 구입한 Office 365 계획에 따라 다릅니다. 여기서 ServicePlan 속성의 값은 다음과 같습니다.

인덱스 번호 서비스 계획 제품

0

YAMMER_ENTERPRISE

Yammer

1

RMS_S_ENTERPRISE

Windows Azure Active Directory

2

OFFICESUBSCRIPTION

Office Professional Plus

3

MCOSTANDARD

Lync

4

SHAREPOINTWAC

Office Web Apps

5

SHAREPOINTNETERPRISE

SharePoint

6

EXCHANGE_S_ENTERPRISE

exchange

그리고 ProvisioningStatus 속성은 라이선스의 할당 여부를 보여 줍니다.

  • None은 라이선스가 할당되지 않았음을 의미합니다.

  • Success는 라이선스가 할당되었음을 의미합니다.

  • Disabled는 라이선스가 할당된 후 사용하지 않도록 설정되었음을 의미합니다.

보시다시피 Ken Myer에게는 Yammer를 제외한 모든 사용 가능 라이선스가 할당되었습니다.

참고

위의 표에서 인덱스 번호란 서비스 계획의 또 다른 식별자입니다. 이전의 컴퓨터 프로그래밍 방식을 기준으로 할 때 위에 나와 있는 것과 같은 컬렉션의 첫 번째 항목에는 인덱스 번호 0이 할당됩니다. 따라서 YAMMER_ENTERPRISE의 인덱스 번호는 0입니다. 그리고 컬렉션의 두 번째 항목에는 인덱스 번호 1이, 세 번째 항목에는 2가 할당되는 식으로 번호가 순서대로 할당됩니다. 잠시 후에 살펴보겠지만 이러한 번호를 사용하여 Yammer 라이선스를 가지고 있거나 가지고 있지 않은 모든 사용자를 표시하는 등의 작업을 할 수 있습니다.

이러한 라이선스 할당을 변경하여 Ken이 Exchange 및 Lync Online을 사용하지 못하도록 설정할 수도 있습니다. 마찬가지로 이 작업을 수행하는 방법은 이후에 다른 항목에서 자세히 설명할 예정입니다. 그러나 Office 365에서는 사용하지 않도록 설정할 라이선스를 지정하여 라이선스를 일부분 관리할 수 있습니다. 이렇게 하려면 다음과 같은 새 라이선스 옵션 개체를 만듭니다.

$disabledLicenses = New-MsolLicenseOptions -AccountSkuId "litwareinc:ENTERPRISEPACK" -DisabledPlans "MCOSTANDARD","EXCHANGE_S_ENTERPRISE"

이 명령은 Enterprise 라이선스 팩을 구입한 litwareinc 도메인에 대해 Lync(MCOSTANDARD) 및 Exchange(EXCHANGE_S_ENTERPRISE) 계획을 사용하지 않도록 설정합니다. 이 명령 자체는 사용자에 대해 이러한 라이선스를 사용하지 않도록 설정하지 않으며, 대신 Lync 및 Exchange가 모두 사용하지 않도록 설정된 일반 사용자 라이선스를 만듭니다. 이 일반 사용자 라이선스를 가져와서 실제 사용자에게 할당하면 됩니다.

Set-MsolUserLicense -UserPrincipalName "kenmyer@litwareinc.onmicrosoft.com" -LicenseOptions $disabledLicenses

이 명령을 실행한 후 Ken의 사용자 라이선스를 다시 확인하면 다음과 같이 변경되어 있음을 확인할 수 있습니다.

ServicePlan                      ProvisioningStatus
-----------                      ------------------
YAMMER_ENTERPRISE                None
RMS_S_ENTERPRISE                 Success
OFFICESUBSCRIPTION               Success
MCOSTANDARD                      Disabled
SHAREPOINTWAC                    Success
SHAREPOINTENTERPRISE             Success
EXCHANGE_S_ENTERPRISE            Disabled

보시다시피 Exchange 및 Lync Online이 모두 사용하지 않도록 설정되었습니다.

Viewing Office 365 licensing information for multiple users

사실 Office 365 사용자 라이선스 관련 작업은 약간 복잡할 수 있습니다. 그러나 이러한 작업은 Office 365와는 관련이 없으며 Office 365 사용자 라이선스 자체가 복잡하기 때문입니다. Office 365에서는 다양한 라이선스 팩이 제공되며 사용자에게 개별 제품 라이선스를 필요한 수만큼 할당할 수 있기 때문입니다. 이러한 모든 라이선스를 추적하기란 쉽지 않습니다. 특히 Office 365 관리 센터에서는 한 번에 한 사용자의 라이선스 정보만 확인할 수 있습니다. Lync Online용 라이선스가 할당된 모든 사용자의 목록을 확인할 수도 있지만, 관리 센터에서는 해당 기능이 제공되지 않습니다.

이러한 목록을 확인하려면 Windows PowerShell을 사용해야 합니다. Office 365 사용자 라이선스 작업 섹션에서 언급한 인덱스 번호를 기억하세요. 라이선스 팩에서 Lync Online의 인덱스 번호는 3입니다. 따라서 아래와 같은 코드 줄을 사용하면 Lync Online용 라이선스가 발급된 모든 사용자의 목록을 반환할 수 있습니다.

Get-MsolUser | Where-Object {$_.isLicensed -eq $true -and $_.Licenses[0].ServiceStatus[3].ProvisioningStatus -ne "Disabled"}

이 명령은 약간 복잡하기는 하지만 확인하려는 정보가 반환됩니다.

UserPrincipalName                     DisplayName           isLicensed
-----------------                     -----------           ----------
ZrinkaM@litwareinc.onmicrosoft.com    Zrinka Makovac        True
FabriceC@litwareinc.onmicrosoft.com   Fabrice Canel         True
AnneW@litwareinc.onmicrosoft.com      Anne Wallace          True
AlexD@litwareinc.onmicrosoft.com      Alex Darrow           True

원하는 경우 다음 코드를 사용하여 Lync Online용 라이선스가 발급되지 않은 모든 사용자의 목록도 반환할 수 있습니다.

Get-MsolUser | Where-Object {$_.isLicensed -eq $true -and $_.Licenses[0].ServiceStatus[3].ProvisioningStatus -ne "Enabled"}

그러면 이전 예와는 전혀 다른 사용자 목록이 반환됩니다.

UserPrincipalName                     DisplayName           isLicensed
-----------------                     -----------           ----------
BonnieK@litwareinc.onmicrosoft.com    Bonnie Kearney        True
BrianJ@litwareinc.onmicrosoft.com     Brian Johnson         False

이번에는 Lync Online 라이선스가 아닌 SharePoint Online 라이선스 관련 정보를 파악하려는 경우를 가정해 보겠습니다. 라이선스 테이블을 확인해 보면 SharePoint Online 라이선스의 인덱스 번호는 5입니다. 이전 코드 예에서는 ServiceStatus 속성을 지정할 때 인덱스 번호 3(Lync Online의 인덱스 번호)을 사용했습니다.

Get-MsolUser | Where-Object {$_.isLicensed -eq $true -and $_.Licenses[0].ServiceStatus[3].ProvisioningStatus -ne "Disabled"}

SharePoint Online 라이선스를 반환하려면 3을 5로 바꾸기만 하면 됩니다.

Get-MsolUser | Where-Object {$_.isLicensed -eq $true -and $_.Licenses[0].ServiceStatus[5].ProvisioningStatus -ne "Disabled"}

이처럼 간단하게 원하는 정보를 반환할 수 있습니다.

자세한 내용은 Office 365 작업을 위해 사용자에게 라이선스 제공를 참조하세요. 이처럼 Windows PowerShell을 통해 사용 가능한 라이선스 옵션을 파악하려면 약간의 노력이 필요합니다. 그러나 약간의 번거로움만 감수하면 Windows PowerShell을 통해 사용 가능한 라이선스 옵션을 편리하게 확인하여 활용할 수 있습니다.

실제로 명령을 실행하여 확인해 보시기 바랍니다.

위치 매개 변수 및 Office 365 관련 참고 사항

개별 사용자 계정 작업을 비롯한 다양한 측면에서 Azure Active Directory cmdlet은 Exchange 및 Lync Online cmdlet과는 다른 방식으로 작동합니다. 예를 들어 Lync Online 및 Get-CsOnlineUser cmdlet을 사용하면 Identity 매개 변수를 명령에 포함하거나 명령에서 제외할 수 있습니다. 다시 말해서 아래의 두 명령은 모두 작동하며 정확히 같은 정보를 반환합니다.

Get-CsOnlineUser -Identity "kenmyer@litwareinc.onmicrosoft.com"
Get-CsOnlineUser "kenmyer@litwareinc.onmicrosoft.com"

그러나 Azure Active Directory cmdlet의 경우는 그렇지 않으며, 다음 명령을 사용해야 합니다.

Get-MsolUser -UserPrincipalName "kenmyer@litwareinc.onmicrosoft.com"

참고

여기서 UserPrincipalName 매개 변수를 사용한 이유는 Get-MsolUser에 Identity 매개 변수가 없기 때문입니다.

그러나 다음 명령은 작동하지 않습니다.

Get-MsolUser "kenmyer@litwareinc.onmicrosoft.com"

그 이유는 여기서는 자세한 기술 관련 사항에 대해 살펴보지는 않으므로, 대부분의 Lync Online 및 Exchange cmdlet은 Identity 매개 변수를 "위치 매개 변수"로 구성한다는 정도로만 설명하겠습니다. 즉 위의 경우에는 -Identity와 같은 매개 변수 이름을 지정하지 않으면 cmdlet은 명령의 첫 번째 매개 변수를 Identity 매개 변수로 가정합니다. 사용자 ID만 먼저 지정하면 -Identity 매개 변수는 사용해도 되고 사용하지 않아도 됩니다. 따라서 아래의 두 명령이 모두 작동합니다.

Get-CsOnlineUser -Identity "kenmyer@litwareinc.onmicrosoft.com"
Get-CsOnlineUser "kenmyer@litwareinc.onmicrosoft.com"

그러나 Azure Active Directory cmdlet은 위치 매개 변수를 지원하지 않습니다. 다음과 같이 해당 매개 변수가 없는 값을 포함한다고 가정해 보겠습니다.

Get-MsolUser "kenmyer@litwareinc.onmicrosoft.com"

그러면 다음과 같은 오류 메시지가 표시됩니다.

Get-MsolUser : A positional parameter cannot be found that accepts argument 'kenmyer@litwareinc.onmicrosoft.com'.

또한 Exchange 및 Lync Online에서는 사용자를 다양한 방식으로 참조할 수 있습니다. 예를 들어 아래의 모든 Exchange 명령은 동일한 사서함 정보를 반환합니다.

Get-Mailbox -Identity "Ken Myer"
Get-Mailbox -Identity "kenmyer@litwareinc.onmicrosoft.com"
Get-Mailbox -Identity "kenmyer"

이러한 명령은 각 사용자의 Active Directory 표시 이름, 사용자 이름 및 전자 메일 별칭을 사용합니다. 이러한 ID는 모두 작동합니다. 그러나 이러한 방식은 Exchange 및 Lync Online에만 적용됩니다. 대부분의 경우 Azure Active Directory에서는 사용자 이름, 즉 사용자 계정 이름만 사용해야 합니다.

Get-MsolUser -UserPrincipalName "kenmyer@litwareinc.onmicrosoft.com"

참고

기술적으로는 ObjectId 매개 변수를 사용할 수 있습니다. 그러나 이 매개 변수를 사용하려면 사용자 계정에 할당된 GUID(Globally Unique Identifier)를 입력해야 합니다. 예를 들면 다음과 같습니다.
Get-MsolUser –ObjectId "62e90394-69f5-4237-9190-012177145e10"
상황에 따라 적절하게 UserPrincipalName 또는 ObjectId를 사용하면 됩니다.

Windows PowerShell을 처음 사용하는 경우에는 작업 방식이 다소 생소할 수도 있습니다. Windows PowerShell를 처음 사용해 보는 경우 소개 문서인 매개 변수 사용을 참조할 수 있습니다.

참고 항목

Windows PowerShell로 Office 365를 관리하는 최선의 방법