CMD/BAT - [решено] Получить из реестра SID пользователей не выполнивших вход в систему.

Ответить
Аватара пользователя
Lucretius

CMD/BAT - [решено] Получить из реестра SID пользователей не выполнивших вход в систему.

Сообщение Lucretius »

На компьютере свыше десяти учёток пользователей.



Получаю SID пользователей компьютера:



Код:

Код: Выделить всё

For /f "Delims=" %%I In (
	'2^>nul reg.exe Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
	^| find.exe /i "S-1-5-21-"'
) Do Echo %%~nI

Получаю SID пользователей выполнивших вход в систему:



Код:

Код: Выделить всё

For /f "Delims=" %%F In (
	'2^>nul reg.exe Query "HKU"
	^| find.exe /i "S-1-5-21-" ^| find.exe /i /v "_Classes"'
) Do Echo %%~nF

Вопрос: Как выделить из "ProfileList" SID пользователей НЕ выполнивших вход в систему?
Аватара пользователя
Foreigner

Re: CMD/BAT - [решено] Получить из реестра SID пользователей не выполнивших вход в систему.

Сообщение Foreigner »

Lucretius, Проверьте, не уверен, что Status и Disabled определяют залогинен пользователь или нет



Код:

Код: Выделить всё

wmic useraccount where Status="Degraded" get Name,SID
wmic useraccount where Disabled="True" get Name,SID
Аватара пользователя
greg zakharov

Re: CMD/BAT - [решено] Получить из реестра SID пользователей не выполнивших вход в систему.

Сообщение greg zakharov »

Код:

Код: Выделить всё

@echo off
  setlocal enabledelayedexpansion
    set key="HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList"
    for /f "tokens=7 delims=\" %%i in (
      'reg query %key% ^| findstr /irc:"s-1.*"'
    ) do (
      set "sid=%%i"
      if "!sid:~-3,1!" neq "-" (
        (2>nul reg query "HKU\!sid!" >nul)&&(
          echo:Logged     : !sid!
        )||(echo:Not logged : !sid!)
      )
    )
  endlocal
exit /b
Аватара пользователя
Lucretius

Re: CMD/BAT - [решено] Получить из реестра SID пользователей не выполнивших вход в систему.

Сообщение Lucretius »

Цитата Foreigner:



Проверьте, не уверен, что Status и Disabled определяют залогинен пользователь или нет
CMD/BAT - [решено] Получить из реестра SID пользователей не выполнивших вход в систему.




Foreigner, с "WMIC", к сожалению не получается:



wmic useraccount get /all /format:list

[spoiler]Код:
[/spoiler]

Код: Выделить всё

REM Вход выполнен:
AccountType=512
Caption=***\Admin
Description=
Disabled=FALSE
Domain=***
FullName=
InstallDate=
LocalAccount=TRUE
Lockout=FALSE
Name=Admin
PasswordChangeable=TRUE
PasswordExpires=FALSE
PasswordRequired=FALSE
SID=S-1-5-21-***-***-***-1000
SIDType=1
Status=OK
REM Вход не выполнен:
AccountType=512
Caption=***\Гость
Description=Встроенная учетная запись для доступа гостей к компьютеру или домену
Disabled=FALSE
Domain=***
FullName=
InstallDate=
LocalAccount=TRUE
Lockout=FALSE
Name=Гость
PasswordChangeable=FALSE
PasswordExpires=FALSE
PasswordRequired=FALSE
SID=S-1-5-21-***-***-***-501
SIDType=1
Status=OK
Ответить

Вернуться в «Скриптовые языки администрирования Windows»