Functions/New-LocalAdmin.ps1
function New-LocalAdmin { <# .SYNOPSIS Creates a new local administrative account on local computer .DESCRIPTION Creates a new local administrative account on local computer .NOTES Information or caveats about the function e.g. 'This function is not supported in Linux' .LINK Specify a URI to a help page, this will show when Get-Help -Online is used. .EXAMPLE Test-MyTestFunction -Verbose Explanation of the function or its result. You can include multiple examples with additional .EXAMPLE lines #> [cmdletbinding()] param ( [Parameter(Mandatory)] [string] $LocalAdmin, [Parameter(Mandatory)] [string] $PasswordPlaintext, [Parameter(Mandatory)] [string] $Description = "New local admin created on: $(Get-Date)" ) begin { Write-Verbose -Message "Starting [$($MyInvocation.Mycommand)]" } process { if (Test-IsAdmin) { $PasswordSecureString = $PasswordPlaintext | ConvertTo-SecureString -AsPlainText -Force $UserParam = @{ Name = $LocalAdmin AccountNeverExpires = $true PasswordNeverExpires = $true Description = $Description Password = $PasswordSecureString } if (-not (Get-LocalUser -Name $LocalAdmin -ea SilentlyContinue)) { New-LocalUser @UserParam } else { Set-LocalUser @UserParam } if (-not (Get-LocalGroupMember -Group administrators -Member $LocalAdmin -ea SilentlyContinue)) { Add-LocalGroupMember -Group administrators -Member $LocalAdmin } } else { Write-Error 'Not running from an elevated session. Please run as Administrator.' } } end { Write-Verbose -Message "Ending [$($MyInvocation.Mycommand)]" } } |