J'essaie de trouver un moyen d'obtenir une liste complète des comptes d'utilisateurs sur un système Windows 7, y compris les comptes cachés. La boîte de dialogue Comptes d'utilisateurs ( >control userpasswords2
) affiche uniquement les comptes d'utilisateur normaux. Même l' éditeur Editeur d' utilisateurs et groupes locaux n'affiche que les comptes d'utilisateur normaux et les comptes cachés / désactivés standard tels que Administrateur et Invité. La boîte de dialogue Sélectionner des utilisateurs ou des groupes comporte un bouton Rechercher maintenant qui regroupe des utilisateurs et des groupes, mais hélas, son contenu est identique à celui du LUG.
Je recherche une liste plus complète incluant des comptes d’utilisateur «super cachés» / virtuels, tels que TrustedInstaller (ou, pour être plus précis, NT Service \ TrustedInstaller - notez les différents «domaines»).
J'ai vérifié HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\SpecialAccounts\UserList
, mais la SpecialAccounts
clé n'existe pas.
J'ai également vérifié HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
, et même si les comptes SystemProfile, LocalService et NetworkService sont répertoriés, il n'en a pas d'autres (comme TrustedInstaller et ses semblables).
TrustedInstaller est particulièrement déroutant car il s’agit d’un utilisateur, d’un service et d’un fichier exécutable. Je l'utilise comme exemple car il est «super caché» en ce sens qu'il ne semble pas figurer dans une liste d'utilisateurs. (A titre expérimental, j’ai essayé de chercher dans le registre entier «d confiance» pour savoir si je pouvais trouver un endroit où il est répertorié comme utilisateur, mais je n’en ai trouvé aucun.)
Pour être clair, je cherche une liste de tous les comptes pouvant être utilisés dans un champ de saisie utilisateur, par exemple dans les boîtes de dialogue des autorisations ou en tant runas
qu'argument.
la source
Réponses:
Je ne pense pas qu'il existe une liste ultime de tous les comptes possibles.
Vous pouvez utiliser différents types de noms dans le champ de saisie utilisateur, tels que dans les boîtes de dialogue des autorisations.
En premier lieu, les comptes Win32_Accounts standard. Pour obtenir la liste complète, ouvrez une session PowerShell et exécutez:
Ce sont les utilisateurs habituels, les groupes et les comptes intégrés.
Depuis Vista, il existe une nouvelle classe de comptes, appelés comptes virtuels, car ils n'apparaissent pas dans les outils de gestion habituels. On appelle parfois aussi des comptes de service, et il en existe au moins trois types différents:
Depuis Vista, chaque service Windows est associé à un compte virtuel, même s’il s’exécute sous un compte utilisateur différent et même s’il ne fonctionne pas du tout. Ça ressemble à
NT Service\MSSQLSERVER
Pour obtenir une liste de ces utilisations:
Chaque pool d'applications IIS qui s'exécute sous ApplicationPoolIdentity s'exécute sous un compte spécial appelé
IIS APPPOOL\NameOfThePool
En supposant que les outils de script de gestion IIS soient installés, vous pouvez exécuter:
Sur le serveur 2008+ et Windows 8+, vous avez Hyper-V, chaque ordinateur virtuel crée son propre compte virtuel, qui ressemble à ceci:
NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5
pour obtenir une liste, utilisez:
Même si ces comptes ne sont pas acceptés dans la boîte de dialogue des autorisations, vous pouvez les utiliser avec icacls.exe pour définir des autorisations.
Il y a aussi un groupe spécial
NT Virtual Machine\Virtual Machines
, qui ne se présente pas ailleurs. Tous les comptes de machine virtuelle sont membres de ce groupe. Vous pouvez donc l'utiliser pour définir des autorisations pour tous les fichiers de machine virtuelle.Ces noms sont spécifiques à une langue. Par exemple, en allemand, il est nommé
NT Virtual Machine\Virtuelle Computer
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’utilisateur dans les boîtes de dialogue des autorisations. Il n'est pas vraiment possible de les énumérer non plus, car il en existe une pour chaque "session de bureau". Par conséquent, lorsque vous utilisez deux sessions RDP, vous en avez également
DWM-2
etDWM-3
en plusDVM-1
. Donc, il y en a autant qu'il y a de bureaux disponibles.Dans certains cas, vous pouvez également utiliser des noms d'ordinateur dans la boîte de dialogue des autorisations, généralement lorsque vous faites partie d'un domaine Active Directory.
Lors de l'utilisation de PowerShell et de 'JEA (administration juste suffisante)' et de la connexion à un serveur avec une session à distance 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 d'autorisations NTFS, mais je ne sais pas comment répertorier tous ces utilisateurs virtuels possibles.
Pendant une session JEA, vous pouvez utiliser
whoami
le nom du compte actuel.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 l'utiliserIIS APPPOOL\FooBarPool
dans la boîte de dialogue des autorisations. Il doit donc exister une liste interne quelque part.la source
everyone
,restricted
, etc., et la discussion desNT Service\*
comptes explique d' autres commeTrustedInstaller
. Vous avez également couvert des cas spéciaux plus exotiques, mais il semble que tous les cas courants soient pris en compte.Get-WebConfiguration system.applicationHost/applicationPools/add
.En effet, TrustedInstaller est un service et non un objet "utilisateur". Avec Vista, les services sont désormais des entités de sécurité et des autorisations peuvent être attribuées.
http://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx
la source
Allez sur l'onglet sécurité et cliquez sur
Edit
Add...
Cliquez sur
Advanced...
Cliquez
Object Types...
et décochezGroups
, puis cliquez surOK
Cliquez sur
Find Now
. Ceci listera tous les utilisateurs réguliers et les utilisateurs du système intégré ("principes de sécurité intégrés", comme les appelle Windows).Notez que tous les comptes apparaissant sur cette page ne peuvent pas être utilisés dans une commande Run-As, bien qu'ils puissent tous l'être dans une boîte de dialogue d'autorisations.
la source
SYSTEM
soit (ou du moins devrait l'être), TrustedInstaller ne l' est pas .find now
bouton du panneau de configuration Utilisateurs et groupes, qui est similaire mais légèrement différent. À ma connaissance, le seul compte qui n'apparaît pas ici est TrustedInstaller. En effet, Microsoft s’efforce de vous empêcher de faire quoi que ce soit avec / avec le compte TrustedInstaller. Je vous ferai savoir si je pense à d'autres moyens de le faire.Locations...
votre ordinateur si vous êtes dans un domaine (mais souhaitez uniquement utiliser votre ordinateur).À partir de Windows Vista, les services sont traités comme des utilisateurs. C'est-à-dire qu'un identifiant de sécurité (SID) est attribué à chaque service. Ceci n'est pas spécifique au service TrustedInstaller . Vous pouvez afficher le SID attribué à n'importe quel service à l'aide de la
sc showsid
commande:Notez qu'il n'est pas nécessaire que le service existe sur le système. Exemples:
ou, pour le service Windows Management Instrumentation (
Winmgmt
):et, enfin, pour un faux service:
Notez que tous les SID commencent par
S-1-5-80
, où80
est attribué à uneSECURITY_SERVICE_ID_BASE_RID
sous-autorité. De plus, cette affectation est déterministe: aucun RID n’est utilisé et le SID sera le même sur tous les systèmes (voir les références à la fin de ce post pour plus d’informations).À titre d'exemple, je vais attribuer le
NT Service\Winmgmt
service, l'autorisation d'écriture à un fichier:Windows souligne le nom
Winmgmt
, confirmant qu'il s'agit d'une identité valide:Maintenant, cliquez sur OK, puis attribuez l'autorisation d'écriture:
Cela confirme que tout nom de service peut être utilisé comme identité d'utilisateur. Par conséquent, je ne les appellerais pas des comptes "cachés au souper": D
Pour plus d'informations, veuillez lire les articles suivants:
la source
Vous pouvez utiliser l'API NetQueryDisplayInformation, combiner avec la vérification au niveau du bit sur l'indicateur d'informations utilisateur. J'ai exactement les mêmes exigences, je prépare donc un exemple de code (modifié à partir d'une requête MSDN GROUP).
Les indicateurs utilisateur que j'ai utilisés sont UF_NORMAL_ACCOUNT UF_ACCOUNTDISABLE UF_PASSWD_NOTREQD ---> nous garantissons que nous obtenons un compte humain. Ce compte humain requiert toujours un mot de passe.
code de travail à: http://www.cceye.com/list-system-normal-user-account-only/
la source