私は Microsoft ドメイン (主に 2008r2\7) を持っています。
ドメインに参加した直後 (再起動後) に (ユーザー ログインを必要とせずに) スクリプトを実行する方法を探していましたが、これまでのところ失敗しています。
また、一度だけ実行したいので、繰り返しタスクをスケジュールすることはオプションではありません。
何度も実行させるのは無駄に思えます。
スタートアップ スクリプトを含む GPO を試しましたが、コンピューターが GPO を受信するのはスタートアップのかなり後です。スケジュール
されたタスク (異なるトリガーを使用) を含む GPO も試しましたが、これも機能しませんでした。
「スタートアップ時」トリガーはスタートアップ スクリプトと同じように失敗します。
「タスク作成時」は失敗します。通常の方法で作成されていないためだと思います。
「スケジュール時」は関係ありません。参加直後に実行する必要があるためです (すでに過ぎた日付を設定しても機能しませんでした)。
関連するレジストリ キーは見つかりませんでしたが、GPO スタートアップ スクリプトと同じ問題があると思われます。
必要なことを実現できる唯一のアイデアは、DC 上の関連イベントにタスクをアタッチし、スクリプトをリモートで実行することです。
もっと良い提案はありますか?
--編集--
回答 (すばらしいですが、十分ではありません) から、いくつか追加したい点があります。1
. 質問は両方のサーバー (2008r2\2012\2012r2) に当てはまりますが、私は 2012r2 でのみテストしました。2
. 私は、より 1 回だけ実行に近いソリューションを探しています。つまり、何らかの条件が満たされるまで無限に実行させたくないのです。3
. サーバーとワークステーションを展開するためにイメージを使用していますが、イメージの編集を伴うソリューションは使用できません。理由は、a) スクリプトを変更するたびにイメージを更新する必要があるため、b) BYOD のためです。4
. 結合スクリプトは使用していないため (単に必要ないため)、使用し始めても無駄に思えます。また、問題もいくつかあります (たとえば、どこに配置すればよいですか? イメージ内ですか? 共有の場所ですか? BYOD はどうですか? そうなると、ポイント 3 が無効になります)。
ありがとう。
答え1
ビルドイメージにカスタムレジストリキーを追加します。単に「1」の値をどこかに追加します。
ビルドイメージにレジストリキーの値をチェックするスケジュールされたタスクを追加し、このレジストリキーにドメイン名のチェックを追加します。
HKLM\System\CurrentControlSet\Services\Tcpip\Parameters
両方が見つかった場合はスクリプトを実行し、完了時にカスタム レジストリ キーを 0 に変更します。このタスクを起動時に実行します。
このタスクをそのまま残すか、スケジュールされたタスクを削除する GPO を用意することができます。ただし、そのまま残してスクリプトを再実行する必要がある場合は、レジストリ キーを 1 に戻して再起動するだけです。
若干のセキュリティ上の懸念として、スケジュールされたタスクはローカル管理者アカウントとして実行する必要があります。
答え2
いずれにせよ、ドメインに参加した後は再起動する必要はないのでしょうか? スタートアップ スクリプトを作成した場合、再起動後すぐに他のグループ ポリシー オブジェクトが読み込まれるときに、そのスクリプトが適用されます。
ドメインへの参加はどのように行いますか? ドメインへの参加をスクリプトに統合することもできます。Powershell では、これは Add-Computer で実行され、コマンド ラインからは netdom を使用できます。
通常、構成管理ツールを使用している場合は、これをタスク シーケンスに統合します。
答え3
結合はどのように実行されますか? 手動の GUI 操作ですか、それともスクリプト経由ですか? スクリプトの場合は、結合スクリプトに行を追加して、2 番目のスクリプトを RunOnce レジストリ キー経由で実行します。
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce マイクロソフト
---編集開始---
ああ!その通り
GPO の適用が遅れているというコメントについて考えてみると... 私は主に同期 GPO 処理を行うサーバー OS で作業しています。ワークステーションは非同期で行います。非同期にするには、次の操作を試してください。
ビルドプロセス/イメージで「高速ログオン最適化」を無効にしてみてください
https://technet.microsoft.com/ja-jp/magazine/gg486839.aspx
コンピューターの構成\管理用テンプレート\システム\ログオン
コンピューターの起動時およびログオン時に常にネットワークを待機する = 有効
GPO スタートアップ スクリプトを作成する GPO:
コンピューター構成/ポリシー/Windows 設定/スクリプト/スタートアップ
そこで定義したスクリプト内で、次のコードを使用します。
$built = gwmi Win32_OperatingSystem | foreach {[System.Management.ManagementDateTimeconverter]::ToDateTime($_.InstallDate)}
if ($built -gt (get-date).addHours(-4)) {
"do something"
}
答え4
私は以前学校で働いていました。
そして、参加とスクリプトのプロセスを自動化します (何年も続く完璧なイメージを展開するのは、おそらく理想論です)。そこで、WDS/MDT を使用して展開しました。
.xml 応答ファイルに入力したので、展開されたマルチキャスト イメージは OU (組織単位) インストールに参加し、最終スクリプトに GPO を適用して OU インストールから移動します。
そうすれば、ワークステーションの名前を正しい名前に変更し、正しい OU に配置するだけで済みます。