查找 If 语句以查看用户是否为本地管理员



目前对Powershell非常菜鸟,但正在学习我的方式。希望创建一个脚本来检查用户是否属于本地管理员组。目前,我将检查帐户是否已创建,并将创建它并设置密码和组。

#add administrator account to local machine and add to administrator group
if (Get-WmiObject Win32_UserAccount -Filter "LocalAccount='true' and Name='administrator'")
{
    Write-Host "Account already exists"
    Write-Host "Skipping account creation of local account administrator"
}
else
{
    Write-Host "creating Local Admin Account"
    Write-Host "Please Set the password for the Local Admin account to create it"
    $Password = Read-Host -AsSecureString
    New-LocalUser "Administrator" -Password $Password -FullName "Help Desk Administrator" -Description "Local Admin account"
    Add-LocalGroupMember -Group Administrators -Member administrator
    Write-Host "account administrator created"
}

但是,我需要错误检查以确保该帐户是否已存在,该帐户是管理员组的一部分。

这里机器上的本地管理员的当前状态是一团糟

如果你想要了解当前用户是否已提升,PowerShell 中有两种方法:

  1. 使用 #requires -RunAsAdministrator .如果未提升当前用户,这将阻止脚本运行。这需要 PowerShell 3.0 或更高版本。

  2. 在运行时询问系统当前用户是否已提升;例如:

    $elevated = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
    

如果您正在寻找一种管理Administrators组成员身份的方法,那么这是一个不同的问题。通常我为此推荐组策略。

最新更新