WMCクラスWin32_TSGatewayServer
のメソッドを実行しようとしているときに問題が発生しました.PowerhellでServer 2012 R2のリモートデスクトップゲートウェイの役割を使用しています。Powershell WMI:Win32_TSGatewayServerクラスメソッドへのパラメータ渡しの問題
私の目標は、リモートデスクトップゲートウェイの設定をあるシステムから別のシステムにエクスポート/インポートすることです。 Win32_TSGatewayServer
は、必要なメソッドが含まれているようだ:
私はそれを拡張し、特定の仕事を得ることができたが、私はにExportType/ImportTypeパラメータを渡すために失敗していますメソッド呼び出し。私は現在、使用しています何
は次のとおりです。
$source = Get-WmiObject -Namespace root\CIMV2\TerminalServices -Class Win32_TSGatewayServer -ComputerName rdg1
$destination = Get-WmiObject -Namespace root\CIMV2\TerminalServices -Class Win32_TSGatewayServer -ComputerName rdg2
$settings = $source.Export(0).XmlString
$destination.Import(0,$settings,$null)
これは、全体の構成をインポート/エクスポートするようです。
ImportTypeパラメータを指定してエクスポート/インポートを呼び出す方法はありますか。どんなに私がしようとするもの、私は0
に異なるパラメータを指定するたびに、それはサーバー2012 R2を使用して
PS C:\Windows\system32> $source.Export(1)
Exception calling "Export" : ""
At line:1 char:1
+ $source.Export(1)
+ ~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WMIMethodException
アップデート1
を失敗しました。目的は、GUIでのエクスポート/インポート機能の動作を完全に模倣することです。
JamesQMurphyの答えは、ビットマップをどのようにハンドリングするかをより明確に示しています。コメントで簡単に述べたように、いくつかのパラメータ(0,32,33など)でExport()を使用できましたが、動作するはずのもの(1,3,5など)は失敗します。
これは、以下の考え方に私を導く:それはそうでない場合は、例外がスローされますよう各通話用のファイルを生成します
for ($i = 0; $i -le 128; $i++)
{
$source.Export($i).XmlString | Out-File C:\temp\$i.txt
}
が成功しました。それから私は、すべてのファイルを見るためにハッシュ化された
- 32-63
- 96-127
:結果から、128個のパラメータのうち65が有効な輸出を生成していることが明らかでしたその内容が異なり、同じハッシュを持つ唯一のファイルがエクスポート(0)とエクスポート(127)のものです。
ビットマップは少なくとも部分的には動作するようですが、MSDNの記事(これは質問を投稿してビットテーブルの代わりにint値を反映して以来のものです)とは異なるマッピング(?)を使用しています
ご返信ありがとうございます。私の場合、$ source.GetType()は配列ではなく実際のオブジェクトを返すので、メソッドを正しく呼び出すことができます。しかし、私はビットマスクについては不明です。 Export(0)、Export(32)、Export(33)は異なる値を返しますが、Export(1)、2、5は例外を返します。 – leepfrog