Menambahkan pengguna ke grup Administrator lokal menggunakan PowerShell

16

Saya ingin menggunakan PowerShell untuk menambahkan pengguna tertentu ke grup administrator lokal di mesin. Saya akan menjalankan skrip PowerShell dalam konteks pengguna yang memiliki hak Administrasi pada mesin lokal.

Rihan Meij
sumber
Lihat juga [Akun Lokal Windows dan Pemeliharaan Grup] [1]. [1]: serverfault.com/questions/31058/…
Nathan Hartley

Jawaban:

4

Ini adalah Fungsi Tingkat Lanjut yang saya gunakan untuk menambahkan pengguna ke grup Administrator lokal menggunakan Powershell di beberapa komputer.

Penggunaan: Dapatkan Konten 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
pengguna46713
sumber
20

Pada Server 2016 dan Windows 10 Versi 1607 dan yang lebih baru Anda dapat menggunakan cmdlet pengguna lokal PowerShell baru:

Add-LocalGroupMember -Group Administrators -Member username

Ini ditambahkan dalam Windows Management Framework (WMF) 5.1.

The Microsoft.PowerShell.LocalAccountsModul bekerja dengan baik pada 2012 R2 jika Anda hanya menyalin file ke $env:PsModulePathlokasi.

Peter Hahndorf
sumber
1
Hati-hati, grup "Administrator" mungkin disebut berbeda tergantung pada lokal Anda, pada sistem Jerman itu adalah "Administratoren".
Panki
16

Berikut ini adalah skrip 2 baris sederhana yang melakukan fungsi ini

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

Untuk informasi lebih lanjut, lihat Hey, Scripting Guy! Bagaimana Saya Dapat Menggunakan Windows PowerShell untuk Menambahkan Pengguna Domain ke Grup Lokal?

Jadi ada beberapa catatan. Pada baris pertama saya menggunakan string concatenation, saya tidak perlu (lihat baris berikutnya) tetapi saya suka karena ini membantu menonjolkan variabel yang saya gunakan. Kedua, baris ini akan menambahkan pengguna domain, jika Anda ingin menambahkan pengguna lokal, cukup hapus$env:USERDOMAIN/

Jim B
sumber
Saya ingin menjalankan skrip ini di workstation sedemikian rupa sehingga orang yang menjalankan skrip dapat mengetikkan nama pengguna. Karenanya Read-Host
Rihan Meij
1
jadi dalam hal ini buat baris pertama $ userInput = Baca-Host "Masukkan nama pengguna untuk ditambahkan ke grup admin lokal" kemudian gunakan $ userinput di mana dikatakan usernameiwantoadd
Jim B
0

Inilah cara lain untuk melakukan ini. Ini perlu dijalankan dalam konteks Administrator:

$ domain = ""
$ computername = "$ env: computername"
$ group = $ computer.psbase.children.find ("administrator")

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

# Tambahkan pengguna / grup domain ini ke grup administrator lokal
 AddToGroup ""
 AddToGroup ""

# Tambahkan akun komputer domain ini ke grup administrator lokal. 
Akun #Computer selalu berakhir dengan $.
AddToGroup "$"

Info lebih lanjut di situs web saya .

Daniel Classon
sumber
0

Menambahkan akun yang sudah ada di grup keamanan menimbulkan dan kesalahan sehingga Anda perlu memeriksa apakah akun sudah ditambahkan, namun persyaratan saya adalah kompatibel mundur ke PowerShell v2.0

Di bawah ini adalah cuplikan yang saya gunakan untuk menambahkan pengguna ke grup administrator lokal yang bekerja pada versi PowerShell untuk Windows Server yang lebih lama sebelum 2016. Contoh kode menambahkan akun layanan yang digunakan untuk identitas IIS AppPool kustom ke grup Administrator lokal.

$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."
}

Kredit untuk digunakan net localgroup administratorsdalam pernyataan if di atas berlaku untuk posting blog ini .

Emil
sumber