Просмотр сведений о лицензии и службе учетной записи с помощью PowerShell в Office 365View account license and service details with Office 365 PowerShell

Сводка: Объясняет, как использовать Office 365 PowerShell для определения служб Office 365, которые были назначены пользователям.Summary: Explains how to use Office 365 PowerShell to determine the Office 365 services that have been assigned to users.

В Office 365, лицензируемые из планы лицензирования (также называемое номера SKU или Office 365 планы) предоставить пользователям доступ к службам Office 365, определенных для этих планов. Тем не менее пользователь может отсутствовать доступ ко всем службам, которые доступны в лицензию, назначенных им. Office 365 PowerShell можно использовать для просмотра состояния службы на учетные записи пользователей.In Office 365, licenses from licensing plans (also called SKUs or Office 365 plans) give users access to the Office 365 services that are defined for those plans. However, a user might not have access to all the services that are available in a license that's currently assigned to them. You can use Office 365 PowerShell to view the status of services on user accounts.

Перед началом работыBefore you begin

  • Для процедур, описанных в этой статье, требуется подключение к PowerShell в Office 365. Указания см. в статье Подключение к Office 365 PowerShell.The procedures in this topic require you to connect to Office 365 PowerShell. For instructions, see Connect to Office 365 PowerShell.

  • Используйте команды Get-MsolAccountSku и (Get-MsolAccountSku | where {$_.AccountSkuId -eq '<AccountSkuId>'}).ServiceStatus для поиска со следующими сведениями:Use the commands Get-MsolAccountSku and (Get-MsolAccountSku | where {$_.AccountSkuId -eq '<AccountSkuId>'}).ServiceStatus to find the following information:

    • Планы лицензирования, доступные в организации.The licensing plans that are available in your organization.

    • Службы, доступные в каждом плане лицензирования, и порядок, в котором они располагаются (индекс).The services that are available in each licensing plan, and the order in which they are listed (the index number).

      Дополнительные сведения о лицензировании планы, лицензии и службы можно Просмотр лицензий и службы с помощью Office 365 PowerShell.For more information about licensing plans, license, and services, see View licenses and services with Office 365 PowerShell.

  • Используйте команду Get-MsolUser -UserPrincipalName <user account UPN> | Format-List DisplayName,Licenses поиск лицензий, назначенных пользователю, и порядок, в котором они являются из списка (индекс).Use the command Get-MsolUser -UserPrincipalName <user account UPN> | Format-List DisplayName,Licenses to find the licenses that are assigned to a user, and the order in which they are listed (the index number).

  • Если использовать командлет Get-MsolUser без параметра All, возвращаются только первые 500 учетных записей.If you use the Get-MsolUser cmdlet without using the All parameter, only the first 500 accounts are returned.

Краткая версия (инструкции без пояснений)The short version (instructions without explanations)

Для просмотра всех служб Office 365 PowerShell, которые пользователь имеет доступ к, используйте следующий синтаксис:To view all the Office 365 PowerShell services that a user has access to, use the following syntax:

(Get-MsolUser -UserPrincipalName <user account UPN>).Licenses[<LicenseIndexNumber>].ServiceStatus

В этом примере показано служб, с которыми пользователь BelindaN@litwareinc.com имеет доступ. Это показывает службы, которые связаны с всех лицензий, которые были им назначены своей учетной записи.This example shows the services to which the user BelindaN@litwareinc.com has access. This shows the services that are associated with all licenses that are assigned to her account.

(Get-MsolUser -UserPrincipalName belindan@litwareinc.com).Licenses.ServiceStatus

Этот код показывает службы, к которым у пользователя BelindaN@litwareinc.com есть доступ по первой назначенной ей лицензии (индекс 0).This example shows the services that user BelindaN@litwareinc.com has access to from the first license that's assigned to her account (the index number is 0).

(Get-MsolUser -UserPrincipalName belindan@litwareinc.com).Licenses[0].ServiceStatus

Чтобы найти всех лицензированных пользователей, для которых включены или отключены определенные службы, используйте следующий синтаксис:To find all the licensed users who have been enabled or not enabled for specific services, use the following syntax:

