web-dev-qa-db-ja.com

windows-server-2016タスクスケジューラがドメインユーザーを適切に実行するために保存しない

タスクスケジューラ(TS)は、ユーザーとして実行タスクのドメイン情報を保存していません。

複製する手順:

「一般」->「セキュリティオプション」では、横にある「ユーザーまたはグループの変更」ボタンでタスクが実行されるユーザーが表示されます。

TSを使用すると、ユーザーをドメインユーザーに変更でき、フィールドに「DOMAIN\USER」と表示されます。

[OK]を押すと、「DOMAIN\USER」のパスワードを入力するように求められます。

TSタスクを再度開くと、「DOMAIN\USER」のドメイン部分が[別のユーザーとして実行]フィールドから削除されていることがわかります。

そのタスクが実行されると「DOMAIN\USER」として実行されません

予想される動作

TSshouldタスクは、サーバー2012r2でのようにユーザーとして実行されます。

OSの詳細

OSはWindows Server 2016の標準ビルドです。バージョン10.0.14393ビルド14393、サーバーはドメインの一部です。

[〜#〜] edit [〜#〜]:Windows 10では同じように見えますが、ユーザーは正しく実行されます。エクスポートされたタスクでは、XMLは次のようになっています。<UserId>DOMAIN\USER </UserId> but now it looks like this: [numbers-with-a-lot-of-hypens-that-starts-with-a-letter] </UserId>

EDIT-2:XML設定に保存されているのはWindows SID(セキュリティ識別子)のようです。

2
John Aho

無効にする必要があるのは新しいボックスにある追加の特権であり、タスクスケジューラは正常に実行されることがわかりました。 「SeDelegateSessionUserImpersonatePrivilege」が原因でした。

タスクスケジューラであると私に思わせたのは、タスクスケジューラがユーザーをXmlに保存する方法を変更し、それを「DOMAIN\USER」として保存するために使用していたが、現在はSID(セキュリティID)として保存し、タスクスケジューラの[RUN AS]セクションにドメイン部分は表示されません。

私が走ったときwhoami /all 1つの特権が新しいボックスにあり、古いボックスにはないことがわかりました。

その特権は次のとおりです:SeDelegateSessionUserImpersonatePrivilege = disabled

この特権を削除すると、問題が修正されます。

そのため、Windows Server 2016 stdビルド14393では、特権SeDelegateSessionUserImpersonatePrivilegeを有効化または削除することで、タスクスケジューラに保存されたユーザーとして実行されていないタスクのこの問題が修正されます。

[〜#〜] edit [〜#〜]:Windows Server 2016タスクスケジューラは正しく設定されたタスクを正しく実行します初めて編集なしで、[最高の権限で実行]チェックボックスがオフになり、将来的には開始されました。したがって、スケジュールされたタスクを変更する必要がある場合は、既存のタスクを編集するのではなく、新しいタスクを作成してから古いタスクを削除する必要があります。

2
John Aho