powershell을 사용하여 로컬 관리자 그룹에 사용자 추가


16

PowerShell을 사용하여 특정 사용자를 컴퓨터의 로컬 관리자 그룹에 추가하고 싶습니다. 로컬 컴퓨터에 대한 관리 권한이있는 사용자의 컨텍스트에서 PowerShell 스크립트를 실행하고 있습니다.


[Windows 로컬 계정 및 그룹 유지 관리] [1]도 참조하십시오. [1] : serverfault.com/questions/31058/…
Nathan Hartley

답변:


4

이것은 여러 컴퓨터에서 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

20

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에서 모듈 이 제대로 작동합니다 .


1
로케일에 따라 "관리자"그룹이 다르게 호출 될 수 있으므로 독일어 시스템에서는 "관리자"입니다.
Panki

16

이 기능을 수행하는 간단한 2 줄 스크립트는 다음과 같습니다.

$group = [ADSI]("WinNT://"+$env:COMPUTERNAME+"/administrators,group")
$group.add("WinNT://$env:USERDOMAIN/usernameiwantoadd,user")

자세한 내용은 Hey, Scripting Guy!를 참조하십시오 . Windows PowerShell을 사용하여 도메인 사용자를 로컬 그룹에 추가하려면 어떻게해야합니까?

몇 가지 메모가 있습니다. 첫 번째 줄에서 문자열 연결을 사용했지만 (다음 줄 참조) 필요는 없지만 사용중인 변수를 강조하는 데 도움이되기 때문에 좋아합니다. 둘째, 로컬 사용자를 추가하려는 경우이 행은 도메인 사용자를 추가합니다.$env:USERDOMAIN/


스크립트를 실행하는 사람이 사용자 이름을 입력 할 수있는 방식으로 워크 스테이션에서이 스크립트를 실행하고 싶습니다. 따라서 읽기 호스트
Rihan Meij

1
그래서이 경우 첫 번째 줄 $ UserInput 사용자 = 읽기 호스트을 다음입니다 $ UserInput 사용자를 사용하여 "사용자 이름이 로컬 관리자 그룹에 추가 입력하는 것은"usernameiwantoadd 말한다
짐 B

0

이 작업을 수행하는 다른 방법이 있습니다. 관리자 컨텍스트에서 실행해야합니다.

$ domain = ""
$ computername = "$ env : 컴퓨터 이름"
$ group = $ computer.psbase.children.find ( "관리자")

AddToGroup ($ number) 함수
{
     $ group.add ( "WinNT : //"+ $ domain + "/"+ $ number)
}

#이 도메인 사용자 / 그룹을 로컬 관리자 그룹에 추가
 AddToGroup ""
 AddToGroup ""

#이 도메인 컴퓨터 계정을 로컬 관리자 그룹에 추가하십시오. 
# 컴퓨터 계정은 항상 $로 끝납니다.
AddToGroup "$"

웹 사이트 에 대한 추가 정보 .


0

대상 보안 그룹에 이미 존재하는 계정을 추가하면 오류가 발생하여 계정이 이미 추가되어 있는지 확인해야하지만 요구 사항은 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 문에서 사용 에 대한 크레딧은 이 블로그 게시물로 이동 합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.