@set @x=0; /*
@echo off
SetLocal EnableExtensions DisableDelayedExpansion
set "live=%USERPROFILE%"
REG ADD "HKCR\AllFilesystemObjects\Shell" /f >nul 2>&1 || if "%~2" neq "Admin" (
echo Для установки надстройки требуются повышенные права.
cscript.exe //nologo //e:jscript "%~f0"& Exit /B) else (echo Вы не обладаете необходимыми привилегиями& pause& Exit /B
)
:begin
cls
echo. Введите цифру и нажмите { ENTER }
echo.
echo. Установить:
echo.
echo 1. Поиск в Google
echo 2. Поиск в Yandex
echo.
set /p "ch=Ваш выбор: "
::Первая часть VBS
for /f "delims=[]" %%N in ('find /n ":UnpackVBS" ^<"%~f0"') do set /a num=%%N
more +%num% >"%live%\KozaN.vbs" <"%~f0"
::Вторая часть VBS
if "%ch%"=="1" (
set VerbName=Найти в "Google"
>> "%live%\KozaN.vbs" echo CreateObject^("WScript.Shell"^).Run "explorer ""https://google.ru/search?ie=UTF-8&hl=ru&q=" ^& Arg ^& """"
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath" /v Icon /t REG_SZ /d "%USERPROFILE%\google.ico" /f
1>nul copy "%~dp0"google.ico %USERPROFILE% /y
)
if "%ch%"=="2" (
set VerbName=Найти в "Яндекс"
>> "%live%\KozaN.vbs" echo CreateObject^("WScript.Shell"^).Run "explorer ""http://yandex.ru/yandsearch?text=" ^& Arg ^& """"
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath" /v Icon /t REG_SZ /d "%USERPROFILE%\yandex.ico" /f
1>nul copy "%~dp0"yandex.ico %USERPROFILE% /y
)
if not Defined VerbName goto begin
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath" /f
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath" /ve /t REG_SZ /d "%VerbName%" /f
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath\command" /f
REG ADD "HKCR\AllFilesystemObjects\Shell\CopyAsPath\command" /ve /d "wscript.exe //nologo \"%live%\KozaN.vbs\" \"%%1\"" /f
echo.
echo Установка завершена.
echo.
echo "SafeZone.cc"
echo.
pause
Exit /B
*/try {
var ShellApp = new ActiveXObject('Shell.Application');
ShellApp.ShellExecute ('cmd.exe', '/c ""' + WScript.ScriptFullName + '" "" "Admin"','','runas',1);
} catch (e) { }/*
:UnpackVBS
On Error Resume Next
if WScript.Arguments.Count = 0 then WScript.Quit
Arg = WScript.Arguments(0)
Arg = Mid(Arg, InStrRev(Arg, "\") + 1)
Arg = Replace(Arg, " ", "%20")
set ShellApp = CreateObject("Shell.Application")'*/
Я тоже не вижу причин для паники, но автор скрипта сказал, что лучше немного подправить, у меня нет причин ему не доверять.По моему вполне безопасно.
В разделе bat/cmd есть образцы контроля уровня доступа и элевации uac ,логика: контроль запуска,если права повышенные то перезапускаем скрипт с пониженными,что дает возможность спокойно определить местоположение папки,закрепить файл с адресом в нужном каталоге.
А когда надо повысить привелегии читаем путь из созданного ранее файла с последующим удалением.
%~dp0 не раскроется, если ее указать в консоле (не в батнике).Ладно, поставим вопрос по другому: при каких обстоятельствах переменная %~dp0 может принять неверное значение ?
А вернуть как было мне как?А все) разобрался.из-за знака & в пути к батнику.
Похоже нормального пути решения проблемы нет. Баг ловит сам обработчик ассоциации винды.
Придется переименовать папку.
+из-за знака & в пути к батнику
Стало быть возникает вопрос: как сохранить значение переменной %cd% полученное до элевации ?В предостережении говорилось о другой переменной %cd%
Да. Так и есть.Похоже нормального пути решения проблемы нет. Баг ловит сам обработчик ассоциации винды.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\cmdfile\shell\runas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,63,00,6d,00,\
64,00,2e,00,65,00,78,00,65,00,20,00,2f,00,43,00,20,00,22,00,22,00,25,00,31,\
00,22,00,20,00,25,00,2a,00,22,00,00,00
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?