Запросить определенные учетные данные при попытке открыть файл в Windows

277
Tak

У меня есть файл на Windows 7, и я хочу, чтобы, как только кто-то пытается открыть этот файл, я хочу, чтобы появилось окно с запросом имени пользователя и пароля (что не связано с учетными данными Windows, эти учетные данные будут храниться где-то в другой файл) и в зависимости от введенного имени пользователя и пароля файл будет скопирован из одного места в другое. Так, например, если пользователь A вошел в систему с помощью passUserA, то fileA будет скопирован в папку назначения, если пользователь B вошел в систему с помощью passUserB, то файл B будет скопирован в папку назначения. Есть мысли, пожалуйста, как это можно сделать?

1
Можете ли вы предоставить более подробную информацию о * почему * вы хотели бы или нуждаетесь в этом поведении? Jerome Indefenzo 7 лет назад 0
@JeromeIndefenzo, потому что в зависимости от учетных данных пользователя я хочу, чтобы файл был скопирован в определенном месте до запуска приложения. Tak 7 лет назад 0
Я имею в виду, что это за файлы, которые вы копируете и куда вы их копируете? Кто будет использовать учетные данные пользователя и к чему они будут иметь доступ? Какой файл должен предположительно вызвать запрос на вход? Jerome Indefenzo 7 лет назад 0
Поведение, которое вы спрашиваете, довольно хакерское. Должен быть лучший способ получить желаемую функциональность без необходимости вручную выполнять все виды операций (наблюдение за открытием файла, управление учетными данными пользователя, копирование файлов и т. Д.). Jerome Indefenzo 7 лет назад 0
@JeromeIndefenzo, поэтому у меня есть ярлык .exe приложения, когда этот файл .exe запускает, он загружает файл запуска, сохраненный в определенном месте, который загружается в приложение. Таким образом, у меня есть два файла запуска, и в зависимости от учетных данных пользователя один из этих файлов запуска будет скопирован в местоположение файла запуска, поэтому, когда я дважды щелкаю по ярлыку или самому файлу exe, я хочу получить это имя пользователя и ввод пароля и в зависимости от них будет загружен правильный файл запуска, после чего откроется приложение. Tak 7 лет назад 0
это должно зависеть от кредиторов? вы не можете перейти к `$ env: username` или` $ env: computername`? SimonS 7 лет назад 0
@SimonS да, это должно зависеть от учетных данных, которые будут статически записаны в определенный файл. Tak 7 лет назад 0
Пусть ярлык указывает на сценарий PowerShell или аналогичный, который выполняет настройку и запрашивает учетные данные. Это будет легко обойти, и с этой настройкой так будет всегда. Вероятно, было бы удобнее настроить два ярлыка (по одному для каждой «версии») и предоставлять пользователям только те, которые им нужны. Все еще легко обойти, но легче поддерживать (вероятно). Seth 7 лет назад 0
@ Спасибо за ваш комментарий, не могли бы вы объяснить или отправить мне ссылку, как это можно сделать? Tak 7 лет назад 0

1 ответ на вопрос

1
Seth

Создайте сценарий, который выполняет необходимую настройку, и вызовите этот сценарий, используя ярлык вместо реального исполняемого файла. Скрипт запустит исполняемый файл. Это будет легко подделать, поэтому оно не обеспечит никакой безопасности. Вам придется использоватьSet-ExecutionPolicy чтобы разрешить выполнение сценариев PowerShell.

Сам скрипт (сохраненный в виде .ps1файла) может выглядеть так:

$credentials = Get-Credential  if ($credentials.Username -eq 'DOMAIN\User') { Copy-Item fromhere\startup1 tothere } elseif { Copy-Item fromhere\startup2 tothere }  MyProgram.exe 

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

Можно ли сделать этот скрипт защищенным, чтобы никто не мог его отредактировать или увидеть имя пользователя и пароль? Tak 7 лет назад 0
Вы не можете скрыть имя пользователя как пароль, если сохраните его в этом файле. Что вы могли бы сделать, это использовать вместо этого хэш. Это сделало бы это немного сложнее. Для защиты вы можете удалить из сценария разрешения на запись / изменение для обычных пользователей. Seth 7 лет назад 0