WinUser (install4j API)
Description: declaration: package: com.install4j.api.windows, class: WinUser

# Class WinUser

java.lang.Object
com.install4j.api.windows.WinUser

public class WinUser extends Object
Collection of static methods to create or delete users and local groups on Windows.

If a helper process with elevated privileges has been created by the "Request privileges" action, the methods of this class are pushed to the helper process. Please see the help topic on "Elevation Of Privileges" for more information.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `WinUser.AddUserResult`
  The class of the objects returned by `addUser(String, String, String, WinUser.GroupCreationMode, String, String)`.
  `static enum`
  `WinUser.AddUserResultType`
  The type of result returned by `addUser(String, String, String, WinUser.GroupCreationMode, String, String)`
  `static enum`
  `WinUser.GroupCreationMode`
  The group creation mode.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WinUser()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static WinUser.AddUserResult`
  `addUser(String name, String password, String comment, WinUser.GroupCreationMode groupCreationMode, String localGroupNameOrSid, String localGroupComment)`
  Add a user and optionally a local group.
  `static boolean`
  `deleteLocalGroup(String nameOrSid)`
  Delete a local group.
  `static boolean`
  `deleteUser(String nameOrSid)`
  Delete a user.
  `static String`
  `getAccountName(String sid)`
  Try to get an account name for a SID (Security Identifier).
  `static String`
  `getUserName(String sid)`
  Try to get the user name (an unqualified account name) for a SID (Security Identifier).
  `static String`
  `getUserSid()`
  Get the user's SID (Security Identifier) of the current process.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### WinUser

    public WinUser()

- ## Method Details

  - ### deleteUser

    public static boolean deleteUser(String nameOrSid)
    Delete a user.
    Parameters:
      `nameOrSid` - an account name or a SID in String form
    Returns:
      `true` if successful or if the user doesn't exist

  - ### deleteLocalGroup

    public static boolean deleteLocalGroup(String nameOrSid)
    Delete a local group.
    Parameters:
      `nameOrSid` - an account name or a SID in String form
    Returns:
      `true` if successful or if the local group doesn't exist

  - ### addUser

    public static WinUser.AddUserResult addUser(String name, String password, String comment, WinUser.GroupCreationMode groupCreationMode, String localGroupNameOrSid, String localGroupComment)
    Add a user and optionally a local group.
    Parameters:
      `name` - the user name
      `password` - the password for the account
      `comment` - an optional comment. Can be `null`
      `groupCreationMode` - how the group should be created
      `localGroupNameOrSid` - a group name or optionally a SID if the group already exists. Can be `null` for `WinUser.GroupCreationMode.NONE`.
      `localGroupComment` - an optional comment for the local group. Can be `null`
    Returns:
      the result of the operation

  - ### getAccountName

    public static String getAccountName(String sid)
    Try to get an account name for a SID (Security Identifier).
    Parameters:
      `sid` - the SID in String form
    Returns:
      A qualified account name or `null` if the account could not be found.

  - ### getUserName

    public static String getUserName(String sid)
    Try to get the user name (an unqualified account name) for a SID (Security Identifier).
    Parameters:
      `sid` - the SID in String form
    Returns:
      An unqualified account name or `null` if the account could not be found.

  - ### getUserSid

    public static String getUserSid()
    Get the user's SID (Security Identifier) of the current process.
    Returns:
      A SID in String form or `null` if the method fails.