Я использовал следующую пакетную команду для получения всех профилей локальных пользователей (включая и пользователей домена):
for /f "delims=" %%I in ('dir /a:d-h /b "%SystemDrive%\Users\*" 2^>nul ^| %SystemRoot%\System32\findstr.exe /i /l /x /v /g:"%bin%\exclude_users.txt"') do (
Проблема в том, что эта команда имеет свои ограничения: на самом деле она не проверяет, У рассматриваемых пользователей действительно есть учетная запись.
Пользователь Compo предоставил мне методологию для получения имен профилей с использованием WMI C.
Итак, я написал следующую команду:
@For /F "tokens=* skip=1" %%I In ('%__AppDir__%wbem\WMIC.exe UserAccount Get Name ^|%__AppDir__%findstr.exe /i /l /x /v /g:"%bin%\exclude_users.txt"') do (
Проблема в том, что он игнорирует мой файл исключения (который содержит по одному пользователю в строке) и заканчивается профилем без какого-либо имени.
Любая идея Как я могу решить эти проблемы?