Я не думаю, что есть окончательный список всех возможных аккаунтов.
Существуют разные типы имен, которые вы можете использовать в пользовательском поле ввода, например, в диалоговых окнах разрешений.
Прежде всего, это стандартные Win32_Accounts, чтобы получить полный список, откройте сеанс PowerShell и запустите:
get-wmiobject -class "win32_account" -namespace "root\cimv2" | sort caption | format-table caption, __CLASS, FullName
Это обычные пользователи, группы и встроенные учетные записи.
Начиная с Vista, существует новый класс учетных записей, называемый виртуальными учетными записями, поскольку они не отображаются в обычных инструментах управления. Иногда также называются служебными учетными записями, и существует как минимум три различных типа:
- Учетные записи служб Windows
С каждой операционной системой Windows Vista связана виртуальная учетная запись, даже если она работает под другой учетной записью пользователя, даже если она вообще не запускается. Это выглядит какNT Service\MSSQLSERVER
Чтобы получить список тех, кто использует:
get-service | foreach {Write-Host NT Service\$($_.Name)}
Каждый пул приложений IIS, который запускается под ApplicationPoolIdentity, запускается под специальной учетной записью, которая называется IIS APPPOOL\NameOfThePool
Предполагая, что у вас установлены инструменты сценариев управления IIS, вы можете запустить:
Get-WebConfiguration system.applicationHost/applicationPools/* /* | where {$_.ProcessModel.identitytype -eq 'ApplicationPoolIdentity'} | foreach {Write-Host IIS APPPOOL\$($_.Name)}
- Виртуальные машины Hyper-V
На Server 2008+ и Windows 8+ у вас есть Hyper-V, каждая виртуальная машина создает свою собственную виртуальную учетную запись, которая выглядит следующим образом:
NT VIRTUAL MACHINE\1043F032-2199-4DEA-8E69-72031FAA50C5
чтобы получить список используйте:
get-vm | foreach {Write-Host NT VIRTUAL MACHINE\$($_.Id) - $($_.VMName)}
Несмотря на то, что эти учетные записи не принимаются в диалоге разрешений, вы можете использовать их с icacls.exe для установки разрешений.
Существует также специальная группа NT Virtual Machine\Virtual Machines
, которая не появляется в других местах. Все учетные записи виртуальных машин являются членами этой группы, поэтому вы можете использовать это для установки разрешений для всех файлов виртуальных машин.
Эти имена зависят от языка, например, на немецком языке они называются NT Virtual Machine\Virtuelle Computer
- Диспетчер окон рабочего стола
Процесс dvm.exe (менеджер окон рабочего стола) выполняется под пользователем Windows Manager\DWM-1
Опять же, вы не можете использовать этот тип пользователей в диалогах разрешений. Перечислить их на самом деле также невозможно, потому что они существуют для каждого «сеанса рабочего стола», поэтому при использовании двух сеансов RDP у вас также есть DWM-2
и DWM-3
в дополнение к DVM-1
. Таким образом, существует столько же, сколько доступно рабочих столов.
В некоторых случаях вы также можете использовать имена компьютеров в диалоговом окне разрешений, как правило, будучи частью домена Active Directory.
- Windows Remoting виртуальных пользователей
При использовании PowerShell и JEA (достаточно администрирования) и подключении к серверу с удаленным сеансом PS может быть создан временный виртуальный пользователь.
они имеют следующий формат:
winrm virtual users\winrm va_x_computername_username
и SID, который начинается с S-1-5-94-
«х» является целым числом.
Эти учетные записи могут использоваться при назначении разрешений NTFS, но я не знаю, как перечислить всех этих возможных виртуальных пользователей.
Во время сеанса JEA вы можете использовать, whoami
чтобы узнать имя текущей учетной записи.
Даже эти списки не дают вам все возможные учетные записи.
Например, вы можете создать пул приложений, а FooBarPool
затем удалить его снова, вы все равно можете использовать его IIS APPPOOL\FooBarPool
в диалоге разрешений, поэтому где-то должен быть внутренний список.