Windows XPマシンのローカルシステムアカウントで実行されているプロセスがあります。このプロセスは、システム上の別のユーザー(Maxなど)としてデフォルトのアプリケーションでファイルを開こうとします。 Maxはログインしていて、デスクトップを持っています。
ファイルは、vbscriptでShellExecuteを使用して次のコマンドで開きます。
runas /user:Max "cmd.exe /C start \"path_to_file\""
上記で実行されたローカルシステムアカウントでプロセスが実行された後、Maxはパスワードの入力を求められます。 (したがって、runasコンポーネントは明らかに少なくとも開始されます。)
ただ、正しいパスワードを入力した後でも、runasは次のエラーを生成します。
RUNAS ERROR: Unable to run - cmd.exe /C start "path_to_file"
5: Access is denied.
どのアクセスが拒否されているのかわかりません。 cmd.exe/Cを実行すると、Maxが完全に正常に機能するため、「path_to_file」が開始されます。したがって、Maxは明らかに「path_to_file」にアクセスできます。
これは同じように見えます PSExecで発生した問題 。編集:RunasとPSExecは、CreateProcessWithLogonWを呼び出すことにより、異なる資格情報で新しいプロセスを生成します。ただし、「LocalSystem」アカウントを使用している場合:
関数は呼び出し元トークンでログオンSIDを使用し、「LocalSystem」アカウントのトークンにはこのSIDが含まれていないため、「LocalSystem」アカウントで実行されているプロセスからCreateProcessWithLogonWを呼び出すことはできません。
http://msdn.Microsoft.com/en-us/library/ms682431%28VS.85%29.aspx
パスワードを自動的に入力するsanurツールを試してみたときにも同様の経験をしました。アカウントを使用している限り、スクリプトは正常に機能します。 SCCM)で実行すると、systenアカウントで機能しますが失敗しました。
私は回避策を見つけられませんでした。私の結論は、システムアカウントでrunasを開始することはできないということです。