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