Forum Discussion

Jonathan Nunez's avatar
Jonathan Nunez
Brass Contributor
Nov 18, 2019

Creating script to export reports on users and their OneDrive for external sharing

Greetings,   I was wondering if anyone has an idea of how to make a script that allows me to see who are the members in an Azure AD Security Group and see if they have External Sharing Capabilities...
  • Kevin_Morgan's avatar
    Nov 19, 2019

    Jonathan Nunez 

     

    Try the below script :

    Connect-AzureAD
    Connect-SPOService -url https://domain-admin.sharepoint.com
    
    $Result = @()
    $GroupName = "YourSecurityGroup"
    $GroupObj = Get-AzureADGroup -SearchString $GroupName
    $GroupMembers = Get-AzureADGroupMember -ObjectId $GroupObj.ObjectId | Select DisplayName, UserPrincipalName
    
    $OneDriveSites = Get-SPOSite -IncludePersonalSite $true -Limit all -Filter "Url -like '-my.sharepoint.com/personal/'" | Select Owner, Url, SharingCapability
    
    ForEach ($User in $GroupMembers)
    {
    $Site = ($OneDriveSites | Where-Object { $_.Owner -eq $User.UserPrincipalName })
    
    $Result += New-Object PSObject -property @{ 
    UserName = $User.DisplayName
    UserPrincipalName = $User.UserPrincipalName
    SharingCapability = if ($Site -ne $null) { $Site.SharingCapability } else { $null }
    URL = if ($Site  -ne $null) { $Site.Url } else { $null }
    }
    }
    
    $Result | Select UserName, SharingCapability, URL 

Resources