Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Set-ExecutionPolicy RemoteSigned
- Install-Module -Name PowerShellGet -Force -AllowClobber
- #=================================
- #=== CONNECT TO SERVICES =======
- #=================================
- Connect-MsolService
- Connect-ExchangeOnline
- Connect-MicrosoftTeams
- Connect-Graph -Scopes "Directory.Read.All", "ChannelSettings.Read.All", "Group.Read.All"
- --Teams 👆
- --Intune 👇
- Connect-Graph -Scopes "Directory.Read.All","User.Read.All", "Group.Read.All", "Device.Read.All","ChannelSettings.Read.All","DeviceManagementManagedDevices.Read.All"
- #=======================================================
- #Bulk create new users (export csv, fill in upn,displayname,password, then import)
- Get-User | select userprincipalname,displayname,password | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv D:\Users\mpeterson\Documents\spreadsheet.csv | foreach { New-MsolUser -DisplayName $_.displayname -UserPrincipalName $_.userprincipalname -Password $_.password }
- # Bulk set UsageLocation:
- Get-User | select userprincipalname,displayname,UsageLocation | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv D:\Users\mpeterson\Documents\spreadsheet.csv | foreach { Set-MsolUser -UserPrincipalName $_.userprincipalname -UsageLocation $_.UsageLocation }
- # check usage location
- get-msoluser | select userprincipalname,displayname,usagelocation | select-string *
- # Bulk assign licenses
- Get-User | select userprincipalname,displayname,UsageLocation,AccountSkuId | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv D:\Users\mpeterson\Documents\spreadsheet.csv | foreach { Set-MsolUserLicense -UserPrincipalName $_.userprincipalname -AddLicenses $_.AccountSkuId }
- Examples:
- reseller-account:ENTERPRISEPACK
- reseller-account:FLOW_FREE
- reseller-account:O365_BUSINESS_PREMIUM
- reseller-account:POWER_BI_STANDARD
- reseller-account:O365_BUSINESS_ESSENTIALS
- # add 1 license
- Set-MsolUserLicense -UserPrincipalName name@domain.onmicrosoft.com -AddLicenses reseller-account:O365_BUSINESS_ESSENTIALS
- # check license usage:
- Get-MsolAccountSku
- #See if a domain exists in office 365
- function Test-DomainAvailability {
- param(
- [Parameter(mandatory=$true)]
- [string]$DomainName
- )
- $descriptions = @{
- Unknown = 'Domain does not exist in Office 365/Azure AD'
- Managed = 'Domain is verified but not federated'
- Federated = 'Domain is verified and federated'
- }
- $response = Invoke-WebRequest -Uri "https://login.microsoftonline.com/getuserrealm.srf?login=user@$DomainName&xml=1" -UseBasicParsing
- if($response -and $response.StatusCode -eq 200) {
- $namespaceType = ([xml]($response.Content)).RealmInfo.NameSpaceType
- New-Object PSObject -Property @{
- DomainName = $DomainName
- NamespaceType = $namespaceType
- Details = $descriptions[$namespaceType]
- } | Select-Object DomainName, NamespaceType, Details
- } else {
- Write-Error -Message 'Domain could not be verified. Please check your connectivity to login.microsoftonline.com'
- }
- }
- #====================================
- # Check Aliases on a Mailbox =====
- #====================================
- $FormatEnumerationLimit = -1 #otherwise will be truncated
- Get-Mailbox cwilson@domain.com | select primarysmtpaddress,emailaddresses |
- Out-Gridview #otherwise ps will still truncate it
- #==========================================
- #====== CHECK FORWARDING ON A MAILBOX =====
- #==========================================
- Get-Mailbox betsy.vega@domain.com | ft ForwardingAddress,ForwardingSmtpAddress,DeliverToMailboxAndForward
- #=======================================
- #=== SET FORWARDING ON MAILBOX =======
- #=======================================
- Set-Mailbox -Identity mmessana@domain.com -ForwardingAddress $null -ForwardingSmtpAddress $null -DeliverToMailboxAndForward $False
- #=======================================================
- #=== GIVE FULL ACCESS TO MAILBOX (WITH AUTOMAPPING) ==
- #=======================================================
- $FormatEnumerationLimit = -1 #otherwise will be truncated
- Get-Mailbox mailbox@domain.com |
- Add-MailboxPermission -User user@domain.com -AccessRights FullAccess -InheritanceType All
- ====== CHECK THAT FULL ACCESS ON MAILBOX WORKED
- Get-MailboxPermission CBarrett@aquaguard.net | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false}
- #====================================
- # CHECK OWNERSHIP INFO OF A GROUP (MANAGEDBY) ==
- #====================================
- Import-csv ddd.csv | foreach { Get-UnifiedGroup $_.PrimarySmtpAddress | select displayname,PrimarySmtpAddress,ManagedBy }
- #====================================
- # EXPORT LIST OF GROUPS YOU NEED ==
- #====================================
- #get the list of groups
- Get-UnifiedGroup -ResultSize Unlimited |
- #filter the list
- Where-Object PrimarySmtpAddress -Match info@* |
- #limit the information columns
- select displayname,PrimarySmtpAddress,ManagedBy |
- #export the csv
- Export-Csv ddd.csv -NoTypeInformation
- #====================================
- # Bulk Add Group Owners ==
- #====================================
- Import-Csv ddd.csv |
- foreach { Add-UnifiedGroupLinks –Identity $_.PrimarySmtpAddress –LinkType "Owners" –Links "[email protected]" }
- #====================================
- # Bulk Remove Unified Group Owners==
- #====================================
- Import-Csv ddd.csv |
- foreach { Remove-UnifiedGroupLinks –Identity $_.PrimarySmtpAddress –LinkType "Owners" –Links "[email protected]" -Confirm:$false }
- Remove-UnifiedGroupLinks info@domain.com –LinkType "Owners" –Links "[email protected]" -Confirm:$false
- #====================================
- # Bulk Remove Unified Group MEMBERS==
- #====================================
- Import-Csv ddd.csv |
- foreach { Remove-UnifiedGroupLinks –Identity $_.PrimarySmtpAddress –LinkType "Members" –Links "[email protected]" -Confirm:$false }
- Remove-UnifiedGroupLinks info@domain.com –LinkType "Members" –Links "[email protected]" -Confirm:$false
- #=======================================================
- # Bulk Remove Distribution Group Owners (ManagedBy) ==
- #=======================================================
- Import-Csv ddd.csv |
- foreach { Set-DistributionGroup -Identity $_.PrimarySmtpAddress -ManagedBy user@domain.com }
- #=======================================================
- # Bulk ADD Shared Mailbox Owners ==
- #=======================================================
- Import-Csv ddd.csv |
- foreach { Add-MailboxPermission -Identity $_.PrimarySmtpAddress -Owner user@domain.com }
- Get-Mailbox -RecipientTypeDetails SharedMailbox -ResultSize:Unlimited |
- Get-MailboxPermission | Select-Object Identity,User,AccessRights | Where-Object {($_.user -like '*@*')}|Export-Csv C:\Temp\sharedfolders.csv -NoTypeInformation
- ====== CHECK THAT IT WORKED
- Import-Csv ddd.csv |
- foreach { Get-UnifiedGroupLinks -Identity $_.PrimarySmtpAddress -LinkType Members }
- #=======================================================
- # Add One user to Multiple Groups ==
- #=======================================================
- Import-Csv ddd.csv |
- foreach { Add-UnifiedGroupLinks –Identity $_.PrimarySmtpAddress –LinkType "Members" –Links "[email protected]" }
- #====================================
- #=== Bulk Add Group Members =======
- #====================================
- Import-Csv ddd.csv |
- foreach { Add-UnifiedGroupLinks –Identity $_.PrimarySmtpAddress –LinkType "Members" –Links "[email protected]" }
- ====== CHECK THAT IT WORKED
- Import-Csv ddd.csv |
- foreach { Get-UnifiedGroupLinks -Identity $_.PrimarySmtpAddress -LinkType Members }
- #=======================================================
- #=== FIND A TEAM BY EMAIL ADDRESSS =======
- #=======================================================
- Get-Team | foreach { Get-MgTeamChannel -TeamId $_.groupid } | Where-Object email -Match "[email protected]" | ft CreatedDateTime,DisplayName,Email
- #=======================================================
- #=== LIST ALL TEAMS WITH EMAIL ADDRESSS (SORTED BY CREATED DATE) =======
- #=======================================================
- Get-Team | foreach { Get-MgTeamChannel -TeamId $_.groupid } | Where-Object email -Match "amer.teams.ms" | sort-object -CreatedDateTime
- #=======================================================
- #=== ADD FULL ACCESS TO A MAILBOX ( TYPE .fa ) =======
- #=======================================================
- Get-Mailbox lhenley@domain.com | Add-MailboxPermission -User martin.peterson@domain.com -Automapping:$False -AccessRights FullAccess -InheritanceType All
- =================================
- =================================
- Get-mgteamchannel -TeamId f8c0e620-220c-419a-a7f6-19f8ffacdc2e | ft Displayname,email
- DisplayName Email
- ----------- -----
- General 71edbf20.domain.co@amer.teams.ms
- Name of Channel 1 bf3b3d28.domain.co@amer.teams.ms
- Name of Channel 2 2c6cf3b5.domain.co@amer.teams.ms
- ================================================
- ****Get Members of Office 365 (Unified) Group***
- ================================================
- Get-UnifiedGroupLinks -Identity "GW Info" -LinkType Members | ft DisplayName,PrimarySmtpAddress
- Get-UnifiedGroupLinks -Identity "GW Info" -LinkType Members | ft DisplayName,PrimarySmtpAddress
- Get-UnifiedGroup -ResultSize Unlimited | where-Object -Match "DryPro Service Techs"
- Get-UnifiedGroupLinks -Identity b9907132-0024-46b4-91c6-b08ab81c55f6 -LinkType Members | ft DisplayName,PrimarySmtpAddress
- ================================================
- ****Get Members of Distribution Group***
- ================================================
- Get-DistributionGroupMember -Identity "Name of Group" | ft DisplayName,PrimarySmtpAddress
- Get-Distributiongroup -Identity b9907132-0024-46b4-91c6-b08ab81c55f6
- Get-Distributiongroup -Identity "Name of Group"
- Get-DistributionGroupMember -Identity user@domain.com
- Get-DistributionGroupMember -Identity user@domain.com
- ================================================
- ****Get Members of Azure AD Group****
- ================================================
- Get-AzureADGroupMember -ObjectId 138751c3-6b46-43ed-b2b5-aa070c3a5e5f | ft UserPrincipalName
- *************************************
- ****** Find a Team or Channel **********
- *************************************
- Get-Team | Where-Object DisplayName -Match "matchquery"| Export-csv C:\Users\redte\Documents\teamsquery.csv -NoTypeInformation
- Import-csv C:\Users\redte\Documents\teamsquery.csv | foreach { Get-MgTeamChannel -TeamId $_.groupid } | Where-Object DisplayName -Match "sms" | Export-csv C:\Users\redte\Documents\channelquery.csv
- *******************************************
- *** Find the Members of a Team by GroupId *****
- ******************************************
- Get-TeamUser -GroupId 06e9acf0-38b9-494b-9936-23c136d5dfc3
- *************************************
- ****** Teams Get- cmdlets **********
- *************************************
- Get-Team
- Get-TeamChannel
- Get-TeamFunSettings
- Get-TeamGuestSettings
- Get-TeamHelp
- Get-TeamMemberSettings
- Get-TeamMessagingSettings
- Get-TeamUser
- Add-TeamUser
- New-Team
- New-TeamChannel
- Remove-Team
- Remove-TeamChannel
- Remove-TeamUser
- Set-Team
- Set-TeamChannel
- Set-TeamFunSettings
- Set-TeamGuestSettings
- Set-TeamMemberSettings
- Set-TeamMessagingSettings
- Set-TeamPicture
- ***********************************************************
- ***********************************************************
- **************Export Teams Report of Teams and Members*****
- ***********************************************************
- ***********************************************************
- $AllTeamsInOrg = (Get-Team | Where-Object DisplayName -NotMatch "test").GroupID
- $TeamList = @()
- Foreach ($Team in $AllTeamsInOrg)
- {
- $TeamGUID = $Team.ToString()
- $TeamGroup = Get-UnifiedGroup -identity $Team.ToString()
- $TeamName = (Get-Team | ?{$_.GroupID -eq $Team}).DisplayName
- $TeamOwner = (Get-TeamUser -GroupId $Team | ?{$_.Role -eq 'Owner'}).User
- $TeamUserCount = ((Get-TeamUser -GroupId $Team).UserID).Count
- $TeamGuest = (Get-UnifiedGroupLinks -LinkType Members -identity $Team | ?{$_.Name -match "#EXT#"}).Name
- if ($TeamGuest -eq $null)
- {
- $TeamGuest = "No Guests in Team"
- }
- $TeamChannels = (Get-TeamChannel -GroupId $Team).DisplayName
- $ChannelCount = (Get-TeamChannel -GroupId $Team).ID.Count
- $TeamList = $TeamList + [PSCustomObject]@{TeamName = $TeamName; TeamObjectID = $TeamGUID; TeamOwners = $TeamOwner -join ', '; TeamMemberCount = $TeamUserCount; NoOfChannels = $ChannelCount; ChannelNames = $TeamChannels -join ', '; SharePointSite = $TeamGroup.SharePointSiteURL; AccessType = $TeamGroup.AccessType; TeamGuests = $TeamGuest -join ','}
- }
- #######
- $TeamList | export-csv C:\Users\redte\Documents\teamsreportFINAL.csv -NoTypeInformation
- ***********************************************************
- ***********************************************************
- ******** Find Email addresses on channels of a team *******
- ***********************************************************
- ***********************************************************
- Get-MgTeamChannel -TeamId f8c0e620-220c-419a-a7f6-19f8ffacdc2e | ft DisplayName,Email
- DisplayName Email
- ----------- -----
- General 71edbf20.domain.co@amer.teams.ms
- ************************************************
- ************************************************
- ************* EXCHANGE ONLINE POWERSHELL *******
- ************************************************
- ************************************************
- ;;;;Disconnect Session
- Get-PSSession | Where-Object {$_.ConfigurationName -eq “Microsoft.Exchange”} | Remove-PSSession
- *****************************
- *******MAILBOX STATISTICS
- Get-Mailbox areddington@domain.com | Ge
- t-MailboxStatistics | Select-Object DisplayName, IsArchiveMailbox, TotalItemSize, ItemCount
- *******************************
- *******365 APPLICATION IMPERSONATION
- New-RoleGroup -Name AppImpGroup -Roles ApplicationImpersonation -Members user@domain.com
- *******************************
- *******Add a Full Access user to a mailbox
- Get-Mailbox user@domain.com | Add-MailboxPermission -User martin.peterson@domain.com -Automapping:$False -AccessRights FullAccess -InheritanceType All
- *******************************
- *******See sizes of public folders
- Get-PublicFolderStatistics | Select-Object Name,FolderPath, TotalItemSize | Out-Gridview
- *******************************
- *******See mailbox stats/info (size) for all users:
- Get-Mailbox | Get-MailboxStatistics | Select-Object DisplayName, IsArchiveMailbox, TotalItemSize, ItemCount
- ______________________________________________________
- *******************************
- *******See who has full access on a mailbox:
- Get-MailboxPermission <UserPrincipalName>
- *******************************
- *******see all users who have full access to any mailboxes:
- Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false}
- _______________________________________________________
- *********Bulk edit users pw's (export, add the PW's in the column, save, then import)
- Get-User | select UserPrincipalName,Displayname,password | Export-Csv -Path C:\Users\support\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv C:\Users\support\Documents\peach.csv | foreach {Set-MsolUserPassword -UserPrincipalName $_.userprincipalname -NewPassword $_.password -ForceChangePassword:$False }
- _______________________________________________________
- ********* Bulk create new users (export csv, fill in upn,displayname,password, then import)
- Get-User | select userprincipalname,displayname,password | Export-Csv -Path C:\Users\support\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv C:\Users\support\Documents\spreadsheet.csv | foreach { New-MsolUser -DisplayName $_.displayname -UserPrincipalName $_.userprincipalname -Password $_.password }
- _______________________________________________________
- ******** Bulk set UsageLocation:
- Get-User | select userprincipalname,displayname,UsageLocation | Export-Csv -Path C:\Users\support\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv C:\Users\support\Documents\spreadsheet.csv | foreach { Set-MsolUser -UserPrincipalName $_.userprincipalname -UsageLocation $_.UsageLocation }
- ******check usage location
- get-user | select userprincipalname,displayname,usagelocation | select-string domain.onmicrosoft.com
- #See who has full access on a mailbox:
- Get-MailboxPermission <UserPrincipalName>
- #see all users who have full access to any mailboxes:
- Get-Mailbox | Get-MailboxPermission | where {$_.user.tostring() -ne "NT AUTHORITY\SELF" -and $_.IsInherited -eq $false}
- _______________________________________________________
- #Bulk edit users pw's (export, add the PW's in the column, save, then import)
- Get-User | select UserPrincipalName,Displayname,password | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv D:\Users\mpeterson\Documents\spreadsheet.csv | foreach {Set-MsolUserPassword -UserPrincipalName $_.userprincipalname -NewPassword $_.password -ForceChangePassword:$False }
- _______________________________________________________
- _______________________________________________________
- #Give a user full access to all mailboxes
- Get-Mailbox | Add-Mailboxpermission -User user@domain.onmicrosoft.com -AutoMapping:$False -AccessRights FullAccess -InheritanceType All
- #give a user sendAs to a mailbox
- Add-RecipientPermission -Identity <mailbox> -AccessRights SendAs -Trustee <SendAsUser>
- _______________________________________________________
- #See All Global Admins on an account
- $role = Get-MsolRole -RoleName "Administrator";Get-MsolRoleMember -RoleObjectId $role.ObjectId | sort rolemembertype | select rolemembertype,displayname,emailaddress
- _______________________________________________________
- Get-ManagementRoleAssignment -GetEffectiveUsers | Where-Object {$_.EffectiveUserName -eq "[email protected]"} | select-object Role
- #give a single user application impersonation
- New-RoleGroup -Name AppImpGroup -Roles ApplicationImpersonation -Members martin.peterson@domain.com
- Add-RoleGroupMember "impersonation for migration" -Member martin.peterson@domain.com
- _______________________________________________________
- # Bulk edit users pw's (export, add the PW's in the column, save, then import)
- Get-User | select UserPrincipalName,Displayname,password | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv D:\Users\mpeterson\Documents\spreadsheet.csv | foreach {Set-MsolUserPassword -UserPrincipalName $_.userprincipalname -NewPassword $_.password -ForceChangePassword:$False }
- _______________________________________________________
- ########## Bulk create new users (export csv, fill in upn,displayname,password, then import)
- Get-User | select userprincipalname,displayname,password | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- Import-csv D:\Users\mpeterson\Documents\spreadsheet.csv | foreach { New-MsolUser -DisplayName $_.displayname -UserPrincipalName $_.userprincipalname -Password $_.password }
- _______________________________________________________
- #### see public folders
- Get-PublicFolder -Identity \NON_IPM_SUBTREE -Recurse | Format-List Name
- #### Add aliases for multiple users
- Get-User | select UserPrincipalName,Displayname,NewEmailAlias | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- ---Then fill in column "newemailalias"
- Import-CSV D:\Users\mpeterson\Documents\spreadsheet.csv | ForEach {Set-Mailbox $_.UserPrincipalName -EmailAddresses @{add=$_.NewEmailAlias}}
- ----Then check if it worked
- Import-CSV D:\Users\mpeterson\Documents\spreadsheet.csv | ForEach {Get-Mailbox $_.UserPrincipalName | Format-List Name,EmailAddresses}
- _______________________________________________________
- ###add aliases for groups
- Get-UnifiedGroup | select PrimarySmtpAddress,Displayname,NewEmailAlias | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- ---Then fill in column "newemailalias"
- Import-CSV D:\Users\mpeterson\Documents\spreadsheet.csv | ForEach {Set-UnifiedGroup $_.PrimarySmtpAddress -EmailAddresses @{add=$_.NewEmailAlias}}
- ----Then check if it worked
- Import-CSV D:\Users\mpeterson\Documents\spreadsheet.csv | ForEach {Get-UnifiedGroup $_.UserPrincipalName | Format-List Name,EmailAddresses}
- ### add aliases for distribution groups
- Get-DistributionGroup | select PrimarySmtpAddress,Displayname,NewEmailAlias | Export-Csv -Path D:\Users\mpeterson\Documents\spreadsheet.csv -NoTypeInformation
- ---Then fill in column "newemailalias"
- Import-CSV D:\Users\mpeterson\Documents\spreadsheet.csv | ForEach {Set-DistributionGroup $_.PrimarySmtpAddress -EmailAddresses @{add=$_.NewEmailAlias}}
- ----Then check if it worked
- Import-CSV D:\Users\mpeterson\Documents\spreadsheet.csv | ForEach {Get-DistributionGroup $_.UserPrincipalName | Format-List Name,EmailAddresses}
- _______________________________________________________
- #Disconnect Session
- Get-PSSession | Where-Object {$_.ConfigurationName -eq “Microsoft.Exchange”} | Remove-PSSession
- _______________________________________________________
- #get sizes of public folders
- Get-PublicFolderStatistics | Select-Object Name,FolderPath, TotalItemSize | Out-Gridview
- _______________________________________________________
- #See mailbox stats/info (size) for all users:
- Get-Mailbox | Get-MailboxStatistics | Select-Object DisplayName, IsArchiveMailbox, TotalItemSize, ItemCount
- ______________________________________________________
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement