【问题标题】:Lync Powershell enable group membersLync Powershell 启用组成员
【发布时间】:2015-03-04 04:03:55
【问题描述】:

我正在尝试为企业语音自动启用组的成员,我有以下(我知道很粗略),如果只有一个成员,它们可以工作:

$telephoneNumber = Get-ADGroupMember -Identity "LyncEnterpriseVoice" | Get-ADUser -Properties telephoneNumber | Select-Object -ExpandProperty telephoneNumber
$ext = Get-ADGroupMember -Identity "LyncEnterpriseVoice" | Get-ADUser -Properties otherTelephone | Select-Object -ExpandProperty othertelephone
Get-ADGroupMember -Identity "LyncEnterpriseVoice" | foreach {Get-ADUser $_.SamAccountName | foreach {Set-CSuser -identity $_.UserPrincipalname –EnterpriseVoiceEnabled $True –LineUri "tel:$telephoneNumber;ext=$ext"}}

我不知道如何为彼此提供电话和电话号码。有人能指出我正确的方向吗?

【问题讨论】:

    标签: powershell lync


    【解决方案1】:

    不是一个明确的答案,但应该对你有所帮助:

    • 您连续三次调用 Get-ADGroupMember -Identity "LyncEnterpriseVoice"。不要那样做 - 如果您每次都没有得到相同的结果,它效率低下,甚至可能导致不一致。只需调用一次并将其分配给一个变量,然后每次都使用该变量。如果您给该变量起一个好名字,这也将使您的代码更具可读性。
    • 准确了解您想要实现的目标 - 您正在收集哪些对象、它们具有哪些属性以及您想要迭代哪些内容?我几乎无法从您的代码中得到这一点,而且您似乎也对它没有深入的了解。明白这一点后,剩下的就很简单了。

    编辑:

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

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

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

    例如:

    获取我们想要操纵的用户,包括电话号码。否则,您将处理三个单独的数组,并且不知道如何匹配所有内容 - 这只是一团糟。

    $users = Get-ADGroupMember -Identity LyncEnterpriseVoice | Get-ADUser -Properties telephoneNumber, othertelephone
    

    让我们看看我们有什么:

    $users
    

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

    $users[0].GetType()
    

    并不奇怪,它们是 ADUser 对象。让我们设置一些属性:

    $users | foreach { Set-SCUser -Identity $_.UserPrincipalName –EnterpriseVoiceEnabled $true –LineUri "tel:$($_.telephoneNumber);ext=$($_.othertelephone)" }
    

    注意字符串中的子表达式 $(...) - 这些是必需的,因为否则变量 $_ 将被扩展,其余的将是 ".telephoneNumber"

    还有一件事:你写的“tel:...;ext=...”不一致而且看起来很奇怪——可能是错字?

    【讨论】:

    • 谢谢你的回复,我自然会考虑你的第一点,我会把它赋值给一个变量。至于第二点,我得到了我想要的结果,但是当有多个结果时我不知道如何处理。我假设必须使用 foreach,但无法使其工作。
    • 非常感谢,它不仅更优雅,而且完全符合我的要求。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多