Windows Server 2012 R2、PowerShell 4.0がインストールされている2ノードクラスタがあります。クラスタ内の役割の1つは、約20個のプライベートキューがインストールされている「TESTMSMQ」という名前の「メッセージングキューイング」です。新鮮PowerShellコンソールで Get-MsmqQueueでクラスタ内のキューが見つかりません
は、私が-Name *-MsmqQueueを取得し、私は戻って何を取得実行すると、コマンド$env:_CLUSTER_NETWORK_NAME_='TESTMSMQ'
を使用して、「TESTMSMQ」であると、環境変数_CLUSTER_NETWORK_NAME_を設定します。しかし、compmgmt.mscを実行すると、リストにあるすべてのキューが表示され、System.MessagingアセンブリをPowerShellセッションにロードすると、キューが表示されます。真
[System.Reflection.Assembly]::LoadWithPartialName("System.Messaging")
[System.Messaging.MessageQueue]::Exists('.\private$\MyTestQueue')
戻り
誰もがMSMQコマンドレットは、キューを見つけることができない理由のアイデアが、およびコンピュータ経営管理論は、スナップインできる.NETアセンブリが同様にキューを見ていますか?
ローカルノードまたは物理ノードで定義されたキューはありません。 "private $ \ MyTestQueue"は、MSMQのインストール済みロール "TESTMSMQ"でのみ定義されています。
したがって、Exists()がローカルホスト名を使用してTrueを返す場合、環境は物理ノードではなくMSMQロールであると想定します。
環境を_CLUSTER_NETWORK_NAME_に設定すると、クラスタ化されたコマンドプロンプトに表示されません。 * [クラスタ化MSMQでPowerShellを使用する](http://www.winterdom.com/msmq/2011/10/25/using-powershell-with-clustered-msmq.html) * [GetHostNameW関数](https:///msdn.microsoft.com/en-us/library/windows/desktop/dn793576(v=vs.85).aspx) – jcjustesen