PowerShell 365-Remove-UnifiedGroupLinks转换值错误

问题描述

我试图清除365组的成员身份,但是remove命令不接受通配符,因此选择使用“ get-user”并将其放入“ foreach”。但是这个错误。你能帮忙吗?

def create
    @booking = Booking.new(booking_params)
    @booking.user = current_user
    
    respond_to do |format|
      if @booking.save
        format.html { redirect_to @booking,notice: 'Booking successfully !!!' }
        format.json { render :show,status: :created,location: @booking }
      else
        format.html { render :new }
        format.json { render json: @booking.errors,status: :unprocessable_entity }
      end
    end
  end

错误

#get list
$users = Get-UnifiedGroupLinks –Identity "testgroup" -LinkType Members
#empty list
    foreach($user in $users){
        Remove-UnifiedGroupLinks –Identity "testgroup" –LinkType "Members" –Links $user
    }

解决方法

Remove-UnifiedGroupLinks上的Links参数指定要从Microsoft 365组中删除的用户。 它需要一个唯一标识收件人的值,为此,您可以使用以下任意一个值:

  • 名称
  • 别名
  • 专有名称(DN)
  • 规范DN
  • 电子邮件地址
  • GUID

在代码中,您只需从Get-UnifiedGroupLinks返回的成员对象中选择一个属性,例如用户的电子邮件地址。

尝试

#get list
$users = (Get-UnifiedGroupLinks –Identity "testgroup" -LinkType Members).PrimarySMTPAddress
#empty list
foreach($user in $users){
    Remove-UnifiedGroupLinks –Identity "testgroup" –LinkType Members –Links $user
}
,

上一个答案可行,但另一种方法是在 foreach 循环内以不同的方式“即时”指定用户。由于您使用 Get-UnifiedGroupLinks 拉入用户对象,因此您拉回了您可以使用的 $users 变量中的许多属性。您只需要在 foreach 循环中更加具体,并使用这些属性之一。

您可以在 foreach 循环中为每个用户指定 PrimarySmtpAddress,如下所示:

    –Links $($user).PrimarySmtpAddress

我一直在编写一些用于管理团队/统一组的代码示例,并在一些 foreach 循环中使用了这种技术:Unsubscribe-FollowInInbox.ps1

如果您有任何问题,请告诉我!