S_a_k_Uの日記みたいなDB 〜サクゥーと呼ばないで〜 このページをアンテナに追加 RSSフィード Twitter

2011/10/17(Mon)

[][]タスクスケジューラへの登録でエラー タスクスケジューラへの登録でエラーを含むブックマーク タスクスケジューラへの登録でエラーのブックマークコメント

Windows 7 / Windows Server 2008 R2

タスクスケジューラのタスクの登録で、セキュリティオプションで「ユーザーログオンしているかどうかにかかわらず実行する」にチェックすると、

タスクxxxでエラーが発生しました。エラーメッセージ:次のエラーが報告されました:指定されたログオンセッション存在しません。そのセッションは既に終了している可能性があります。。

ってなダイアログが表示される。

但し、お客さんの環境だけで会社環境では問題なくタスクが登録される。

ログオンセッション

Administrators権限のユーザーで登録しようとしてて、最初リモートデスクトップタスクの登録をしていたので、リモートデスクトップ接続セッションを使ってるってことか?と思って、仮想マシン上だったのでVMwareのコンソールで操作したけど、同じ結果だった。

VMwareのコンソールでもセッション使うからかな?と。

イベントログ

エラーメッセージダイアログが表示されるタイミングで、下記のログが記録されてた。

ソース:TaskScheduler

イベントID:116

メッセージタスクスケジューラでタスク"xxx"の構成を検証しましたが、資格情報を格納できませんでした。ユーザー操作資格情報が有効であることを確認し、タスクを再登録します。追加データエラー値:2147943712。

エラー値:2147943712

Task Scheduler: Error 2147943712 occurs whether user is logged on

Windows 2008 / Vista / 7, Scheduled Task – error 2147943712 - Nejde jen o software... - Site Home - TechNet Blogs

ってなページで「Network access: Do not allow storage of credentials or .NET Passports for network authentication」っちゅう設定が関係してるって所に辿りついた。

ローカルポリシーセキュリティオプション

これは、「ネットワーク アクセス : ネットワーク認証のために資格情報または .NET Passport を保存することを許可しない」になるけど、これって2003(Vista/2008無印も?)の設定で、7/2008R2では「ネットワーク認証のためにパスワードおよび資格情報を保存することを許可しない」という設定名に相当する。

3流プログラマのメモ書き : (Windows)共有フォルダへのアクセスのための資格情報を保存させない

そりゃセキュリティポリシー的に資格情報保存させたくないわな、ということでお客さんの環境を確認すると、ADのグループポリシーで「有効」となってた。

会社サーバは開発用にワークグループにしてるだけなので、既定値の「無効」になってる。

こいつの設定により、登録できたり、できなかったりしてたらしい。

回避

ビルトインアカウントのSYSTEMを使うと、Administrators権限でタスクを起動してくれるらしい。

タスクスケジューラのタスクプロパティの「ユーザーまたはグループの変更」で、ローカルマシンのSYSTEMを指定すると、タスク登録時に資格情報ユーザー名とパスワード)の入力が催促されずに登録できた。メデタシメデタシ。

一時的にSystemアカウントでプログラムを実行する − @IT

サービスで使用される「System」「Local Service」「Network Service」アカウントとは? − @IT

トラックバック - http://d.hatena.ne.jp/S_a_k_U/20111017