Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Office 365]Overzicht per gebruiker

Pagina: 1
Acties:

  • lolgast
  • Registratie: November 2006
  • Laatst online: 19:43
Ik heb een vraag. Wij gebruiken bij meerdere klanten een Office 365 omgeving en deze groeien (gelukkig :)) steeds verder. Steeds vaker krijgen we de vraag om een overzicht van alle e-mailadressen per gebruiker aan te leveren. Ik ben al een hele tijd aan het stoeien (ben geen powershell guru..), maar ik kom er niet uit om dit in een mooi overzicht te doen. Om alle adressen te krijgen gebruik ik nu
code:
1
Get-Mailbox | Select -Expand EmailAddresses Alias

Nadeel van deze code is dat alle aliassen onder elkaar staan en ik zelf per gebruiker moet kijken welke ook alweer bij wie hoort.
Een andere code die ik heb is
code:
1
Get-Mailbox | FL name, @{name="count";expression={[array]($_.EmailAddresses).Count}},EmailAddresses

maar die breekt de regels af, waardoor ik ze niet allemaal zie.

Is hier iemand die bovenstaande al wel overzichtelijk heeft gekregen? Wat ik het "liefst" zie is een code die het volgende doet:
Gebruiker1Gebruiker2Gebruiker3
Alias1Alias1Alias1
Alias2Alias2Alias2

  • lolgast
  • Registratie: November 2006
  • Laatst online: 19:43
Hij ziet er op zich goed uit, maar ik loop vast bij ... | foreach{
Geeft het volgende aan
code:
1
2
3
4
5
6
foreach : You cannot call a method on a null-valued expression.
At C:\Users\sstokman\Desktop\aliasses.ps1:1 char:120
+ ... ze Unlimited | foreach{
+                    ~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [ForEach-Object], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull,Microsoft.PowerShell.Commands.ForEachObjectCommand


Ik gebruik de volgende code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
get-mailbox -Filter {EmailAddresses -notlike '*X400:*' -and EmailAddresses -notlike '*X500:*'} -ResultSize Unlimited | foreach{

  $host.UI.Write("Blue", $host.UI.RawUI.BackGroundColor, "`nUser Name: " + $_.DisplayName+"`n")

  for ($i=0;$i -lt $_.EmailAddresses.Count; $i++)
  {
     $address = $_.EmailAddresses[$i]
     
     $host.UI.Write("Blue", $host.UI.RawUI.BackGroundColor, $address.AddressString.ToString()+"`t")
  
     if ($address.IsPrimaryAddress)
     { 
     $host.UI.Write("Green", $host.UI.RawUI.BackGroundColor, "Primary Email Address`n")
     }
    else
    {
     $host.UI.Write("Green", $host.UI.RawUI.BackGroundColor, "Alias`n")
     }
  }
 }

En dan houdt het bij mij op :X Ben aan het zoeken, maar heb eigenlijk gewoon de kennis niet om dit met goed fatsoen te troubleshooten.

[ Voor 0% gewijzigd door lolgast op 25-06-2014 12:11 . Reden: Woordje vergeten.. :) ]


  • Oogje
  • Registratie: Oktober 2003
  • Niet online
Ff heel snel uit m'n hoofd:

Bij een foreach hoort een waarde uit een reeks waardes.

Dus zoiets als $mailboxen = get-mailbox etc

En dan foreach $mailbox in $mailboxen { etc

[ Voor 11% gewijzigd door Oogje op 25-06-2014 12:47 ]

Any errors in spelling, tact, or fact are transmission errors.


  • wagenveld
  • Registratie: Februari 2002
  • Niet online
Gewoon even de loze enters weghalen, werkt prima hier.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 19:43
Nja dan zal het wel aan mij liggen ;)

Ik krijg een, volledig willekeurige, lijst met gebruikers te zien. Lang niet allemaal en ook niet alle gebruikers voordat hij naar de volgende letter van het alfabet gaat. Verder zie ik niets
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
User Name: User 1

User Name: User 2

User Name: User 5

User Name: User 9

User Name: User 10
foreach : You cannot call a method on a null-valued expression.
At line:1 char:120
+ ... ze Unlimited | foreach{
+
      + CategoryInfo          : InvalidOperation: (:) [ForEach-Object], RuntimeException
      + FullyQualifiedErrorId : InvokeMethodeOnNull,Microsoft.PowerShell.Commands,ForEachObjectCommand

Maar zal het topic hier verder niet mee vervuilen, maak dadelijk wel even een nieuwe aan. Bedankt voor het meedenken in ieder geval :)

  • _H_G_
  • Registratie: September 2002
  • Laatst online: 20-11 10:50
Ik zie nog geen nieuwe post, dus ik reageer hier even.

Ik krijg dezelfde foutmelding. Zover ik kan zien is $address een String. Een String heeft geen eigenschap "AddressString" of "IsPrimaryAddress".

Dat het bij wagenveld wel werkt is mij een raadsel :)

Ik heb dat even weggehaald. Zou je kunnen proberen:
code:
1
2
3
4
5
6
7
8
get-mailbox | foreach {
  $host.UI.Write("Blue", $host.UI.RawUI.BackGroundColor, "`nUser Name: " + $_.DisplayName + " ")
  for ($i=0;$i -lt $_.EmailAddresses.Count; $i++)
  {
     $address = $_.EmailAddresses[$i]
     $host.UI.Write("Green", $host.UI.RawUI.BackGroundColor, $address + " ")
  }
}

  • wagenveld
  • Registratie: Februari 2002
  • Niet online
Ah, had het alleen even snel on premise getest hier.

  • lolgast
  • Registratie: November 2006
  • Laatst online: 19:43
_H_G_ schreef op woensdag 25 juni 2014 @ 14:31:
Ik zie nog geen nieuwe post, dus ik reageer hier even.

Ik krijg dezelfde foutmelding. Zover ik kan zien is $address een String. Een String heeft geen eigenschap "AddressString" of "IsPrimaryAddress".

Dat het bij wagenveld wel werkt is mij een raadsel :)

Ik heb dat even weggehaald. Zou je kunnen proberen:
code:
1
2
3
4
5
6
7
8
get-mailbox | foreach {
  $host.UI.Write("Blue", $host.UI.RawUI.BackGroundColor, "`nUser Name: " + $_.DisplayName + " ")
  for ($i=0;$i -lt $_.EmailAddresses.Count; $i++)
  {
     $address = $_.EmailAddresses[$i]
     $host.UI.Write("Green", $host.UI.RawUI.BackGroundColor, $address + " ")
  }
}
Die werkt top inderdaad, bedankt _/-\o_
Pagina: 1