Bagaimana saya bisa tahu dalam skrip saya jika PowerShell berjalan dengan hak administrator?
Saya perlu tahu karena saya mencoba menjalankan program yang membutuhkan kemampuan untuk membuka port yang dilindungi.
powershell
Bumerang
sumber
sumber
Jawaban:
Pisahkan apa yang dilakukannya:
[bool]
- Keluarkan hasil akhirnya ke abool
.[System.Security.Principal.WindowsIdentity]::GetCurrent()
- MengambilWindowsIdentity
untuk pengguna yang sedang berjalan.(...).groups
- Aksesgroups
properti identitas untuk mengetahui kelompok pengguna yang menjadi anggota identitas itu.-match "S-1-5-32-544"
memeriksa untuk melihat apakahgroups
mengandung SID yang Dikenal baik dari grup Administrator, identitas hanya akan memuatnya jika "dijalankan sebagai administrator" digunakan.sumber
-match
dan[Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544'
Ini mengambil identitas Windows saat ini dan mengembalikan True jika identitas saat ini memiliki peran Administrator (yaitu, sedang berjalan tinggi).
sumber
Dalam Powershell 4.0 Anda dapat menggunakan membutuhkan di bagian atas script Anda:
Output:
sumber
return
jika pengguna bukan admin :)#Requires -RunAsAdministrator
ini berguna: Ini mencegah seluruh skrip untuk berjalan jika Anda tidak ditinggikan.