いくつかの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
がそのエラーをスローする理由を手伝ってもらえますか?