Mengelola Pengguna dan Grup Lokal dengan PowerShell

Baru-baru ini, Microsoft menambahkan modul PowerShell standar ke Windows untuk mengelola pengguna dan grup lokal yang disebut Windows. Microsoft.PowerShell.LocalAccounts. Sebelumnya, cmdlet ini harus diunduh dan diimpor ke PowerShell secara terpisah. Di Windows Server 2016 dan Windows 10, LocalAccount sekarang tersedia secara default karena Itu disertakan dengan PowerShell 5.1. Di versi Windows yang lebih lama, untuk menggunakan modul manajemen akun lokal, Anda harus menginstal Windows Management Framework 5.1.

Konten:

  • Modul Akun Lokal
  • Mengelola pengguna Windows lokal dengan PowerShell
  • Mengelola Grup Lokal Windows dengan PowerShell

Modul Akun Lokal

Secara total, modul mencakup 15 cmdlet. Daftar cmdlet lengkap dalam modul LocalAccounts dapat ditampilkan seperti ini:

Dapatkan-Perintah -Module Microsoft.PowerShell.LocalAccounts

  • Tambah-LocalGroupMember - tambahkan pengguna ke grup lokal
  • Disable-LocalUser - nonaktifkan akun lokal
  • Enable-LocalUser - aktifkan akun (buka kunci)
  • Get-LocalGroup - dapatkan informasi tentang grup lokal
  • Get-LocalGroupMember - dapatkan daftar pengguna dalam grup lokal
  • Get-LocalUser - dapatkan informasi tentang pengguna lokal
  • New-LocalGroup - buat grup lokal baru
  • Pengguna-Lokal Baru - buat pengguna
  • Remove-LocalGroup - hapus grup
  • Remove-LocalGroupMember - hapus anggota dari grup
  • Remove-LocalUser - hapus pengguna lokal
  • Ubah nama-LocalGroup - ganti nama grup
  • Ganti nama-Pengguna Lokal - ganti nama pengguna
  • Set-LocalGroup - ubah grup
  • Set-LocalUser - ubah pengguna

Selanjutnya, kita akan melihat beberapa tugas khas untuk mengelola pengguna dan grup lokal di komputer Windows 10 menggunakan cmdlet PowerShell dari modul LocalAccounts.

Mengelola pengguna Windows lokal dengan PowerShell

Kami mencantumkan pengguna Windows lokal di komputer:

Dapatkan-pengguna lokal

Seperti yang Anda lihat, ada 7 akun lokal di komputer, 3 di antaranya dinonaktifkan (Diaktifkan = Salah).

Untuk menampilkan semua properti akun lokal tertentu (analog cmdlet untuk mendapatkan informasi pengguna dari AD - Get-ADUser), jalankan:

Get-LocalUser -Name 'root' | Pilih-Objek *

AccountExpires:
Deskripsi:
Diaktifkan: Benar
Nama Lengkap:
PasswordChangeableDate: 3/4/2018 11:23:48 PM
PasswordExpires:
UserMayChangePassword: Benar
Kata Sandi Diperlukan: Salah
PasswordLastSet: 4/22/2018 11:23:48 PM
LastLogon: 7/15/2018 9:04:32 PM
Nama: root
SID: S-1-5-21-3650440056-3766451173-3310994491-1001
PrincipalSource: Lokal
ObjectClass: Pengguna

Untuk mendapatkan atribut pengguna tertentu, misalnya, waktu kata sandi terakhir diubah, lakukan:

Get-LocalUser -Name 'root' | Select-Object PasswordLastSet

Buat pengguna lokal baru menggunakan cmdlet New-LocalUser. Cmdlet ini memungkinkan Anda membuat jenis akun berikut:

  • Akun Lokal Windows
  • Akun Microsoft
  • Akun AD Azure

Saat membuat akun pengguna menggunakan New-LocalUser, Anda tidak dapat menentukan kata sandi sebagai argumen Kata Sandi dalam teks yang jelas. Sebelumnya, kata sandi harus dikonversi ke jalur aman dengan meminta kata sandi secara interaktif:

$ UserPassword = Baca-Host -AsSecureString

Atau dengan memasukkan kata sandi langsung di konsol PoSh:

$ UserPassword = ConvertTo-SecureString "Pa $$ word !!" -AsPlainText -Paksa

