1
我正在編寫一個PowerShell腳本來設置一些HyperV虛擬機,但是有一個步驟我在自動化時遇到了問題。如何選中該框以允許以編程方式從RemoteApp設置進行遠程桌面訪問?以編程方式啓用RemoteApp Full Desktop
我可以設置我所有的自定義的,我需要做
#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
會引發該錯誤?
非常感謝您,我仍然需要使用'Win32_TSRemoteDesktop'來設置'SecurityDescriptor',因爲它們不能從'RDS:'提供程序中獲得,但這非常有幫助。 –
有兩件事我可以發現我無法通過提供者完成,爲RDP-Tcp連接設置lisening端口(當前通過註冊表進行更改),並在RDS:\ RemoteApp \ RemoteDesktopAccess中設置高級設置Name,SecurityDescriptior,IconPath和IconIndex(目前我需要調用WMI對象[Win32_TSRemoteDesktop](http://msdn.microsoft.com/en-us/library/windows/desktop/bb736367%28v=vs.85%29 .aspx)並通過它來設置)有沒有其他地方我可以使用或者我需要做WMI的事情。 –