<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: Sudo or Run as Administrator]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=15167</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=15167&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Sudo or Run as Administrator».]]></description>
		<lastBuildDate>Sun, 29 May 2022 08:38:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153367#p153367</link>
			<description><![CDATA[<div class="quotebox"><cite>greg zakharov пишет:</cite><blockquote><p>gsudo</p></blockquote></div><p>Это хорошая программа. Пользуюсь ей. Только версия у меня очень старая, 0.7.2. Самое время обновить, там много хорошего добавилось.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 29 May 2022 08:38:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153367#p153367</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153366#p153366</link>
			<description><![CDATA[<p><strong>Rumata</strong>, позвольте полюбопытствовать для чего вам такие сложности? Возьмите планировщик, нарисуйте в нём задачу запуска консоли с повышенными правами, а после нарисуйте для составленной задачи макрос (<em>sudo=&gt;nul schtasks /run /tn &lt;имя_задачи&gt;</em>). Относительно данного подхода у каждого найдётся свой контраргумент, тем не менее как вариант - вполне имеет право на жизнь.<br />В качестве альтернативы можно посмотреть в сторону <a href="https://github.com/gerardog/gsudo.git">gsudo</a>, хотя в целом на pwsh можно изготовить аналог sudo в прямом смысле на коленке, а чтобы проверить запущен ли его хост с повышенными привилегиями, достаточно прочитать данные из KUSER_SHARED_DATA.</p>]]></description>
			<author><![CDATA[null@example.com (greg zakharov)]]></author>
			<pubDate>Sat, 28 May 2022 19:25:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153366#p153366</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=153350#p153350</link>
			<description><![CDATA[<p>Улучшил код, показывающий привилегии текущей консоли.</p><div class="codebox"><pre><code>
::NAME
::
::    sudo - check privileges or run a command with the elevated privileges
::
::SYNOPSIS
::
::Check privileges
::    sudo /c
::
::Run a command with the elevated privileges
::    sudo
::    sudo COMMAND [OPTIONS]
::
::DESCRIPTION
::
::sudo allows to run a command with optional arguments with the elevated
::privileges. By default, if no any options specified, it runs the
::command interpreter. The command can be any of binary executables,
::batch scripts or documents supposed to be open.
::
::Based on the solutions suggested in these threads:
::https://www.dostips.com/forum/viewtopic.php?f=3&amp;t=9212
::https://stackoverflow.com/a/27717205/3627676
::https://stackoverflow.com/a/30921854/3627676
@echo off

if /i &quot;%~1&quot; == &quot;/?&quot; goto :print_usage
if /i &quot;%~1&quot; == &quot;/h&quot; goto :print_usage
if /i &quot;%~1&quot; == &quot;/c&quot; goto :check_priv

call :check_reqs reg.exe || goto :EOF

type nul &gt;&quot;%TEMP%\%~n0.%USERNAME%.elevate&quot;

reg add &quot;HKCU\Software\Classes\.elevate\shell\runas\command&quot; /ve /d &quot;cmd.exe /c cd /d \&quot;%%w\&quot; &amp; start \&quot;%~n0\&quot; %%*&quot; /f &gt;nul

&quot;%TEMP%\%~n0.%USERNAME%.elevate&quot; %*

reg delete &quot;HKCU\Software\Classes\.elevate&quot; /f &gt;nul
del /q &quot;%TEMP%\%~n0.%USERNAME%.elevate&quot;

goto :EOF


:print_usage
for /f &quot;tokens=* delims=:&quot; %%s in ( &#039;findstr &quot;^::&quot; &quot;%~f0&quot;&#039; ) do echo:%%s
goto :EOF


:check_reqs
for %%p in ( &quot;%~1&quot; ) do if &quot;%%~$PATH:p&quot; == &quot;&quot; (
	echo:%%~p is required&gt;&amp;2
	exit /b 1
)
exit /b 0


rem 2.4.2.4 Well-Known SID Structures
rem https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dtyp/81d92bba-d22b-4a8c-908a-554ab29148ab
:check_priv
setlocal

set &quot;S-1-16-0=untrusted&quot;
set &quot;S-1-16-4096=low&quot;
set &quot;S-1-16-8192=medium&quot;
set &quot;S-1-16-8448=medium-plus&quot;
set &quot;S-1-16-12288=high&quot;
set &quot;S-1-16-16384=system&quot;
set &quot;S-1-16-20480=protected&quot;
set &quot;S-1-16-28672=secure&quot;

for /f &quot;tokens=2&quot; %%a in ( &#039;
	call &quot;%SystemRoot%\system32\whoami.exe&quot; /groups /fo list ^| findstr /e S-1-16-[0-9]*
&#039; ) do if defined %%~a (
	call echo:%%%%~a%%
	goto :EOF
)

echo:unknown
goto :EOF
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Fri, 27 May 2022 12:03:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=153350#p153350</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=140201#p140201</link>
			<description><![CDATA[<p>Поправил предыдущий пост. Улучшения:<br />-- start &quot;%~n0&quot;. чтобы можно было запускать команды в кавычках<br />-- избыточная надежность в %TEMP%\%~n0.%USERNAME%.elevate</p><p>Хотелось бы сделать так, чтобы команда (например, cmd.exe) работала в том окне, но, видимо, данными средствами это не возможно.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sat, 20 Jun 2020 08:13:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=140201#p140201</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=137754#p137754</link>
			<description><![CDATA[<p>Две новости, из-за которых я решил отказаться от поддержки своего творения<br />1. обнаружил, что по каким-то причинам мой скрипт не работает в корне диска (любого)<br />2. есть лучшее решение, которое проще и элегантнее</p><p>Решение, найдено на форуме <a href="https://www.dostips.com/forum/viewtopic.php?f=3&amp;t=9212">DosTips: SUDO for CMD</a>:</p><p>Суть решения: <br />1. создается фиктивное расширение .elevate<br />2. создается ассоциация, которая запускает CMD с повышенными правами<br />3. запускается команда или открывается файл</p><div class="codebox"><pre><code>
::NAME
::
::    sudo - execute a command with the elevated privileges
::
::SYNOPSIS
::
::    sudo
::    sudo COMMAND [OPTIONS]
::
::DESCRIPTION
::
::sudo allows to run a command with optional arguments with the elevated
::privileges. By default, if no any options specified, it runs the
::command interpreter. The command can be any of binary executables,
::batch scripts or documents supposed to be open.
::
::Based on the solution suggested in this thread:
::https://www.dostips.com/forum/viewtopic.php?f=3&amp;t=9212
@echo off

if /i &quot;%~1&quot; == &quot;/?&quot; goto :print_usage
if /i &quot;%~1&quot; == &quot;/h&quot; goto :print_usage

call :check_reqs || goto :EOF

type nul &gt;&quot;%TEMP%\%~n0.%USERNAME%.elevate&quot;

reg add &quot;HKCU\Software\Classes\.elevate\shell\runas\command&quot; /ve /d &quot;cmd.exe /c cd /d \&quot;%%w\&quot; &amp; start \&quot;%~n0\&quot; %%*&quot; /f &gt;nul

&quot;%TEMP%\%~n0.%USERNAME%.elevate&quot; %*

reg delete &quot;HKCU\Software\Classes\.elevate&quot; /f &gt;nul
del /q &quot;%TEMP%\%~n0.%USERNAME%.elevate&quot;

goto :EOF


:print_usage
for /f &quot;tokens=* delims=:&quot; %%s in ( &#039;findstr &quot;^::&quot; &quot;%~f0&quot;&#039; ) do echo:%%s
goto :EOF


:check_reqs
for %%p in ( reg.exe ) do if &quot;%%~$PATH:p&quot; == &quot;&quot; (
	echo:%%~p is required&gt;&amp;2
	exit /b 1
)
exit /b 0
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 09 Feb 2020 17:14:57 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=137754#p137754</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=137750#p137750</link>
			<description><![CDATA[<p>Поправил все скрипты в данном теме -- добавил ключ в команде CD /D.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Sun, 09 Feb 2020 09:44:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=137750#p137750</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=137680#p137680</link>
			<description><![CDATA[<p>Скрипт требует наличия в системе PowerShell.</p><p>Тестировал только на 64-битной Window 10 Enterprise. Других в наличии нет.</p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 06 Feb 2020 14:12:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=137680#p137680</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=137679#p137679</link>
			<description><![CDATA[<p>Продолжаем разговор... Внес существенные улучшения без усложнения кода. </p><p>Способы вызова</p><p>1. новая копия интерпретатора </p><div class="codebox"><pre><code>sudo</code></pre></div><p>2. с пакетным скриптом </p><div class="codebox"><pre><code>sudo path-to-batch-file [options]</code></pre></div><p>3. с любой командой или файлом </p><div class="codebox"><pre><code>sudo app-or-file [options]</code></pre></div><p>Новая версия с проверкой требований и поддержкой опций для вывода помощи <strong>/?</strong> и <strong>/h</strong></p><div class="codebox"><pre><code>
::NAME
::
::    sudo - execute a command with the elevated privileges
::
::SYNOPSIS
::
::    sudo
::    sudo COMMAND [OPTIONS]
::
::DESCRIPTION
::
::sudo allows to run a command with optional arguments with the elevated
::privileges. By default, if no any options specified, it runs the
::command interpreter. The command can be any of binary executables,
::batch scripts or documents supposed to be open.
::
::REQUIREMENTS
::
::The script requires PowerShell to be installed on the system.
@echo off

if /i &quot;%~1&quot; == &quot;/?&quot; goto :print_usage
if /i &quot;%~1&quot; == &quot;/h&quot; goto :print_usage

call :check_reqs || goto :EOF

setlocal

set &quot;SUDO_HIDDEN=&quot;

if &quot;%~1&quot; == &quot;&quot; (
	call :sudo /s /k cd /d &quot;%CD%&quot;
	goto :EOF
)

for %%x in ( .bat .cmd ) do if /i &quot;%~x1&quot; == &quot;%%x&quot; (
	call :sudo /s /k cd /d &quot;%CD%&quot; &quot;&amp;&amp;&quot; %*
	goto :EOF
)

set &quot;SUDO_HIDDEN=-WindowStyle Hidden&quot;
call :sudo /c start /d &quot;%CD%&quot; %*

goto :EOF


:sudo
endlocal &amp;&amp; powershell -Command Start-Process &quot;cmd.exe&quot; -Args &#039;%*&#039; %SUDO_HIDDEN% -Verb RunAs
goto :EOF


:print_usage
for /f &quot;tokens=* delims=:&quot; %%s in ( &#039;findstr &quot;^::&quot; &quot;%~f0&quot;&#039; ) do echo:%%s
goto :EOF


:check_reqs
for %%p in ( powershell.exe ) do if &quot;%%~$PATH:p&quot; == &quot;&quot; (
	echo:%%~p is required&gt;&amp;2
	exit /b 1
)
goto :EOF
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Thu, 06 Feb 2020 14:00:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=137679#p137679</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Sudo or Run as Administrator]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=137677#p137677</link>
			<description><![CDATA[<p>После перехода на WIN10 у меня стало меньше возможностей запустить командную строку с повышенными правами. Это было печально. При этом разработчики решили, что PowerShell круче, чем cmd.exe. Возможно, но второй удобнее. Кроме того почему-то разработчики решили ограничить в такой удобной возможности как создание символических ссылок, которая выполняется ТОЛЬКО с повышенными правами. Пришлось немного попотеть и поискать обходные пути. И нашел. Ссылкой поделиться не смогу -- забыл я ее уже среди десятка самых разных. Да и поиски мои были направлены на решение задачи по добавлению команды вызова интерпретатора из контекстного меню Проводника.</p><p>Скрипт очень простой. По умолчанию запускает интерпретатор. Можно указать другую команду с параметрами. Иногда возможны ошибки. Но уже сейчас можно работать.</p><div class="codebox"><pre><code>
:: SUDO [command [options]]
::
:: Mimic to the unix command with the same name
:: Allow to run a command with the elevated privileges
@echo off

if &quot;%~1&quot; == &quot;&quot; (
	call &quot;%~f0&quot; cmd.exe &quot;/s /k cd /d \&quot;%cd%\&quot;&quot;
	goto :EOF
)

PowerShell -Command Start-Process &quot;%~1&quot; -Args &#039;%2 %3 %4 %5 %6 %7 %8 %9&#039; -Verb RunAs
</code></pre></div><p>Аналогичные темы на форуме:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=5808">VBS: Ярлык для запуска приложения от имени администратора (UAC)</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=11162">HTA: &quot;Run as Administrator&quot;</a></p>]]></description>
			<author><![CDATA[null@example.com (Rumata)]]></author>
			<pubDate>Wed, 05 Feb 2020 23:42:29 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=137677#p137677</guid>
		</item>
	</channel>
</rss>
