@Zohei

Как дать программам повышенные привилегии на доступ к usb и hdd под локальным пользователем?

Здравствуйте.
Имеется специфичное сертифицированное программное обеспечение (аналогов нет, не будет, гос. сектор, отказаться нельзя), которое писалось под Windows XP и замечательно на нем работало.
Тут закупили современные ПК с ОС Windows 10, подняли локальную сеть с контролером домена Windows Server 2008 R2.
Начались проблемы с тем, что старое ПО работает корректно только при запуске с правами администратора, иначе это ПО не видит карты памяти, например, для заливки прошивок, либо не может работать с hdd, например, осуществлять выбор разделов и директорий диска.

Раздавать всем пароли администратора чревато. Хотелось бы уйти от этого раз и навсегда.

Навскидку предполагаю два решения:
1. (Нежелательный) Раздать пользователям права локальных администраторов.
2. Дать повышенные привилегии на ветки реестра связанные с USB и HDD. Но на какие именно??
Ваши предложения, господа?)
  • Вопрос задан
  • 262 просмотра
Пригласить эксперта
Ответы на вопрос 3
Ezhyg
@Ezhyg
Хм, а просто дать повышенные права только программе, не вариант?

С помощью сторонних утилит не предлагаю, есть ведь "Планировщик заданий"! Создай XML файл и вставь туда следующий текст, затем открой планировщик и импортируй задачу, указав этот файл:
<?xml version="1.0" encoding="UTF-16" ?> 
- <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
- <RegistrationInfo>
  <Date>2010-04-25T16:26:08.3858237</Date> 
  <Author>Ezhyg_from_Toster</Author> 
  </RegistrationInfo>
- <Triggers>
- <EventTrigger>
  <Enabled>true</Enabled> 
  <Subscription><QueryList><Query Id="0" Path="Microsoft-Windows-UAC/Operational"><Select Path="Microsoft-Windows-UAC/Operational">*[System[Provider[@Name='Microsoft-Windows-UAC']]]</Select></Query></QueryList></Subscription> 
  </EventTrigger>
  </Triggers>
- <Principals>
- <Principal id="Author">
  <GroupId>S-1-5-32-545</GroupId> 
  <RunLevel>HighestAvailable</RunLevel> 
  </Principal>
  </Principals>
- <Settings>
  <MultipleInstancesPolicy>Parallel</MultipleInstancesPolicy> 
  <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> 
  <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> 
  <AllowHardTerminate>false</AllowHardTerminate> 
  <StartWhenAvailable>false</StartWhenAvailable> 
  <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> 
- <IdleSettings>
  <StopOnIdleEnd>true</StopOnIdleEnd> 
  <RestartOnIdle>false</RestartOnIdle> 
  </IdleSettings>
  <AllowStartOnDemand>true</AllowStartOnDemand> 
  <Enabled>true</Enabled> 
  <Hidden>false</Hidden> 
  <RunOnlyIfIdle>false</RunOnlyIfIdle> 
  <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> 
  <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine> 
  <WakeToRun>false</WakeToRun> 
  <ExecutionTimeLimit>PT0S</ExecutionTimeLimit> 
  <Priority>7</Priority> 
  </Settings>
- <Actions Context="Author">
- <Exec>
  <Command>"C:\Program Files\Akelpad\AkelPad.exe"</Command> 
  </Exec>
  </Actions>
  </Task>


Затем создай ярлык:
C:\Windows\System32\schtasks.exe /run /tn Имя_задачи

Именем задачи является имя файла, но можешь переобозвать при импорте.
Ответ написан
tsklab
@tsklab
Здесь отвечаю на вопросы.
писалось под Windows XP
Установите для программы совместимость с Windows XP.
Настройка совместимости.
Не помогло

Тогда следует сделать виртуальную машину с Windows XP или использовать мини-компьютер.

Примечание:
С прошлого века применяю в работе следующее: иногда проще использовать для "специфического" ПО отдельный компьютер, чем бороться за совместимость оного. Например, клиент-банк (как приложение, а не онлайн) с его крипто-ключами, лежит маленькая коробочка с удаленным рабочим столом.
Ответ написан
@rPman
Если про доступ к прошивкам я еще понимаю, прямой доступ к портам ввода вывода, то требование администраторских прав чтобы делать выбор разделов и диска это фейл, вы не сможете правильно ограничить приложение, так как как только вы даете доступ к дискам то через окно открытия файла можно будет вытворять с файловой системой что угодно

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

Войдите, чтобы написать ответ

Похожие вопросы