¿Cómo deshabilitar todas las counts de administradores, excepto el administrador incorporado en un dominio?

Supongamos que se dispara un administrador de un dominio y que ahora es el nuevo administrador de un server de Windows 2012. Al administrar la networking, algo le dice que algunas personas están usando counts locales con derechos administrativos para iniciar session en los equipos (pueden haber obtenido estos usuarios del administrador anterior). Ahora lo que quieres hacer es desactivar todos los administradores locales, EXCEPTO el administrador incorporado con la directiva de grupo.

He intentado cambiar la opción "Permitir inicio de session local" en:

Computer Configuration * Policies * Windows Settings * Security Settings * Local Policies * User Rights Assignment 

Pero la cosa es que las windows solamente permiten que usted haga esto si usted agrega el "grupo de administradores" a la list permitida y haciendo eso, estaremos detrás en el cuadrado uno.

Tal vez usted está haciendo la pregunta equivocada. En lugar de intentar desactivar un montón de counts de usuario locales en un montón de equipos diferentes, quizás en su lugar debería utilizar Grupos restringidos en la directiva de grupo para definir exactamente a quién se le permite ser miembro del grupo Administradores de los equipos. Eliminará todas las counts que se encuentren en el grupo Administradores local en todas las máquinas, excepto las counts (o grupos) que especifique.

https://technet.microsoft.com/en-us/library/cc756802(v=ws.10).aspx

Pero si por alguna razón realmente quisieras dejar las counts de usuario locales en el grupo Administradores local en todos los clientes, pero solo desactivarlas, tendrás que desarrollar un script para hacerlo.

Edit: Debido a que es un sábado por la tarde perezoso, escribí un guión que hace lo que describió. Deshabilita todas las counts de usuario local de usuario que son miembros del grupo Administradores excepto para el Administrador incorporado. No es la manera más eficiente, pero soy demasiado perezoso para optimizarlo. Una vez más, para que conste, mi recomendación es usar Group Policy Restricted Groups, pero me sentía como hacer algunas secuencias de commands.

 # Author: Ryan Ries # This script disables all local user accounts who are members of the Administrators group, # except for the built-in Administrator (sid-500). # Use at your own risk. Set-StrictMode -Version Latest [Int]$DomainRole = (Get-WmiObject Win32_ComputerSystem).DomainRole # Don't run if we are a domain controller. If (($DomainRole -EQ 4) -OR ($DomainRole -EQ 5)) { Write-Error "This script cannot be run on a domain controller." Return } # We need to be an elevated administrator. $CurrentUser = New-Object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent()) If (-Not($CurrentUser.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator))) { Write-Error "$($CurrentUser.Identity.Name) is not currently an Administrator. (Need UAC elevation?)" Return } Add-Type -AssemblyName System.DirectoryServices.AccountManagement $ContextType = [System.DirectoryServices.AccountManagement.ContextType]::Machine $Context = New-Object System.DirectoryServices.AccountManagement.PrincipalContext -ArgumentList $ContextType, $Env:COMPUTERNAME $IDType = [System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName $Group = [System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity($Context, $IDType, 'Administrators') Foreach ($Member In $Group.Members) { If ($Member.Sid.Value.EndsWith('-500')) { # This is the built-in local administrator, so we'll skip it. Continue } $User = [ADSI]"WinNT://./$($Member.SamAccountName)" $User.UserFlags = 2 $User.CommitChanges() }