Lync Powershell启用组成员

Lync Powershell启用组成员,powershell,lync,Powershell,Lync,我正在尝试为Enterprise Voice自动启用一个组的成员,我有以下几点(我知道很粗略),如果只有一个成员,这一点很有效: $telephoneNumber=Get-ADGroupMember-Identity“LynchEnterpriseVoice”| Get-ADUser-Properties-telephoneNumber | Select Object-ExpandProperty-telephoneNumber $ext=获取ADGroupMember-标识“Lync Ente

我正在尝试为Enterprise Voice自动启用一个组的成员,我有以下几点(我知道很粗略),如果只有一个成员,这一点很有效:

$telephoneNumber=Get-ADGroupMember-Identity“LynchEnterpriseVoice”| Get-ADUser-Properties-telephoneNumber | Select Object-ExpandProperty-telephoneNumber
$ext=获取ADGroupMember-标识“Lync EnterpriseVoice”|获取ADUser-属性其他电话|选择对象-扩展属性其他电话
Get-ADGroupMember-Identity“LynchEnterpriseVoice”| foreach{Get ADUser$\.SamAccountName | foreach{Set-CSuser-Identity$\\.UserPrincipalname–EnterpriseVoiceEnabled$True–LineUri“电话:$telephoneNumber;ext=$ext”}

我想不出如何为其他电话和电话号码打电话。有人能给我指出正确的方向吗。

这不是一个明确的答案,但应该能帮助你:

  • 您连续三次调用Get-ADGroupMember-Identity“LyncEnterpriseVoice”。不要这样做——这样做效率很低,如果每次都得不到相同的结果,甚至会导致不一致。只需调用一次并将其分配给变量,然后每次都使用该变量。如果给变量起一个好名字,这也会使代码更具可读性
  • 确切地了解您想要实现的目标-您收集的对象是什么,它们具有什么属性,以及您想要迭代什么?我几乎无法从你的代码中得到这一点,而你似乎也没有对它有一个坚实的理解。一旦你明白了这一点,剩下的就很容易了
编辑:

我不知道你说的“我得到了我想要的结果”是什么意思。我很确定你的变量不包含你认为它们的作用。逐行构建一个脚本是很有帮助的——检查每一步要处理的对象。否则,你只是做假设,你将不可避免地经常出错

例如,在第1行中,您似乎得到了一组电话号码,而在第2行中,您得到了一组附加电话号码($telephoneNumber和$ext)。但是在第3行中,您使用这些完整的数组,而不是单个元素,为每个用户构建LineUri字符串,这可能是不正确的

同样在第3行中,您使用AD user对象作为输入,然后执行foreach并再次为每个用户获取AD user对象-这清楚地表明您不知道正在处理的对象

例如:

获取我们想要操纵的用户,包括电话号码。否则,您将要处理三个独立的数组,并且不知道如何匹配所有内容—这太混乱了

$users = Get-ADGroupMember -Identity LyncEnterpriseVoice | Get-ADUser -Properties telephoneNumber, othertelephone
让我们看看我们有什么:

$users
好的,这是一个包含我们需要的所有信息的对象数组,但出于好奇,它们到底是什么类型的对象

$users[0].GetType()
毫不奇怪,它们是成人的对象。让我们设置一些属性:

$users | foreach { Set-SCUser -Identity $_.UserPrincipalName –EnterpriseVoiceEnabled $true –LineUri "tel:$($_.telephoneNumber);ext=$($_.othertelephone)" }
请注意字符串中的子表达式
$(…)
-这些是必需的,因为否则变量
$将展开,其余的将按字面意思是
“.telephoneNumber”


还有一件事:你写“tel:…;ext=…”,这是不一致的,看起来很奇怪-可能是打字错误?

谢谢你的回复,我自然会考虑你的第一点,我会把它分配给一个变量。至于第二点,我得到了我想要的结果,但当有多个结果时,我不知道如何处理它。我假设必须使用foreach,但无法使其工作。非常感谢,它不仅更加优雅,而且完全符合我的要求。