Files

181 lines
5.9 KiB
YAML
Raw Permalink Normal View History

---
- name: Create limited GameUser
ansible.windows.win_user:
name: "{{ game_user }}"
password: "{{ game_password }}"
groups: "{{ game_default_groups }}"
account_disabled: false
password_never_expires: true
user_cannot_change_password: true
state: present
- name: Configure auto-login for GameUser
ansible.windows.win_regedit:
path: HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
name: "{{ item.name }}"
data: "{{ item.data }}"
type: string
loop:
- { name: "AutoAdminLogon", data: "1" }
- { name: "DefaultUserName", data: "{{ game_user }}" }
- { name: "DefaultPassword", data: "{{ game_password }}" }
- { name: "DefaultDomainName", data: "{{ ansible_hostname }}" }
- name: Create launcher script directory
ansible.windows.win_file:
path: C:\GameShell
state: directory
- name: Deploy launcher.bat
ansible.windows.win_copy:
dest: C:\GameShell\launcher.bat
content: "{{ lookup('file', 'scripts/launcher.bat') }}"
- name: Set High Performance Power Plan
ansible.windows.win_command: powercfg -setactive SCHEME_MIN
- name: Disable auto suspend (sleep) for plugged in
ansible.windows.win_command: powercfg -change -standby-timeout-ac 0
- name: Disable auto suspend (sleep) for battery
ansible.windows.win_command: powercfg -change -standby-timeout-dc 0
- name: Disable Windows Defender Real-Time Protection
ansible.windows.win_shell: Set-MpPreference -DisableRealtimeMonitoring $true
- name: Remove unnecessary startup items (HKLM)
ansible.windows.win_regedit:
path: HKLM:\Software\Microsoft\Windows\CurrentVersion\Run
name: SecurityHealth
state: absent
- name: Remove startup folder shortcuts (user)
ansible.windows.win_file:
path: "{{ item }}"
state: absent
with_fileglob:
- "{{ ansible_env.APPDATA }}\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\*.lnk"
- name: Remove startup folder shortcuts (all users)
ansible.windows.win_file:
path: "{{ item }}"
state: absent
with_fileglob:
- "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\*.lnk"
- name: Disable Xbox Game Bar and DVR
ansible.windows.win_regedit:
path: HKCU:\Software\Microsoft\Windows\CurrentVersion\GameDVR
name: AppCaptureEnabled
data: 0
type: dword
state: present
- name: Disable GameDVR_Enabled
ansible.windows.win_regedit:
path: HKCU:\System\GameConfigStore
name: GameDVR_Enabled
data: 0
type: dword
state: present
- name: Disable GameDVR_FSEBehaviorMode
ansible.windows.win_regedit:
path: HKCU:\System\GameConfigStore
name: GameDVR_FSEBehaviorMode
data: 2
type: dword
state: present
- name: Disable GameDVR_HonorUserFSEBehaviorMode
ansible.windows.win_regedit:
path: HKCU:\System\GameConfigStore
name: GameDVR_HonorUserFSEBehaviorMode
data: 1
type: dword
state: present
- name: Disable Windows notifications
ansible.windows.win_regedit:
path: HKCU:\Software\Microsoft\Windows\CurrentVersion\PushNotifications
name: ToastEnabled
data: 0
type: dword
state: present
- name: Disable background services
vars:
services_to_disable:
- WSearch
- SysMain
- DiagTrack
- XblAuthManager
- XblGameSave
- XboxGipSvc
- Fax
- MapsBroker
- RetailDemo
- RemoteRegistry
- WMPNetworkSvc
- edgeupdate
- WpnService
- BITS
- WerSvc
- Spooler
- SCardSvr
ansible.windows.win_service:
name: "{{ item }}"
start_mode: disabled
state: stopped
loop: "{{ services_to_disable }}"
- name: Get all services
ansible.windows.win_service_info:
register: win_services
- name: Disable scheduled telemetry tasks
vars:
scheduled_tasks_to_disable:
- "\\Microsoft\\Windows\\Application Experience\\ProgramDataUpdater"
- "\\Microsoft\\Windows\\Customer Experience Improvement Program\\Consolidator"
- "\\Microsoft\\Windows\\Customer Experience Improvement Program\\KernelCeipTask"
- "\\Microsoft\\Windows\\Feedback\\Siuf\\DmClient"
- "\\Microsoft\\Windows\\Windows Error Reporting\\QueueReporting"
ansible.windows.win_shell: |
schtasks /Change /TN "{{ item }}" /Disable
loop: "{{ scheduled_tasks_to_disable }}"
register: telemetry_task_result
failed_when: "{{ telemetry_task_result.rc != 0 and ('ERROR: The system cannot find the file specified.' not in telemetry_task_result.stderr) }}"
- name: Disable Windows Search feature
ansible.windows.win_shell: DISM /Online /Disable-Feature /FeatureName:SearchEngine-Client-Package /NoRestart
register: disable_search_result
failed_when: >
disable_search_result.rc != 0 and
('The specified package is not valid Windows package' not in disable_search_result.stderr) and
('is already disabled' not in disable_search_result.stdout)
- name: Disable Windows Media Player feature
ansible.windows.win_shell: DISM /Online /Disable-Feature /FeatureName:WindowsMediaPlayer /NoRestart
register: disable_wmp_result
failed_when: >
disable_wmp_result.rc != 0 and
('The specified package is not valid Windows package' not in disable_wmp_result.stderr) and
('is already disabled' not in disable_wmp_result.stdout)
- name: Disable Print to PDF
ansible.windows.win_shell: DISM /Online /Disable-Feature /FeatureName:Printing-PrintToPDFServices-Features /NoRestart
register: disable_print_pdf_result
failed_when: >
disable_print_pdf_result.rc != 0 and
('The specified package is not valid Windows package' not in disable_print_pdf_result.stderr) and
('is already disabled' not in disable_print_pdf_result.stdout)
- name: Reminder - NVIDIA Control Panel Tweaks (manual)
ansible.builtin.debug:
msg: |
Please manually set the following in NVIDIA Control Panel:
- Power Management: Prefer Maximum Performance
- Low Latency Mode: Ultra
- Vertical Sync: Off or Fast Sync (depending on monitor)