Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell - Split-Funktion

Mitglied: EarthShaker

EarthShaker (Level 1) - Jetzt verbinden

14.06.2019 um 17:00 Uhr, 325 Aufrufe, 5 Kommentare

Guten Tag,

ich würde gerne folgendes Ziel erreichen. Auslesen aller Zeichen vor dem @-Zeichen.

Beispiel
Ausgangswert Ergebnis
User1@firma.de ---> User1
User2@firma.de ---> User2


Für einen einzelnen User klappt das auch folgendermaßen:

$mail=(get-aduser user1 -Properties mail).mail
$mail.Split("@")[0]

Ergebnis=user1

Allerdings schaffe ich es nicht, dies auf ein Array zu übertragen. Nach meinen Recherchen müsste ich hier mit Out-String arbeiten, damit ich überhaupt die Splitmethode anwenden kann.

$mails=(get-aduser -Filter * -Properties mail).mail | Out-String


Wenn ich dann versuche mit einer Schleife zu arbeiten, wende ich die Split-Methode nur noch auf eine Mailadresse an, das bringt mich leider nicht weiter.

foreach ($mail in $mails) {

$mail.Split("@")[0]

}

Man muss ehrlicherweise sagen, dass ich bezüglich Powershell noch ganz am Anfang stehe und meistens nur einfache Get-Befehle abfeuere.
Ich erwarte keine fertige Lösung, aber ein Tipp in welche Richtung ich suchen sollte, wäre super.

Vielen Dank
Mitglied: certifiedit.net
14.06.2019 um 17:02 Uhr
Ich glaube, du brauchst einfach folgenden Ablauf

Schleifenstart
Schleifenabhandlung/Task (siehe Oben)
Ausgabe (Datenarray bzw eben nach Wunsch)

Damit solltest du jew. autarke Tasks haben, die in Summe alles erledigen.
Bitte warten ..
Mitglied: LeeX01
LÖSUNG 14.06.2019, aktualisiert um 18:04 Uhr
Hi,

damit hast du dann doch bereits alle Adressen in dem Objekt $mails

$mails=(get-aduser -Filter * -Properties mail).mail

und komplett dann so (z.b. mit Ausgabe auf der Console). Du müsstest dann halt noch die User abfangen bei denen das Attribut nicht gesetzt ist.

$mails=(get-aduser -Filter * -Properties mail).mail
foreach ($mail in $mails) {
write-host $mail.Split("@")[0]
}

Grüße
Bitte warten ..
Mitglied: emeriks
LÖSUNG 17.06.2019, aktualisiert um 09:37 Uhr
Hi,
es geht u.U. auch ohne Schleife, wenn man einfach ein fixes Kriterium findet, um Prefix von Suffix eindeutig zu unterscheiden. Eins könnte "frima.de" sein.

01.
(get-aduser -filter {mail -like "*"} -properties mail).mail.split("@") | ?{!$_.Endswith("firma.de")}
E.

Edit:
Wobei man dann sogar koplett darauf spekulieren könnte.
01.
(get-aduser -filter {mail -like "*"} -properties mail).mail.replace("@firma.de","")
Bitte warten ..
Mitglied: EarthShaker
17.06.2019 um 09:18 Uhr
Komisch, das liefert mir nun das korrekte Ergebnis. Muss ich nicht verstehen.

01.
$mails=(get-aduser -Filter {mail -like "*"} -Properties mail).mail
02.
foreach ($mail in $mails) {
03.
write-host $mail.Split("@")[0]
04.
}
Wenn es nur eine Firma geben würde, würde ich definitiv diesen Weg bevorzugen

01.
get-aduser -filter {mail -like "*"} -properties mail).mail.replace("@firma.de","")

Eine Frage hätte ich noch. Das Skript soll den Wert in ein ExtensionAttribute schreiben und dies periodisch wiederholen.
(Neue User, Änderung der Emailadresse etc.)

Würdet Ihr die Werte immer hart überschreiben, oder erst überprüfen, ob der Wert bereits korrekt gesetzt ist ?
Braucht es für solch simple Aktionen Logfiles? (Was sollte schon schief gehen? ^^)
Bitte warten ..
Mitglied: emeriks
LÖSUNG 17.06.2019, aktualisiert um 09:41 Uhr
Zitat von EarthShaker:
Würdet Ihr die Werte immer hart überschreiben, oder erst überprüfen, ob der Wert bereits korrekt gesetzt ist ?
Wenn Du "mail" bereits auslesen konntest, dann wurde es doch bereits "korrekt gesetzt". Dann kannst Du diesen Wert also auch in ein anderes Attribut schreiben.

