chrisdynamite
Goto Top

Unlimited-Schalter in Powershell überwinden

Hallo zusammen,

Per Code suche ich alle Usermailboxes, bei welchen Herr oder Frau sowie der Vorname nicht leer ist. Testweise gebe ich mir nur die Anzahl der Aufzählungen aus. Ich komme jedoch nicht über den Wert 1000, egal wie ich es drehe und wende.

Kann mir bitte jemand eine Hilfestellung geben?

Danke und Grüße

Chris

$i= 0
$Entries = (get-mailbox -ResultSize "unlimited" | where {$_.RecipientTypeDetails -eq "Usermailbox"}).alias | get-user | where {$_.Title -ne $null -and $_.Firstname -ne $null}  
foreach ($Entry in $Entries) 
{
    $i++
    write-host($i) -ForegroundColor Red
}
Write-Host("Summe: " + $i) -ForegroundColor Green  

Content-ID: 438436

Url: https://administrator.de/forum/unlimited-schalter-in-powershell-ueberwinden-438436.html

Ausgedruckt am: 22.12.2024 um 21:12 Uhr

St-Andreas
St-Andreas 09.04.2019 um 14:12:54 Uhr
Goto Top
Ich bin jetzt nicht der Skripting Profi, aber wäre es nicht sinnvoller die Anzahl über $Entries.length auszugeben?
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:16:38 Uhr
Goto Top
mit Sicherheit, jedoch brauche ich das ja nur um testweise zu ermitteln ob die schleife überhaupt durchgeführt wird.
139374
139374 09.04.2019 aktualisiert um 14:20:23 Uhr
Goto Top
Weg mit den Anführungszeichen um "Unlimited"
Manual lesen sollte man eigentlich erwarten können
https://docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/ge ...
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:21:02 Uhr
Goto Top
das habe ich auch bereits versucht.
139374
139374 09.04.2019 aktualisiert um 14:22:35 Uhr
Goto Top
Dann habt ihr im Exchange im Throttling die maximale Anzahl an EWS Anfragen begrenzt.
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:23:45 Uhr
Goto Top
Du würdest also auch sagen der Code stimmt?
139374
139374 09.04.2019 aktualisiert um 14:40:03 Uhr
Goto Top
Bis auf die extrem ##### Schleifen-Zählung um die Anzahl zu ermitteln, ja. 😂😂😂
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:27:06 Uhr
Goto Top
Was ein sachliches Forum. Ich liebe es.
139374
139374 09.04.2019 aktualisiert um 14:43:05 Uhr
Goto Top
St-Andreas
St-Andreas 09.04.2019 um 14:29:35 Uhr
Goto Top
Dafür brauchst Du doch keine Schleife aus dem Basicprogrammiergrundkurs. Wenn die Länge ungleich Null ist dann sollte da ja was drin sein.
139374
139374 09.04.2019 aktualisiert um 14:34:43 Uhr
Goto Top
Vielleicht hat er sich mit der Schleife ja nur in der Zwischenzeit die Schuhe binden wollen face-smile.

Chris : denk doch mal nach, du speicherst das Ergebnis in einer Variablen als Array, was bringt dir dann die Schleife?? Genau, gar nichts. Denn die Anzahl steht in der Property Length der Array-Variablen, also vollkommen überflüssiger Overhead.
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:34:10 Uhr
Goto Top
Was soll die Diskriminierung? Ich habe eine Antwort erbeten und keine Besserwisserei.
St-Andreas
St-Andreas 09.04.2019 um 14:35:28 Uhr
Goto Top
Liegt denn Dein Problem in der Abfrage, oder in der Schleife?
139374
139374 09.04.2019 aktualisiert um 14:36:16 Uhr
Goto Top
Hä? Die hast du bekommen, stell dein Throttling passend ein, aber das scheinst du ja zu ignorieren.
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:36:12 Uhr
Goto Top
Die Schleife ist mir doch egal. Ich brauche einfach eine Anzahl sagen wir 320
So weiß ich dass die Abfrage richtig ist.
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:36:43 Uhr
Goto Top
Danke. Den Rest kannst du dir trotzdem sparen.
St-Andreas
St-Andreas 09.04.2019 aktualisiert um 14:37:26 Uhr
Goto Top
Mach Dich mal schlau was "Diskriminierung" wirklich bedeutet.
Wenn Du das hier als "diskriminierend" bezeichnest, dann verharmlost Du Diskriminierung.
139374
139374 09.04.2019 aktualisiert um 14:40:55 Uhr
Goto Top
Zitat von @ChrisDynamite:

Die Schleife ist mir doch egal. Ich brauche einfach eine Anzahl sagen wir 320
So weiß ich dass die Abfrage richtig ist.
Die Antwort hat dir StAndreas schon gegeben
$entries.Length
Oder
$entries.Count
Liefert dir die Anzahl der passenden User aus der Array-Variablen

Ansonsten hast du deine Frage nicht richtig gestellt das wir sie passend beantworten können.

Erst willst du mehr wie 1000 haben und jetzt 320??? Überdenke deine Fragestellung !
certifiedit.net
certifiedit.net 09.04.2019 aktualisiert um 14:41:37 Uhr
Goto Top
Hallo @139374,

da hier einige Meldungen hereinkamen, dass du Diskriminierend und beleidigend seist, bitte unterlass die Beleidigungen, zum Thema Diskriminierung sollte sich der Melder allerdings nochmals etwas eigenes Wissen aneignen. Der Hinweis, dass auch selbst etwas erarbeitet werden darf ist nicht unbedingt fehl am Platz.

VG
ChrisDynamite
ChrisDynamite 09.04.2019 um 14:41:46 Uhr
Goto Top
Alles ist gut. Ich arbeite jetzt weiter. face-smile
ChrisDynamite
ChrisDynamite 09.04.2019 um 16:21:51 Uhr
Goto Top
Getreu dem Motto: "Sei du selbst die Veränderung, die du dir wünschst für diese Welt." hier meine Lösung.
Übrigens das Throttling war nicht schuld, sondern der von mir zunächst falsche Code.

get-mailbox -ResultSize unlimited | where {$_.RecipientTypeDetails -eq "Usermailbox"} | get-user | where {$_.Firstname -ne $null -and $_.Lastname -ne $null -and $_.Title -ne $null}  

So erhalte ich nun alle Mailboxes, welche über 2 Commandos gespannt gefiltert wird.

Danke für... naja Danke halt face-smile
Daemmerung
Daemmerung 09.04.2019 um 18:12:26 Uhr
Goto Top
Hallo Kollege,

mit Where-Object" filterst du clientseitig. Versuch deinen Filter direkt über das CmdLet "Get-Mailbox" anzuwenden, mittels Parameter "-Filter". Damit filterst du direkt serverseitig und hast das Problem mit der Limitierung größtenteils eingedämmt.

Viele Grüße
Toni