Я пытаюсь автоматизировать создание очередей MSMQ с использованием powershell
У меня нет проблем с созданием очереди, я просто не могу правильно установить разрешения
Я следил за тем, что задокументировано здесь
Настройка разрешений для очереди MSMQ в сценарии
и здесь
https://docs.microsoft.com/en-us/powershell/module/msmq/set-msmqqueueacl?view=win10-ps
Это моя команда для создания очереди
New-MsmqQueue -Name "ThisIsTestName" -QueueType Private
но когда я пытаюсь установить разрешения, используя эту команду
Get-MsmqQueue -Name "ThisIsATestName" -QueueType Private | Set-MsmqQueueAcl -UserName "Everyone" -Allow Peek,Receive,Send,Delete,GetProperties,GetPermissions
Я получаю эту ошибку
Set-MsmqQueueACL : Cannot convert 'System.Object[]' to the type 'System.Nullable`1[Microsoft.Msmq.PowerShell.Commands.MessageQueueAccessRights]' required by parameter 'Allow'.
Specified method is not supported.
At line:1 char:105
+ ... veryone" -Allow Peek,Receive,Send,Delete,GetProperties,GetPermissions
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Set-MsmqQueueACL], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgument,Microsoft.Msmq.PowerShell.Commands.SetMSMQQueueACLComm
Итак, я попытался удалить все разрешения и просто использовать FullAccess.
Это не дало мне ошибку, но не установило разрешения
смотря дальше, я наткнулся на этот пост:
Set-MsmqQueueACL - Разрешить - нельзя использовать список в соответствии с документами?
Итак, я обновился до следующего
$allows = [Microsoft.Msmq.PowerShell.Commands.MessageQueueAccessRights]::Peek -bor
[Microsoft.Msmq.PowerShell.Commands.MessageQueueAccessRights]::Receive -bor
[Microsoft.Msmq.PowerShell.Commands.MessageQueueAccessRights]::Send -bor
[Microsoft.Msmq.PowerShell.Commands.MessageQueueAccessRights]::Delete -bor
[Microsoft.Msmq.PowerShell.Commands.MessageQueueAccessRights]::GetPermissions -bor
[Microsoft.Msmq.PowerShell.Commands.MessageQueueAccessRights]::GetProperties
Get-MsmqQueue -Name "ThisIsATestName" -QueueType Private | Set-MsmqQueueAcl -UserName "Everyone" -Allow $allows
Но я все еще получаю ту же ошибку
Я знаю, что где-то допустил глупую ошибку, но не вижу, что сделал неправильно
Попытка сделать это на компьютере с Windows 10