Braucht es für solch simple Aktionen Logfiles? (Was sollte schon schief gehen? ^^)
Wie sollen wir das für Dich beantworten? Das hängt doch von den Anforderungen ab, welche man an diese Lösung stellt oder gestellt bekommt.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell - Regex - Split
gelöst Frage von internet2107Batch & Shell1 Kommentar

Hallo zusammen. Ich lese Variablen über eine .ini Datei ein. Innerhalb der .ini-Datei sieht es dann als Beispiel so ...

Batch & Shell

Powershell: Parameter einer Funktion soll eine Funktion aufrufen

gelöst Frage von SaschaRDBatch & Shell3 Kommentare

Hallo zusammen, mein Ziel ist es die Zeitdauer einer Prozesses zu ermitteln. Dafür ist die folgende Funktion zuständig:Leider wird ...

Batch & Shell

Powershell Funktion Ausgabe in Datei

gelöst Frage von schicksalBatch & Shell2 Kommentare

Hallo alle zusammen, Ich habe hier ein kleines Script, dessen Ausgabe würde ich gerne in eine Logdatei speichern. Ich ...

Entwicklung

Powershell Funktion Pipeline oder nicht

gelöst Frage von H41mSh1C0REntwicklung12 Kommentare

Hi@All, ich steh grad vor der Entscheidung ob pipeline oder nicht. Momentan führe ich Scripte immer Blockweise aus den ...

Neue Wissensbeiträge
Voice over IP

Telekom Umstellung von ISDN Anlagenanschluss auf IP-Telefonie

Erfahrungsbericht von NixVerstehen vor 2 TagenVoice over IP6 Kommentare

Hallo zusammen, nachdem nun vor ein paar Tagen die zwangsweise Umstellung von ISDN auf IP-Telefonie problemlos über die Bühne ...

Apple

Apple Special Event vom 10.09.2019: Arcade, TV+, iPad und iPadOS, Watch und iPhone 11

Information von Trontur vor 4 TagenApple2 Kommentare

Hier könnt ihr euch die Keynote von Tim Cook auf dem Apple Special Event vom 10.09.2019 anschauen: September Event ...

LAN, WAN, Wireless

Das RIPE ist quasi endgültig leer was IPv4 angeht

Information von LordGurke vor 11 TagenLAN, WAN, Wireless8 Kommentare

Das RIPE teilt mit, dass sie erwarten, Ende des Jahres keine /22-IPv4-Allocations (1.024 Adressen) mehr vergeben zu können. Dann ...

Verschlüsselung & Zertifikate

Ein besserer Weg zur Delegation of Control für Bitlocker Recoverykeys

Anleitung von DerWoWusste vor 11 TagenVerschlüsselung & Zertifikate

Will man Supportmitarbeitern ermöglichen, Bitlocker-Recoverykeys auszulesen, dann bietet sich eigentlich der Delegation of Control Wizard an. Ich zeige zunächst ...

Heiß diskutierte Inhalte
Hyper-V
Umzug Hyper-V mit VM in anderen Netzwerkabschnitt
gelöst Frage von keine-ahnungHyper-V9 Kommentare

Moin at all, ich habe leider den Freitag verpennt - daher meine obligate Freitagsfrage erst jetzt Ich habe einen ...

Windows 10
Windows 10 ( upgrade per media creator von win7 ) hat keine Systemwiederherstellung
gelöst Frage von knirschkeWindows 108 Kommentare

Hallo ! Habe letztlich mein Win7 auf Win10 aufgepeppt per Media Creator. Ging - obzwar recht spät - ganz ...

Windows Server
Drucker auf dem Terminalserver 2016 via Printserver wird nicht angezeigt
Frage von EchterHansenWindows Server7 Kommentare

Moin Moin, ich habe hier zwei 2016er Terminalserver und einen 2016er Printserver, auf dem ca. 10 RICOH-Drucker Typ 4. ...

Netzwerkgrundlagen
PFSense OPENVPN, kein Zugriff auf WAN
Frage von AK-47.2Netzwerkgrundlagen6 Kommentare

Liebes Forum, ich habe leider weder in diesem Forum noch im Internet eine Lösung zu MEINEM Problem gefunden, oftmals ...