Powershell 配置时出现断线问题;代“发送”;

Powershell 配置时出现断线问题;代“发送”;,powershell,exchange-server,ems,Powershell,Exchange Server,Ems,我有一个脚本要在ExchangeManagementShell中设置代表权限发送,但是当您尝试使用它时,它失败了,因为第一部分的输出太长,截断了超过2行 我们要做的第一件事是从人员列表中构建数组,并将其放入一些变量中进行传递: function Add-Send ($mailbox, $target) { #"Granting send on behalf for $mailbox to $target" Set-Mailbox -Identity $mailbox -Grant

我有一个脚本要在ExchangeManagementShell中设置代表权限发送,但是当您尝试使用它时,它失败了,因为第一部分的输出太长,截断了超过2行

我们要做的第一件事是从人员列表中构建数组,并将其放入一些变量中进行传递:

function Add-Send ($mailbox, $target) {
    #"Granting send on behalf for $mailbox to $target"
    Set-Mailbox -Identity $mailbox -GrantSendOnBehalfTo @{ Add = $target }
}
我们传递一个长列表作为
$target
,maibox名称为
$mailbox
,如果我们输出文本,我们会得到:

Set-Mailbox -Identity "mr.jeff" -GrantSendOnBehalfTo @{ Add = "alan.alanson", "bob.bobson", "steve.stevenson" }
所有这些都很好,但如果输出中的字符数超过
N
,则会出现换行:

Set-Mailbox -Identity "mr.jeff" -GrantSendOnBehalfTo @{ Add = "alan.alanson", "bob.bobson", "steve.stevenson", ...
..., "cath.cathdotir" }
使用超长输出运行此脚本时,命令会失败,因为应传递给CLI的输出会传递到多行。PowerShell将每一行视为一个单独的命令,它们显然会因语法错误而失败

我们的字符串是从一个数组中输出的,该数组的构建方式如下:

function Send-Array ($mailbox) {
    $target = Get-Content ".\list\dpt1.txt"
    $target += Get-Content ".\list\$mailbox.txt"
    $target += Get-Content ".\list\dpt2.txt"
    $target = $target | Select-Object -Unique
    $separator = '", "'
    $target= $target -replace '^|$','"' -join ','
    Add-Send $mailbox $target
}
这为我们提供了一个包含如下字符串的数组:

"alan.alanson", "bob.bobson", "steve.stevenson"
从这里开始,我不知所措,任何想法都将受到极大的赞赏

显而易见的解决方案是一次只传递一个名称,但由于每次使用PowerShell设置“代表发送”权限时Exchange Server都会进行一次检查,因此会清除现有权限,因此,您最终只能看到最后一个被授予权限的人能够代表发送。

请参阅,以获取有关您潜在问题的帮助

基本上,你必须:

  • 获取需要添加的用户的
    区分名称
  • GrantSendOnBehalfTo
    的当前值存储在变量中
  • 将新用户的可分辨名称附加到列表中
  • 用新列表替换
    grantsendohalfto
之后,您不需要向EMS传递无休止的字符串(我希望如此)。

请参阅以获取有关您的潜在问题的帮助

基本上,你必须:

  • 获取需要添加的用户的
    区分名称
  • GrantSendOnBehalfTo
    的当前值存储在变量中
  • 将新用户的可分辨名称附加到列表中
  • 用新列表替换
    grantsendohalfto

之后,您不需要将无休止的字符串传递给EMS(我希望如此)。

不,显而易见的解决方案是不将Add Send的输出写入屏幕-或者直接将其分配给变量,或者直接执行,然后文本输出仅用于我们的测试,通常直接执行。为了更好地反映这一点,我修改了原来的帖子。嗨,VPope,你检查过这个了吗?它似乎解决了您在尝试添加新权限(并保留现有权限)时遇到的特定问题。有趣的使用通讯组我现在将研究它作为一个选项否,显而易见的解决方案是不将add Send的输出写入屏幕-或者直接将其分配给变量,或者直接执行,然后文本输出仅用于我们的测试,通常直接执行。为了更好地反映这一点,我修改了原来的帖子。嗨,VPope,你检查过这个了吗?它似乎解决了您在尝试添加新权限(并保留现有权限)时遇到的特定问题