22/06/2020
Windows Server 2012 ve sonra RDP Server FQDN adres değiştirme Script içeği

Merhabalar,
Windows Server 2012, 2012 R2, 2016 ve 2019 uzak masaüstü hizmetlerinde (RDP-Remote Desktop Services) yayınlanmış olan FQDN adresinin değiştirilmesine olanak sağlamak için bu sciript’i kullanabilirsiniz. Özelliklede bu scirpt ile .local gibi özel TLD (Top-Level-Domain) dahili olarak kullanıldığında sertifika ve DNS uyuşmazlığı hatalarını da önlenmiş olacaktır.
[CmdletBinding()] Param( [Parameter(Mandatory=$True,HelpMessage="Specifies the FQDN that clients will use when connecting to the deployment.",Position=1)] [string]$ClientAccessName, [Parameter(Mandatory=$False,HelpMessage="Specifies the RD Connection Broker server for the deployment.",Position=2)] [string]$ConnectionBroker="localhost" ) $CurrentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent()) If (($CurrentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)) -eq $false) { $ArgumentList = "-noprofile -noexit -file `"{0}`" -ClientAccessName $ClientAccessName -ConnectionBroker $ConnectionBroker" Start-Process powershell.exe -Verb RunAs -ArgumentList ($ArgumentList -f ($MyInvocation.MyCommand.Definition)) Exit } Function Get-RDMSDeployStringProperty ([string]$PropertyName, [string]$BrokerName) { $ret = iwmi -Class "Win32_RDMSDeploymentSettings" -Namespace "root\CIMV2\rdms" -Name "GetStringProperty" ` -ArgumentList @($PropertyName) -ComputerName $BrokerName ` -Authentication PacketPrivacy -ErrorAction Stop Return $ret.Value } Try { If ((Get-RDMSDeployStringProperty "DatabaseConnectionString" $ConnectionBroker) -eq $null) {$BrokerInHAMode = $False} Else {$BrokerInHAMode = $True} } Catch [System.Management.ManagementException] { If ($Error[0].Exception.ErrorCode -eq "InvalidNamespace") { If ($ConnectionBroker -eq "localhost") { Write-Host "`n Set-RDPublishedName Failed.`n`n The local machine does not appear to be a Connection Broker. Please specify the`n FQDN of the RD Connection Broker using the -ConnectionBroker parameter.`n" -ForegroundColor Red } Else { Write-Host "`n Set-RDPublishedName Failed.`n`n $ConnectionBroker does not appear to be a Connection Broker. Please make sure you have `n specified the correct FQDN for your RD Connection Broker server.`n" -ForegroundColor Red } } Else { $Error[0] } Exit } $OldClientAccessName = Get-RDMSDeployStringProperty "DeploymentRedirectorServer" $ConnectionBroker If ($BrokerInHAMode.Value) { Import-Module RemoteDesktop Set-RDClientAccessName -ConnectionBroker $ConnectionBroker -ClientAccessName $ClientAccessName } Else { $return = iwmi -Class "Win32_RDMSDeploymentSettings" -Namespace "root\CIMV2\rdms" -Name "SetStringProperty" ` -ArgumentList @("DeploymentRedirectorServer",$ClientAccessName) -ComputerName $ConnectionBroker ` -Authentication PacketPrivacy -ErrorAction Stop $wksp = (gwmi -Class "Win32_Workspace" -Namespace "root\CIMV2\TerminalServices" -ComputerName $ConnectionBroker) $wksp.ID = $ClientAccessName $wksp.Put()|Out-Null } $CurrentClientAccessName = Get-RDMSDeployStringProperty "DeploymentRedirectorServer" $ConnectionBroker If ($CurrentClientAccessName -eq $ClientAccessName) { Write-Host "`n Set-RDPublishedName Succeeded." -ForegroundColor Green Write-Host "`n Old name: $OldClientAccessName`n`n New name: $CurrentClientAccessName" Write-Host "`n If you are currently logged on to RD Web Access, please refresh the page for the change to take effect.`n" } Else { Write-Host "`n Set-RDPublishedName Failed.`n" -ForegroundColor Red }
script’in çalıştırılması için Set-RDPPublishName “rdp.domainname.com” komutunu kullanabilirsiniz.