Powershell script - vypsání uživatelů ze skupiny
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Powershell script - vypsání uživatelů ze skupiny
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?
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?
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A
- Krteq
- Čestný člen
-
- Registrován: 22. dub 2005
- Bydliště: Brno
Re: Powershell script - vypsání uživatelů ze skupiny
Co tohle?
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 | export-csv test.csv
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
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Re: Powershell script - vypsání uživatelů ze skupiny
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?
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?
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A
- zombux
- Odborník PCT
- Registrován: 05. čer 2003
- Bydliště: sluníčkář a havloid z pražské lumpenkavárny
Re: Powershell script - vypsání uživatelů ze skupiny
ale tohle cílí skript na OU v AD, ne na distribuční skupinu
Pfizer & Moderna inside
ignorelist: mimo jiné všechny kremrole (danny1691, Lokomotiva, CZECHYa, pavel2003, shorty25, ajtak, stepan001, ulver, brambora81, CZ_viper, tielka a pár dalších exotů)
ignorelist: mimo jiné všechny kremrole (danny1691, Lokomotiva, CZECHYa, pavel2003, shorty25, ajtak, stepan001, ulver, brambora81, CZ_viper, tielka a pár dalších exotů)
- Krteq
- Čestný člen
-
- Registrován: 22. dub 2005
- Bydliště: Brno
Re: Powershell script - vypsání uživatelů ze skupiny
Jesus, máš recht, jsem si to nepřečetl porádně
Já jel hned AD a ne exchange
Já jel hned AD a ne exchange
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Re: Powershell script - vypsání uživatelů ze skupiny
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?zombux píše:ale tohle cílí skript na OU v AD, ne na distribuční skupinu
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Re: Powershell script - vypsání uživatelů ze skupiny
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:
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
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
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A
- zombux
- Odborník PCT
- Registrován: 05. čer 2003
- Bydliště: sluníčkář a havloid z pražské lumpenkavárny
Re: Powershell script - vypsání uživatelů ze skupiny
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.
Pfizer & Moderna inside
ignorelist: mimo jiné všechny kremrole (danny1691, Lokomotiva, CZECHYa, pavel2003, shorty25, ajtak, stepan001, ulver, brambora81, CZ_viper, tielka a pár dalších exotů)
ignorelist: mimo jiné všechny kremrole (danny1691, Lokomotiva, CZECHYa, pavel2003, shorty25, ajtak, stepan001, ulver, brambora81, CZ_viper, tielka a pár dalších exotů)
- motorolarulez
- Nováček
-
- Registrován: 23. srp 2004
- Bydliště: Plzeň
- Kontaktovat uživatele:
Re: Powershell script - vypsání uživatelů ze skupiny
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 :
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
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
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
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Re: Powershell script - vypsání uživatelů ze skupiny
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...
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...
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A
- zombux
- Odborník PCT
- Registrován: 05. čer 2003
- Bydliště: sluníčkář a havloid z pražské lumpenkavárny
Re: Powershell script - vypsání uživatelů ze skupiny
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)
Pfizer & Moderna inside
ignorelist: mimo jiné všechny kremrole (danny1691, Lokomotiva, CZECHYa, pavel2003, shorty25, ajtak, stepan001, ulver, brambora81, CZ_viper, tielka a pár dalších exotů)
ignorelist: mimo jiné všechny kremrole (danny1691, Lokomotiva, CZECHYa, pavel2003, shorty25, ajtak, stepan001, ulver, brambora81, CZ_viper, tielka a pár dalších exotů)
- motorolarulez
- Nováček
-
- Registrován: 23. srp 2004
- Bydliště: Plzeň
- Kontaktovat uživatele:
Re: Powershell script - vypsání uživatelů ze skupiny
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.
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.
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Re: Powershell script - vypsání uživatelů ze skupiny
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?
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A
- motorolarulez
- Nováček
-
- Registrován: 23. srp 2004
- Bydliště: Plzeň
- Kontaktovat uživatele:
Re: Powershell script - vypsání uživatelů ze skupiny
Pokud mas nejaky pristup k Exchange, tak je to jeden prikaz :
Get-Recipient "alias"
Get-Recipient "alias"
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Re: Powershell script - vypsání uživatelů ze skupiny
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)
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)
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A
- motorolarulez
- Nováček
-
- Registrován: 23. srp 2004
- Bydliště: Plzeň
- Kontaktovat uživatele:
Re: Powershell script - vypsání uživatelů ze skupiny
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 ...
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 ...
- Alfajk
- Začátečník
-
- Registrován: 15. kvě 2009
Re: Powershell script - vypsání uživatelů ze skupiny
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
CPU: AMD Ryzen 5 7600X@5,5GHz | GPU: EVGA GeForce RTX 3080 12GB XC3 ULTRA GAMING | MB: ASUS PRIME X670-P WIFI | RAM: 32GB DDR5 6000MHz CL36 FURY EXPO | SSD: WD Black SN770 NVMe 2TB | PSU: Seasonic Focus GM-850 Gold | CPU Cooler: Noctua NH-D15 | Case: be quiet! Pure Base 500DX Black | OS: Win 10 Professional | Monitor: ASUS TUF Gaming VG27AQL1A