2015-03-10 3 views
0

Я пытаюсь выполнить приведенную ниже команду, чтобы удалить разрешение e Send On Behalf, но я получаю исключение, и он удаляет всех пользователей, имеющих доступ, вместо один я указываю в моем сценарииExchange 2010 - Powershell удалить Отправить по имени

$owner = "lpeter" 
$remove = "jdoe" 

$grantlist = Get-Mailbox $owner -DomainController tordc01 | select -ExpandProperty GrantSendOnB 

$grantlist = $grantlist |?{$_.Name -ne $remove} 
Set-Mailbox $owner -GrantSendOnBehalfTo $null -DomainController tordc01 
$grantlist | %{ 
    Set-Mailbox $owner -GrantSendOnBehalfTo @{Add=$_.Name} -Confirm $true 
} -DomainController tordc01 

здесь является исключением:

ForEach-Object : Cannot bind parameter 'Process'. Cannot convert the 
"-DomainController" value of type "System.String" to type 
"System.Management.Automation.ScriptBlock". At line:1 char:15 
+ $grantlist | % <<<< {Set-Mailbox $owner -GrantSendOnBehalfTo @{Add=$_.Name} -Confirm $true} -DomainController tordc01 

    + CategoryInfo   : InvalidArgument: (:) [ForEach-Object], ParameterBindingException 
    + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.PowerShell.Commands.ForEachObjectCommand 

ответ

1

исключением является довольно очевидно, что вы пытаетесь поставить параметр -DomainController в ForEach-Object, а не Set-Mailbox

Изменить последнее заявление:

$grantlist | %{ 
    Set-Mailbox $owner -GrantSendOnBehalfTo @{Add=$_.Name} -Confirm:$true -DomainController tordc01 
} 
+0

Вот й исключение я получаю сейчас, после изменения последнего утверждения Позиционный параметр не может быть найден, который принимает аргумент «True». + CategoryInfo: InvalidArgument: (:) [Set-Mailbox], ParameterBindingException + FullyQualifiedErrorId: PositionalParameterNotFound, Set-Mailbox – Nazim

+1

Измените '-Confirm $ true' на' -Confirm: $ true'. Используйте '-Confirm: $ false', если вы хотите избежать подтверждения того, что каждый добавленный пользователь добавлен –

 Смежные вопросы

  • Нет связанных вопросов^_^