Назад | Перейти на главную страницу

Office 365 Powershell - экспорт пользователя, типа лицензии и поля компании в файл csv

Мне нужно иметь возможность экспортировать имя пользователя или адрес электронной почты (неважно какой), компанию (из поля компании на вкладке организации в учетной записи пользователя консоли администратора Exchange) и тип лицензии (например, обмен через Интернет e1, обменять онлайн-киоск и т.д ...)

Я могу экспортировать оба значения в двух операторах в два отдельных файла, но это не приносит мне особой пользы.

Я могу экспортировать имя пользователя и тип лицензии следующим образом:

Get-MSOLUser | % { $user=$_; $_.Licenses | Select {$user.displayname},AccountSKuid } | Export-CSV "sample.csv" -NoTypeInformation

И я могу получить ценности компании следующим образом:

Get-User | select company | Export-CSV sample.csv

Кто-то на другом форуме предложил это -

$index = @{}
Get-User | foreach-object {$index.Add($_.userprincipalname,$_.company)}
Get-MsolUser | ForEach-Object { write-host $_.userprincipalname, $index[$_.userprincipalname], $_.licenses.AccountSku.Skupartnumber}

Кажется, что он должен работать, но в моем PowerShell не отображается никакой информации о лицензии, он просто пустой. Также я не знал бы, как экспортировать это в файл csv.

Любая помощь будет оценена. Спасибо.

Небольшое исправление для поддержки новейших командлетов:

  • Строка 4 обновлена ​​до «$ UserInfo = Get-MSOLUser -UserPrincipalName $ msolUser.UserPrincipalName».
  • Строка 2: Добавить -Все параметры

$lines = @()    foreach($msolUser in (Get-MSOLUser -All))    {
   $UserInfo = Get-MSOLUser -UserPrincipalName $msolUser.UserPrincipalName
   foreach($license in $msolUser.Licenses)
   {
       $lines += New-Object PsObject -Property @{
                   "Username"="$($UserInfo.DisplayName)";
                   "Company"="$($UserInfo.Company)";
                   "AccountSKUID"="$($license.AccountSKUid)"
                 }
   }    }    $lines | Export-CSV C:\output.csv -NoTypeInformation

У меня это сработало отлично.

Это приведет к экспорту лицензированных пользователей с типом лицензии

Get-MsolUser -All |
  Where {$_.IsLicensed -eq $true } |
  Select DisplayName,UsageLocation,@{n="Licenses Type";e={$_.Licenses.AccountSKUid}},SignInName,UserPrincipalName,@{n="ProxyAddresses";e={$_.ProxyAddresses}} | 
  Export-Csv -Path C:\_Cory\Test.csv -NoTypeInformation

В первом примере вы выбираете AccountSkuId собственность, а во втором вы идете за AccountSKU.SkuPartNumber (которого, я уверен, не существует).

Ваш сценарий / однострочный текст тоже не так легко читать, как насчет этого:

$lines = @()
foreach($msolUser in (Get-MSOLUser))
{
    $UserInfo = Get-User -Identity $msolUser.UserPrincipalName
    foreach($license in $msolUser.Licenses)
    {
        $lines += @{
                    "Username"="$($UserInfo.DisplayName)";
                    "Company"="$($UserInfo.Company)";
                    "AccountSKUID"="$($license.AccountSKUid)"
                  }
    }
}
$lines | Export-CSV C:\output.csv -NoTypeInformation

Намного проще получить обзор и поддерживать.

Этот сценарий отлично работал у меня, но я не мог экспортировать его напрямую в CSV, поэтому я использовал копирование / вставку из в Excel.

Get-MsolUser -all | Where-Object {$_.isLicensed -eq "True"} | Select UserPrincipalName,DisplayName,Licenses | Out-GridView

Так как вы не знаете PowerShell или сценариев, вам следует автоматизировать все журнал экспорта powershell процесс со стандартными инструментами Windows. Есть много сторонних инструментов, которые могут помочь. попробуйте поискать их. это облегчит твою работу

Я только что протестировал это, и это ОТЛИЧНО СПАСИБО ЗА ВАШУ ПОМОЩЬ!

$lines = @()
foreach($msolUser in (Get-MSOLUser -ALL | where {$_.isLicensed -eq $true}))
{
    $UserInfo = Get-User -identity $msolUser.UserPrincipalName
    foreach($license in $msolUser.Licenses)
    {
        $lines += New-Object PsObject -Property @{
                    "Nom/Prenom"="$($UserInfo.DisplayName)";
                    "Societe"="$($UserInfo.Company)";
                    "AdressePrincipale"="$($UserInfo.UserPrincipalName)";
                    "Licences"="$($license.AccountSKUid)"
                  }
    }
}
$lines | Export-CSV C:\out1.csv -Delimiter ";" -Encoding Unicode