Stránka 1 z 1

Powershell script - vypsání uživatelů ze skupiny

Napsal: stř 21. říj 2020, 15:58
od Alfajk
potřeboval bych script, který zajistí výpis do csv z určité distribuční skupiny ve tvaru zobrazované jméno + mail, včetně zanořených skupin

určitě je to triviální, ale přesný příklad jsem nevygooglil a to nejlepší co jsem dokázal, byl holej výpis uživatelů z určité skupiny, to mě je bez mailu k ničemu... nemáte ho náhodou někdo při ruce?

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: stř 21. říj 2020, 17:59
od Krteq
Co tohle?

Kód: Vybrat vše

Get-ADUser -SearchBase "OU=SomeOU,DC=Company,DC=ORG" -Properties * -Filter * | select samaccountname,mail | export-csv test.csv
Bere to i sub OUs. Samozřejme záleží jaké jméno tam chceš "name" nebo "samaccountname", to si můžeš zmenit podle libosti.

Pokud bys chtěl aby se přidalo i v jakém sub OU ti useři jsou, přidej to do selectu "CanonicalName", vyjede ti to celou cestu k objectu

Kód: Vybrat vše

Get-ADUser -SearchBase "OU=SomeOU,DC=Company,DC=ORG" -Properties * -Filter * | select samaccountname,mail, CanonicalName | export-csv test.csv

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: stř 21. říj 2020, 18:12
od Alfajk
dík, zítra zkusím, ještě abych si to ujasnil -

Get-ADUser -SearchBase "OU=SomeOU,DC=Company,DC=ORG" -Properties * -Filter * | select samaccountname,mail | export-csv test.csv

místo toho tučného "OU=SomeOU,DC=Company,DC=ORG" tam mohu nacpat to konkrétní jméno distribuční skupiny, kterou chci prohledat a vypsat a ono si ji to už najde v AD samo?

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: stř 21. říj 2020, 18:17
od zombux
ale tohle cílí skript na OU v AD, ne na distribuční skupinu

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: stř 21. říj 2020, 18:21
od Krteq
Jesus, máš recht, jsem si to nepřečetl porádně :roll:

Já jel hned AD a ne exchange

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: stř 21. říj 2020, 18:44
od Alfajk
zombux píše:ale tohle cílí skript na OU v AD, ne na distribuční skupinu
to je dobře, ono to poslouží stejně, tu distribuční skupinu máme i v AD, takže ji můžu klidně vypsat odtamtud, pokud stačí jen vybrat konkrétní jméno a ostatní je stejné, nebo ne?

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: čtv 22. říj 2020, 09:10
od Alfajk
tak ten příkaz z vrchu úplně nezafungoval podle představ, pole "mail" prostě nevypsal, -Properties * -Filter * jako neznámé příkazy tak jsem je vyhodil a stejně nic

ale použil jsem přes exchange management shell tohle:

Kód: Vybrat vše

Get-DistributionGroupMember xxxxxxxxxxxx | select displayName,PrimarySMTPAddress |  Export-CSV -Encoding "UTF8" c:\temp\dg.csv
není to dokonalé, protože to neprochází vnořené a PrimarySMTPAddress není vždy mail, pole "mail" (u kontaktů) to ale nechce vypsat, ale alespoň něco

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: čtv 22. říj 2020, 09:41
od zombux
no, pozor na jednu věc. pole mail (nebo email? teď jsem zapomněl) je takový ten "windows email", který nemusí nutně vždycky korespondovat s Exchange adresou - typicky ano, ale není to pravidlo. PrimarySMTPAddress jde z Exchange takže to správně je. pak můžeš případně ještě vypsat ProxyAddresses (zase mě neber doslova, už je to pár let co jsem se s tímhle sral), to je ale zase objekt a musíš zanořovat nebo parsovat. vtip je taky v tom, že get-user, get-aduser, get-mailbox nebo get-mailboxstatistics mají omezený scope a je třeba je používat podle toho co zrovna chceš vypsat.

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: čtv 22. říj 2020, 12:01
od motorolarulez
Jelikoz potrebujes rekurzi, tak to uz na one-liner v Exchange Shellu nebude (Get-DistributionGroupMember ho neumi), proto bych spis doporucil jit na to cestou skrz AD (coz jsem pochopil, ze ti nevadi).

Takze Get-ADGroupMember spolecne s parameterem -Recursive a nasledne si z toho vytahnout vystup, ktery potrebujes.

Pro inspiraci treba takhle :

Kód: Vybrat vše

