Lusrmgr.exe High Quality ◎

if (user.SchemaClassName == "User")

Bulk User Import from CSV $users = Import-Csv -Path "users.csv" foreach ($user in $users) $password = ConvertTo-SecureString $user.Password -AsPlainText -Force New-LocalUser -Name $user.Username -Password $password -FullName $user.FullName Add-LocalGroupMember -Group $user.Group -Member $user.Username lusrmgr.exe

foreach (DirectoryEntry user in users.Children) if (user

# Export all local users and groups $output = @() Get-LocalUser | ForEach-Object $output += [PSCustomObject]@ Where-Object (Get-LocalGroupMember -Name $_.Name).Name -contains $_.Name ).Name -join ", " new object[] newUser.Path )

# Add to group Add-LocalGroupMember -Group $GroupName -Member $UserName

$SecurePassword = Read-Host "Enter password" -AsSecureString New-LocalUser -Name "ServiceAccount" -Password $SecurePassword Automation Script Example # Complete user provisioning script param( [Parameter(Mandatory=$true)] [string]$UserName, [string]$FullName, [string]$GroupName = "Users" ) Elevation check if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) Start-Process powershell.exe -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File "$PSCommandPath " $UserName $FullName $GroupName" -Verb RunAs exit

// Add to group DirectoryEntry adminGroup = localMachine.Children.Find("Administrators", "Group"); adminGroup.Invoke("Add", new object[] newUser.Path ); ' VBScript example Set objWMIService = GetObject("winmgmts:impersonationLevel=impersonate!\\.\root\cimv2") ' List users Set colAccounts = objWMIService.ExecQuery("SELECT * FROM Win32_UserAccount WHERE LocalAccount=True") For Each objAccount in colAccounts WScript.Echo objAccount.Name & " - " & objAccount.FullName Next