автоматическое определение Id пользователя реестр
доброго времени! подскажите скрипт,который бы автоматически определял бы id данного пользователя в реестр. Этот ключ представляет собой ссылку на ключ HKEY_ USERS\user_ SID, где user SID — идентификатор безопасности (Security ID) пользователя, зарегистрированного в системе на текущий момент. у каждого пользователя он разный ,мне надо так что бы он автоматически номер определял. там что то вроде (6-555-21-4657646-57754-500) пример,я не за компьютером по этому точно написать не могу номер,но помню что он разный. помогите решить вопрос
|
O L E G,
Для текущего пользователя:
Код:
@echo off
setlocal
set "exec=wmic useraccount where name="%username%" get sid /value"
for /f %%i in (' "%exec%" ') do 1>nul set "%%i"
echo %sid%
|
Спс огромное, то что надо!
|
saveandrey |
03-12-2012 18:38 2037941 |
Что то у меня долго определяет sid, несколько минут, можно как-нибудь это ускорить для локального пользователя.
|
Petya V4sechkin |
03-12-2012 19:51 2037991 |
saveandrey, а так?
Код:
@echo off
for /f "usebackq tokens=1* delims==" %%i in (`wmic.exe useraccount where "localaccount = true and name = '%username%'" get sid /value ^| find.exe "="`) do set sid=%%j
set sid=%sid:~0,-1%
echo %sid%
|
Можно:
Код:
@echo off
setlocal enableextensions enabledelayedexpansion
for /f "usebackq delims=" %%i in (
`wmic.exe useraccount where "LocalAccount='True' and Name='%username%'" get SID /value ^|find.exe /i "SID"`
) do set "s%%i"
if defined sSID echo SID=%sSID%
endlocal
exit /b 0
NB! Не ниже Windows XP.
|
saveandrey |
04-12-2012 20:32 2038694 |
Попробовал эти два варианта, всё равно долго висят и обрезают последние цифры sid, только потом выдаётся результат, в чём причина не знаю.
|
Petya V4sechkin |
04-12-2012 22:02 2038747 |
|
saveandrey |
04-12-2012 23:08 2038809 |
Petya V4sechkin, так не идёт
|
saveandrey |
04-12-2012 23:24 2038813 |
Petya V4sechkin, psgetsid пробовал, работает быстро, но мне необходимо получить %sid%
Petya V4sechkin, заметил, что psgetsid урезает sid в конце
Iska, так тоже не идёт
|
saveandrey, что у Вас вообще:
Код:
wmic.exe useraccount where "LocalAccount='True' and Name='%username%'" get Name, LocalAccount, SID /value
выдаёт?
|
saveandrey |
05-12-2012 06:55 2038935 |
Iska, после запуска этого висит пять минут и выдаёт
LocalAccount=TRUE
Name=al
SID=S-1-5-21-484763869-1343024091-682003330-1003
Но это не полный sid, вконце ещё 7, почему то отрезана.
|
Petya V4sechkin |
05-12-2012 07:27 2038948 |
Цитата:
Цитата saveandrey
psgetsid урезает sid в конце
|
Цитата:
Цитата saveandrey
Но это не полный sid, вконце ещё 7, почему то отрезана
|
Никто ничего не отрезает, нет там никакой 7 в конце.
Цитата:
Цитата saveandrey
psgetsid пробовал, работает быстро, но мне необходимо получить %sid%
|
Код:
@echo off
reg.exe add HKCU\Software\Sysinternals\PsGetSid /v EulaAccepted /t REG_DWORD /d 1 /f >nul
for /f %%i in ('psgetsid.exe %username% 2^>nul') do set sid=%%i
echo %sid%
|
saveandrey, не знаю как у тебя, но вариантPetya V4sechkin, работает! и быстрее, на XP. 7 ку не пробовал
|
saveandrey |
06-12-2012 10:02 2039681 |
Цитата:
Цитата Petya V4sechkin
Никто ничего не отрезает, нет там никакой 7 в конце. »
|
ну как же нет, смотрю в реестре она есть, а после выполения этих команд в результате её нет.
Цитата:
Цитата O L E G
saveandrey, не знаю как у тебя, но вариантPetya V4sechkin, работает! и быстрее, на XP. 7 ку не пробовал »
|
ну если только глюк на эксперементальном компьютере...
|
Petya V4sechkin |
06-12-2012 10:04 2039684 |
Цитата:
Цитата saveandrey
смотрю в реестре она есть
|
Куда смотрите?
|
saveandrey |
06-12-2012 10:06 2039686 |
Цитата:
Цитата saveandrey
LocalAccount=TRUE
Name=al
SID=S-1-5-21-484763869-1343024091-682003330-1003 »
|
А смотрю в реестре там S-1-5-21-484763869-1343024091-682003330-10037 , что за глюк?
HKU\S-1-5-21-484763869-1343024091-682003330-10037
|
El Sanchez |
06-12-2012 18:50 2040102 |
Цитата:
Цитата saveandrey
А смотрю в реестре там S-1-5-21-484763869-1343024091-682003330-10037 , что за глюк? »
|
saveandrey, нужно здесь смотреть.
Код:
SetLocal
CHCP 1251 >nul
For /F "Tokens=*" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|Find /i "ProfileList\S-"') Do (
CHCP 866 >nul
For /F "Tokens=2*" %%B In ('Reg Query "%%A" /s^|Find /i "ProfileImagePath"') Do If "%USERNAME%"=="%%~nC" Echo:%%~nA
)
|
saveandrey |
07-12-2012 08:46 2040470 |
И здесь посмотрел тоже S-1-5-21-484763869-1343024091-682003330-10037
Может ещё кто подскажет как определить ID сетевого адаптера, который прописывается в реестре?
Цитата:
Цитата El Sanchez
SetLocal
CHCP 1251 >nul
For /F "Tokens=*" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|Find /i "ProfileList\S-"') Do (
CHCP 866 >nul
For /F "Tokens=2*" %%B In ('Reg Query "%%A" /s^|Find /i "ProfileImagePath"') Do If "%USERNAME%"=="%%~nC" Echo:%%~nA
) »
|
Это работает быстро и полностью выводит sid'ы, но только мне нужен sid текущего пользователя
|
Цитата:
Цитата saveandrey
и полностью выводит sid'ы, но только мне нужен sid текущего пользователя »
|
Да ну?! А у меня — только текущего. Добавьте «@echo off» первой строкой пакетного файла.
|
saveandrey |
08-12-2012 09:03 2041133 |
Не подскажете как определить ID сетевого адаптера, который прописывается в реестре?
|
saveandrey |
08-12-2012 22:53 2041514 |
Цитата:
Цитата Iska
Добавьте «@echo off» первой строкой пакетного файла. »
|
Отлично работает! То что мне надо! Не заставляет себя ждать. Благодарю.
Код:
@echo off
SetLocal
CHCP 1251 >nul
For /F "Tokens=*" %%A In ('Reg Query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /s^|Find /i "ProfileList\S-"') Do (
CHCP 866 >nul
For /F "Tokens=2*" %%B In ('Reg Query "%%A" /s^|Find /i "ProfileImagePath"') Do If "%USERNAME%"=="%%~nC" Echo:%%~nA
)
|
saveandrey, покажи скрин с реестра, своего ID пользователя
на моём примере видно...
|
saveandrey |
11-12-2012 08:08 2042876 |
Вложений: 1
O L E G, вот
|
saveandrey, ну да, на скрин видно что 7 в конце. проблема решена, все определяется?
|
saveandrey |
13-12-2012 07:11 2044405 |
O L E G, да, но последний вариант действует не на всех компьютерах (везде Windows XP SP3)
|
Время: 09:00.
© OSzone.net 2001-