Oneliner wyświetlający administratorów AAD/o365

trochę zabawa żeby udowodnić co może PS, bo można łatwiej, ale na pewno w większej ilości kroqw.

scenariusz: wyświetlić wszystkich adminów i ich role w AAD. niby proste, mamy do dyspozycji get-AzureADDirectoryRole i get-AzureADDirectoryRoleMember. a więc we w miarę prostej postaci można to zrobić tak:

Get-AzureADDirectoryRole|%{$rn=$_.displayname;Get-AzureADDirectoryRoleMember -ObjectId $_.objectid|? objectType -eq 'user'|select displayname,userprincipalname,@{N='role';E={$rn}}}

już tutaj zapytanie jest dość złożone. z ciekawych elementów, które warto wyjaśnić:

  • $rn=$_.displayname jest ściśle powiązane z faktem, żeby potem wykorzystać je w selekcie. bez tego utracona by została informacja dotycząca roli – a więc byłaby lista użytkowników, bez informacji o tym, o którą rolę chodzi.
  • ..i tak w selekcie następuje ‘wstrzyknięcie’ tej informacji poprzez @{N=’role’;E={$rn}} – utworzona zostaje dodatkowa kolumna o nazwie ‘role’.

niemniej to nie koniec ‘zabawy’ bo otrzymamy płaską listę, na której jeden login może występować wiele razy – dla każdej roli w której się pojawia. mamy oczywiście ‘group-object’ które pozwoli połączyć to w jedną całość… tylko co ukaże się naszym oczom nie będzie przyjemne.

problem, który się pojawia – jak sformatować to, co wypluwa ‘group-object’? w dużym skrócie – należy się przyjrzeć temu, co ten zwraca, i potraktować go… jak każdy inny obiekt. przyjmując, że wyniki poprzedniego polecenia mam w zmiennej ‘$admins’, przyjrzyjmy się co będzie po zgrupowaniu:

$admins|group userprincipalname|select -ExpandProperty group -first 1

DisplayName UserPrincipalName role
----------- ----------------- ----
Administrator nexor@w-files.pl Power BI Service Administrator
Administrator nexor@w-files.pl Service Support Administrator
Administrator nexor@w-files.pl Exchange Service Administrator
Administrator nexor@w-files.pl SharePoint Service Administrator

a więc ‘grupa’, trzyma dla każdego wpisu, wszystkie informacje o zgrupowanych obiektach (jako kolekcja obiektów) – ze względu na to zagnieżdżenie, nie jest to zbyt proste do pracy. do tego trzeba będzie pracować na kolekcji – bo jeśli ktoś występuje w kilq rolach, to mamy liczbę mnogą. finalnie odpowiedź jest taka:

Get-AzureADDirectoryRole|%{$rn=$_.displayname;Get-AzureADDirectoryRoleMember -ObjectId $_.objectid|? objectType -eq 'user'|select displayname,userprincipalname,@{N='role';E={$rn}}}|Group-Object userprincipalname |select name,@{N='displayname';E={$_.group.displayname|select -unique}},@{N='roles';E={($_.group.role|sort) -join ','}}

można teraz całość wypluć do CSV [ |export-csv c:\temp\admins.csv -nti -deli ‘;’ ] i zrobić raport w Excelu (:

eN.

do którego AP podłączyliśmy się w roamingu?

podczas debugowania problemów z siecią warto wiedzieć do którego AP się jest podłączonym. jak jest wiele AP ustawionych w roaming, ciężko stwierdzić. a można to sprawdzić starym, dobrym netsh:

PS C:\_scriptZ> netsh wlan show interfaces

There is 1 interface on the system:

Name : Wi-Fi
Description : Intel(R) Dual Band Wireless-AC 8260
GUID : a061220a-2bc8-492a-a3ff-495223935c04
Physical address : aa:bb:cc:dd:ee:ff
State : connected
SSID : wfiles
BSSID : 11:22:33:44:55:66
Network type : Infrastructure
Radio type : 802.11g
Authentication : WPA2-Personal
Cipher : CCMP
Connection mode : Auto Connect
Channel : 11
Receive rate (Mbps) : 54
Transmit rate (Mbps) : 54
Signal : 99%
Profile : wfiles

Hosted network status : Not available

i tak przy okazji jeszcze jedna przydatna komenda z tego zakresu, która wyświetli wszystkie dostępne AP w okolicy wraz z siłą sygnału i tym, co oferują:

netsh wlan show network mode=bssid

eN.

najbliższy wtorek – WGUISW

o8.o1.2o19 – czyli tradycyjnie wtorek w biurze Microsoft. będą dwie sesje dotyczące Office365 oraz sesja o w19.

pierwsza sesja to kontynuacja cyklu Marka będąca wprowadzeniem do o365 a druga, to moja obiecana sesja o grupach o365 – pierwsza część. Grupy to jeden z najważniejszych komponentów całego o365, więc warto rozumieć w jaki sposób całość działa. druga część w Marcu [w lutym Ferie (= ]

sesja o Windows 2o19 to z kolei kontynuacja cyklu Mariusza.

zapraszamy (:

eN.