我的 MSMQ 队列由 PowerShell DSC 引擎创建。我可以看到创建的队列。由于 DSC 引擎从 SYSTEM 帐户运行,因此队列所有者也设置为 SYSTEM。当我尝试从 PowerShell 控制台设置 MSMQ ACL 时,我不断收到以下错误:
PS C:\Users\Administrator.DOMAIN> whoami; Get-MsmqQueue queue1 | Set-MsmqQueueACL -UserName "Everyone" -Allow FullControl
DOMAIN\administrator
Set-MsmqQueueACL : Failed to set security descriptor. Error code: 3222143013
At line:1 char:50
+ whoami; Get-MsmqQueue incredipay_atm_processor | Set-MsmqQueueACL -UserName "Eve ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidResult: (FullControl:MessageQueueAccessRights) [Set-MsmqQueueACL], Win32Exception
+ FullyQualifiedErrorId : Failed to set security descriptor. Error code: 3222143013,Microsoft.Msmq.PowerShell.Commands.SetMSMQQueueACLCommand
我也无法使用自定义 DSC 资源设置 MSMQ ACL,这基本上只能从 SYSTEM 帐户执行相同的操作。所以问题是有没有办法使用 Set-MSMQQueueACL cmdlet 从 PowerShell DSC 引擎中设置 MSMQ 权限。或者至少如果我能够解决前面提到的错误,那么也许我也能够解决 DSC 问题。我正在运行 Windows 2012 和 WMF 4.0。
提前致谢。