Je ne pense pas qu'il existe une liste exhaustive de tous les comptes possibles.
Il existe différents types de noms que vous pouvez utiliser dans le champ de saisie de l'utilisateur, par exemple dans les boîtes de dialogue relatives aux autorisations.
Pour obtenir une liste complète, ouvrez une session PowerShell et exécutez :
get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName
Il s'agit des utilisateurs habituels, des groupes et des comptes intégrés.
Depuis Vista, il existe une nouvelle catégorie de comptes, appelés comptes virtuels, car ils n'apparaissent pas dans les outils de gestion habituels. Ils sont parfois appelés comptes de service et il en existe au moins trois types différents :
- Comptes de service Windows
Depuis Vista, chaque service Windows est associé à un compte virtuel, même s'il s'exécute sous un compte d'utilisateur différent et que le service est exécuté sous un autre compte d'utilisateur. même s'il ne s'exécute pas du tout. Cela ressemble à NT Service\MSSQLSERVER
Pour obtenir une liste de ces derniers, utilisez :
get-service | foreach {Write-Host NT Service\$($_.Name)}
Chaque pool d'applications IIS qui fonctionne sous l'ApplicationPoolIdentity fonctionne sous un compte spécial appelé IIS APPPOOL\NameOfThePool
Si vous avez installé les outils de script de gestion IIS, vous pouvez lancer le programme :
Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
- Machines virtuelles Hyper-V
Sur Server 2008+ et Windows 8+ vous avez Hyper-V, chaque machine virtuelle crée son propre compte virtuel, qui ressemble à : NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5
pour obtenir une liste d'utilisation :
get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}
Bien que ces comptes ne soient pas acceptés dans la boîte de dialogue des autorisations, vous pouvez les utiliser avec icacls.exe pour définir les autorisations.
Il existe également un groupe spécial NT Virtual Machine\Virtual Machines
qui n'apparaît pas ailleurs. Tous les comptes de machines virtuelles sont membres de ce groupe, vous pouvez donc l'utiliser pour définir les autorisations pour tous les fichiers de machines virtuelles.
Ces noms sont spécifiques à chaque langue, par exemple en allemand il s'agit de NT Virtual Machine\Virtuelle Computer
- Gestionnaire de fenêtres de bureau
Le processus dvm.exe (Desktop Window Manager) s'exécute sous un utilisateur Windows Manager\DWM-1
Là encore, vous ne pouvez pas utiliser ce type d'utilisateurs dans les boîtes de dialogue d'autorisation. Il n'est pas non plus possible de les énumérer car il en existe un pour chaque "session de bureau" ; ainsi, lorsque vous utilisez deux sessions RDP, vous avez également DWM-2
y DWM-3
en plus de DVM-1
. Il y en a donc autant qu'il y a d'ordinateurs de bureau disponibles.
Dans certains cas, vous pouvez également utiliser des noms d'ordinateurs dans la boîte de dialogue des autorisations, généralement lorsque vous faites partie d'un domaine Active Directory.
- Utilisateurs virtuels de Windows Remoting
Lorsque vous utilisez PowerShell et "JEA (Just enough Administration)" et que vous vous connectez à un serveur avec une session distante PS, un utilisateur virtuel temporaire peut être créé.
Ceux-ci ont le format suivant :
winrm virtual users\winrm va_x_computername_username
et un SID qui commence par S-1-5-94-
le "x" est un nombre entier.
Ces comptes peuvent être utilisés lors de l'attribution des autorisations NTFS, mais je ne sais pas comment dresser la liste de tous ces utilisateurs virtuels possibles.
Lors d'une session JEA, vous pouvez utiliser whoami
pour connaître l'intitulé du compte courant.
Même ces listes ne vous donnent pas tous les comptes possibles.
Par exemple, vous pouvez créer un pool d'applications FooBarPool
puis le supprimer à nouveau, vous pouvez toujours utiliser IIS APPPOOL\FooBarPool
dans la boîte de dialogue des autorisations, il doit donc y avoir une liste interne quelque part.