witness 0 Geschrieben 28. Oktober 2013 Melden Teilen Geschrieben 28. Oktober 2013 Hallo zusammen, sammle aktuell meine ersten Erfahrungen mit Power Shell. Möchte die Anzahl der User pro OU über ein Script darstellen. Habe folgendes gemacht: Get-ADUser -Filter * -SearchBase "OU=???,OU=???,DC=???,DC=???,DC=???,DC=???").Count Bekomme mit oben genanntem Befehl eine Zahl für die User in der OU angezeigt. Möchte nun die Zahl die ausgegeben wird in eine Textdatei importieren. Da ich natürlich mehrere OUs habe soll in der Textdatei die jeweilige OU mit der Zahl der User angezeigt werden. Werde im I.net nicht fündig. Würde mich über eine rasche Hilfestellung von Eurer Seite freuen... Dank & Gruß Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 28. Oktober 2013 Melden Teilen Geschrieben 28. Oktober 2013 Das ist einfach. Schau dir das mal an und falls du Verständnisprobleme hast, einfach melden ;) $colAverages = @() $ou = @("OU=???,OU=???,DC=???,DC=???,DC=???,DC=???") $ou | % { $objAverage = New-Object System.Object $objAverage | Add-Member -type NoteProperty -name OU -value $_ $objAverage | Add-Member -type NoteProperty -name Count -value (Get-ADUser -Filter * -SearchBase $_).count $colAverages += $objAverage } $colAverages Man erzeugt ein Array mit allen OU´s. In der Schleife wird ein CustomObject erzeugt, was die Objekte in ein 2tes Array bringt. Aufgabe für dich: $colAverages in eine Textdatei schreiben ;) Zitieren Link zu diesem Kommentar
witness 0 Geschrieben 28. Oktober 2013 Autor Melden Teilen Geschrieben 28. Oktober 2013 WOUW bin schwer begeistert !!! Bekomme nun in der PS die OU mit der jeweiligen Anzahl User angezeigt. Wie aber bekomme ich die Übersicht in eine Textdatei (möchte die Textdatei dann gerne per SMTP versenden) ? Vielleicht kannst du mir auch hier helfen? Muss halt von jetzt auf "vorgestern" das Ganze am Laufen haben - arbeite aber selber erst seit 2 Tagen mit der PS ;)) Dank & Gruß Stephan Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 28. Oktober 2013 Melden Teilen Geschrieben 28. Oktober 2013 send-mailmessage -to "User01 <user01@example.com>" -from "User02 <user02@example.com>" -subject "Test mail" -Body $colAverages Zitieren Link zu diesem Kommentar
witness 0 Geschrieben 28. Oktober 2013 Autor Melden Teilen Geschrieben 28. Oktober 2013 ...benötige keine Textdatei? Kann direkt ne Mail versenden? Denke er packt dann nur die Zusammenfassung vom "Body $colAverages" mit rein? - send-mailmessage to -> verstehe ich - "User01 user01@example.com>" - Empfängeradresse ? - "User02 <user02@example.com>" - ??? Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 28. Oktober 2013 Melden Teilen Geschrieben 28. Oktober 2013 Hier http://technet.microsoft.com/en-us/library/hh849925.aspx wird dir geholfen :) Einfach mal ausprobieren ;) Zitieren Link zu diesem Kommentar
witness 0 Geschrieben 29. Oktober 2013 Autor Melden Teilen Geschrieben 29. Oktober 2013 Danke für die Hilfestellung. Werde das heute prüfen und Rückmeldung geben.... Hi, Zwischenstand: habe mir die Seite einmal angeschaut und mich am Bsp. Example1 gehalten. Bekomme folgenden Fehler: Send-MailMessage : "System.Object[]" kann nicht in den Typ "System.String" konvertiert werden, der für den Parameter "Body" erforderlich ist. Die angegebene Methode wird nicht unterstützt. In Zeile:34 Zeichen:106 + ... t "Test" -Body $colAverages + ~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [send-MailMessage], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.SendMailMessage Denke hier können die Infos aus dem Array nicht verarbeitet werden. Führe gerade eine I.netrecherche durch.... Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 29. Oktober 2013 Melden Teilen Geschrieben 29. Oktober 2013 send-mailmessage -to "User01 <user01@example.com>" -from "User02 <user02@example.com>" -subject "Test mail" -Body $colAverages | Out-String Probier das mal. Wenn die funktion einen String verlangt, dann bekommt Sie auch einen ;) Zitieren Link zu diesem Kommentar
witness 0 Geschrieben 29. Oktober 2013 Autor Melden Teilen Geschrieben 29. Oktober 2013 Puuhh....komme mit dem Lesen vom PS Buch gar nicht mehr hinterher ;) Habe folgendes eingeben: send-mailmessage -to "User01 <meinvorname.meinnachname@firma.de>" -from "User02 <user02@example.com>" -subject "Test mail" -Body $colAverages | Out-String bekomme folgende Meldung: Send-MailMessage : "System.Object[]" kann nicht in den Typ "System.String" konvertiert werden, der für den Parameter "Body" erforderlich ist. Die angegebene Methode wird nicht unterstützt. In Zeile:35 Zeichen:119 + ... st mail" -Body $colAverages | Out-String + ~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [send-MailMessage], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.PowerShell.Commands.SendMailMessage Zitieren Link zu diesem Kommentar
mamamia 13 Geschrieben 29. Oktober 2013 Melden Teilen Geschrieben 29. Oktober 2013 Jetzt aber: send-mailmessage -to "User01@" -from "User02 <user02@example.com>" -SmtpServer "Servername" -subject "Test mail" -Body ($colAverages | Out-String) Einfach in Klammern setzen und los gehts.. Zitieren Link zu diesem Kommentar
witness 0 Geschrieben 29. Oktober 2013 Autor Melden Teilen Geschrieben 29. Oktober 2013 Davor hatte ich mehr Erfolg: send-mailmessage -from "User01 <user01@example.com>" -to "User02 <meinvorname.meinnachname@firma.de>" -subject "Sending the Attachment" -priority High -dno onSuccess, onFailure -smtpServer smtp.firma.de Da bekam ich folgende (vielversprechende Meldung): send-mailmessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.1 Client does not have permissions to send as this sender In Zeile:37 Zeichen:1 + send-mailmessage -from "User01 <user01@example.com>" -to "User02 meinvorname.meinnachname@firma.de>.... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [send-MailMessage], SmtpException + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage Hier ist allerdings nicht der Body integriert... Moment ;) hmm sieht besser aus: send-mailmessage : Postfach nicht verfügbar. Die Serverantwort war: 5.7.1 Client does not have permissions to send as this sender In Zeile:39 Zeichen:1 + send-mailmessage -to "User01 <meinvorname.meinnachname@firma.de>" -from "User02 <user02@exa ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (System.Net.Mail.SmtpClient:SmtpClient) [send-MailMessage], SmtpException + FullyQualifiedErrorId : SmtpException,Microsoft.PowerShell.Commands.SendMailMessage Werde mal mit meinem Exchangler sprechen...gebe Rückinfo.. ...wir haben die Permissions angepasst - es funzt !!! Muss allerdings optisch das Ganze noch aufbereiten: OU=??? 200 OU=??? 100 Die Zahlen werden etwas "versetzt" ausgegeben - werde hier noch einmal recherchieren...mal ganz herzlichen für deinen Einsatz !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Gruß Zitieren Link zu diesem Kommentar
Sunny61 806 Geschrieben 29. Oktober 2013 Melden Teilen Geschrieben 29. Oktober 2013 Die Zahlen werden etwas "versetzt" ausgegeben Evtl. findest Du hier Ansätze: http://www.powershellpraxis.de/index.php/grundlagen/formatierung-des-outputs Zitieren Link zu diesem Kommentar
witness 0 Geschrieben 30. Oktober 2013 Autor Melden Teilen Geschrieben 30. Oktober 2013 danke...werde mal schauen.... Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.