2014-02-05 35 views
5

該用戶是AD安全組「Domain \ Sql Admins」的成員,安全組「Domain \ Sql Admins」是本地管理員組在Windows服務器上。檢查用戶是否是遠程服務器上本地管理員組的成員

我曾嘗試以下PowerShell腳本:

$u = "Username"; net localgroup administrators | Where {$_ -match $u} 

如果是直接添加到管理員組,該腳本只能返回用戶。是否必須循環訪問管理員組中的所有組,直到找到我的用戶?還是有另一種方式?

回答

9

查看本文,由Boe Prox在Microsoft Hey Scripting Guy博客上發表。他介紹瞭如何檢查用戶是否是本地管理員。

http://blogs.technet.com/b/heyscriptingguy/archive/2011/05/11/check-for-admin-credentials-in-a-powershell-script.aspx

本文指向被張貼到的TechNet畫廊Test-IsAdmin功能。

http://gallery.technet.microsoft.com/scriptcenter/1b5df952-9e10-470f-ad7c-dc2bdc2ac946

功能包含以下代碼,它返回$true$false

([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator") 
+1

非常感謝! – ReeReeBosley

0

PowerShell 5.1(Windows Server 2016)包含Get-LocalGroupMember cmdlet。

$user = "$env:COMPUTERNAME\$env:USERNAME" 
$group = 'Administrators' 
$isInGroup = (Get-LocalGroupMember $group).Name -contains $user 
相關問題