Office 365 Powershell - Exportar usuário, tipo de licença e campo da empresa para o arquivo csv

2

Preciso exportar nome de usuário ou endereço de e-mail (não importa qual), empresa (do campo da empresa na guia organização em uma conta de usuário do console administrativo do Exchange) e tipo de licença (por exemplo, troca e1 online, troca de quiosque online etc ...)

Eu posso exportar os dois valores em duas declarações em dois arquivos separados, mas isso não me faz muito bem.

Eu posso exportar o nome de usuário e o tipo de licença com o seguinte:

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

E posso obter os valores da empresa com o seguinte:

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

Alguém em outro fórum sugeriu isso -

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

Parece que isso deve funcionar, mas não exibe nenhuma informação de licença no meu powershell, está em branco. Também não sei como exportar isso para um arquivo csv.

Qualquer ajuda seria apreciada. Obrigado.

    
por ASGJim 21.06.2013 / 19:28

6 respostas

4

Isso exportará os usuários licenciados com o tipo de licença

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
    
por 22.12.2014 / 20:22
4

Correção leve para suportar os comandos mais recentes:

  • A linha 4 foi atualizada para "$ UserInfo = Get-MSOLUser -UserPrincipalName $ msolUser.UserPrincipalName"
  • Linha 2: adicionar todos os parâmetros
$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

Funcionou perfeitamente para mim.

    
por 22.06.2013 / 01:20
3

No primeiro exemplo, você seleciona a propriedade AccountSkuId e, no segundo, você escolhe AccountSKU.SkuPartNumber (o que eu tenho certeza que não existe).

O seu script / one-liner também não é muito fácil de ler, e quanto a isto:

$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

Muito mais fácil de obter uma visão geral e manter.

    
por 21.06.2013 / 20:31
0

Esse script funcionou muito bem para mim, mas não consegui exportar diretamente para o CSV, então usei copiar / colar no Excel.

Get-MsolUser -all | Where-Object {$_.isLicensed -eq "True"} | Select UserPrincipalName,DisplayName,Licenses | Out-GridView
    
por 14.12.2015 / 20:41
0

Bem, como você não conhece o powershell ou o script, você deve automatizar o registro do Export Powerhell inteiro. processo com instrumentos padrão do Windows. Existem muitas ferramentas de terceiros que podem ajudar. tente procurar por eles. isso tornará seu trabalho mais fácil

    
por 31.03.2016 / 05:09
0

Acabei de testar isso e é PERFEITO MUITO OBRIGADO POR SUA AJUDA!

$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
    
por 18.11.2016 / 16:38