web-dev-qa-db-ja.com

Office 365 Powershell-ユーザー、ライセンスタイプ、会社フィールドをcsvファイルにエクスポート

ユーザー名または電子メールアドレス(どちらでも構いません)、会社(Exchange管理コンソールのユーザーアカウントの[組織]タブにある[会社]フィールドから)、およびライセンスの種類(例:Exchange Online e1を交換)をエクスポートできる必要がありますオンラインキオスクなどの交換...)

2つのステートメントの両方の値を2つの別々のファイルにエクスポートできますが、それはあまり役に立ちません。

ユーザー名とライセンスタイプを次のようにエクスポートできます。

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ファイルにエクスポートする方法もわかりません。

任意の助けいただければ幸いです。ありがとう。

2
ASGJim

最新のコマンドレットをサポートするためのわずかな修正:

  • 4行目が「$ UserInfo = Get-MSOLUser -UserPrincipalName $ msolUser.UserPrincipalName」に更新されました
  • 2行目:-Allパラメータを追加

$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

それは私には完璧に働きました。

4
ASGJim

これにより、ライセンスされたユーザーがライセンスタイプとともにエクスポートされます

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
4
Sunil Gupta

最初の例ではAccountSkuIdプロパティを選択し、2番目の例では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

概要を取得して維持するのがはるかに簡単です。

3

このスクリプトはうまく機能しましたが、CSVに直接エクスポートすることができなかったため、Excelへのコピー/貼り付けを使用しました。

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

私はこれをテストしました、そしてあなたの助けを本当にありがとう

$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
0
user386404

PowerShellやスクリプトを知らないので、標準のWindows機器で powershell Export log プロセス全体を自動化する必要があります。助けることができる多くのサードパーティのツールがあります。それらを検索してみてください。それはあなたの仕事を容易にします

0
Jose Hart