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

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

Ответы [ 4 ]

2 голосов
/ 19 сентября 2008

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

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

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

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

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

2 голосов
/ 19 сентября 2008
1 голос
/ 19 сентября 2008

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

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

0 голосов
/ 19 сентября 2008

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

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

...