2015-10-18 122 views
0

我在办公室365有200个未分类的用户。我想找到一种简单的方法来管理他们是谁以及每个用户属于哪个安全组。Office 365 - 如何管理许多用户

有没有简单的方法来导出用户名和每个用户属于哪个组?

IAM蛮新的poweshell ...
但我想导出一个CSV文件与用户和gruops。

这可能吗?

或者您是否推荐其他任何方式来快速获取所有用户的概述以及它们属于哪些grups。

有些用户需要在多个组,我怀疑有些用户缺少群体,他们应该在..

感谢您的任何提示我可以得到。

回答

1
################################################################################################################################################################ 
# Script accepts 2 parameters from the command line 
# 
# Office365Username - Optional - Administrator login ID for the tenant we are querying 
# Office365Password - Optional - Administrator login password for the tenant we are querying 
# 
# 
# To run the script 
# 
# .\Get-DistributionGroupMembers.ps1 [-Office365Username [email protected]] [-Office365Password Password123] 
# 
# 
# Author:     Alan Byrne 
# Version:     2.0 
# Last Modified Date:  16/08/2014 
# Last Modified By:  Alan Byrne [email protected] 
################################################################################################################################################################ 

#Accept input parameters 
Param( 
    [Parameter(Position=0, Mandatory=$false, ValueFromPipeline=$true)] 
    [string] $Office365Username, 
    [Parameter(Position=1, Mandatory=$false, ValueFromPipeline=$true)] 
    [string] $Office365Password 
) 

#Constant Variables 
$OutputFile = "DistributionGroupMembers.csv" #The CSV Output file that is created, change for your purposes 
$arrDLMembers = @{} 


#Remove all existing Powershell sessions 
Get-PSSession | Remove-PSSession 

#Did they provide creds? If not, ask them for it. 
if (([string]::IsNullOrEmpty($Office365Username) -eq $false) -and ([string]::IsNullOrEmpty($Office365Password) -eq $false)) 
{ 
    $SecureOffice365Password = ConvertTo-SecureString -AsPlainText $Office365Password -Force  

    #Build credentials object 
    $Office365Credentials = New-Object System.Management.Automation.PSCredential $Office365Username, $SecureOffice365Password 
} 
else 
{ 
    #Build credentials object 
    $Office365Credentials = Get-Credential 
} 
#Create remote Powershell session 
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell -Credential $Office365credentials -Authentication Basic –AllowRedirection   

#Import the session 
Import-PSSession $Session -AllowClobber | Out-Null   

#Prepare Output file with headers 
Out-File -FilePath $OutputFile -InputObject "Distribution Group DisplayName,Distribution Group Email,Member DisplayName, Member Email, Member Type" -Encoding UTF8 

#Get all Distribution Groups from Office 365 
$objDistributionGroups = Get-DistributionGroup -ResultSize Unlimited 

#Iterate through all groups, one at a time  
Foreach ($objDistributionGroup in $objDistributionGroups) 
{  

    write-host "Processing $($objDistributionGroup.DisplayName)..." 

    #Get members of this group 
    $objDGMembers = Get-DistributionGroupMember -Identity $($objDistributionGroup.PrimarySmtpAddress) 

    write-host "Found $($objDGMembers.Count) members..." 

    #Iterate through each member 
    Foreach ($objMember in $objDGMembers) 
    { 
     Out-File -FilePath $OutputFile -InputObject "$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)" -Encoding UTF8 -append 
     write-host "`t$($objDistributionGroup.DisplayName),$($objDistributionGroup.PrimarySMTPAddress),$($objMember.DisplayName),$($objMember.PrimarySMTPAddress),$($objMember.RecipientType)" 
    } 
} 

#Clean up session 
Get-PSSession | Remove-PSSession 
+0

该脚本很好用。它会输出包含组和成员的csv。 –