Yanıtlar:
[bool](([System.Security.Principal.WindowsIdentity]::GetCurrent()).groups -match "S-1-5-32-544")
Bunun ne yaptığını parçalamak:
[bool]
- Son sonucu a a bool
.[System.Security.Principal.WindowsIdentity]::GetCurrent()
- WindowsIdentity
Çalışmakta olan kullanıcı için alır.(...).groups
- groups
Hangi kullanıcı kimliğinin üyesi olduğunu bulmak için kimliğin özelliğine erişin .-match "S-1-5-32-544"
Administrators grubunun İyi Bilinen SID'sinigroups
içerip içermediğini kontrol eder , kimlik yalnızca "yönetici olarak çalıştır" kullanılmışsa içerecektir.-match
ve [Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544'
([Security.Principal.WindowsPrincipal] `
[Security.Principal.WindowsIdentity]::GetCurrent() `
).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
Bu, geçerli Windows kimliğini alır ve geçerli kimlik Yönetici rolüne sahipse (yani, yüksek çalışıyorsa) True değerini döndürür.
Powershell 4.0'da kullanabileceğiniz script'inizi gerektirir :
#Requires -RunAsAdministrator
Çıktılar:
'MyScript.ps1' betiği, Yönetici olarak çalışmak için bir "#requires" ifadesi içerdiğinden çalıştırılamaz. Geçerli Windows PowerShell oturumu Yönetici olarak çalışmıyor. Yönetici Olarak Çalıştır seçeneğini kullanarak Windows PowerShell'i başlatın ve sonra komut dosyasını yeniden çalıştırmayı deneyin.
return
kullanıcı yönetici değilse :)
#Requires -RunAsAdministrator
faydalıdır: Yükseltilmiyorsanız tüm betiğin çalışmasını engeller .