Pengguna-Lokal Baru "SIvanov" -Password $ UserPassword -FullName "Sergey Ivanov" -Deskripsi "Akun Lokal dlya udalennogo vhoda"

Untuk membuat pengguna dalam domain AD, gunakan cmdlet New-ADUser.

Untuk mengubah kata sandi pengguna, gunakan perintah Set-LocalUser (dengan asumsi Anda telah mengonversi kata sandi baru ke SecureString):

Set-LocalUser -Name sivanov -Password $ UserPassword -Verbose

Untuk mengatur tanda "Kata sandi tidak pernah kedaluwarsa", jalankan:

Set-LocalUser -Name sivanov -PasswordNeverExpires $ False

Seperti yang Anda lihat, Anda tidak perlu mengonversi nilai UserAccountControl, seperti ketika mengelola properti akun di AD.

Seperti yang Anda ingat, Anda dapat masuk ke Windows 10 di bawah akun Microsoft. Jika Anda perlu membuat pengguna baru yang terkait dengan akun Microsoft, jalankan perintah berikut (perhatikan bahwa Anda tidak perlu menentukan kata sandi akun, karena disimpan di Microsoft).

Pengguna-Lokal Baru -Nama "MicrosoftAccount \ [email protected]" -Deskripsi "Ini adalah akun di Microsoft"

Untuk membuat akun lokal yang dikaitkan dengan akun Anda di Azure AD (misalnya, Anda menggunakan Office 365), jalankan perintah:

Pengguna-Lokal Baru -Nama "AzureAD \ [email protected]" -Deskripsi "Ini adalah akun di Azure AD"

Untuk menghapus pengguna lokal ini, lakukan:

Remove-LocalUser -Name sivanov -Verbose

Mengelola Grup Lokal Windows dengan PowerShell

Sekarang kami daftar grup lokal di komputer:

Dapatkan-localgroup

Buat grup baru:

New-LocalGroup -Nama 'RemoteSupport' -Deskripsi 'Remote Support Group'

Sekarang tambahkan beberapa akun lokal dan sekelompok administrator lokal ke grup baru:

Tambah-LocalGroupMember -Group 'RemoteSupport' -Member ('SIvanov', 'root', 'Administrators') -Verbose

Kiat. Untuk membuat, menghapus, atau menambahkan pengguna ke grup domain, lihat artikel Bekerja dengan Grup Direktori Aktif Menggunakan PowerShell.

Jika komputer Anda adalah bagian dari domain, maka Anda dapat menambahkan ke grup lokal dan akun domain atau grup. Untuk melakukan ini, mereka harus ditentukan dalam format DomainName \ user2 atau DomainName \ 'admin domain'.

Anda juga dapat menambahkan pengguna ke grup menggunakan pipa berikut (tambahkan pengguna ke administrator lokal):

Dapatkan-Pengguna Lokal -Nama 'sivanov' | Tambah-LocalGroupMember -Group 'Administrator'

Daftar pengguna dalam grup lokal:

Dapatkan-LocalGroupMember -Group 'RemoteSupport'

Seperti yang Anda lihat, kami hanya menggunakan akun lokal (PrincipalSource - Lokal). Namun, mungkin ada akun domain (domain), akun Microsoft (MicrosoftAccount) dan akun dari Azure (AzureAD).

Untuk mencantumkan grup yang menjadi anggota tertentu, Anda harus melewati semua grup lokal di komputer:

foreach ($ LocalGroup di Get-LocalGroup)

if (Dapatkan-LocalGroupMember $ LocalGroup -Member 'sivanov' -ErrorAction SilentlyContinue)

$ LocalGroup.Name

Untuk menghapus pengguna dari grup, lakukan:

Hapus-LocalGroupMember -Group 'RemoteSupport' -Member 'sivanov'

Untuk mengelola pengguna lokal pada komputer jarak jauh, Anda harus terlebih dahulu menghubungkannya melalui WinRM dengan cmdlet Invoke-Command atau Enter-PSSession.

Misalnya, kita perlu mengumpulkan daftar akun di grup lokal di komputer jarak jauh:

$ s = new-pssession -computer pc01, pc02, pc03
invoke-command -scriptblock Get-LocalGroupMember -Group 'RemoteSupport' -session $ s -hidecomputername | pilih * -exclude RunspaceID | out-gridview -title "LocalAdmins"