10個の異なる.exeファイルを呼び出す.cmdファイルを作成しました。この.cmdファイルをサーバー上でローカルに実行でき、正常に動作します。
[コンピューターの構成、Windowsの設定]に[gpedit.msc](グループポリシーエディター)を使用し、.cmdファイルを起動スクリプトとして設定すると、問題ないようです。
サーバーを再起動しても、起動スクリプトが呼び出されることはありません。理由がわかりません。私の目標は、サーバーを起動するたびにこのスクリプトを実行することです。 (ログインではありません)。
私がテストしているこのサーバーは、ドメインコントローラーではありません。それが問題に関連しているかどうかわかりませんか?助けて?
pSこれらはEC2Amazonクラウドサーバーです。私の側の痛み。
「ポリシーの結果セット」(rsop.msc
)から始め、スクリプトを含むGPOが処理されているかどうかを確認します。ほとんどの場合、ポリシーの適用に関する問題は、GPOをリンクする場所についてのシステム管理者の理解と、特定のユーザーまたはコンピューターに適用されるGPOのリストが実際に計算される方法との間の不一致であることがわかります。 OS。
GPOが処理されているが、スクリプトが実行されていない場合、スクリプトに設定されたアクセス許可により、対象のコンピューターのコンピューターアカウントがスクリプトを読み取って実行できること、およびパスが確認されます。 GPOで参照されているものは、対象のコンピューターで正しく解決されます。
編集:
ポリシーの結果セットツールの間違った場所を探しています。 「ソフトウェア設定」は、ソフトウェアを「強制的に」インストールできるグループポリシー内の場所です。 「コンピュータの設定/ Windowsの設定/スクリプト(スタートアップ/シャットダウン)」に興味があります。
スクリプトを指定したGPOが、RSoPの[コンピューターの設定]ノードの[プロパティ]の[全般]タブに表示されているかどうかを確認したいと思います。 GPOがそこにリストされておらず、そのため処理されていないことに気付くと思います。
スタートアップスクリプトを指定する作成したGPOをどこにリンクしましたか?
編集2:
したがって、RSoPの[スクリプト(起動/シャットダウン)]ノードの下にスクリプトのパスが表示されます。そこに「最後に実行された」列があるはずです。そこに日付/時刻がリストされている場合、グループポリシークライアントはスクリプトの実行を試みています。リストされている時間がない場合は、実行を試みていません。
うまくいけば、アプリケーションイベントログを見て、スクリプトの実行に関してログに記録されているエラーがないことを確認しました。まだの場合は、そちらをご覧ください。
スクリプトが実行されていると仮定して、スクリプトが実行されていることを確実に確認するために、コンピューターに何らかの「マーク」を残す行を追加することを検討します。 echo foo > %TEMP%\foo.txt
のようなものは、システム全体の%TEMP%ディレクトリ(通常は「C:\ WINDOWS\TEMP」)にファイルを提供し、スクリプトが実行されているかどうかを最終的に通知します。スクリプトが実行されているのではないかと思い始めていますが、何らかの理由で、コンピューターのSYSTEMコンテキストが実行しようとしているEXEにアクセスできません。
スクリプトの実行時にログインしないため、ログイン時と同じ環境になりません。%variablesが機能しない可能性があります。すべてのパスがローカルフルパスであることを確認してください。 Evanが述べたように、コンピューターアカウントで実行されているため、ネットワークリソースにアクセスできません。
これを1台のマシンでのみ実行している場合は、GPOではなく、スケジュールされたタスクを使用することを検討してください。グループポリシーの基本設定を使用して、GPOを介してスケジュールされたタスク(および.cmd自体)をコンピューターにプッシュすることもできます。