<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: наличие административных привилегий у текущего пользователя]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=3840&amp;type=atom" />
	<updated>2009-11-03T21:54:57Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=3840</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: наличие административных привилегий у текущего пользователя]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=30081#p30081" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-11-03T21:54:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=30081#p30081</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: наличие административных привилегий у текущего пользователя]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=30080#p30080" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2009-11-03T21:21:04Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=30080#p30080</id>
		</entry>
</feed>