Get-ADGroupMember -Identity "DistroGroup" -Recursive | Get-ADUser -Properties DisplayName,Mail,TargetAddress | select -Property DisplayName,Mail,TargetAddress
Jelikoz nevim, jak to mate v ramci Vaseho Exchange udelane (on-prem / Exchange online / hybrid), tak saham jak po atributu mail (tam by, jak uz Zombux rikal, mel *ve vetsine pripadu* byt ten samy udaj, jaky vidi Exchange ... ale bohuzel ne vzdy to je pravidlem), tak zaroven TargetAddress (coz ale muze byt kontraproduktivni, pokud zrovna migrujete do cloudu, apod.) - kazdopadne pro on-prem bude fungovat spolehlive.

Pokud by tohle nestacilo, tak uz je to na parsovani ProxyAddresses atribut z AD (tam jsou uvedeny vsechny adresy (zamerne nechci rikat mailovky), ktere na sobe objekt ma, ale to uz je opet spis na skript nez jednoduchy one-liner ... nebo si dopsat rekurzi pro Get-DistributionGroupMember

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: čtv 22. říj 2020, 12:40
od Alfajk
jsme zrovna v mezicestě do online, v on-premisu je už jen část, do online exchange shellu nemám přístup, takže si musím vystačit s tímhle exportem z onpremisovýho nebo z AD, ono je to stejně 1:1.
To pole s mailem se skutečně jmenuje "mail", nevím, proč ho ten první příkaz nevytáhnul a ještě byl celý název uživatele ve tvaru výpisu cesty i s OU, místo holého názvu (jméno a příjmení)

ten TargetAddress vypisuje ty nesmyslný jmeno@mail.onmicrosoft...

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: čtv 22. říj 2020, 12:56
od zombux
no však jasně že vypisuje, když jsou už v cloudu (samozřejmě pak taky záleží jak máš nastavenej routing mezi internetem, O365 a on-prem)

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: pát 23. říj 2020, 02:07
od motorolarulez
Pokud zrovna migrujete do O365, tak atribut TargetAddress uz je zavadejici - jak uz jsi sam zjistil, Exchange tam po migraci mailboxu do cloudu upravi u objektu cilovou domenu na tu "online routing" tak, aby korektne fungoval mezi Exchange on-prem a Exchange online mail flow, Free/Busy lookup a dalsi veci. Takze to ti bude k k nicemu.

Za predpokladu, ze jedete v hybridu (coz bych si tipnul), tak info v cloudu bude z drtive vetsiny opravdu 1:1 s AD odkud se objekty syncuji, tim padem to co ti vrati AD, bude spravne.

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: úte 16. bře 2021, 13:32
od Alfajk
ještě jeden "oneliner" bych potřeboval, znám mailovku v alias tvaru, ale potřebuju zjistit, jaké schránce je skutečně přiřazená, dá se to nějak jednoduše a rychle vypsat?

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: úte 16. bře 2021, 16:03
od motorolarulez
Pokud mas nejaky pristup k Exchange, tak je to jeden prikaz :

Get-Recipient "alias"

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: úte 16. bře 2021, 16:38
od Alfajk
mám, zítra vyzkouším. díky.

Ještě jednu vychytávku bych chtěl - vypsat podle konkrétního uživatele všechny schránky, které má nasdílené/má do nich přístup? konkrétně: vyberu recepční Jmeno.Prijmeni a potřebuju vypsat všechny mailboxy zasedacích místností, které má nasdílené(jsou to jen klasické sdílené mailboxy)

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: úte 16. bře 2021, 19:39
od motorolarulez
Muzes upresnit "ma nasdilene / ma do nich pristup"?

Tech urovni jak lze zpristupnit mailbox nebo jeho cast (Inbox / kalendar, atd.) uzivateli je povicero (Send on Behalf / Send As / pristup do slozky v mailboxu, atd.) a cili se na ne ruznymi prikazy.

Bezne to treba byva tak, ze pokud mas resource mailbox (typicky zasedacka), tak recepcni tam maji pristup pouze na urovni kalendare, ale do mailboxu jako takoveho vetsinou neni duvod lezt ... ale vse se to odviji od toho, jak to pouzivate (nastaveni calendar processingu, moderace, apod.)

Neco se da najit rovnou v AD na urovni atributu objektu, neco zjistis jen pres Exchange ...

Re: Powershell script - vypsání uživatelů ze skupiny

Napsal: stř 17. bře 2021, 08:37
od Alfajk
je to přes online 365 ECP -> resources -> meeting room -> mailbox delegation -> full access takže když vyberu třeba recepční a vyjedu si, kde všude má full access, bude to třeba 5 mailboxů/zasedaček