qualcuno può darmi alcune indicazioni su come impostare le autorizzazioni sulle code MSMQ nello script, preferibilmente PowerShell, ma mi piacerebbe utilizzare VBScriptImpostazione delle autorizzazioni su una coda MSMQ in uno script
risposta
Un presente (2015) risposta giorno a questa domanda.
Esempio:
New-MsmqQueue -Name "MyQueue" -QueueType Private
Get-MsmqQueue -Name "MyQueue" -QueueType Private |
Set-MsmqQueueAcl -UserName "Everyone" -Allow FullControl
applica a: Windows 8.1, Windows PowerShell 4.0, Windows Server 2012 R2
Riferimento: https://technet.microsoft.com/en-us/library/dn391735(v=wps.630).aspx
Non c'è niente di costruito in PowerShell per questo, ma puoi usare le classi del framework .NET. Basta caricare System.Messaging.dll e utilizzare MessageQueue.SetPermissions() per modificare l'ACL sulla coda.
Ed ecco qualche esempio PowerShell compresa l'impostazione delle autorizzazioni ... dispiace per la lunghezza
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 !!"
Questo è ormai obsoleta - @Davids risposta è molto meglio. –
Questa è un'ottima risposta per coloro che eseguono Windows 7 o pre-Windows Server 2012 R2. Altrimenti, @GregSansom è corretto. Grazie per aver postato questa risposta. – fourpastmidnight
di Windows 2012 e 8.1 ora hanno cmdlet MSMQ. Quello per impostare i permessi su una coda è: Set-MsmqQueueAcl
- 1. Impostazione delle autorizzazioni in ZipArchive
- 2. Condivisione di una cartella e impostazione delle autorizzazioni in PowerShell
- 3. Modifica messaggi MSMQ in una coda
- 4. Impostare le autorizzazioni predefinite durante la creazione di una nuova coda messaggi (MSMQ) in C#
- 5. Come si aggiungono le autorizzazioni su una coda SQS AWS?
- 6. messaggi MSMQ sono bloccati in coda in uscita
- 7. impostazione delle autorizzazioni di accesso alla pagina in drupal
- 8. Impostazione delle variabili di ambiente su Qt Creator mediante l'acquisizione di uno script di shell
- 9. Impostazione delle autorizzazioni di amministratore Django a livello di programmazione
- 10. sottoscrivere msmq
- 11. Spostare il messaggio dalla coda Dead Letter alla coda in uscita MSMQ
- 12. MSMQ - una coda può sopravvivere al riavvio del processo di coda/riavvio del server
- 13. Gestione delle autorizzazioni utente con una gerarchia
- 14. Impostazione autorizzazioni per cloudera hadoop
- 15. MSMQ privato o pubblico
- 16. Esegui più script Powershell in sequenza - su una cartella - Combina gli script in uno script principale
- 17. awk: impostazione delle variabili di ambiente direttamente da uno script awk
- 18. WIX: assegnazione delle autorizzazioni a una cartella
- 19. coda messaggi per iOS/iPad - qualcosa come MSMQ?
- 20. Impostazione autorizzazioni per WordPress su Amazon EC2 (Amazon Linux)
- 21. Impostazione delle autorizzazioni predefinite per i file e le sottodirectory appena creati in una directory in Linux?
- 22. Monitoraggio MSMQ
- 23. Rimozione delle autorizzazioni delle estensioni
- 24. Esiste un limite alle dimensioni della coda MSMQ?
- 25. Esiste un modo migliore per contare i messaggi in una coda messaggi (MSMQ)?
- 26. Impostazione delle variabili di ambiente in .screenrc
- 27. I messaggi MSMQ associati all'istanza MSMQ cluster si bloccano nelle code in uscita
- 28. MSMQ CreateCursor NullReferenceException
- 29. Impostazione delle larghezze cella/colonna su una tabella di gamberi
- 30. Come impostare ActiveMQ redeliveryPolicy su una coda?
invece di 'Get-MsmqQueue' potresti anche' $ newQueue = New-MsmqQueue ... 'e poi' $ newQueue | Set-MsmqQueueAcl ... ' – Greg