Для тех из нас работающий в C#, в Windows SDK существует приложение "UACDemo" как часть "Перекрестных Технологических Образцов". Они находят, является ли текущий пользователь администратором, использующим этот метод:
private bool IsAdministrator
{
get
{
WindowsIdentity wi = WindowsIdentity.GetCurrent();
WindowsPrincipal wp = new WindowsPrincipal(wi);
return wp.IsInRole(WindowsBuiltInRole.Administrator);
}
}
(Примечание: Я осуществил рефакторинг исходный код, чтобы быть свойством, а не "если" оператор)
Версия cmd.exe
должна на самом деле быть неуместной, если вы не попытаетесь использовать функции, которых раньше не было (в команде . com
например). Существует псевдопеременная
%cmdextversion%
, которая содержит версию расширений команд, которая была 2 годами (по крайней мере, до NT 4, iirc).
Но вернемся к сути: Running ver
и анализ строки версии может быть вашим лучшим выбором:
for /f "tokens=2 delims=[]" %%x in ('ver') do set WINVER=%%x
set WINVER=%WINVER:Version =%
Введите "ver" в командной строке.
В следующий раз, поскольку это на самом деле не связано с программированием, а связано с сервером или пользователем, вы можете попробовать serverfault.com или superuser.com .