Public/Get-NSPLocalServiceAccount.ps1
|
function Get-NSPLocalServiceAccount { <# .SYNOPSIS Reads one local SAM account by literal name; never resolves a similarly named domain account. #> [CmdletBinding()] param([Parameter(Mandatory)][ValidatePattern('^[A-Za-z0-9][A-Za-z0-9_.-]{0,19}$')][string]$Name) # Enumerate to distinguish not-found from access/platform errors, without wildcard matching. $accounts=@(Get-LocalUser -ErrorAction Stop | Where-Object Name -IEQ $Name) if($accounts.Count -gt 1) { throw 'Local account lookup was ambiguous.' } if($accounts.Count) { $user=$accounts[0] [pscustomobject]@{Name=$user.Name;Account=([Environment]::MachineName+'\'+$user.Name);SID=[string]$user.SID;Enabled=[bool]$user.Enabled;PasswordExpires=$user.PasswordExpires;Description=$user.Description} } } |