Office 365 Powershell - 获取安全组成员的 LastPasswordChangeStamp
Office 365 Powershell - Get LastPasswordChangeStamp for members of a security group
我希望有人能够提供一些指导。我正在尝试构建一个 Powershell 脚本,使我能够为特定安全组的成员获取 LastPasswordChangeStamp。我正在测试的组有 10 个成员,但是当我 运行 脚本时,它的行为如下:
- 运行成功,没有错误
- Returns 80 个结果(8 x 10 个成员)
代码如下:
#Define the Security Group
$securityGroup = Get-MsolGroup -GroupType “Security” | Where-Object {$_.DisplayName -eq “GroupName”}
# Get Members
$securityGroupMembers = Get-MsolGroupMember -GroupObjectId $securityGroup.ObjectId
# Iterate each user
ForEach($Member in $securityGroupMembers){
#Get underlying msol user
#$user = Get-MsolUser -ObjectId -$mUser.ObjectId
#Determine password age
Get-MsolUser | select DisplayName, LastPasswordChangeTimeStamp
}
我不明白为什么它会循环多次,希望有人能就我哪里出错提供一些指导。
感谢您的帮助
此处的问题出在您的 foreach 循环中。你是说对于组中的每个成员,获取整个租户中的所有用户,并显示他们的显示名称和上次密码更改时间戳。
您可以用
替换整个 foreach 循环
$securityGroupMembers | get-msoluser | select DisplayName, LastPasswordChangeTimeStamp
只需删除整个 foreach 循环。
我希望有人能够提供一些指导。我正在尝试构建一个 Powershell 脚本,使我能够为特定安全组的成员获取 LastPasswordChangeStamp。我正在测试的组有 10 个成员,但是当我 运行 脚本时,它的行为如下:
- 运行成功,没有错误
- Returns 80 个结果(8 x 10 个成员)
代码如下:
#Define the Security Group
$securityGroup = Get-MsolGroup -GroupType “Security” | Where-Object {$_.DisplayName -eq “GroupName”}
# Get Members
$securityGroupMembers = Get-MsolGroupMember -GroupObjectId $securityGroup.ObjectId
# Iterate each user
ForEach($Member in $securityGroupMembers){
#Get underlying msol user
#$user = Get-MsolUser -ObjectId -$mUser.ObjectId
#Determine password age
Get-MsolUser | select DisplayName, LastPasswordChangeTimeStamp
}
我不明白为什么它会循环多次,希望有人能就我哪里出错提供一些指导。
感谢您的帮助
此处的问题出在您的 foreach 循环中。你是说对于组中的每个成员,获取整个租户中的所有用户,并显示他们的显示名称和上次密码更改时间戳。
您可以用
替换整个 foreach 循环$securityGroupMembers | get-msoluser | select DisplayName, LastPasswordChangeTimeStamp
只需删除整个 foreach 循环。