透過 GPO 以提升的權限運行批次文件

透過 GPO 以提升的權限運行批次文件

我有一個專門使用 Google Chrome 的快捷方式。我們的環境有 XP 和 Windows 7,我只想對這兩種作業系統使用一個捷徑。原因是我們的環境相當混亂,有些使用者仍在使用登入腳本,而其他使用者則使用 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:\ 中建立資料夾是否有問題?我嘗試將腳本更改為 just mkdir C:\temp,但這也不起作用。

注意:如果我在使用者配置下執行腳本並且該使用者俱有管理員權限,則上述腳本可以正常運作。

更新:嘗試使用 Powershell 進行 mklink 也沒有成功。我很確定您無法在啟動腳本中執行 mklink 。因此,我沒有使用此腳本,而是在使用者首選項下使用專案層級定位來根據作業系統複製不同的連結。

答案1

在群組原則嘗試執行腳本之前,您的電腦的網路連線可能尚未初始化。 MSKB 文章Windows 7 用戶端在啟動時間歇性無法套用群組原則解釋了啟動腳本因 GP 執行腳本時網路連結尚未準備就緒而失敗的行為。提供兩種解決方案:

透過群組策略:

  • 配置啟動策略處理等待時間設定Computer Configuration > Policies > Admin Templates > System > Group Policy為足夠長的值,以便電腦初始化其網路連線。我用了10秒,取得了巨大的成功。

透過註冊表:

  • 建立 DWORD 值GpNetworkStartTimeoutPolicyValue在子項中HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon並提供以秒為單位的十進制等待時間值。

相關內容