Как сделать так, чтобы программное обеспечение Windows запускалось от имени другого пользователя в скрипте?
Я использую скрипт сборки, который вызывает Wise для создания некоторых установочных файлов. Проблема в том, что лицензия Wise позволяет запускать его только под одной конкретной учетной записью пользователя, а не под той учетной записью, под которой будет запускаться мой сценарий сборки. Я знаю, что в Windows есть команда runas, но она не будет работать для автоматизированного сценария, поскольку нет способа ввести пароль через командную строку.
4 ответа
Это может помочь: почему программа RunAs не принимает пароль в командной строке?
Я рекомендую взглянуть на CPAU.
Инструмент командной строки для запуска процесса в альтернативном контексте безопасности. В основном это замена руны. Также позволяет создавать файлы заданий и кодировать идентификатор, пароль и командную строку в файле, чтобы его могли использовать обычные пользователи.
Вы можете использовать это так ( примеры):
CPAU -u user [-p password] -ex "WhatToRun" [switches]
Или вы можете создать файл ".job", в котором будут закодированы имя пользователя и пароль. Таким образом, вы можете избежать ввода пароля для пользователя в ваш скрипт сборки.
Это немного обходное решение, но вы можете создать запланированное задание, которое будет запускаться как ваша учетная запись пользователя, и запускать его регулярно, возможно, каждую минуту. Да, вам придется ждать, пока он запустится.
Эта задача может затем искать некоторые файлы данных для обработки и выполнять реальную работу, только если они там есть.
Это может помочь, это класс, который я использовал в другом проекте, чтобы позволить людям создавать свои собственные учетные записи; у всех должен был быть доступ к программе, но одна учетная запись не могла иметь доступа к содержимому LDAP, поэтому программа использует этот класс для запуска его как другого пользователя.
http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx