Quelqu'un peut-il me donner quelques conseils sur la façon de définir des autorisations sur les files d'attente MSMQ dans le script, de préférence PowerShell, mais j'utiliser VBscriptDéfinition des autorisations sur une file d'attente MSMQ dans un script
Répondre
Un jour (2015) jour réponse à cette question.
Exemple:
New-MsmqQueue -Name "MyQueue" -QueueType Private
Get-MsmqQueue -Name "MyQueue" -QueueType Private |
Set-MsmqQueueAcl -UserName "Everyone" -Allow FullControl
S'applique à: Windows 8.1, Windows PowerShell 4.0, Windows Server 2012 R2
Référence: https://technet.microsoft.com/en-us/library/dn391735(v=wps.630).aspx
Il n'y a rien construit dans Powershell pour cela, mais vous pouvez utiliser les classes de framework .NET. Chargez simplement System.Messaging.dll et utilisez MessageQueue.SetPermissions() pour modifier la liste de contrôle d'accès dans la file d'attente.
Et voici quelques exemples PowerShell, y compris la définition des autorisations ... désolé la longueur
Write-Host ""
Write-Host "Examples using the .NET System.Messaging assembly to access MSMQ"
Write-Host ""
Write-Host "... load the .NET Messaging assembly"
[Reflection.Assembly]::LoadWithPartialName("System.Messaging")
Write-Host ""
if ([System.Messaging.MessageQueue]::Exists(".\private$\MyQueue"))
{
[System.Messaging.MessageQueue]::Delete(".\private$\MyQueue")
Write-Host "... delete old myqueue"
}
if ([System.Messaging.MessageQueue]::Exists(".\private$\BtsQueue"))
{
[System.Messaging.MessageQueue]::Delete(".\private$\BtsQueue")
Write-Host "... delete old btsqueue"
}
Write-Host "... create a new queue"
$q1 = [System.Messaging.MessageQueue]::Create(".\private$\MyQueue")
Write-Host "... create new queue, set FullControl permissions for CORP\BIZTALK"
$qb = [System.Messaging.MessageQueue]::Create(".\private$\BtsQueue")
$qb.SetPermissions("CORP\BIZTALK",
[System.Messaging.MessageQueueAccessRights]::FullControl,
[System.Messaging.AccessControlEntryType]::Set)
Write-Host "... list existing queues"
$pqs = [System.Messaging.MessageQueue]::GetPrivateQueuesByMachine(".")
Write-Host " Count: "$pqs.length -ForegroundColor gray
foreach($q in $pqs)
{
Write-Host " "$q.QueueName -ForegroundColor gray
}
Write-Host "... access existing queue"
$q2 = New-Object System.Messaging.MessageQueue ".\private$\MyQueue"
Write-Host "... adding string Formatter and additional properties "
$q2.Formatter.TargetTypeNames = ,"System.String"
$q2.MessageReadPropertyFilter.ArrivedTime = $true
$q2.MessageReadPropertyFilter.SentTime = $true
Write-Host "... create a new High priorty message "
$msg = New-Object System.Messaging.Message "TestMessage"
$msg.label = "Test Msg Label"
$msg.body = "Add some body to test message"
$msg.priority = [System.Messaging.MessagePriority]::High
Write-Host "... send the High message"
$q2.send($msg)
$msg.body = "Some more text for the test message"
$msg.priority = [System.Messaging.MessagePriority]::Low
Write-Host "... send the Low message"
$q2.send($msg)
Write-Host "... check the queue "
Write-Host " Count: "$q2.GetAllMessages().length -ForegroundColor gray
Write-Host "... peek at queue"
$ts = New-Object TimeSpan 10000000 # 1 sec. timeout just in case MSMQ is empty
$pk = $q2.Peek($ts)
Write-Host " ArrivedTime: "$pk.ArrivedTime.DateTime -ForegroundColor gray
Write-Host " SentTime : "$pk.SentTime.DateTime -ForegroundColor gray
Write-Host "... check the queue "
Write-Host " Count: "$q2.GetAllMessages().length -ForegroundColor gray
Write-Host "... receive from queue"
$rmsg = $q2.receive($ts)
Write-Host " Body : "$rmsg.body -ForegroundColor gray
Write-Host " Label: "$rmsg.label -ForegroundColor gray
Write-Host "... check the queue "
Write-Host " Count: "$q2.GetAllMessages().length -ForegroundColor gray
Write-Host "... purge the queue "
$q2.Purge()
Write-Host "... check the queue "
Write-Host " Count: "$q2.GetAllMessages().length -ForegroundColor gray
Write-Host ""
Write-Host "All done, but remember to delete the test queues !!"
Ceci est maintenant obsolète - @Davids réponse est beaucoup mieux. –
Ceci est une excellente réponse pour ceux qui exécutent Windows 7 ou pré-Windows Server 2012 R2. Sinon, @GregSansom est correct. Merci d'avoir posté cette réponse. – fourpastmidnight
de Windows 2012 et 8.1 ont maintenant cmdlets MSMQ. Celui pour définir les autorisations sur une file d'attente est: Set-MsmqQueueAcl
- 1. Définition des autorisations de dossier sur Vista
- 2. Définition des autorisations d'accès sur le sémaphore?
- 3. Définition des autorisations sur le journal des événements de l'application
- 4. Comment accorder un accès au service Windows à une file d'attente MSMQ avec un projet d'installation?
- 5. Lecture lente de file d'attente MSMQ
- 6. Définition des autorisations de bibliothèque de documents dans WSS 2.0
- 7. MSMQ ne peut pas supprimer ou purger une file d'attente
- 8. Connexion à une file d'attente MSMQ à distance privé
- 9. Définition des autorisations de fichier à l'aide de Rake
- 10. script cron pour agir comme une file d'attente OU une file d'attente pour cron?
- 11. Supprimer la file d'attente MSMQ lors de la désinstallation
- 12. Lent MSMQ dans un service WCF
- 13. accès au script via les autorisations
- 14. VB Script Text File Prepend
- 15. Autorisations erreur lors de l'accès à MSMQ à partir du service Web ASP .Net
- 16. Supprimer un message unique MSMQ
- 17. SQLMembershipProvider - Ajout de l'appartenance à une base de données existante. Définition des autorisations
- 18. Puis-je rediriger un message mal adressé sur MSMQ sortant?
- 19. Suivi des autorisations dans SharePoint
- 20. CakePHP: autorisations basées sur un modèle?
- 21. Moniteur MSMQ
- 22. MSMQ: Remerciements non retournés lors de la livraison à une file d'attente à distance
- 23. Utilisez la file d'attente de lettres mortes MSMQ ou la file d'attente d'administration pour gérer les messages non envoyés?
- 24. Aucune autorisation d'accès à un MSMQ privé
- 25. Redondance MSMQ
- 26. Existe-t-il un moyen d'accéder à la file d'attente publique MSMQ si ce n'est pas sur le domaine?
- 27. Surveillance MSMQ
- 28. Plusieurs consommateurs pour une seule file d'attente dans MassTransit
- 29. Désinscription d'un port d'envoi BizTalk MSMQ dans un fichier batch
- 30. Les autorisations de fichier n'héritent pas des autorisations de répertoire
au lieu de 'Get-MsmqQueue' vous pouvez aussi' $ newQueue = New-MsmqQueue ... 'et ensuite' $ newQueue | Set-MsmqQueueAcl ... ' – Greg