Azure AD Groups

Good afternoon everyone.
I need your help. I am a novice in PowerShell. I need to list all groups, members and users from azure active directory or office exchange. Basically, this is to enable me audit the AD and remove old users from groups or removed groups that are empty. The column I would need are:
GroupName, Users, Guid, Users email address and role.

Would be greatful for your assistance.

Thank you in advice.
Blosson

Are you also aware you can get this data via SQL Server? Would you be ok doing it in SQL server? Since this is a SQL Server Forum.... if not

Thanks mate.
I would appreciate if you could me a head start in SQL. I wasn't aware you could do it
Thanks

First create a linked server, Lets get started with that and post back with any questions here
You would need a service account (@rmtuser below) that has permission to read AD/LDAP data

USE [master]
GO

EXEC master.dbo.sp_addlinkedserver @server = N'ADSI', @srvproduct=N'Active Directory Service Interfaces', @provider=N'ADSDSOObject', @datasrc=N'adsdatasource'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ADSI',@useself=N'False',@locallogin=NULL,@rmtuser=N'A_SERVICE_ACCOUNT_THAT_HAS_LDAP_READ_PERMS',@rmtpassword='PASSWORD_FOR_THAT_SERVICE_ACCOUNT'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation compatible', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'data access', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'dist', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'pub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'rpc out', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'sub', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'connect timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'collation name', @optvalue=null
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'lazy schema validation', @optvalue=N'false'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'query timeout', @optvalue=N'0'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'use remote collation', @optvalue=N'true'
GO

EXEC master.dbo.sp_serveroption @server=N'ADSI', @optname=N'remote proc transaction promotion', @optvalue=N'true'
GO