1

いくつかのHyperVVMをセットアップするためのPowerShellスクリプトを作成していますが、自動化に問題がある1つのステップがあります。プログラムでRemoteApp設定からリモートデスクトップアクセスを許可するには、チェックボックスをオンにするにはどうすればよいですか?

ここに画像の説明を入力してください

必要なすべてのカスタマイズを行うことでセットアップできます

#build the security descriptor so the desktop only shows up for people who should be allowed to see it
$remoteDesktopUsersSid = New-Object System.Security.Principal.SecurityIdentifier($remoteDesktopUsersGroup.objectSid[0],0)

#get a copy of the WMI instance
$tsRemoteDesktop = Get-WmiObject -Namespace root\CIMV2\TerminalServices -Class Win32_TSRemoteDesktop

#set settings
$tsRemoteDesktop.Name=$ServerDisplayName
$tsRemoteDesktop.SecurityDescriptor= "O:WDG:WDD:ARP(A;CIOI;CCLCSWLORCGR;;;$remoteDesktopUsersSid)"
$tsRemoteDesktop.IconPath = $IconPath
$tsRemoteDesktop.IconIndex = $IconIndex

#push settings back to server
Set-WmiInstance -InputObject $tsRemoteDesktop -PutType UpdateOnly

ただし、そのWMIオブジェクトのインスタンスは、上記のチェックボックスをオンにするまで存在しません。

Set-WmiInstanceを使用して設定のインスタンス化と設定を同時に実行しようとしましたが、次のようなエラーが発生し続けます。

Set-WmiInstance : 
At line:53 char:16
+ Set-WmiInstance <<<<  -Namespace root\CIMV2\TerminalServices -Class Win32_TSRemoteDesktop -Arguments @{Alias='TSRemoteDesktop';Name=$ServerDisplayName;ShowInPortal=$true;SecurityDescriptor=$securityDescriptor}
    + CategoryInfo          : NotSpecified: (:) [Set-WmiInstance], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException,Microsoft.PowerShell.Commands.SetWmiInstance

(また、コマンドを実行してエラーが発生した後、インスタンスがWin32_TSRemoteDesktopすでに終了している場合はそのインスタンスを削除し、プロパティ設定のチェックボックスをオフにします)

プログラムでそのボックスをチェックする方法はありますか、または誰かSet-WmiInstanceがそのエラーをスローする理由を手伝ってもらえますか?

4

1 に答える 1

1

Windows Server 2008 R2を実行している場合は、WindowsPowerShellモジュール用のリモートデスクトップサービスプロバイダーを使用できます。

あなたはtechnetでそれについて読むことができます聞いてリンクです。

私はすべてのニーズにこのガイドを使用しました。

于 2012-06-27T14:37:21.587 に答える