From c483ff9a6c51cc41d82cb6ccc3c918404430375b Mon Sep 17 00:00:00 2001 From: L3D Date: Wed, 22 Feb 2023 17:39:45 +0100 Subject: [PATCH] not working --- README.md | 4 +++- defaults/main.yml | 4 ++++ handlers/main.yml | 8 ++++++++ tasks/main.yml | 18 ++++++++++++++++++ templates/set_wallpaper.ps1.j2 | 21 +++++++++++++++++++++ 5 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 defaults/main.yml create mode 100644 handlers/main.yml create mode 100644 tasks/main.yml create mode 100644 templates/set_wallpaper.ps1.j2 diff --git a/README.md b/README.md index 53eb8be..44be54a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ # win_ansible_role_wallpaper -Ansible role to set walpaper on windows \ No newline at end of file +Ansible role to set walpaper on windows + +!!! NOT WORKING diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..eead36f --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1,4 @@ +--- +wallpaper_path: false +wallpaper_user_name: "{{ voc_user }}" +wallpaper_user_pwd: "{{ win_obs_init__autologon_password }}" diff --git a/handlers/main.yml b/handlers/main.yml new file mode 100644 index 0000000..157e4dc --- /dev/null +++ b/handlers/main.yml @@ -0,0 +1,8 @@ +--- +- name: Set Wallpaper + ansible.windows.win_shell: 'C:\Users\{{ wallpaper_user_name }}\.ansible/set_wallpaper.ps1' + become: true + become_method: runas + become_user: "{{ wallpaper_user_name }}" + vars: + ansible_become_pass: '{{ wallpaper_user_pwd }}' diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..3d280bb --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,18 @@ +--- +- name: Fail if wallpaper_path is unset + ansible.builtin.fail: + msg: please define wallpaper_path + when: wallpaper_path == false + +- name: Create .ansible folder + ansible.windows.win_powershell: + script: | + Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name Wallpaper -value "{{ wallpaper_path }}" + Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name TileWallpaper -value "0" + Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name WallpaperStyle -value "10" -Force + changed_when: false + become: true + become_method: runas + become_user: "{{ wallpaper_user_name }}" + vars: + ansible_become_pass: '{{ wallpaper_user_pwd }}' diff --git a/templates/set_wallpaper.ps1.j2 b/templates/set_wallpaper.ps1.j2 new file mode 100644 index 0000000..84dc3e2 --- /dev/null +++ b/templates/set_wallpaper.ps1.j2 @@ -0,0 +1,21 @@ +{{ ansible_managed | comment }} + +$setwallpapersrc = @" +using System.Runtime.InteropServices; + +public class Wallpaper +{ + public const int SetDesktopWallpaper = 20; + public const int UpdateIniFile = 0x01; + public const int SendWinIniChange = 0x02; + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)] + private static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni); + public static void SetWallpaper(string path) + { + SystemParametersInfo(SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange); + } +} +"@ +Add-Type -TypeDefinition $setwallpapersrc + +[Wallpaper]::SetWallpaper({{ wallpaper_path }})