Как я могу заставить программное обеспечение Windows работать от имени другого пользователя в сценарии?

Я использую скрипт сборки, который вызывает Wise для создания установочных файлов. Проблема в том, что лицензия Wise позволяет запускать его только под одной конкретной учетной записью пользователя, которая не является той же учетной записью, под которой будет запускаться мой скрипт сборки. Я знаю, что в Windows есть команда runas, но она не будет работать для автоматизированного сценария, так как нет возможности ввести пароль через командную строку.


person Luke    schedule 18.09.2008    source источник


Ответы (4)


Это может помочь: Почему программа RunAs не принимает пароль в командной строке?

person JW.    schedule 18.09.2008
comment
Не совсем: P, но грустно, что это лучший результат Google. Надеюсь, это вытеснит его! - person Luke; 19.09.2008
comment
За исключением того, что рассматриваемая страница является лучшим результатом по уважительной причине. - person Kris Kumler; 19.09.2008

Я рекомендую взглянуть на CPAU.

Инструмент командной строки для запуска процесса в альтернативном контексте безопасности. В основном это замена runas. Также позволяет создавать файлы заданий и кодировать идентификатор, пароль и командную строку в файле, чтобы его могли использовать обычные пользователи.

Вы можете использовать его следующим образом (примеры):

CPAU -u user [-p password] -ex "WhatToRun" [switches]

Или вы можете создать файл «.job», в котором будут закодированы имя пользователя и пароль. Таким образом, вы можете избежать необходимости указывать пароль для пользователя в вашем скрипте сборки.

person Jeffrey Vanneste    schedule 19.09.2008

Это временное решение, но вы можете создать запланированную задачу, которая запускается под вашей учетной записью пользователя, и запускать ее регулярно, может быть, раз в минуту. Да, тогда вам придется подождать, пока он запустится.

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

person jfs    schedule 19.09.2008

Это может помочь, это класс, который я использовал в другом проекте, чтобы позволить людям создавать свои собственные учетные записи; каждый должен был иметь доступ к программе, но одной и той же учетной записи нельзя было разрешить доступ к материалам LDAP, поэтому программа использует этот класс для запуска от имени другого пользователя.

http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx

person Asmor    schedule 19.09.2008