0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C#.NETで『外部端末のタスクスケジューラ情報接続』に失敗する時の対応

Last updated at Posted at 2023-01-23

概要

『C#でタスクスケジューラ情報を取得』については下記。

上記はローカルのタスクスケジューラ情報を取得している。

でも、 ITaskService.Connect() は下記のように、外部端末のタスクスケジューラ情報を取得することもできる。
image.png

だが、接続情報が正しいはずなのに下記のように失敗する。

この要求はサポートされていません。 (HRESULT からの例外:0x80070032)

また、接続できたとしても下記のような失敗になる。

アクセスが拒否されました。 (HRESULT からの例外:0x80070005 (E_ACCESSDENIED))

そういった時に『この設定を変えれば直るかも』という内容です。

細かい動作検証はしていないので、参考情報となります。
あたいの環境ではこうやったら解決しました、という記録(メモ)レベル。

ファイアウォール

まず『この要求はサポートされていません。』で失敗する時は、ホスト(接続される側)のファイアウォールで弾かれてる可能性が高い。

『受信の規則』の『スケジュールされたリモートタスク管理(RPC)』を許可してあげると接続できた。

例えばドメイン参加端末であればホスト側が下記のようになっている必要あり。
image.png

接続ユーザー

接続できたのに『アクセスが拒否されました。』で失敗する時は、接続ユーザーが原因である可能性が高い。

例えば『hoge』って名前のユーザーでホスト側にタスクスケジューラ設定したとする。
(フォルダーとかタスク作ったりとか)

そうしたらクライアント側も『hoge』というユーザーで接続しないと『アクセスが拒否されました。』で失敗する可能性が高い。

これは ITaskService.Connect() に引数で渡すユーザー情報の話。
exeをキックするユーザーは関係ない。(違っていても問題無い)

これについては…

接続できるのに、なんで『アクセスが拒否されました。』で失敗するんだろう…。
もしかして『設定したユーザー』と『接続するユーザー』が違うからかな?
試しに同じに揃えてみるか…。
あ、解決した!

っていうくらいの動作確認のみ。

参考サイトさん

バージョン

Windows 10 Pro 22H2 OSビルド 19045.2486
Microsoft .NET Framework Version 4.8.04084

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?