我想使用 PowerShell 将特定用户添加到计算机上的本地管理员组。我将在本地计算机上具有管理权限的用户上下文中运行 PowerShell 脚本。
答案1
这是我用来在多台计算机上使用 Powershell 将用户添加到本地管理员组的高级功能。
用法:Get-Content C:\Computers.txt | Set-LocalAdminGroupMembership -Account 'YourAccount'
Function Global:Set-LocalAdminGroupMembership
{
<#
.Synopsis
.Description
.Parameter $ComputerName,
.Example
PS> Set-LocalAdminGroupMembership -ComputerName $ComputerName -Account 'YourAccount'
.Link
about_functions
about_functions_advanced
about_functions_advanced_methods
about_functions_advanced_parameters
.Notes
NAME: Set-LocalAdminGroupMembership
AUTHOR: Innotask.com\dmiller
LASTEDIT: 2/4/2010 2:30:05 PM
#Requires -Version 2.0
#>
[CmdletBinding()]
param(
[Parameter(Position=0, ValueFromPipeline=$true)]
$ComputerName = '.',
[Parameter(Position=1, Mandatory=$true)]
$Account
)
Process
{
if($ComputerName -eq '.'){$ComputerName = (get-WmiObject win32_computersystem).Name}
$ComputerName = $ComputerName.ToUpper()
$Domain = $env:USERDNSDOMAIN
if($Domain){
$adsi = [ADSI]"WinNT://$ComputerName/administrators,group"
$adsi.add("WinNT://$Domain/$Account,group")
}else{
Write-Host "Not connected to a domain." -foregroundcolor "red"
}
}# Process
}# Set-LocalAdminGroupMembership
答案2
在 Server 2016 和 Windows 10 版本 1607 及更高版本上,您可以使用新的 PowerShell 本地用户 cmdlet:
Add-LocalGroupMember -Group Administrators -Member username
这是在 Windows 管理框架 (WMF) 5.1 中添加的。
Microsoft.PowerShell.LocalAccounts
如果您只是将文件复制到某个$env:PsModulePath
位置,该模块可以在 2012 R2 上正常运行。
答案3
这是一个执行此功能的简单两行脚本
$group = [ADSI]("WinNT://"+$env:COMPUTERNAME+"/administrators,group")
$group.add("WinNT://$env:USERDOMAIN/usernameiwantoadd,user")
有关详细信息,请参阅嘿,脚本小伙!如何使用 Windows PowerShell 将域用户添加到本地组?
因此有几点需要注意。在第一行中,我使用了字符串连接,我没有必要这样做(参见下一行),但我喜欢这样做,因为它有助于强调我正在使用的变量。其次,这些行将添加域用户,如果您想添加本地用户,只需删除$env:USERDOMAIN/
答案4
这是另一种方法。这需要在管理员环境中运行:
$域名=“” $计算机名称=“$env:计算机名称” $group=$computer.psbase.children.find(“管理员”) 函数 AddToGroup($number) { $group.add("WinNT://"+$domain+"/"+$number ) } #将这些域用户/组添加到本地管理员组 添加到组“” 添加到组“” #将这些域计算机帐户添加到本地管理员组。 #Computer 帐户总是以 $ 结尾。 添加到组“$”
有关我的更多信息网站。