5 votes

Comment désactiver tous les comptes d'administrateurs à l'exception de l'administrateur intégré sur un domaine ?

Supposons qu'un administrateur d'un domaine soit licencié et que vous soyez le nouvel administrateur d'un serveur Windows 2012. Alors que vous gérez le réseau, quelque chose vous dit que certaines personnes utilisent des comptes locaux avec des droits d'administration pour se connecter aux ordinateurs (ils peuvent avoir obtenu ces utilisateurs de l'administrateur précédent). Vous voulez maintenant désactiver tous les administrateurs locaux SAUF l'administrateur intégré à l'aide de la stratégie de groupe.

J'ai essayé de modifier le "Autoriser l'ouverture d'une session locale" en :

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

Mais le problème est que Windows ne vous permet de le faire que si vous ajoutez le "groupe des administrateurs" à la liste autorisée, ce qui nous ramène à la case départ.

8voto

Ryan Ries Points 54671

Peut-être posez-vous la mauvaise question. Au lieu d'essayer de désactiver un grand nombre de comptes d'utilisateurs locaux sur plusieurs ordinateurs différents, vous devriez peut-être utiliser les groupes restreints dans la stratégie de groupe pour définir exactement qui est autorisé à être membre du groupe Administrateurs sur les ordinateurs. Cela supprimera tous les comptes qui font partie du groupe local Administrateurs sur toutes les machines, à l'exception des comptes (ou groupes) que vous spécifiez.

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

Mais si, pour une raison quelconque, vous souhaitez laisser les comptes d'utilisateurs locaux dans le groupe des administrateurs locaux sur tous les clients, mais simplement les désactiver, vous devrez développer un script pour le faire.

Edit : Parce que c'est un samedi après-midi paresseux, j'ai écrit un script qui fait ce que vous avez décrit. Il désactive tous les comptes d'utilisateurs locaux qui sont membres du groupe Administrateurs. sauf pour l'administrateur intégré. Ce n'est pas la méthode la plus efficace, mais je suis trop paresseux pour l'optimiser. Encore une fois, pour mémoire, je recommande d'utiliser les groupes restreints de la stratégie de groupe, mais j'ai eu envie de faire un peu de script.

# 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()

}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X