ฉันกำลังพยายามปรับใช้เซสชันเดสก์ท็อประยะไกลแบบอัตโนมัติทั้งหมด แต่พบปัญหาในการเพิ่มเกตเวย์ผ่าน PowerShell ฉันสามารถเพิ่มแต่ละเซิร์ฟเวอร์ได้ยกเว้นเกตเวย์ ซึ่งทำให้เกิดข้อผิดพลาด:
ไม่สามารถสร้างนโยบายการให้สิทธิ์ทรัพยากรเดสก์ท็อประยะไกลใน <ชื่อคอมพิวเตอร์> ข้อผิดพลาดคือ
การอ้างอิงวัตถุไม่ได้ตั้งค่าเป็นอินสแตนซ์ของวัตถุ โปรดตรวจสอบบันทึกเหตุการณ์บนเซิร์ฟเวอร์ RD Gateway สำหรับข้อมูลเพิ่มเติม
ฉันไม่เห็นสิ่งใดในบันทึกที่จะช่วยฉันแก้ไขปัญหานี้ได้
ถ้าฉันไปที่ตัวจัดการเซิร์ฟเวอร์และเพิ่มผ่าน UI นี้:
ทุกอย่างทำงานได้ตามที่คาดไว้ มีขั้นตอนเพิ่มเติมที่จำเป็นเพื่อให้ใช้งานได้หรือไม่
นี่คือสคริปต์ที่กำลังทำงาน (EC2, userdata):
<powershell>
try {
$SecretAD = "SuperSecretSauceSuzzySaid"
$SecretObj = (Get-SECSecretValue -SecretId $SecretAD)
}catch {
Write-Output 'Failed to get Secret'
return
}
$sys = Get-WmiObject -Class Win32_ComputerSystem
if ( -Not ($sys.PartOfDomain))
{
Write-Output "Not A domain member yet. Joining..."
[PSCustomObject]$Secret = ($SecretObj.SecretString | ConvertFrom-Json)
$password = $Secret.password | ConvertTo-SecureString -asPlainText -Force
$username = $Secret.username
$credential = New-Object System.Management.Automation.PSCredential($username, $password)
Write-Output "Starting Domain Join and Restarting"
Add-Computer -DomainName "6565.fake.com" -Credential $credential -Restart -Force
Write-Output "Initiating restart..."
}
Try {
$process = (Get-NetAdapterBinding -InterfaceAlias "Ethernet" -ComponentID ms_tcpip6).Enabled
If ($process.toString() -ne "False"){
Get-NetAdapterBinding âInterfaceAlias "Ethernet"
Disable-NetAdapterBinding âInterfaceAlias "Ethernet" âComponentID ms_tcpip6
Write-Output "Disabled ipv6"
Import-Module RemoteDesktop
Add-WindowsFeature âName RDS-RD-Server âIncludeAllSubFeature
Write-Output "Restarting..."
Restart-Computer -Force
}
Start-Sleep 200
$installed = (Get-WindowsFeature RDS-RD-Server).Installed
If ($installed.toString() -eq "True"){
$broker = (Get-WindowsFeature RDS-Connection-Broker).Installed
If ($broker.toString() -eq "False"){
$ErrorActionPreference = 'SilentlyContinue'
Write-Output "Installing the new session deployment"
New-RDSessionDeployment -ConnectionBroker "$env:COMPUTERNAME.6565.fake.com" -SessionHost "$env:COMPUTERNAME.6565.fake.com"
Write-Output "Restarting..."
Restart-Computer -Force
}
}
Start-Sleep -Seconds 100
New-RDSessionCollection -CollectionName QuickSessionCollection -SessionHost "$env:COMPUTERNAME.6565.fake.com" -CollectionDescription "POR Stuff" -ConnectionBroker "$env:COMPUTERNAME.6565.fake.com"
Write-Output "Installing Gateway with managnent tools"
Add-WindowsFeature -Name RDS-Gateway -IncludeManagementTools -ComputerName $env:COMPUTERNAME
Start-Sleep -Seconds 100
Add-RDServer -Server "$env:COMPUTERNAME.6565.fake.com" -Role "RDS-GATEWAY" -ConnectionBroker "$env:COMPUTERNAME.6565.fake.com" -GatewayExternalFqdn "6565.fake.com"
Add-RDServer -Server "$env:COMPUTERNAME.6565.fake.com" -Role "RDS-LICENSING" -ConnectionBroker "$env:COMPUTERNAME.6565.fake.com"
} Catch [System.Exception] {
Write-Output "Failed"
Write-Output "Failed to install RD Gateway components $_"
Exit 0
}
</powershell>
<persist>true</persist>