スクリプト内で Windows ソフトウェアを別のユーザーとして実行するにはどうすればよいですか?
-
01-07-2019 - |
質問
Wise を呼び出してインストール ファイルを作成するビルド スクリプトを使用しています。問題は、Wise ライセンスでは 1 つの特定のユーザー アカウントでのみ実行が許可されており、ビルド スクリプトを実行するアカウントと同じではないことです。Windows には ルナス コマンドを使用できますが、コマンドラインからパスワードを入力する方法がないため、これは自動スクリプトでは機能しません。
解決
これは役立つかもしれません: RunAs プログラムがコマンド ラインでパスワードを受け付けないのはなぜですか?
他のヒント
見てみることをお勧めします CPAU.
代替セキュリティコンテキストでプロセスを開始するためのコマンドラインツール。基本的にこれはrunasの代替品です。また、通常のユーザーが使用できるように、ジョブファイルを作成し、ファイル内のID、パスワード、コマンドラインをエンコードすることもできます。
こんな感じで使えます(例):
CPAU -u user [-p password] -ex "WhatToRun" [switches]
または、ユーザーとパスワードを内部にエンコードした「.job」ファイルを作成することもできます。こうすることで、ビルド スクリプト内にユーザーのパスワードを入力する必要がなくなります。
これはちょっとした回避策ですが、ユーザー アカウントとして実行するスケジュールされたタスクを作成し、それを定期的に (おそらく 1 分に 1 回) 実行させることができます。はい、実行されるまで待つ必要があります。
このタスクは、処理するデータ ファイルを検索し、存在する場合にのみ実際の作業を実行します。
これは役立つかもしれません。これは、人々が自分のアカウントを作成できるようにするために、私が別のプロジェクトで使用したクラスです。全員がプログラムにアクセスできる必要がありましたが、同じアカウントが LDAP にアクセスすることは許可されなかったため、プログラムはこのクラスを使用して別のユーザーとして実行します。
http://www.codeproject.com/KB/dotnet/UserImpersonationInNET.aspx