Войти

Показать полную графическую версию : CMD через Registry


salat
19-02-2014, 17:10
Иммется такая штука в виде ключа реестра.


[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant \"%username%\":F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant \"%username%\":F"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant \"%username%\":F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant \"%username%\":F /t"

На месте %username% должо быть имя пользователя. На прямую естественно работает а через реестр нет.
Как это дело запустить? Или может у реестра есть своя переменная для получения имени юзера? Ну что то типа LogonUI.

Если в кратце, то как записать в реестр текущее имя пользователя в виде строки.

Georgio
19-02-2014, 21:08
Так работает:


Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c \"takeown /f \"%1\" && icacls \"%1\" /grant %%username%%:F\""
"IsolatedCommand"="cmd.exe /c \"takeown /f \"%1\" && icacls \"%1\" /grant %%username%%:F\""

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c \"takeown /f \"%1\" /r /d y && icacls \"%1\" /grant %%username%%:F /t\""
"IsolatedCommand"="cmd.exe /c \"takeown /f \"%1\" /r /d y && icacls \"%1\" /grant %%username%%:F /t\""

salat
19-02-2014, 21:36
Так работает
Вот я болван. Причем как всегда думаешь правильно, но почему то все равно уверен в обратном.
Спасибо.

Я кстати решил эту задачу хитровы*бано через паскаль. Использовал GetUserName

Iska
20-02-2014, 01:14
На прямую естественно работает а через реестр нет. »
Работает и через реестр — если использовать не REG_SZ, как у Вас, а правильный формат — «REG_EXPAND_SZ».




© OSzone.net 2001-2012