Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows 7 (http://forum.oszone.net/forumdisplay.php?f=95)
-   -   [решено] system32 выбирается как рабочая папка (http://forum.oszone.net/showthread.php?t=310397)

tpogih 15-01-2016 11:02 2595217

system32 выбирается как рабочая папка
 
Добрый день.
Бьюсь с решением следующей проблемы:

на самописном ПО в компании, при запуске от администратора, выбирается по умолчанию папка system32, при этом если запускать этот же софт с обычными правами он запускается бузе проблем. Также если сначала запустить FAR c правами администратора и из него попробовать запустить этот же софт, также с правами администратора, то все работает
для наглядности распишу не много по другому
explorer + обычный пользователь - работает
explorer + запуск от имени администратора - не работает
FAR + обычный пользователь - не работает
FAR + запуск от имени админстратора - не работает
FAR(от администратор) + запуск - работает
FAR(от администратор) + запуск от имени админстратора - работает

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

ПО написано на perl.
Win7 x64 prof

Буду благодарен за любые советы

Iska 15-01-2016 11:33 2595230

Цитата:

Цитата tpogih
FAR(от администратор) + запуск - не работает
FAR(от администратор) + запуск от имени админстратора - работает »

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

tpogih 15-01-2016 11:45 2595234

Цитата:

Цитата Iska
Разницы между первым и вторым быть по идее не должно, поскольку для дочерних процессов токен должен наследоваться от родительского. »

Да, опечатался. в шапке поправил

Petya V4sechkin 15-01-2016 20:26 2595483

tpogih, вероятно, оно пытается что-то считать из текущей папки.

Можно попробовать сделать CMD-файл типа:
Код:

cd /d "%~dp0"
start имя_приложения.exe

Положить его рядом с EXE-файлом и запускать.

tpogih 17-01-2016 07:04 2595998

Цитата:

Цитата Petya V4sechkin
Положить его рядом с EXE-файлом и запускать. »

Спасибо за совет, но этот вариант не получится. в самом приложении есть обращения к скриптам, которые также по какой то причине считают своей рабочей папкой system32.

Может у кого есть идеи как в корне решить эту проблему?

Petya V4sechkin 17-01-2016 09:04 2596001

tpogih, сделайте лог Process Monitor следующим образом:
  1. запустите Process Monitor;
  2. попытайтесь запустить проблемное приложение неудачным способом;
  3. сохраните лог: меню File -> Save -> PML-формат;
  4. заархивируйте и выложите на любой файлообменник, например rghost.ru.

tpogih 18-01-2016 14:42 2596426

Цитата:

Цитата Petya V4sechkin
запустите Process Monitor;
попытайтесь запустить проблемное приложение неудачным способом;
сохраните лог: меню File -> Save -> PML-формат;
заархивируйте и выложите на любой файлообменник, например rghost.ru. »

прошу прощения. Ваше прошлое сообщение решило проблему. неверно переписал команду в bat файл.


Время: 09:37.

Время: 09:37.
© OSzone.net 2001-