none
AD User auslesen mit Namen und passender Nummer

    Frage

  • Hallo ich bin komplett neu in dem Gebiet und möchte eigentlich folgendes tun.

    Aus einer AD Gruppe sollen der passende User mit seiner Festnetznummer und seiner Handynummer ausgelesen werden und das ganze in einer CSV gespeichert werden.

    Ich habe mich nun schlau gemacht und weiss das ich folgende sachen auslesen muss.

    Attribut:

    name, sAMAccountName, mobile, telephoneNumber

    So das ganze dann halt ebend aus einer bestimmten AD Gruppe z.B. SG-temp

    Hoffe ihr wisst was ich meine und brauche.?

    Besten Dank

    Donnerstag, 11. Januar 2018 08:12

Antworten

  • Oooops ... mein Fehler ... na hättest Du jetzt aber auch schon selber drauf kommen können ...  ;-) :-D
    $GroupName = Read-Host "Bitte geben sie den AD Gruppennamen ein"
    "Gruppe: $GroupName" | Out-File C:\csv\gruppe.txt
    Get-ADGroupMember -Identity $GroupName | 
        ForEach-Object{
            Get-ADUser $_.samaccountname -Properties mobile,telephoneNumber |
                Select-Object Name,mobile,telephoneNumber
        } -OutVariable ADGroupMemberList
      
    $ADGroupMemberList | Export-CSV -Path C:\csv\Telefonnummer.csv -Delimiter ';' -Encoding UTF8 -NoTypeInformation
    ... jetze aber ...

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    • Als Antwort markiert Patejoker Freitag, 12. Januar 2018 12:09
    Freitag, 12. Januar 2018 12:02