Get-MsolUser -All | where {$_.isLicensed -eq $true -and $_.Licenses[<LicenseIndexNumber> ].ServiceStatus[<ServiceIndexNumber> ].ProvisioningStatus <-eq | -ne> "Disabled" -and $_.Licenses[<LicenseIndexNumber> ].ServiceStatus[<ServiceIndexNumber> ].ProvisioningStatus <-eq | -ne> "Disabled"...}

В этих примерах используются следующие сведения:These examples use the following information:

  • Лицензии, который предоставляет доступ к службам Office 365, которые мы будем рады — это первый лицензии, назначенной для всех пользователей (номер индекса 0).The license that gives access to the Office 365 services that we're interested in is the first license that's assigned to all users (the index number is 0).

  • Службы Office 365, которые мы будем рады, Скайп для бизнеса в Интернет и Exchange Online. Для лицензий, которые связаны с план лицензирования, Скайп для бизнеса в Интернет — 6-й служба, из списка (номер индекса — 5), и Exchange Online — 9 служба перечисленных (индекс равен 8).The Office 365 services that we're interested in are Skype for Business Online and Exchange Online. For the licenses that are associated with the licensing plan, Skype for Business Online is the 6th service listed (the index number is 5), and Exchange Online is the 9th service listed (the index number is 8).

В этом примере возвращаются все лицензированных пользователей, которым разрешена Скайп для бизнеса в Интернет и Exchange Online.This example returns all licensed users who are enabled for Skype for Business Online and Exchange Online.

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

В этом примере возвращаются всех лицензированных пользователей, не включенных в Скайп для бизнеса в Интернет или Exchange Online.This example returns all licensed users who aren't enabled for Skype for Business Online or Exchange Online.

Get-MsolUser -All | where {$_.isLicensed -eq $true -and $_.Licenses[0].ServiceStatus[5].ProvisioningStatus -eq "Disabled" -and $_.Licenses[0].ServiceStatus[8].ProvisioningStatus -eq "Disabled"}

Подробная версия (инструкции с подробными пояснениями)The long version (instructions with detailed explanations)

Поиск служб Office 365 PowerShell, которые пользователь имеет доступ кFind the Office 365 PowerShell services that a user has access to

Важно очевидно, что вам необходимо знать, какие пользователи выданных лицензий на Office 365 и пользователей, которые еще не. (В статье Просмотр лицензионной и нелицензированных пользователей с Office 365 PowerShell для получения дополнительных сведений). Тем не менее просто создавая лицензии Office 365 не сообщает, что-либо о что этого пользователя можно выполнять с помощью Office 365. Можно использовать пользователь Exchange Online или Скайп для бизнеса в Интернет? Можно этому пользователю доступ к SharePoint Online? Он или она имеет доступ к Office профессиональный плюс? Наличия лицензии означает, что пользователь может получить доступ к этим службам. Тем не менее возможности, доступные пользователю зависят от службы, которые будут включены в его лицензии.It's obviously important for you to know which users have been issued Office 365 licenses and which users haven't. (See the article View licensed and unlicensed users with Office 365 PowerShell for more information). However, simply having an Office 365 license doesn't tell you anything about what that user can actually do with Office 365. Can he or she use Exchange Online or Skype for Business Online? Can this user access SharePoint Online? Does he or she have access to Office Professional Plus? Having a license simply means that the user has the potential to access these services. However, the capabilities available to a user depend on the services that have been enabled on his or her license.

Так как же нам определять, который компонентов Office 365 пользователь имеет доступ к? Для этого необходимо выполнить команду, подставив свои значения:So how can we determine which Office 365 features a user has access to? To do that we need to run a command similar to this one:

Get-MsolUser -UserPrincipalName BelindaN@litwareinc.com | Select-Object -ExpandProperty Licenses | Select-Object -ExpandProperty ServiceStatus

В этой команде используется командлет Get-MsolUser возвращает сведения об учетной записи BelindaN@litwareinc.com. Мы возвращении эти сведения, мы передавать данные учетной записи в командлет Select-Object и попросите Select-Object «разверните» значение свойства лицензии :In this command, we're using the Get-MsolUser cmdlet to return information about the account BelindaN@litwareinc.com. Once we've returned that information, we then pipe the account data to the Select-Object cmdlet and ask Select-Object to "expand" the value of the Licenses property:

