GPO を介して昇格された権限でバッチ ファイルを実行する

GPO を介して昇格された権限でバッチ ファイルを実行する

Google Chrome 専用のショートカットがあります。私たちの環境には XP と Windows 7 があり、両方の OS で 1 つのショートカットのみを使用したいと考えています。その理由は、私たちの環境が非常に乱雑で、一部のユーザーがまだログオン スクリプトを使用している一方で、他のユーザーはすべてに GPO を使用しているためです。

コンピュータの起動スクリプトに使用するバッチ ファイルは次のとおりです。

if exist "C:\Program Files\Google\" (
    mklink /d "C:\Program Files\Google\Chrome" "C:\Program Files (x86)"\Google\Chrome"
) else (
    mklink /d "C:\Program Files\Google\" "C:\Program Files (x86)"\Google\"
)

新しい GPO を作成し、そのポリシーのディレクトリにスクリプトを配置し\\domain\SysVol\domain\Policies\{}\Machine\Scripts\Startup、スクリプトを追加しますComputer Configuration > Policies > windows Settings > Scripts > Startup > script.bat。その GPO を作成した OU にリンクし、コンピューター オブジェクトはその OU 内にあります。

GPResult を実行したところ、GP が適用されたことはわかりましたが、期待していたシンボリック リンクは作成されませんでした。NT Authority\Local System が C:\ にフォルダーを作成するときに問題が発生しますか? スクリプトを次のように変更してみましたが、mkdir C:\tempそれでも機能しませんでした。

注: 上記のスクリプトは、ユーザー構成でスクリプトを実行し、そのユーザーが管理者権限を持っている場合は完全に正常に動作します。

更新: Powershell で mklink を実行しようとしましたが、成功しませんでした。スタートアップ スクリプトで mklink を実行できないことは確かです。そのため、このスクリプトを使用する代わりに、ユーザー設定の [アイテム レベル ターゲティング] を使用して、OS に応じて異なるリンクをコピーします。

答え1

グループポリシーがスクリプトの実行を試みる前に、コンピュータのネットワーク接続が初期化されていない可能性があります。MSKBの記事Windows 7 クライアントが起動時にグループ ポリシーを適用できないことがあるGP がスクリプトを実行するときにネットワーク リンクの準備ができていないためにスタートアップ スクリプトが失敗する動作について説明します。 2 つの解決策が提供されています:

グループポリシー経由:

  • 設定する起動ポリシー処理の待機時間Computer Configuration > Policies > Admin Templates > System > Group Policyコンピュータがネットワーク接続を初期化するのに十分な長さの値に設定します。私は 10 秒に設定して大きな成果を得ました。

レジストリ経由:

  • DWORD値を作成するGpNetworkStartTimeoutポリシー値サブキーにHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon、10 進数の待機時間値を秒単位で指定します。

関連情報