<?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: наличие административных привилегий у текущего пользователя]]></title>
		<link>http://forum.script-coding.com/viewtopic.php?id=3840</link>
		<atom:link href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=3840&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: наличие административных привилегий у текущего пользователя».]]></description>
		<lastBuildDate>Tue, 03 Nov 2009 21:54:57 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: наличие административных привилегий у текущего пользователя]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=30081#p30081</link>
			<description><![CDATA[<p><strong>Определение наличия административных привилегий у текущего пользователя (использование сторонних средств).</strong></p><p><em><strong>Вариант 3.</strong> Использование <a href="http://www.script-coding.com/KiXtart.html">KiXtart</a>:</em></p><p>Если имеется <a href="http://www.script-coding.com/KiXtart.html">KiXtart</a>, то можно его задействовать для определения наличия административных привилегий у текущего пользователя (смените приведённый в примере путь к исполняемому файлу «%ProgramFiles%\KiX2010.460\kix32.exe» на Ваш собственный):<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

call :IsAdminTest IsAdmin

echo IsAdmin=%IsAdmin%

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:IsAdminTest
    setlocal enableextensions enabledelayedexpansion
    
    set strTestPath=%temp%\$$$test%random%.tmp
    
    echo.If @PRIV = &quot;ADMIN&quot; Exit 0 Else Exit 1 EndIf 1&gt;&quot;%strTestPath%&quot;
    &quot;%ProgramFiles%\KiX2010.460\kix32.exe&quot; &quot;%strTestPath%&quot; 1&gt;nul 2&gt;nul &amp;&amp; set IsAdmin=1 || set IsAdmin=0
    del &quot;%strTestPath%&quot;
    
    endlocal &amp; set /a %~1=%IsAdmin%
    exit /b 0
rem ==========================================================================</code></pre></div><p><em><strong>Вариант 4.</strong> Использование <a href="http://www.script-coding.com/AutoIT.html">AutoIt</a>:</em></p><p>Если имеется <a href="http://www.script-coding.com/AutoIT.html">AutoIt</a>, то можно его задействовать для определения наличия административных привилегий у текущего пользователя (смените приведённый в примере путь к исполняемому файлу «%ProgramFiles%\AutoIt3\AutoIt3.exe» на Ваш собственный):<br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

call :IsAdminTest IsAdmin

echo IsAdmin=%IsAdmin%

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:IsAdminTest
    setlocal enableextensions enabledelayedexpansion
    
    &quot;%ProgramFiles%\AutoIt3\AutoIt3.exe&quot; /AutoIt3ExecuteLine &quot;If IsAdmin() = 0 Then Exit(1)&quot; 1&gt;nul 2&gt;nul &amp;&amp; set IsAdmin=1 || set IsAdmin=0
    
    endlocal &amp; set /a %~1=%IsAdmin%
    exit /b 0
rem ==========================================================================</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 03 Nov 2009 21:54:57 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=30081#p30081</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: наличие административных привилегий у текущего пользователя]]></title>
			<link>http://forum.script-coding.com/viewtopic.php?pid=30080#p30080</link>
			<description><![CDATA[<p><strong>Определение наличия административных привилегий у текущего пользователя (использование встроенных средств).</strong></p><p>Метод основан на попытке выполнения некоей операции, которая возможна только с административными привилегиями, и оформления этого действа в виде процедуры в пакетном файле (результат помещается в переменную окружения «IsAdmin»).</p><p><em><strong>Вариант 1.</strong> Попытка перечисления параметров реестра ветви «HKEY_USERS\S-1-5-19» (учётная запись «LOCAL SERVICE»):</em><br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

call :IsAdminTest IsAdmin

echo IsAdmin=%IsAdmin%

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:IsAdminTest
    setlocal enableextensions enabledelayedexpansion
    
    &quot;%systemroot%\system32\reg.exe&quot; query &quot;HKU\S-1-5-19&quot; 1&gt;nul 2&gt;nul &amp;&amp; set IsAdmin=1 || set IsAdmin=0
    
    endlocal &amp; set /a %~1=%IsAdmin%
    exit /b 0
rem ==========================================================================</code></pre></div><p><em><strong>Вариант 2.</strong> Попытка запуска дефрагментатора «defrag.exe»:</em><br /></p><div class="codebox"><pre><code>@echo off
setlocal enableextensions enabledelayedexpansion

call :IsAdminTest IsAdmin

echo IsAdmin=%IsAdmin%

endlocal
exit /b 0
rem ==========================================================================

rem ==========================================================================
:IsAdminTest
    setlocal enableextensions enabledelayedexpansion
    
    &quot;%systemroot%\system32\defrag.exe&quot; /? 1&gt;nul 2&gt;nul
    
    if &quot;%errorlevel%&quot; equ &quot;2&quot; (
        set IsAdmin=1
    ) else (
        set IsAdmin=0
    )
    
    endlocal &amp; set /a %~1=%IsAdmin%
    exit /b 0
rem ==========================================================================</code></pre></div><p>Отдельное спасибо коллеге <strong>wisgest</strong> за исправление ошибок.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Tue, 03 Nov 2009 21:21:04 +0000</pubDate>
			<guid>http://forum.script-coding.com/viewtopic.php?pid=30080#p30080</guid>
		</item>
	</channel>
</rss>