Select-Object -ExpandProperty Licenses

Зачем мы это делаем? Также по умолчанию лицензий свойство сообщает нам только имя пакета лицензирования, откуда лицензия:Why do we do that? Well, by default the Licenses property only tells us the name of the licensing pack where Belinda's license came from:

Licenses
--------
{litwareinc:ENTERPRISEPACK}

«Разворачивание» свойства Licenses предоставляет нам немного больше информации:"Expanding" the Licenses property gives us a little more information:

ExtensionData     AccountSku       AccountSkuId ServiceStatus
-------------     ----------       ------------ -------------
System.Runtime... Microsoft.On...  litwarein... {Microsoft.Online.A...

И затем, развернув свойство ServiceStatus мы можем вернуть еще больше информации:And then by expanding the ServiceStatus property we can get back even more information:

Служба плана ****Service plan* *DescriptionDescription*
SWAY
SwaySway
TEAMS1
Microsoft TeamsMicrosoft Teams
YAMMER_ENTERPRISE
YammerYammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Office профессиональный плюсOffice Professional Plus
MCOSTANDARD
Skype для бизнеса OnlineSkype for Business Online
SHAREPOINTWAC
Office OnlineOffice Online
SHAREPOINTENTERPRISE
SharePoint OnlineSharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online (план 2)Exchange Online Plan 2

Примечание

Вы сказать, что это слишком много кода? Также, если вы пугает маленьким запутанность Windows PowerShell, можно запустить эту сжатую версию команды вместо: >(Get-MsolUser -UserPrincipalName BelindaN@litwareinc.com).Licenses[0].ServiceStatusYou say that's too much typing? Well, if you can put up with a little Windows PowerShell obtuseness, you can run this condensed version of the command instead: > (Get-MsolUser -UserPrincipalName BelindaN@litwareinc.com).Licenses[0].ServiceStatus

В случае, если вам интересно, мы может «разверните узел» свойства Licenses поскольку лицензий является свойством: это отдельное свойство, которое можно хранить несколько значений. Когда мы разверните значение свойства, которые мы просто детализировать получите эти дополнительные значения, которые по умолчанию не отображаются на экране.In case you're wondering, we can "expand" the Licenses property because Licenses is a multivalued property: it's a single property that can store multiple values. When we expand a property value we simply drill down to get at these additional values that, by default, are not displayed onscreen.

Примечание

Так как вы должны знать, что значение является многозначным свойством? Чтобы выяснить это, запустите команду следующего вида: > Get-MsolUser -UserPrincipalName BelindaN@litwareinc.com | Get-Member> командлета Get-member , возвращает сведения об объекте. в этом случае сведения о свойстве значений, составляющих объект учетной записи пользователя. Вот что может сказать о свойства Licenses Get-Member : > Licenses Property System.Collections.Generic.List[Microsoft.On...> при определении свойств что-либо говорится о коллекциях (в этом случае System.Collections.Generic.List) то вы знаете, вы имеете дело с многозначным свойством.So how are you supposed to know that a value is a multivalued property? Well, to find that out, try running a command similar to this: > Get-MsolUser -UserPrincipalName BelindaN@litwareinc.com | Get-Member> The Get-member cmdlet returns information about the object itself; in this case, information about the property values that make up a user account object. Here's what Get-Member has to say about the Licenses property:> Licenses Property System.Collections.Generic.List[Microsoft.On...> If the property definition says something about collections (in this case, System.Collections.Generic.List) then you know you're dealing with a multivalued property.

Так что же это все значит? Чтобы ответить на этот вопрос, сперва новый взгляд на информацию, возвращенную командлетом Get-MsolUser :So what does all this mean? To answer that, let's first take another look at the information returned by the Get-MsolUser cmdlet:

ServicePlan                       ProvisioningStatus
-----------                       ------------------
SWAY                              Success
INTUNE_O365                       Success
YAMMER_ENTERPRISE                 PendingInput
RMS_S_ENTERPRISE                  Success
OFFICESUBSCRIPTION                Success
MCOSTANDARD                       Success
SHAREPOINTWAC                     Success
SHAREPOINTENTERPRISE              Success
EXCHANGE_S_ENTERPRISE             Success

И давайте также взглянем на таблицу, объясняется, что самом деле представляют эти планы обслуживания со странными именами:And let's also take a look at a table that explains what these oddly-named service plans really represent:

Служба плана ****Service plan* *DescriptionDescription*
SWAY
SwaySway
TEAMS1
Microsoft TeamsMicrosoft Teams
YAMMER_ENTERPRISE
YammerYammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Office профессиональный плюсOffice Professional Plus
MCOSTANDARD
Skype для бизнеса OnlineSkype for Business Online
SHAREPOINTWAC
Office OnlineOffice Online
SHAREPOINTENTERPRISE
SharePoint OnlineSharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online (план 2)Exchange Online Plan 2

Этих? MCOSTANDARD — это просто внутренних программирования имен для Скайп для бизнеса в Интернет, а OFFICESUSBCRIPTION — это просто внутренних программирования имя для приложений Office профессиональный плюс. Это не самое интуитивно в мире, но до тех пор, пока в этой таблице держать под рукой не будут иметь множество проблем при работе со службами Office 365.Got all that? MCOSTANDARD is just an internal programming name for Skype for Business Online, while OFFICESUSBCRIPTION is just the internal programming name for Office Professional Plus. It's not the most intuitive thing in the world, but as long as you keep this table handy you won't have many problems when it comes to working with Office 365 services.

Но подождите: больше. Как мы узнали в статье Просмотр лицензий и службы с помощью Office 365 PowerShell, если задано значение ProvisioningStatus Success , который означает, что служба полностью включен; Например если MCOSTANDARD задано значение Success , который означает, что пользователь может получить доступ к Скайп для бизнеса в Интернет. Если задано значение ProvisioningStatus PendingInput , который означает, что Office 365 все еще обрабатывает запрос службы; Тем не менее пользователь может обычно войдите в систему и доступа к службе во время завершения обработки запроса. ( YAMMER_ENTERPRISE всегда отображается как PendingInput, но это не важно:, который не остановит пользователя подключение к сети Yammer).But wait: there's more. As we learned in the article View licenses and services with Office 365 PowerShell, if the ProvisioningStatus is set to Success that means that the service has been fully enabled; for example if MCOSTANDARD is set to Success that means that the user can access Skype for Business Online. If the ProvisioningStatus is set to PendingInput that means that Office 365 is still processing the service request; however, the user can typically log on and access the service while the request finishes processing. ( YAMMER_ENTERPRISE will always be shown as PendingInput, but that's OK: that won't stop a user from logging on to Yammer).

Важно!

Пользователи могут устанавливать и активировать новую установку Office профессиональный плюс при OFFICESUBSCRIPTION в PendingInput состояние.Users can install and activate a new Office Professional Plus installation while OFFICESUBSCRIPTION is in the PendingInput state.

И нет необходимости говорить, — это служба задано значение Disabled , который означает, что соответствующая служба недоступна для пользователя.And, needless to say, is a service is set to Disabled that means that the service in question is not available to the user.

Поиск пользователей, имеющих доступ к определенным службам Office 365 PowerShellFind users that have access to specific Office 365 PowerShell services

В отдельных статьях было показано, как использовать Office 365 PowerShell для отключения доступа пользователей к службам. (Если вы пропустили этой статье, см. Отключение доступа к службам с помощью Office 365 PowerShell). Которая приводит к следующим изменениям очевидны вопрос: какой вид, чтобы определить, какие Пользователи (то есть несколько пользователей) имеют служб включен или отключен?In a separate article, we saw how you can use Office 365 PowerShell to disable user access to services. (If you missed that article, see Disable access to services with Office 365 PowerShell). That leads to an obvious question: is there any way to determine which users (that is, more than one user) have which services enabled or disabled?

Мы надежде, что кто-то задаст. Чтобы ответить на этот вопрос, давайте рассмотрим таблицы службы, которые мы сначала рассмотрены в статье Просмотр лицензий и службы с помощью Office 365 PowerShell для нашего доступны только план лицензирования litwareinc:ENTERPRISEPACK:We were hoping that someone would ask that. In order to answer that question, let's review the table of services that we first looked at in the article View licenses and services with Office 365 PowerShell for our only available licensing plan litwareinc:ENTERPRISEPACK:

Служба плана ****Service plan* *DescriptionDescription*
SWAY
SwaySway
TEAMS1
Microsoft TeamsMicrosoft Teams
YAMMER_ENTERPRISE
YammerYammer
RMS_S_ENTERPRISE
Azure Rights Management (RMS)Azure Rights Management (RMS)
OFFICESUBSCRIPTION
Office профессиональный плюсOffice Professional Plus
MCOSTANDARD
Skype для бизнеса OnlineSkype for Business Online
SHAREPOINTWAC
Office OnlineOffice Online
SHAREPOINTENTERPRISE
SharePoint OnlineSharePoint Online
EXCHANGE_S_ENTERPRISE
Exchange Online (план 2)Exchange Online Plan 2

Как вы помните, план обслуживания не больше, чем внутреннее имя программирования для продукта; например OFFICESUBSCRIPTION, имени одно, — это внутреннее имя программирования в Office профессиональный плюс. Если OFFICESUBSCRIPTION отображается как SUCCESS на план обслуживания пользователя, затем это означает, что пользователь может получить доступ к Office профессиональный плюс. Если EXCHANGE_S_ENTERPRISE указана в качестве DISABLED , который означает, что пользователь не может использовать Exchange Online.As you might recall, the service plan is nothing more than the internal programming name for a product; for example, OFFICESUBSCRIPTION, to name one, is the internal programming name for Office Professional Plus. If OFFICESUBSCRIPTION shows up as SUCCESS on a user's service plan, then that means that the user is allowed to access Office Professional Plus. If EXCHANGE_S_ENTERPRISE is listed as DISABLED that means the user can't use Exchange Online.

Важно!

Пользователи могут устанавливать и активировать новую установку Office профессиональный плюс при OFFICESUBSCRIPTION в PendingInput состояние.Users can install and activate a new Office Professional Plus installation while OFFICESUBSCRIPTION is in the PendingInput state.

Необходимо на данном этапе где порядок служб играет важнейшую роль. Windows PowerShell присваивает индекс для каждой записи в списке. Первой записи равно 0, следующей записи — 1 и т. д. В следующей таблице описаны результаты:Now is the time where the order in which the services appear is extremely important. Windows PowerShell assigns an index number to each entry in the list. The first entry is 0, the next entry is 1, and so on. The results are explained in the following table:

Номер индекса ****Index number* Служба плана ****Service plan*
00
SWAY
11
INTUNE_O365
22
YAMMER_ENTERPRISE
33
RMS_S_ENTERPRISE
44
OFFICESUBSCRIPTION
55
MCOSTANDARD
66
SHAREPOINTWAC
77
SHAREPOINTENTERPRISE
88
EXCHANGE_S_ENTERPRISE

Как вы видите, SWAY первой службы в списке, поэтому он получает номер индекса 0.As you can see, SWAY is the first service listed, so it gets assigned index number 0.

Внимание!

Почему 0, а не 1? Это связано с программирования очередь. В языки программирования индексы указано, как далеко элемент является «смещение» от начала массива. Первый элемент является начала массива, поэтому его смещение равно 0. Второй элемент является 1 элемент от начала массива, поэтому его смещение равно 1.Why 0 and not 1? That's a programming thing. In programming languages indices tell you how far an item is "offset" from the beginning of the array. The first item is the beginning of the array, so its offset is 0. The second item is 1 item from the beginning of the array, so its offset is 1.

Давайте попробуйте пример. Предположим, что мы хотели бы список всех лицензированных пользователей, которые не были активированы для Exchange Online. Для этого можно использовать следующую команду:Let's try an example. Suppose we'd like a list of all the licensed users who have not been enabled for Exchange Online. To do that, we can use the following command:

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

Конечно это шифрованное нужна маленьким команды, давайте уйти около минуты объяснить, как это работает. Это фактически команда двух частей и первая часть очень просто: мы используем командлет Get-MsolUser возвращает коллекцию всех наших пользователей Office 365 (лицензированным и нелицензированных):Admittedly, that's a cryptic-looking little command, so let's take a minute to explain how it works. This is actually a two-part command, and the first part is very simple: we use the Get-MsolUser cmdlet to return a collection of all our Office 365 users (both licensed and unlicensed):

Get-MsolUser

Эти сведения затем передается в командлет Where-Object . Where-Object проходит через все учетные записи пользователей и выполняет поиск этих учетных записей, необходимых для обоих следующим критериям:That information is then piped to the Where-Object cmdlet. Where-Object goes through all the user accounts and looks for those accounts that meet both of the following criteria:

  • Для свойства isLicensed равно ( -eq) True ( $true). Который позволяет исключить пользователей без лицензий.The isLicensed property is equal to ( -eq) True ( $true). That enables us to weed out the unlicensed users.

  • Значение лицензий [0]. ServiceStatus [8]. ProvisioningStatus свойство равно ( -eq) Disabled. В нашем интерпретации важной частью имя громоздкими свойства состоит в следующем.The value of the Licenses[0].ServiceStatus[8].ProvisioningStatus property is equal to ( -eq) Disabled. For our immediate purposes, the important part of this unwieldy property name is this:

    ServiceStatus[8]

    [8] Представляет номер индекса для Exchange Online. (Мы знаем, обратившись в таблице несколько минут назад). Что делать, если требуется найти всем пользователям, включенным для Скайп для бизнеса в Интернет? Также номер индекса для Скайп для бизнеса в Интернет — 5, мы используем следующий синтаксис:The [8] represents the index number for Exchange Online. (We know that from looking at the table a few minutes ago). What if we wanted to find all the users enabled for Skype for Business Online? Well, the index number for Skype for Business Online is 5, so we'd use this syntax:

    ServiceStatus[5]

    И так далее.Etc., etc.

    Заметим Licenses[0] указывает, план лицензирования, который нужно просмотреть. Поскольку домена в нашей тестовой среде имеет только один план лицензирования это не имеет значения намного. Однако предположим, что у нас пользователя, которому назначена лицензии из двух разных планы лицензирования. В этом случае Licenses[0] представляет первый план лицензирования и Licenses[1] представляет второй план лицензирования.Incidentally, Licenses[0] indicates the licensing plan that we want to look at. Since our test domain only has one licensing plan this doesn't matter much. But suppose we had a user who has been assigned licenses from two different licensing plans. In that case, Licenses[0] would represent the first licensing plan, and Licenses[1] would represent the second licensing plan.

    Чтобы найти лицензии, назначенные пользователю, и порядок, в котором они располагаются, выполните следующую команду:To find the licenses that are assigned to a user, and the order in which they are listed, run the following command:

    Get-MsolUser -UserPrincipalName <Account>  | Format-List DisplayName,Licenses
    

Вы видите, как это работает? Номер индекса для приложений Office профессиональный плюс — 4; Таким образом эта команда возвращает список всех пользователей, которые не были активированы для приложений Office профессиональный плюс:Do you see how this all works? The index number for Office Professional Plus is 4; therefore, this command returns a list of all the users who have not been enabled for Office Professional Plus:

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

А что делать, если мы хотели список пользователей, которые были включены в Office профессиональный плюс? Если вы был включен, вашей ServiceStatus будет PendingInput или Success; Другими словами, будет вашей ServiceStatus не равенства ( -ne) Disabled. Это означает, что все, нужно сделать — вступили в нашей предыдущей команды и заменить -eq оператор для -ne оператор:And what if we wanted a list of users who have been enabled for Office Professional Plus? Well, if you've been enabled then your ServiceStatus will either be PendingInput or Success; in other words, your ServiceStatus will not equal ( -ne) Disabled. That means all we have to do is take our previous command and swap out the -eq operator for the -ne operator:

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

Как говорят переходит, что код, вероятно, не будут win много Конкурсы преимущество. И достоверность сказали, код может получить еще больше запутанную. Например предположим, что для просмотра для пользователей, которым разрешена для обеих Скайп для бизнеса в Интернет и Exchange Online:As the saying goes, that code probably won't win many beauty contests. And, truth be told, the code can get even more tangled. For example, suppose we want to look for users who have been enabled for both Skype for Business Online and Exchange Online:

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

Но не выполнения слишком много о как вас, который может иметь вид: важно, что с относительно небольшим минимальными усилиями, можно извлечь эти сведения. Не удается получить в эти же сведения, с помощью центра администрирования Office 365? Теоретически, Да, но, в практике, нет. Чтобы получить в эти же сведения, с помощью центра администрирования Office 365 необходимо просмотреть сведения о лицензировании для каждого пользователя, один пользователь за раз и затем вручную отслеживание пользователей, которые включены для X и пользователей, которые еще не. Который будет работать, но давайте честно: при наличии более чем 10 или 11 пользователей не понадобятся для этого. Это слишком утомительным и занимать много времени.But don't worry too much about how gnarly that might look: the important thing is that, with relatively little effort, you can retrieve this information. Can't you get at this same information using the Office 365 admin center? In theory, yes but, in practical terms, no. To get at this same information using the Office 365 admin center you'd need to look at the licensing information for each user, one user at a time, and then manually keep track of who'd been enabled for X and who hadn't. That would work, but let's be honest: if you have more than 10 or 11 users, you're not going to do this. It's way too tedious and time-consuming.

Конечно, являющийся зачем нам Windows PowerShell: Windows PowerShell позволяет сохранить вы утомительные и длительные задачи, например.Which, of course, is why we have Windows PowerShell: Windows PowerShell helps save you from tedious and time-consuming tasks such as that.

Ниже приведен пример команды для просмотра сведений о службе для указанного набора служб, как определено в своих лицензий и ServiceStatus индексов для подписки на Office 365 E5:Here's an example of a command for viewing service information for a specified set of services as identified by their Licenses and ServiceStatus indexes for an Office 365 E5 subscription:

Get-MsolUser | Select-Object DisplayName, @{Name="Sway";Expression={$_.Licenses[0].ServiceStatus[12].ProvisioningStatus}}, @{Name="Teams";Expression={$_.Licenses[0].ServiceStatus[7].ProvisioningStatus}}, @{Name="Yammer";Expression={$_.Licenses[0].ServiceStatus[20].ProvisioningStatus}}, @{Name="AD RMS";Expression={$_.Licenses[0].ServiceStatus[19].ProvisioningStatus}}, @{Name="OfficePro";Expression={$_.Licenses[0].ServiceStatus[21].ProvisioningStatus}}, @{Name="Skype";Expression={$_.Licenses[0].ServiceStatus[22].ProvisioningStatus}}, @{Name="SharePoint";Expression={$_.Licenses[0].ServiceStatus[24].ProvisioningStatus}}, @{Name="Exchange";Expression={$_.Licenses[0].ServiceStatus[23].ProvisioningStatus}} | ConvertTo-CSV > "C:\Service Info.csv"

Эта команда создает CSV-файла, все пользователи, а также их состояние службы для указанного набора служб (группы, Yammer, службы управления правами, OfficePro, Скайп, SharePoint и Exchange).This command creates a CSV file showing all of your users and their service statuses for a specified set of services (Teams, Yammer, AD RMS, OfficePro, Skype, SharePoint, and Exchange).

Примечание

Можно получить список служб в подписке из (Get-MsolUser -UserPrincipalName <user account UPN>).Licenses[<LicenseIndexNumber>].ServiceStatus команды. В выходных данных сначала нумерация индексов службы с 0. Предыдущая команда всего лишь пример. Номера индекса для служб может изменяться со временем.You can get the list of services in a subscription from the (Get-MsolUser -UserPrincipalName <user account UPN>).Licenses[<LicenseIndexNumber>].ServiceStatus command. In the output, you start numbering the service indexes with 0. The preceding command is just an example. Index numbers for services can change over time.

См. такжеSee also

Сведения об управлении пользователями с помощью Office 365 PowerShell см. в следующих статьях:See the following additional topics about managing users with Office 365 PowerShell:

Дополнительные сведения о командлетах, использованных в этих процедурах, см. в указанных ниже статьях.For more information about the cmdlets that are used in these procedures, see the following topics:

Никогда не работали с Office 365?New to Office 365?