rme1985
Goto Top

Powershell string von links abschneiden

Guten Morgen,

ich versuche mit dem Befehl

$user = Get-Mailbox | get-mailboxfolderstatistics


Die Pfade alle Mailboxen auszulesen.

Aus den Pfaden interessiert mich nun das Feld Identity

$user2 = $user.identity


Nun ist es so, dass ich alles vor dem Benutzernamen weghaben möchte. Der Vorteil dabei ist, das letzte Zeichen vor dem Benutzernamen ist ein "\"

contoso.com/Kunden/Mail/Ressourcen/Info-Postfach3\Versions


Es soll also nur info-Postfach3\Versions überbleiben, der restliche Text soll weg.

Das versuche ich jetzt mit

$user3 = $user2.replace("/"," ")  

Aber das geht nicht "keine Methode mit den Namen "replace" enthält....." ist dann die Fehlermeldung.

Auch mit .split komme ich nicht weiter.

Hat jemand von Euch einen Tipp für mich, wie ich da weiterkommen kann?

Herzlichen Dank

Content-Key: 660562

Url: https://administrator.de/contentid/660562

Printed on: April 18, 2024 at 12:04 o'clock

Mitglied: 147669
147669 Mar 08, 2021 updated at 11:36:28 (UTC)
Goto Top
$user.identity.toString().split("/")[-1]  
Member: RME1985
RME1985 Mar 08, 2021 at 11:37:11 (UTC)
Goto Top
Sorry aber funktioniert nicht, dann kommt bei mit System.Object zurück
Mitglied: 147669
147669 Mar 08, 2021 updated at 11:41:21 (UTC)
Goto Top
Lass dir mal die Eigenschaften des Typs anzeigen und poste sie hier, habe gerade kein EX zur Hand
$user.identity | fl *
bzw.
$user.identity | gm *
Member: RME1985
RME1985 Mar 08, 2021 at 11:42:36 (UTC)
Goto Top
Name MemberType Definition
---------- ----------
Equals Method bool Equals(System.Object obj)
GetBytes Method byte GetBytes()
GetHashCode Method int GetHashCode()
GetType Method type GetType()
RedactPii Method System.Object RedactPii([ref] string raw, [ref] string redacted), System.Object IPiiRedactable.RedactPii([ref] string raw, [ref] string redacted)
ToString Method string ToString()


Bitte schön face-smile
Mitglied: 147669
147669 Mar 08, 2021 updated at 11:54:54 (UTC)
Goto Top
Ja klar, das Ergebnis von Get-MailboxFolderStatistics ist a ja ein Array mit sämtlichen Foldern der Mailbox also musst du entweder den Index des Folders angeben oder eben nach Name des Ordners filtern face-wink
$user | ?{$_.Name -eq "Calendar"} | %{$_.Identity.toString().split("/")[-1]}  
Wozu du aber die Identity parsen willst ?? Den Namen der Mailbox bekommst du ja schon mit Get-Mailbox frei Haus geliefert face-wink.
Ist also überflüssig ---> Guckst du hier:
Get-Mailbox -PipelineVariable mailbox | Get-MailboxFolderStatistics | select @{n='Mailbox';e={$mailbox.Name}},FolderPath
Member: Doskias
Doskias Mar 08, 2021 at 11:48:45 (UTC)
Goto Top
Moin

Also folgendes:
$test="Doskias"  
$test.Substring(3)
$test.Substring(0,3)
$test.Substring(3,2)

Zeile 2 gibt dir kias zurück
Zeile 3 gibt dir Dos
Zeile 4 gibt dir ki zurück

mit $user2.substring(x), wobei x die Anzahl der auszulassenden Zeichen ist, solltest du weiterkommen.

Gruß
$test .... äh Doskias ;)
Member: RME1985
RME1985 Mar 08, 2021 at 11:55:36 (UTC)
Goto Top
Ich wollte die Ausgabe mit Get-MailboxFolderPermission User:\Ordner und den Berechtigungen weiter verarbeiten.

Su sagtest, die Mailbox bekomme ich geliefert wo denn das?

Im Array steht die Mailbox so nicht drin.

Ich wollte mit das jetzt einfach machen und die Identity nutzen.

ist mein Gedankengang da Falsch?
Mitglied: 147669
Solution 147669 Mar 08, 2021 updated at 11:58:07 (UTC)
Goto Top
Guckst du mein oben ergänztes Beispiel face-wink...
Im Array steht die Mailbox so nicht drin.
Die Mailbox kannst du ganz einfach über die Pipeline drücken und nutzen face-wink.
Get-Mailbox -PipelineVariable mailbox | Get-MailboxFolderStatistics | select @{n='Mailbox';e={$mailbox.Name}},FolderPath  
Das String Gedröhns ist also vollkommen überflüssig!
Member: RME1985
RME1985 Mar 08, 2021 at 11:56:30 (UTC)
Goto Top
Du das hilft leider gar nicht, da der Ordnerpfad ja immer abweichend ist ;)

ich muss etwas haben, dass alles vor dem / abschneidet.
Member: RME1985
RME1985 Mar 08, 2021 at 11:58:39 (UTC)
Goto Top
Ja genau das hier habe ich gesucht face-smile

Get-Mailbox -PipelineVariable mailbox | Get-MailboxFolderStatistics | select @{n='Mailbox';e={$mailbox.Name}},FolderPath

Habe nur noch nie mit PipelineVariablen gearbeitet.

Jetzt muss ich nur noch den / in \ in der Folderpath umdrehen und dann passt das doch face-smile

Super vielen Dank face-smile
Mitglied: 147669
Solution 147669 Mar 08, 2021 updated at 12:07:14 (UTC)
Goto Top
Zitat von @RME1985:
Jetzt muss ich nur noch den / in \ in der Folderpath umdrehen und dann passt das doch face-smile
Brauchst du nicht wenn du direkt mit Get-MailboxFolder in der Pipe arbeitest face-wink
Get-Mailbox -PipelineVariable mailbox | select @{n='Mailbox';e={$mailbox.Name}},@{n='Permissions';e={$mailbox | Get-MailboxFolder -Recurse | Get-MailboxFolderPermission | select FolderName,User,AccessRights}}  
Member: RME1985
RME1985 Mar 08, 2021 at 18:33:33 (UTC)
Goto Top
Wofür ist denn dieser letzte Befehl gut?

Was ich gerade entdeckt hab, wir haben bei den Skripten ein weiteres Problem.

Wenn ein User Unterorder hat z.B. Posteingang\Intern oder sowas dann erfasst das Skript das nicht.