55kadi
31-10-2016, 01:43
как сделать чтобы bat файл запускался только на одном компьютере с привязкой по SID
как определить SID я нашел 3 варианта какой из них правильный и как сделать штобы SID сохранялся в txt. fail
1 вариант
@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%
2 вариант
@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%
3 вариант
@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
как определить SID я нашел 3 варианта какой из них правильный и как сделать штобы SID сохранялся в txt. fail
1 вариант
@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%
2 вариант
@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%
3 вариант
@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