このブログをご覧のみなさん、こんにちは。
Windows マシンで Jenkins から Visio を起動させる処理を動かしていたところ、1 時間経っても応答が返ってきませんでした。その際に Jenkins を実行しているユーザと Visio をインストールしたユーザが異なっていたため、それが問題ではないか?と考え、Windows で sudo をする方法を調べたので、調査した手順をメモとして残しておきます。
Windows で sudo する方法
runas
を使います。
Windows Vista and later syntax
RUNAS [ [/noprofile | /profile] [/env] [/savecred | /netonly] ] /user:<userName> program
RUNAS [ [/noprofile | /profile] [/env] [/savecred] ] /smartcard [/user:<userName>] program
RUNAS /trustlevel:<trustLevel> program
/noprofile Specifies that the user's profile should not be loaded. This causes the application to load more quickly, but can cause some applications to malfunction.
/profile Specifies that the user's profile should be loaded. This is the default
/env To use current environment instead of user's.
/netonly Use if the credentials specified are for remote access only.
/savecred To use credentials previously saved by the user.
/smartcard Use if the credentials are to be supplied from a smartcard.
/user <userName> should be in form USER@DOMAIN or DOMAIN\USER
/showtrustlevels Displays the trust levels that can be used as arguments to /trustlevel.
/trustlevel <level> should be one of levels enumerated in /showtrustlevels.
program command line for EXE. See below for examples.
Examples:
> runas /noprofile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""
NOTE: Enter user's password only when prompted.
NOTE: /profile is not compatible with /netonly.
NOTE: /savecred is not compatible with /smartcard.
以下のようになります。
runas /user:jenkins-user command
コマンドに引数を渡したい場合は "" で括る必要があるので、以下のようになります。
runas /user:jenkins-user “command arg1 arg2”