Using user
and group
on
Windows
Use the built-in user
and group
resource types to manage user and group accounts on Windows.
Managing local user and group resources
Puppet uses the user
and group
resource
types to manage local accounts. You can’t write a Puppet resource that describes a domain user or
group. However, a local group
resource can manage
which domain accounts belong to the local group.
Managing group membership with Puppet
Windows manages group membership by specifying the groups to which a user belongs, or by specifying the members of a group. Puppet supports both of these methods.
When Puppet is managing a local user, you can list
the groups that the user belongs to. These groups can be a local group account
(such as Administrators
) or a domain group
account.
When Puppet is managing a local group, you can list
the members that belong to the group. Each member can be a local account (such
as Administrator
) or a domain account, where
each account can be a user or a group account.
When managing a user, Puppet makes sure that the user belongs to all of the groups listed in the manifest. If the user belongs to a group not specified in the manifest, Puppet does not remove the user from the group.
If you want to ensure that a user belongs to only the groups listed
in the manifest, and no others, specify the membership
attribute for the user. If set to inclusive
, Puppet removes the
user from any group not listed in the manifest.
Similarly, when managing a group, Puppet makes sure all of the members listed in the manifest are added to the group. Existing members of the group who are not listed in the manifest are ignored.
To ensure that a group contains only the members listed in the
manifest, and no others, specify the auth_membership
attribute for the group. When this attribute is
present and set to true
, Puppet removes any members of the group not listed in the
manifest.
Allowed user
attributes on Windows
user
resource
type attributes: Attribute | Usage notes |
---|---|
name |
|
ensure |
|
comment |
|
groups |
You cannot use the gid attribute with
Windows. |
home |
|
managehome |
|
membership |
|
password |
Passwords must be specified in cleartext, because Windows does not have an API for setting the password hash. |
auth_membership |
|
uid |
Read-only. Available for inspecting a user by running puppet resource user <NAME> . The uid value will be the user’s SID (see
below). |
Allowed group
attributes on Windows
group
resource type attributes: Attribute | Usage notes |
---|---|
name |
|
ensure |
|
members |
|
auth_membership
|
|
gid |
Read-only. Available for inspecting a group by running puppet resource group <NAME> . The
gid value will be the group’s SID (see
below). |
Names and security identifiers (SIDs)
-
Administrators
-
<host>\Administrators
-
BUILTIN\Administrators
-
S-1-5-32-544
S-1-5-32-544
name form is called a security
identifier (SID). Puppet treats all these forms equally:
when comparing two account names, it transforms account names into their canonical SID
form and compares the SIDs.When you refer to a user or group in multiple places in a manifest (such as when
creating relationships between resources), be consistent with how
you capitalize the name. Names are case-sensitive in Puppet manifests, but case-insensitive on Windows. It’s
important that the cases match, however, because autorequire will attempt to match users
with fully qualified names (such as User[BUILTIN\Administrators]
) in addition to SIDs (such as User[S-1-5-32-544]
). It might not match in cases where domain
accounts and local accounts have the same name, such as Domain\Bob
versus LOCAL\Bob
.
puppet
resource
, groups always return the fully qualified form when describing a
user, such as BUILTIN\Administrators
. These
fully qualified names might not look the same as in the names specified in the
manifest.