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- groupsHangi 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.-matchve [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.
returnkullanıcı yönetici değilse :)
#Requires -RunAsAdministratorfaydalıdır: Yükseltilmiyorsanız tüm betiğin çalışmasını engeller .