-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathiis2rdg.ps1
36 lines (30 loc) · 991 Bytes
/
iis2rdg.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#
# Update RDGateway certificate from IIS' one
#
param(
[switch]$install,
[switch]$remove
)
if ($install) {
$me = Split-Path $PSCommandPath -Leaf
$dir = Split-Path $PSCommandPath -Parent
$Action = New-ScheduledTaskAction -Execute "powershell" -Argument ".\$me" -WorkingDirectory $dir
$Trigger = New-ScheduledTaskTrigger -At 04:00 -Daily -RandomDelay 01:00:00
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger
Register-ScheduledTask -TaskName $me -TaskPath uxm -InputObject $Task -User "System" -Force
exit
}
if ($remove) {
$me = Split-Path $PSCommandPath -Leaf
Unregister-ScheduledTask -TaskName $me -TaskPath '\uxm\' -Confirm:$false
exit
}
$iis = Get-WebBinding |
ForEach-Object { $_.certificateHash } |
Where-Object { $_ } |
Select-Object -Unique -First 1
$rdg = (Get-RDCertificate -Role RDGateway).Thumbprint
if ($rdg -ne $iis) {
Set-RDCertificate -Role RDGateway -Thumbprint $iis -Force
Restart-Service TSGateway
}