Alle Antworten

  • Hallo und willkommen.

    Hoffe ihr wisst was ich meine und brauche.?

    ... sowohl als auch ...  aber das hier ist kein Script-Selbsbedienungsladen, wo Du nur sagen musst, was Du brauchst und das dann geliefert bekommst. Du wirst schon selbst aktiv werden müssen.


    Wenn Du fertige Scripte suchst, könntest Du hier fündig werden: PowerShell Gallery oder hier: TechNet Gallery - resources for IT professionals.

    Auf lange Sicht lohnt es sich auf jeden Fall, PowerShell strukturiert und von Grund auf zu lernen: Microsoft Virtual Academy - Getting Started with Microsoft PowerShell.

    Mit Geduld und viel Glück könntest Du's auch hier mal versuchen: Microsoft Technet Script Center - Requests.

    Wenn Du gleich selbst loslegen möchtest, kannst Du Dir die cmdlet Get-ADGroup, Get-ADUser, Select-Object und Export-CSV mal ansehen. Damit solltest Du schon ziemlich weit kommen.

    Wenn Du schon Code geschrieben hast und damit nur Probleme hast, kannst Du gern hier den relevanten Teil posten (entsprechend formatieren bitte!) und die Fehlermeldungen, die Du eventuell bekommst oder das Problem, das Du damit hast und wir werden nach Kräften versuchen Dir zu helfen.

    Good luck and Have a lot of fun!


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 11. Januar 2018 08:55
  • So ich habe mich jetzt mal ein wenig ausprobiert und mache aber irgendwo was falsch

    Get-ADUser : Es wurde kein Positionsparameter gefunden, der das Argument "telephoneNumber" akzeptiert.
    In Zeile:1 Zeichen:58
    + Get-ADGroupMember "SG-TEMP" | select samaccountname | %{Get-ADUser $_.samaccoun ...
    +                                                          ~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Get-ADUser], ParameterBindingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADUser
    
    [PS] C:\Windows\system32>Get-ADGroupMember "SG-TEMP" | select samaccountname | %{Get-ADUser $_.samaccountname -Properti
    es mobile telephoneNumber} | %{write-output "$($_.mobile)" "$($_.name)" "$($_.telephoneNumber)"

    Wenn ich bei den Properties das telephoneNumber weglasse bekomm ich zwar Namen und Handy nummern aber ebend keine Telefonnummer.

    Donnerstag, 11. Januar 2018 12:57
  • Hallo,

    Du musst die Einzelnen Properties mit "," trennen.

    Get-AdUser -identity X -properties telephonenumber, mobile, sonstwasauchimmer
    MfG


    Donnerstag, 11. Januar 2018 13:14
  • Get-ADGroupMember -Identity 'SG-TEMP' | 
        ForEach-Object{
            Get-ADUser $_.samaccountname -Properties mobile,telephoneNumber |
                Select-Object -Property Name,mobile,telephoneNumber  
        }

    ... ein paar Tipps: Speziell hier im Forum und in Scripten solltest Du keine Aliasse und Abkürzungen benutzen. Es ist auch empfehlenswert, cmdlet-Namen und Parameternamen explizit auszuschreiben. Es hilft den Code leichter zu lesen und zu verstehen und im Zweifelsfall auch zu debuggen.

    Ebenfalls für die gute Lesbarkeit, solltest Du Deinen Code vernünftig umbrechen und einrücken. Es gibt da viele unterschiedliche Meinungen und Ansätze, aber es sollte wenigstens "aufgeräumt" aussehen. ... und bitte keine Backticks als Zeilenumbruchzeichen verwenden.

    Überflüssigen Code solltest Du weglassen. Dein "select samaccountname" bringt in diesem Fall keinen Mehrwert.

    ... und nochmal die generelle Empfehlung, Dir die Grundlagen der Powershell anzueignen. Der von mir ober verlinkte MVA-Kurs ist kostenlos, es nimmt nicht viel Zeit in Anspruch und bietet Dir einen niedrigschwelligen strukturierten Einstieg in die Powershell.


    Best regards,

    (79,108,97,102|%{[char]$_})-join''





    • Bearbeitet BOfH_666 Donnerstag, 11. Januar 2018 14:32
    Donnerstag, 11. Januar 2018 14:28
  • Super das war genau das was mir gefehlt hatte, vielen Dank.

    Jetzt schau ich mir das ganze mal an mit speichern in na Datei.

    Donnerstag, 11. Januar 2018 14:28
  • na ok, wenn wir sowieso schon dabei sind, können wir auch weitermachen ....
    Get-ADGroupMember -Identity 'SG-TEMP' | 
        ForEach-Object{
            Get-ADUser $_.samaccountname -Properties mobile,telephoneNumber |
                Select-Object Name,mobile,telephoneNumber -OutVarable ADGroupMemberList
        }
    $ADGroupMemberList | Export-Csv -Path 'gewünschter Name der CSV-Datei ggf. incl. Pfad' -Delimiter ';' -Encoding UTF8 -NoTypeInformation


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 11. Januar 2018 14:36
  • na ok, wenn wir sowieso schon dabei sind, können wir auch weitermachen ....
    Get-ADGroupMember -Identity 'SG-TEMP' | 
        ForEach-Object{
            Get-ADUser $_.samaccountname -Properties mobile,telephoneNumber |
                Select-Object Name,mobile,telephoneNumber -OutVarable ADGroupMemberList
        }
    $ADGroupMemberList | Export-Csv -Path 'gewünschter Name der CSV-Datei ggf. incl. Pfad' -Delimiter ';' -Encoding UTF8 -NoTypeInformation


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    1000 Dank
    Freitag, 12. Januar 2018 10:02
  • Ich habe da jetzt mal ein wenig was ausprobiert.

    Es funktioniert auch soweit ausser das er mir in der CSV DAtei immer nur den letzen gefundenen Eintrag speichert.

    Bekomme aber keine Fehlermeldung

    $GroupName = Read-Host "Bitte geben sie den AD Gruppennamen ein"
    "Gruppe: $GroupName" | Out-File C:\csv\gruppe.txt
    Get-ADGroupMember -Identity $GroupName | 
        ForEach-Object{
            Get-ADUser $_.samaccountname -Properties mobile,telephoneNumber |
                Select-Object Name,mobile,telephoneNumber -OutVariable ADGroupMemberList
        }         
      
    $ADGroupMemberList | Export-CSV -Path C:\csv\Telefonnummer.csv -Delimiter ';' -Encoding UTF8 -NoTypeInformation

    Freitag, 12. Januar 2018 11:12
  • Oooops ... mein Fehler ... na hättest Du jetzt aber auch schon selber drauf kommen können ...  ;-) :-D
    $GroupName = Read-Host "Bitte geben sie den AD Gruppennamen ein"
    "Gruppe: $GroupName" | Out-File C:\csv\gruppe.txt
    Get-ADGroupMember -Identity $GroupName | 
        ForEach-Object{
            Get-ADUser $_.samaccountname -Properties mobile,telephoneNumber |
                Select-Object Name,mobile,telephoneNumber
        } -OutVariable ADGroupMemberList
      
    $ADGroupMemberList | Export-CSV -Path C:\csv\Telefonnummer.csv -Delimiter ';' -Encoding UTF8 -NoTypeInformation
    ... jetze aber ...

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    • Als Antwort markiert Patejoker Freitag, 12. Januar 2018 12:09
    Freitag, 12. Januar 2018 12:02