mirror of
https://git.ecdf.ed.ac.uk/win_automation/windows-ansible.git
synced 2026-10-26 14:37:21 +00:00
remote desktop (currently not active)
This commit is contained in:
1 parent
c8cb132124
commit
f493bdbae6
2 files changed
+151
No files matched your search
@@ -2,3 +2,4 @@
|
||||
- import_tasks: features.yml
|
||||
- import_tasks: setup.yml
|
||||
- import_tasks: users.yml
|
||||
- import_tasks: remote_desktop.yml
|
||||
@@ -0,0 +1,150 @@
|
||||
---
|
||||
- name: Remote Desktop Gateway
|
||||
# RD gateway not enabled on Domain Controller???
|
||||
tags:
|
||||
- rd_gateway
|
||||
- never
|
||||
block:
|
||||
- name: Create directory structure
|
||||
win_file:
|
||||
path: C:\Certs
|
||||
state: directory
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Firewall rule to allow HTTPS on TCP port 443
|
||||
community.windows.win_firewall_rule:
|
||||
name: Remote Desktop Gateway
|
||||
localport: 443
|
||||
action: allow
|
||||
direction: in
|
||||
protocol: tcp
|
||||
profiles: [domain, private, public]
|
||||
state: present
|
||||
enabled: true
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Configure the Remote Desktop Gateway
|
||||
community.windows.win_rds_settings:
|
||||
max_connections: 10
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Create a new RDS CAP with a 30 minutes timeout and clipboard redirection enabled
|
||||
community.windows.win_rds_cap:
|
||||
name: Remote Gateway CAP
|
||||
user_groups:
|
||||
- BUILTIN\Users
|
||||
session_timeout: 120
|
||||
session_timeout_action: disconnect
|
||||
allow_only_sdrts_servers: true
|
||||
redirect_clipboard: true
|
||||
redirect_drives: false
|
||||
redirect_printers: false
|
||||
redirect_serial: false
|
||||
redirect_pnp: false
|
||||
state: enabled
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Create a new RDS RAP
|
||||
community.windows.win_rds_rap:
|
||||
name: Remote Gateway RAP
|
||||
description: Allow all users to connect to any resource through ports 3389
|
||||
user_groups:
|
||||
- BUILTIN\Users
|
||||
computer_group_type: allow_any
|
||||
allowed_ports:
|
||||
- 3389
|
||||
state: enabled
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Reboot the machine to complete
|
||||
ansible.windows.win_reboot:
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
#------------------------------------------------rd_licensing
|
||||
|
||||
- name: Remote Desktop Licensing
|
||||
tags:
|
||||
- rd_licensing
|
||||
- never
|
||||
block:
|
||||
- name: Add RDS server to Terminal Server Licensing Servers AD group
|
||||
win_domain_group_membership:
|
||||
domain_server: "{{ win_project }}.loc"
|
||||
name: Terminal Server License Servers
|
||||
members:
|
||||
- "{{ win_project }}-dc01$" # $ ????
|
||||
state: present
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Add 'Network Service' system account to Terminal Server Licensing Servers AD group
|
||||
win_powershell:
|
||||
script: |
|
||||
net localgroup "Terminal Server License Servers" /Add 'Network Service'
|
||||
#args:
|
||||
# executable: powershell.exe
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Restart the Remote Desktop Licensing service
|
||||
win_service:
|
||||
name: Remote Desktop Licensing
|
||||
state: restarted
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
# needed ??????
|
||||
- name: Refresh of facts must happen here.
|
||||
setup:
|
||||
|
||||
- name: Activate Remote Desktop Licensing server
|
||||
win_powershell:
|
||||
script: |
|
||||
function log-info($data)
|
||||
{
|
||||
#$data = "$([DateTime]::Now):$($data)"
|
||||
write-host ($data | out-string)
|
||||
}
|
||||
function main()
|
||||
{
|
||||
$licenseServer='localhost'
|
||||
$companyInformation = @{}
|
||||
$companyInformation.FirstName="Suzy"
|
||||
$companyInformation.LastName="Sample"
|
||||
$companyInformation.Company="Independent Consolidators"
|
||||
$companyInformation.CountryRegion="United States"
|
||||
activate-licenseServer $licenseServer $companyInformation
|
||||
}
|
||||
function activate-licenseServer($licServer, $companyInfo)
|
||||
{
|
||||
$licServerResult = @{}
|
||||
$licServerResult.LicenseServerActivated = $Null
|
||||
$wmiClass = ([wmiclass]"\\$($licServer)\root\cimv2:Win32_TSLicenseServer")
|
||||
$wmiTSLicenseObject = Get-WMIObject Win32_TSLicenseServer -computername $licServer
|
||||
$wmiTSLicenseObject.FirstName=$companyInfo.FirstName
|
||||
$wmiTSLicenseObject.LastName=$companyInfo.LastName
|
||||
$wmiTSLicenseObject.Company=$companyInfo.Company
|
||||
$wmiTSLicenseObject.CountryRegion=$companyInfo.CountryRegion
|
||||
$wmiTSLicenseObject.Put()
|
||||
$wmiClass.ActivateServerAutomatic()
|
||||
$licServerResult.LicenseServerActivated = $wmiClass.GetActivationStatus().ActivationStatus
|
||||
log-info "activation status: $($licServerResult.LicenseServerActivated) (0 = activated, 1 = not activated)"
|
||||
}
|
||||
function deactivate-licenseServer($licServer)
|
||||
{
|
||||
$wmiClass = ([wmiclass]"\\$($licServer)\root\cimv2:Win32_TSLicenseServer")
|
||||
$wmiClass.DeactivateServerAutomatic()
|
||||
}
|
||||
main
|
||||
parameters:
|
||||
ProjectName: "{{ win_project }}"
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
|
||||
- name: Install RDS CALs using PowerShell
|
||||
ansible.windows.win_powershell:
|
||||
script: |
|
||||
# Replace 'our_license_key' with your actual RDS CAL license key
|
||||
$licenseKey = '49050116'
|
||||
$obj = New-Object -ComObject 'RDMS.RDLicenseKey'
|
||||
$obj.Import($licenseKey, 'perUser')
|
||||
$obj.RegisterServer('whatever_we_call_the_RDS_Server')
|
||||
args:
|
||||
executable: powershell.exe
|
||||
when: inventory_hostname in groups['meta-name_dc01']
|
||||
Reference in new issue
Block a user