답변:
이것은 여러 컴퓨터에서 Powershell을 사용하여 로컬 관리자 그룹에 사용자를 추가하는 데 사용하는 고급 기능입니다.
사용법 : Get-Content C : \ Computers.txt | Set-LocalAdminGroupMembership-계정 '귀하의 계정'
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
Server 2016 및 Windows 10 버전 1607 이상에서 새로운 PowerShell 로컬 사용자 cmdlet을 사용할 수 있습니다.
Add-LocalGroupMember -Group Administrators -Member username
이것은 WMF (Windows Management Framework) 5.1에서 추가되었습니다.
Microsoft.PowerShell.LocalAccounts
파일을 $env:PsModulePath
위치에 복사하면 2012 R2에서 모듈 이 제대로 작동합니다 .
이 기능을 수행하는 간단한 2 줄 스크립트는 다음과 같습니다.
$group = [ADSI]("WinNT://"+$env:COMPUTERNAME+"/administrators,group")
$group.add("WinNT://$env:USERDOMAIN/usernameiwantoadd,user")
자세한 내용은 Hey, Scripting Guy!를 참조하십시오 . Windows PowerShell을 사용하여 도메인 사용자를 로컬 그룹에 추가하려면 어떻게해야합니까?
몇 가지 메모가 있습니다. 첫 번째 줄에서 문자열 연결을 사용했지만 (다음 줄 참조) 필요는 없지만 사용중인 변수를 강조하는 데 도움이되기 때문에 좋아합니다. 둘째, 로컬 사용자를 추가하려는 경우이 행은 도메인 사용자를 추가합니다.$env:USERDOMAIN/
이 작업을 수행하는 다른 방법이 있습니다. 관리자 컨텍스트에서 실행해야합니다.
$ domain = "" $ computername = "$ env : 컴퓨터 이름" $ group = $ computer.psbase.children.find ( "관리자") AddToGroup ($ number) 함수 { $ group.add ( "WinNT : //"+ $ domain + "/"+ $ number) } #이 도메인 사용자 / 그룹을 로컬 관리자 그룹에 추가 AddToGroup "" AddToGroup "" #이 도메인 컴퓨터 계정을 로컬 관리자 그룹에 추가하십시오. # 컴퓨터 계정은 항상 $로 끝납니다. AddToGroup "$"
내 웹 사이트 에 대한 추가 정보 .
대상 보안 그룹에 이미 존재하는 계정을 추가하면 오류가 발생하여 계정이 이미 추가되어 있는지 확인해야하지만 요구 사항은 PowerShell v2.0 과 하위 호환성을 유지해야했습니다.
다음은 2016 년 이전 Windows Server 용 PowerShell의 이전 버전에서 작동하는 로컬 관리자 그룹에 사용자를 추가하는 데 사용하는 스 니펫입니다.이 코드 예제는 사용자 지정 IIS AppPool ID에 사용되는 서비스 계정을 로컬 관리자 그룹에 추가합니다.
$appPoolIdentity = "DOMAIN\svc-acc-name"
# check if user is already member of the local administrators group - using case insensitive string comparison
if(((invoke-command {net localgroup administrators}) -match ($appPoolIdentity -replace '\\','\\')).Count -eq 0){
Write-Host "The app pool identity user '$appPoolIdentity' is not found in the local 'Administrators' group."
# add user to the local administrators group
$adminGroup = [ADSI]("WinNT://$env:COMPUTERNAME/administrators,group")
$adminGroup.Add("WinNT://$appPoolIdentity,user")
Write-Warning "Added '$appPoolIdentity' to the local 'Administrators' group."
}else{
Write-Host "The app pool identity user '$appPoolIdentity' is already member of local 'Administrators' group."
}
net localgroup administrators
위의 if 문에서 사용 에 대한 크레딧은 이 블로그 게시물로 이동 합니다.