community.general/lib/ansible/modules/windows/win_user_profile.py

114 lines
3.6 KiB
Python
Raw Normal View History

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Copyright: (c) 2019, Ansible Project
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
ANSIBLE_METADATA = {'metadata_version': '1.1',
'status': ['preview'],
'supported_by': 'community'}
DOCUMENTATION = r'''
---
module: win_user_profile
version_added: '2.8'
short_description: Manages the Windows user profiles.
description:
- Used to create or remove user profiles on a Windows host.
- This can be used to create a profile before a user logs on or delete a
profile when removing a user account.
- A profile can be created for both a local or domain account.
options:
name:
description:
- Specifies the base name for the profile path.
- When I(state) is C(present) this is used to create the profile for
I(username) at a specific path within the profile directory.
- This cannot be used to specify a path outside of the profile directory
but rather it specifies a folder(s) within this directory.
- If a profile for another user already exists at the same path, then a 3
digit incremental number is appended by Windows automatically.
- When I(state) is C(absent) and I(username) is not set, then the module
will remove all profiles that point to the profile path derived by this
value.
- This is useful if the account no longer exists but the profile still
remains.
type: str
remove_multiple:
description:
- When I(state) is C(absent) and the value for I(name) matches multiple
profiles the module will fail.
- Set this value to C(yes) to force the module to delete all the profiles
found.
default: no
type: bool
state:
description:
- Will ensure the profile exists when set to C(present).
- When creating a profile the I(username) option must be set to a valid
account.
- Will remove the profile(s) when set to C(absent).
- When removing a profile either I(username) must be set to a valid
account, or I(name) is set to the profile's base name.
default: present
choices:
- absent
- present
type: str
username:
description:
- The account name of security identifier (SID) for the profile.
- This must be set when I(state) is C(present) and must be a valid account
or the SID of a valid account.
- When I(state) is C(absent) then this must still be a valid account number
but the SID can be a deleted user's SID.
seealso:
- module: win_user
- module: win_domain_user
author:
- Jordan Borean (@jborean93)
'''
EXAMPLES = r'''
- name: Create a profile for an account
win_user_profile:
username: ansible-account
state: present
- name: Create a profile for an account at C:\Users\ansible
win_user_profile:
username: ansible-account
name: ansible
state: present
- name: Remove a profile for a still valid account
win_user_profile:
username: ansible-account
state: absent
- name: Remove a profile for a deleted account
win_user_profile:
name: ansible
state: absent
- name: Remove a profile for a deleted account based on the SID
win_user_profile:
username: S-1-5-21-3233007181-2234767541-1895602582-1305
state: absent
- name: Remove multiple profiles that exist at the basename path
win_user_profile:
name: ansible
state: absent
remove_multiple: yes
'''
RETURN = r'''
path:
description: The full path to the profile for the account. This will be null
if C(state=absent) and no profile was deleted.
returned: always
type: str
sample: C:\Users\ansible
'''