web-dev-qa-db-ja.com

GPを介して展開されたスケジュールされたタスクで、ADサービスアカウントによってネットワーク共有でPowerShellスクリプトを実行します

Chocolateyの更新を実行するPowershellスクリプトを作成し、ローカルおよびネットワーク共有でログを記録しました。スクリプト自体はネットワーク共有にあり、クライアントがそこから実行できるようにしたいと思っています。

アイデアは、GPOを介してスクリプトを実行するようにスケジュールされたタスクを展開することです。コンピューターポリシーとユーザーポリシーの場合と同様に、スケジュールされたタスクでActive Directoryサービスアカウントを定義しようとしましたGPO gui。

アクションにはpowershell.exe -NonInteractive -WindowStyle Hidden -ExecutionPolicy bypass -file \\networkshare\scripts\script.ps1を選択しました

セキュリティオプションの下で、タスクを実行するサービスアカウントを定義し、[ユーザーがログオンしているかどうかにかかわらず実行する]および[最高の権限で実行する]をオンにします

トラブルシューティングを目的としたこのサービスアカウントはOUADMINグループであり、このアカウントがネットワーク共有にアクセスできることを確認しました。

GPOを自分のマシンに適用し、イベントログをチェックインすると、次のエラーが見つかりました。

エラーコード「0x80070005アクセスが拒否されました」で失敗したため、Chocolatey Sch Task Testing {BDF8E170-C909-4115-8909-D42792DF977A}グループポリシーオブジェクトのコンピューター 'ChocoUpdate'基本設定項目は適用されませんでした。このエラーは抑制されました。

ここで何が欠けていますか?これを行うより良い方法はありますか?

3
greasewiz

このエラーは、スクリプトではなく、GPOのアクセス許可の問題を示しています。これを確認するには、ローカルマシンのタスクスケジューラで手動でスケジュールし、それが機能することを確認します(または手動でタスクを実行します)。

GPO [スコープ]タブの[セキュリティフィルター]でアクセス許可を確認し、[委任]タブで詳細なアクセス許可も確認します。GPOには、GPOを読み取り、実行するための適切なアクセス許可が必要です。

3
Matt