目前对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 中有两种方法:
-
使用
#requires -RunAsAdministrator
.如果未提升当前用户,这将阻止脚本运行。这需要 PowerShell 3.0 或更高版本。 -
在运行时询问系统当前用户是否已提升;例如:
$elevated = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
如果您正在寻找一种管理Administrators
组成员身份的方法,那么这是一个不同的问题。通常我为此推荐组策略。