Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Please find and replace XXX
- Import-Module "XXX\Microsoft.SharePoint.Client.dll"
- Import-Module "XXX\Microsoft.SharePoint.Client.Runtime.dll"
- Function Invoke-LoadMethod() {
- param(
- [Microsoft.SharePoint.Client.ClientObject]$Object = $(throw "Please provide a Client Object"),
- [string]$PropertyName
- )
- $ctx = $Object.Context
- $load = [Microsoft.SharePoint.Client.ClientContext].GetMethod("Load")
- $type = $Object.GetType()
- $clientLoad = $load.MakeGenericMethod($type)
- $Parameter = [System.Linq.Expressions.Expression]::Parameter(($type), $type.Name)
- $Expression = [System.Linq.Expressions.Expression]::Lambda(
- [System.Linq.Expressions.Expression]::Convert(
- [System.Linq.Expressions.Expression]::PropertyOrField($Parameter,$PropertyName),
- [System.Object]
- ),
- $($Parameter)
- )
- $ExpressionArray = [System.Array]::CreateInstance($Expression.GetType(), 1)
- $ExpressionArray.SetValue($Expression, 0)
- $clientLoad.Invoke($ctx,@($Object,$ExpressionArray))
- }
- # We need some credentials of course
- $UserCredential = Get-Credential
- Connect-SPOService https://XXX-admin.sharepoint.com -Credential $UserCredential
- $myCred = New-Object "Microsoft.SharePoint.Client.SharePointOnlineCredentials" -ArgumentList @($UserCredential.UserName, $UserCredential.Password)
- # Create the session
- $Session = New-PSSession -ConfigurationName Microsoft.Exchange `
- -ConnectionUri https://outlook.office365.com/powershell-liveid/ `
- -Credential $UserCredential `
- -Authentication Basic -AllowRedirection
- # Import the session
- Import-PSSession $Session
- # Do Stuff...
- cls
- "##### GROUPES O365 #####"
- Get-UnifiedGroup | Foreach { $_.DisplayName + " : " + (((Get-SPOSite (Get-UnifiedGroup $_.Name).SharePointSiteUrl).StorageUsageCurrent.ToString()) + " Mo")}
- "##### Collections de site #####"
- $sites = Get-SPOSite
- foreach ($s in $sites)
- {
- $ctx = New-Object "Microsoft.SharePoint.Client.ClientContext" -ArgumentList @($s.Url)
- $ctx.Credentials = $myCred;
- $si = $ctx.Site
- Invoke-LoadMethod -Object $si -PropertyName "Usage"
- try
- {
- $ctx.ExecuteQuery();
- ($s.Url) + " : " + (($si.Usage.Storage / 1024 / 1024).ToString()) + " Mo"
- }
- catch
- {
- ($s.Url) + " : Exception"
- }
- $ctx.Dispose();
- }
- # Kill the session
- Remove-PSSession $Session
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement