Основы повышения привилегий в Windows. Повышение прав без запроса пароля админа, для конкретного приложение Все администраторы работают в режиме одобрения администратором

UAC (User Account Control) — технология контроля учетных записей, появившаяся впервые в Windows Vista и старше. Данная технология запрещает программам выполнять действия, требующие права администратора. При выполнении программой таких действий, ее работа приостанавливается и пользователю выдается окно с запросом на защищенном рабочем столе (для того, чтобы невозможно было нажать программно кнопку ОК). К примеру, если вашей программе потребуется внести изменения в раздел реестра HKEY_LOCAL_MACHINE , то ей потребуются права администратора.
Для решения данной проблемы можно воспользоваться внедрением в проект файла манифеста, который операционная система будет считывать и автоматически определять необходимые для запуска параметры.
Рассмотрим внедрение файла манифеста, в приложение «Windows Form ». Для этого откройте Visual Studio(в данном примере используется версия 2012) и создайте проект «Windows Form ». Откройте «Solution Explorer » (Обозреватель решений), который обеспечивает упорядоченное представление проектов и их файлов, перейдите в меню «Вид » - «Обозреватель решений ». Выполните клик правой клавишей мыши в «Обозревателе решений » по имени проекта и выберите из контекстного меню, пункт «Добавить » - «Создать элемент… ».

У вас откроется новое окно «Добавление нового элемента - … » найдите элемент Visual С# с именем «Файл манифеста приложения », выберете его и нажмите кнопку «Добавить ».

В «Обозревателе решений » у вас появится новый пункт с именем файла манифеста. Так же он будет автоматически открыт в редакторе кода.

Для настройки прав необходимых для выполнения приложения требуется определить уровень безопасности и описать элемент «requestedExecutionLevel ». Этот элемент не имеет дочерних элементов и имеет следующие атрибуты:
1) Level - Обязательный. Устанавливает уровень безопасности, требуемый приложению. Для данного атрибута доступны следующие значения:
  • asInvoker - приложение запускается с правами процесса-родителя. Это означает, что если выполняется запуск программы из приложения, которое уже запущено с правами администратора, то она автоматически будет иметь те же права. Этот режим рекомендуется Microsoft в большинстве случаев. Т.е. это те программы, которые не требуют прав администратора;
  • highestAvailable — приложение запускается с более высокими правами, чем имеет текущий пользователь. С такими правами запускаются Regedit.exe, Mmc.exe;
  • requireAdministrator — запрашиваются полные права администратора. Т.е. требуются для приложений, которые не могут работать без прав администратора.

Установка приложений «ClickOnce » возможна только при значении «asInvoker». При любом другом значении установка будет невозможна.

2) uiAccess - Необязательный. Указание того, требует ли приложение доступ к защищенным элементам пользовательского интерфейса для реализации специальных возможностей. Доступны значения "true " и "false ", по умолчанию используется значение "false ". Значение "true " должны иметь только подписанные приложения и запускалась из папок "\Program Files\" и "\windows\system32\". Чаще всего, в этом нет необходимости.
Для того чтобы программа при запуске требовала повышение прав до уровня Администратора, заменим в атрибуте «Level » значение по умолчанию «asInvoker » на «requireAdministrator ».

Выполните построение решения, нажав на клавишу «F6 ». Если вы все сделали правильно, то в операционных системах Windows Vista и старше, на иконке исполняемого файла программы появится значок щита, означающий, что данной программе требуется повышение прав.

Для проверки прав вашего приложения вы можете воспользоваться приведенным ниже листингом.
string s = new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator) ? "Администратор" : "Обычный пользователь"; Если у вас консольное приложение, то для него принцип действий такой же.

Части статьи был подробно описан принцип работы контроля учетных записей пользователей. В этой части речь пойдет о настройке UAC в том случае, когда ваш компьютер работает автономно, то есть не входит в состав домена Active Directory. Для настройки контроля учетных записей пользователей служит функция локальной политики безопасности, которую можно найти в редакторе объектов локальной групповой политики.

Существует 10 настроек групповой политики, отвечающих за настройку контроля учетных записей пользователей. Для того, чтобы изменить параметры политики, нужно открыть в оснастке «Редактор локальной групповой политики» узел Конфигурация компьютера\Конфигурация Windows\Параметры безопасности\Локальные политики\Параметры безопасности . В этой статье вы также найдете способ настройки каждого параметра политики средствами системного реестра. В следующей таблице приведены значения по умолчанию для каждого из параметров политики.

Настройки параметров групповых политик контроля учетных записей по умолчанию:

Параметр групповой политики Значение по умолчанию
Контроль учетных записей: включение режима одобрения администратором Включен
Контроль учетных записей: обнаружение установки приложений и запрос на повышение прав Включен
Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав Включен
Контроль учетных записей: поведение запроса на повышение прав для администраторов в режиме одобрения администратором Запрос согласия для двоичных данных не из Windows
Контроль учетных записей: поведение запроса на повышение прав для обычных пользователей Запрос учетных данных
Контроль учетных записей: повышать права только для UIAccess-приложений, установленных в безопасном местоположении Включен
Контроль учетных записей: повышение прав только для подписанных и проверенных исполняемых файлов Отключен
Контроль учетных записей: при сбоях записи в файл или реестр виртуализация в размещение пользователя Включен
Контроль учетных записей: разрешать UIAccess-приложениям запрашивать повышение прав, не используя безопасный рабочий стол Отключен
Контроль учетных записей: использование режима одобрения администратором для встроенной учетной записи администратора Отключен

Параметры групповых политик, которые имеют отношение к контролю учетных записей пользователей (UAC) подробно рассмотрены ниже:

Все администраторы работают в режиме одобрения администратором

Этот параметр политики определяет характеристики всех политик контроля учетных записей для компьютера. От данного параметра зависит, будут ли учетные записи администраторов запускаться в «режиме одобрения администратором», то есть будут ли отображаться диалоги с запросом на повышение полномочий. Отключение этой настройки, грубо говоря, полностью отключает функционал контроля учетными записями пользователей. При изменении этого параметра политики необходимо перезагрузить компьютер. Значение по умолчанию - включено.

Возможные значения параметра:

  • Включено . Режим одобрения администратором включен для того, чтобы разрешить встроенной учетной записи администратора и всем остальным пользователям, являющимся членами группы «Администраторы» , работать в режиме одобрения администратором.
  • Отключено . Режим одобрения администратором и все соответствующие параметры политики контроля учетных записей будут отключены.

;Отключить "EnableLUA"=dword:00000000

Обнаружение установки приложений и запрос на повышение прав

Эта настройка определяет характеристики обнаружения установки приложений для компьютера, проверяя подписаны ли программы, применяемые для развертывания приложений или нет. По умолчанию, если пользователь входит в рабочую группу, она включена.

Возможные значения параметра:

  • Включено (по умолчанию для дома) . В том случае, если программа установки приложений обнаруживает необходимость повышения полномочий, пользователю предлагается ввести имя пользователя и пароль учетной записи администратора. Если пользователь вводит правильные учетные данные, операция продолжается с соответствующими правами. Вид запроса зависит от того, к какой группе принадлежит пользователь.
  • Отключено (по умолчанию для организации) . При выборе этой настройки, обнаружение программы установки приложений не выдает запрос на повышение полномочий. Обычно эта настройка применяется в организациях, компьютеры и пользователи которой входят в состав домена и для развертывания приложений используются технологии делегированной установки (Group Policy Software Install - GPSI). Соответственно, необходимость в обнаружении установщика отпадает.

Настройки текущей политики при помощи реестра:

;Отключить "EnableInstallerDetection"=dword:00000000

Переключение к безопасному рабочему столу при выполнении запроса на повышение прав

Данный параметр политики определяет, будут ли запросы на повышение полномочий выводиться на интерактивный рабочий стол пользователя или на безопасный рабочий стол при инициировании UAC-запроса. Значение по умолчанию - включено. При изменении этого параметра политики необходимо перезагрузить компьютер.

Возможные значения параметры:

  • Включено . Все запросы на повышение прав выводятся на безопасный рабочий стол независимо от параметров политики поведения приглашения для администраторов и обычных пользователей.
  • Отключено . Все запросы на повышение прав выводятся на интерактивный рабочий стол пользователя.

Настройки текущей политики при помощи реестра:

;Отключить "PromptOnSecureDesktop"=dword:00000000

Поведение запроса на повышение прав для администраторов в режиме одобрения администратором

Текущая настройка позволяет определить действия пользователя, который входит в группу «Администраторы» при выполнении операции, требующей повышения прав. Значение по умолчанию установлено «Запрос согласия для сторонних двоичных файлов (не Windows)» .

Возможные значения параметра:

  • Повышение без запроса . Позволяет привилегированным учетным записям выполнить операцию, требующую повышения прав, без подтверждения согласия или ввода учетных данных. Желательно использовать данную опцию только в средах с максимальными ограничениями пользователей. При выборе этой настройки, пользовательские полномочия станут идентичными встроенной учетной записи администратора.
  • . Для любой операции, требующей повышения прав, на безопасном рабочем столе будет выводиться предложение ввести имя и пароль привилегированного пользователя. Если вводятся правильные учетные данные, операция будет продолжена с максимальными доступными правами пользователя.
  • Запрос согласия на безопасном рабочем столе . Для любой операции, требующей повышения прав, на безопасном рабочем столе будет выводиться предложение выбрать: «Разрешить» или «Запретить» . При выборе опции «Разрешить» , операция будет продолжена с максимальными доступными правами пользователя.
  • Запрос учетных данных . Для любой операции, которая требует повышения полномочий, будет выводиться предложение ввести имя пользователя и пароль учетной записи администратора. При вводе правильных учетных данных, операция будет продолжена с повышенными полномочиями.
  • Запрос согласия . При выборе этой опции, для любой операции, требующей повышения прав, пользователю будет предлагаться выбрать нажать на кнопку: «Разрешить» или «Запретить» . При нажатии на кнопку «Разрешить»
  • Запрос согласия для сторонних двоичных файлов (не Windows) . При выборе этой опции, на безопасном рабочем столе будет выводиться предложение выбора: «Разрешить» или «Запретить» , в том случае, когда операция для приложения стороннего (не Майкрософт) производителя требует повышения прав. По нажатию на кнопку «Разрешить» , операция будет продолжена с максимальными доступными привилегиями пользователя.

Настройки текущей политики при помощи реестра:

;Повышение без запроса "ConsentPromptBehaviorAdmin"=dword:00000000 ;Запрос учетных данных на безопасном рабочем столе;"ConsentPromptBehaviorAdmin"=dword:00000001 ;Запрос согласия на безопсном рабочем столе;"ConsentPromptBehaviorAdmin"=dword:00000002 ;Запрос учетных данных;"ConsentPromptBehaviorAdmin"=dword:00000003 ;Запрос согласия;"ConsentPromptBehaviorAdmin"=dword:00000004 ;Запрос согласия для двоичных данных не из Windows ;"ConsentPromptBehaviorAdmin"=dword:00000005

Поведение запроса на повышение прав для обычных пользователей

Данный параметр политики определяет выполняемые действия при взаимодействии обычного пользователя с приложениями, требующими повышения прав. Значение по умолчанию - «Запрос учетных данных на безопасном рабочем столе» .

Возможные значения параметра:

  • Запрос учетных данных . Используя этот параметр, обычному пользователю предлагается выбрать учетную запись администратора и ввести пароль для выполнения последующих действий. Операция будет продолжена только в том случае, если учетные данные введены правильно.
  • Автоматически запретить запросы на повышение прав . При выборе этого параметра, для обычного пользователя будет показано сообщение об ошибке в связи с запретом на доступ в случае выполнения операции, требующей повышения полномочий. Организации, настольные компьютеры которых используются обычными пользователями, могут выбрать этот параметр политики для уменьшения числа обращений в службу поддержки.
  • Запрос учетных данных на безопасном рабочем столе . Выбрав данный параметр, обычному пользователю предлагается выбрать учетную запись администратора и ввести пароль для выполнения последующих действий только на безопасном рабочем столе. Операция будет продолжена только в том случае, если учетные данные введены правильно.

Настройки текущей политики при помощи реестра:

;Автоматически отклонять запросы на повышение прав "ConsentPromptBehaviorUser"=dword:00000000 ;Запрос учетных данных на безопасном рабочем столе "ConsentPromptBehaviorUser"=dword:00000001 ; Запрос учетных данных "ConsentPromptBehaviorUser"=dword:00000003

Повышать права для UIAccess-приложений только при установке в безопасных местах

Текущий параметр политики позволяет управлять разрешением на местонахождение приложений, которые запрашивают выполнение на уровне целостности, определяющейся атрибутом пользовательского интерфейса доступа (User Interface of Access - UIAccess) в безопасном месте файловой системы. По умолчанию, эта настройка включена и у приложений со специальными возможностями, для атрибута UIAccess в манифесте устанавливается значение True для управления окна запроса повышения превелегий. Если у приложений значение false, то есть если атрибут опущен или отсутствует манифест для сборки, приложение не сможет получить доступ к защищенному пользовательскому интерфейсу. Безопасными считаются только следующие папки:

…\Program Files\, включая вложенные папки

…\Windows\system32\

…\Program Files (x86)\, включая вложенные папки для 64-разрядных версий Windows

Возможные значения параметра:

  • Включено . Приложение будет запускаться с уровнем целостности UIAccess только в том случае, если оно находится в безопасной папке файловой системы.
  • Отключено . Приложение будет запускаться с уровнем целостности UIAccess, даже если оно не находится в безопасной папке файловой системы.

Настройки текущей политики при помощи реестра:

;Отключить "EnableSecureUIAPaths"=dword:00000000

Повышение прав только для подписанных и проверенных исполняемых файлов

Данная настройка групповой политики контроля учетных записей позволяет определять, нужно ли выполнять проверку подлинности подписей интерактивных приложений с инфраструктурой открытого ключа (Public key infrastructure PKI), которые требуют повышения полномочий. Задачей PKI является определение политики выпуска цифровых сертификатов, выдача их и аннулирование, хранение информации, необходимой для последующей проверки правильности сертификатов. В число приложений, поддерживающих PKI, входят: защищенная электронная почта, протоколы платежей, электронные чеки, электронный обмен информацией, защита данных в сетях с протоколом IP, электронные формы и документы с электронной цифровой подписью. Если включена эта проверка, то программы инициируют проверку пути сертификата. Значение этой настройки по умолчанию - Отключено.

Возможные значения параметра:

  • Включено . Принудительно инициируется проверка пути PKI-сертификатов, прежде чем запускается на исполнение данный файл. В основном данная настройка используется в организациях с доменом, в том случае если администратор поместил PKI-сертификаты в хранилище надежных издателей.
  • Отключено . При установке этого параметра, контроль учетных записей не инициирует проверку цепочки верификации PKI-сертификатов, прежде чем разрешить выполнение данного исполняемого файла.

Настройки текущей политики при помощи реестра:

;Отключить "ValidateAdminCodeSignatures"=dword:00000000

При сбоях записи в файл или реестр виртуализация в место размещения пользователя

Этот параметр управляет перенаправлением сбоев записи приложений в определенные расположения в реестре и файловой системе. В случае, если эта настройка включена, для устаревших приложений, которые пытаются считывать или записывать информацию, используя защищенные области системы, контроль учетных записей виртуализирует реестр и файловую систему. Благодаря этой настройке, UAC позволяет уменьшить опасность устаревших приложений, которые выполняются от имени администратора и во время выполнения записывают данные в папку %ProgramFiles%, %Windir%; %Windir%\system32 или в раздел системного реестра HKLM\Software\. Значение по умолчанию - включено.

Возможные значения параметра:

  • Включено . Сбои записи приложений перенаправляются во время выполнения в определенные пользователем расположения в файловой системе и реестре.
  • Отключено . Выполнение приложений, записывающих данные в безопасные расположения, заканчивается ошибкой, и не будет исполняться.

Настройки текущей политики при помощи реестра:

;Отключить "EnableVirtualization"=dword:00000000

Разрешить UIAccess-приложениям запрашивать повышение прав, не используя безопасный рабочий стол

Этот новый параметр политики, появившийся в операционных системах Windows 7 и Windows Server 2008 R2, определяет, могут ли UIAccess-приложения автоматически отключать безопасный рабочий стол для запросов на повышение полномочий, используемых обычным пользователем. Значение по умолчанию - отключено.

Возможные значения параметра:

  • Включено . При выборе этой настройки, UIAccess-программы, в том числе удаленный помощник Windows, автоматически отключают безопасный рабочий стол для запросов на повышение полномочий. Если параметр политики «Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав» включен, то предложение появится на интерактивном рабочем столе пользователя, а не на безопасном рабочем столе.
  • Отключено . При выборе этого параметра, безопасный рабочий стол может быть отключен только пользователем интерактивного рабочего стола или путем отключения параметра политики «Контроль учетных записей: переключение к безопасному рабочему столу при выполнении запроса на повышение прав» .

Настройки текущей политики при помощи реестра:

;Отключить "EnableUIADesktopToggle"=dword:00000000

Режим одобрения администратором для встроенной учетной записи администратора

Данная настройка определяет, применяется ли в контроле учетных записей пользователей режим одобрения администратором к встроенной учетной записи «Администратор» . Эта встроенная учетная запись по умолчанию позволяет пользователю входить в систему в режиме совместимости с Windows XP, что разрешает запускать любые приложения с полными правами администратора. По умолчанию этот параметр политики отключен.

Возможные значения параметра:

  • Включено . При выборе этого значения параметра, для встроенной учетной записи администратора будет использоваться режим одобрения администратором. При этом любая операция, требующая повышения прав, будет сопровождаться запросом на подтверждение операции.
  • Отключено . Встроенная учетная запись администратора выполняет все приложения с полными правами администратора.

Настройки текущей политики при помощи реестра:

;Отключить "FilterAdministratorToken"=dword:00000000

Заключение

В этой статье рассказывается обо всех возможных настройках контроля учетных записей пользователей. Рассмотрены все десять параметров политики безопасности, которые отвечают за все возможные действия, связанные с UAC. Кроме настройки контроля учетных записей при помощи групповой политики, также рассмотрены эквивалентные им твики реестра.

Многие программы при запуске требуют повышения прав (значок щита у иконки), однако на самом деле для их нормальной работы прав администратора не требуется (например, вы вручную предоставили необходимые права пользователям на каталог программы в ProgramFiles и ветки реестра, которые используются программой). Соответственно, при запуске такой программы из-под простого пользователя, если на компьютере включен контроль учетных записей, появится запрос UAC и от пользователя потребует ввести пароль администратора. Чтобы обойти этот механизм многие просто отключают UAC или предоставляют пользователю права администратора на компьютере, добавляя его в группу локальных администраторов. Естественно, оба этих способа небезопасны.

Зачем обычному приложению могут понадобится права администратора

Права администратора могут потребоваться программе для модификации неких файлов (логи, конфигурации и т.д.) в собственной папке в C:\Program Files (x86)\SomeApp). По умолчанию у пользователей нет прав на редактирование данного каталога, соответственно, для нормальной работы такой программы нужны права администратора. Чтобы решить эту проблему, нужно под администратором на уровне NTFS вручную назначить на папку с программой право на изменение/запись для пользователя (или группы Users).

Примечание . На самом деле практика хранения изменяющихся данных приложения в собственном каталоге в C:\Program Files неверна. Правильнее хранить данные приложения в профиле пользователя. Но это вопрос уже о лени и некомпетентности разработчиков.

Запуск программы, требующей права администратора от обычного пользователя

Ранее мы уже описывали, как можно , с помощью параметра RunAsInvoker. Однако этот метод недостаточно гибкий. Также можно воспользоваться с сохранением пароля админа /SAVECRED (также небезопасно). Рассмотрим более простой способ принудительного запуска любой программы без прав администратора (и без ввода пароля админа) при включенном UAC (4,3 или 2 уровень ).

Для примера возьмем утилиту редактирования реестра — regedit.exe (она находится в каталоге C:\windows\system32). При запуске regedit.exe появляется окно UAC и, если не подтвердить повышение привилегии, редактор реестра не запускается.

Создадим на рабочем столе файл run-as-non-admin.bat со следующим текстом:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

Теперь для принудительного запуска приложения без права администратора и подавления запроса UAC, просто перетащите нужный exe файл на этот bat файл на рабочем столе.

После этого редактор реестра должен запустится без появления запроса UAC. Открыв диспетчер процессов, и добавим столбец Elevated (С более высоким уровнем разрешений), вы увидите, что в системе имеется процесс regedit.exe с неповышенным статусом (запущен с правами пользователя).

Попробуйте отредактировать любой параметр в ветке HKLM. Как вы видите доступ на редактирование реестра в этой ветке запрещен (у данного пользователя нет прав на запись в системные ветки реестра). Но вы можете добавлять и редактировать ключи в собственной ветке реестра пользователя — HKCU.

Аналогичным образом можно запускать через bat файл и конкретное приложение, достаточно указать путь к исполняемому файлу.

run-app-as-non-admin.bat

Set ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Также можно добавить контекстное меню, которое добавляет у всех приложений возможность запуска без повышения прав. Для этого создайте следующий reg файл и импортируйте его в реестр.

Windows Registry Editor Version 5.00


@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

После этого для запуска любого приложения без прав админа достаточно выбрать пункт «» в контекстном меню.

Переменная окружения __COMPAT_LAYER и параметр RunAsInvoker

Переменная окружения __COMPAT_LAYER позволяет устанавливать различные уровни совместимости для приложений (вкладка Совместимость в свойствах exe файла). С помощью этой переменной можно указать настройки совместимости, с которыми нужно запускать программу. Например, для запуска приложения в режиме совместимости с Windows 7 и разрешением 640×480, установите:

set __COMPAT_LAYER=Win7RTM 640x480

Из интересных нам опций переменной __COMPAT_LAYER выделим следующие параметры:

  • RunAsInvoker - запуск приложения с привилегиями родительского процесса без запроса UAC.
  • RunAsHighest - запуск приложения с максимальными правами, доступными пользователю (запрос UAC появляется если у пользователя есть права администратора).
  • RunAsAdmin - запуск приложение с правами администратора (запрос AUC появляется всегда).

Т.е. параметр RunAsInvoker не предоставляет права администратора, а только блокирует появления окна UAC.

Кхм, отличие одного от другого лишь в том, как устанавливаются параметры совместимости, в первом случае - вручную, во втором - то же самое, только через мастер. Но все равно спасибо за развернутый ответ))

Спасибо, знаю))))))))))))))))))

Ок, я - админ (может и малограмотный немного, но надеюсь наверстать...) Как мне разрешить запускать это приложение (и только это)? При этом чтобы не бегать постоянно к его машине (чтобы ввести пароль локального админа, которого он знать не должен), когда ему необходимо запустить это приложение.

Весьма благодарен Вам за то, что напомнили часть лекции предмета "Операционные системы". Приведу другой, ставший уже классическим, пример:

Иногда пользователю необходимо поменять свой пароль на вход в систему. Сам пользователь не имеет прав на доступ к базе данных паролей. Однако программа, которую он использует для смены пароля, запускается с повышенными правами. Что позволяет ему, в конечном итоге, сменить свой пароль.

Так вот, мой случай - аналогичен. Как мне "сказать" системе, что программа должна запускаться с повышенными правами? При этом запускать ее будет юзер из группы "пользователь"/"опытный пользователь".

На самом деле это можно сделать, если запускать программу как "назначенное задание" от имени другого пользователя. Все бы ничего - она даже запускается, однако графический интерфейс (окна программы) на рабочем столе пользователя не отображаются...

Концептуальное противоречие??? Выше привел пример - задача достаточно стандартна для любой ОС. Просто не хочется решать ее сторонними средствами (не входящими в поставку ОС Windows Vista). UAC уже отключал - в любом случае приложение корректно работает только с админскими правами, вот такое вот оно - специфическое.... Включать же данного пользователя в группу локальных "Администраторов" не видится возможным по соображениям безопасности.

По поводу скрипта - для runas есть флаг, позволяющий запомнить пароль, однако в этому случае пользователь получит возможность запускать любую программу с админскими правами.

Это означает, что я не хочу запускать софт, исходники которого никто не видел, о поставщике - ничего не известно, и сайт которого - лежит "на народе". Что же по поводу пользователей - ех, если бы этого хватило, то данное обсуждение на форуме бы не появилось..... =(

Хочется верить, что не все так плохо.