Saritasa.LocalManagement.psm1
<#
.SYNOPSIS Returns $true if user has Administrator role. #> function Test-UserIsAdministrator { [CmdletBinding()] param () ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator') } <# .SYNOPSIS Sets 'password never expires' flag for local user. .NOTES Requires administrator permissions. #> function Set-PasswordNeverExpires { [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Scope="Function", Target="*")] [CmdletBinding()] param ( [Parameter(Mandatory = $true)] [string] $Username ) $ADS_UF_DONT_EXPIRE_PASSWD = 0x10000 $user = [adsi] "WinNT://./$Username" $user.UserFlags = $user.UserFlags[0] -bor $ADS_UF_DONT_EXPIRE_PASSWD $user.SetInfo() } |