GPO 啟動腳本不復製文件
我創建了一個 GPO 啟動腳本來為特定 AD 容器中的電腦執行。該腳本從 AD netlogon 共享中獲取一個文件,並將其放在電腦上的一個目錄中。給定正確的權限(即:我自己)可以很好地執行腳本並複製文件。但它在啟動時不起作用 - 文件不會從 AD 伺服器複製過來。
啟動腳本應該作為本地系統執行(對嗎?)。所以問題是為什麼文件在啟動時不複製?會不會是因為:
- 是本地系統使用者的權限嗎?
- 啟動時讀取系統資料庫有問題?
- 啟動時從 AD netlogon 文件夾獲取文件有問題?
- 我完全想念它嗎?
我的測試機器確實具有腳本中描述的系統資料庫項和本地目錄。我自己在測試機器上擁有標準使用者權限。AD 伺服器是 Windows 2008,測試客戶端是 Windows XP SP3(很快就會是 Windows 7,我認為權限問題將是不可避免的)
`Dim wShell, fso, oraHome, tnsHome, key, srcDir
Set wShell = WScript.CreateObject(“WScript.Shell”)
Set fso = CreateObject(“Scripting.FileSystemObject”)
key = “HKLM\Software\Oracle\Oracle_Home”
On Error Resume Next
orahome = wShell.RegRead(key)
If err.Number = 0 Then
tnsHome = oraHome + “" + “network\admin"
srcDir = wShell.ExpandEnvironmentStrings("%logonserver%”) + “\netlogon\UpdatedFiles"
fso.CopyFile srcDir + “file1.ext”, tnsHome, true
End If`
旁注:為了確保腳本正確部署,我特意在腳本中放了一些錯誤,並且在下次啟動時出現錯誤消息。所以我知道 GPO 部署正確。
在本地系統帳戶下執行,腳本將使用 AD 電腦帳戶(即 COMPUTERNAME$)連接到網路。
但是,%logonserver% 變數在系統帳戶的上下文中可能無效 - 在所有本地系統帳戶都通過本地電腦而不是域進行身份驗證之後。%logonserver% 變數可以為空,或等於本地電腦名稱。
嘗試
\\domain.name\NETLOGON
改用。這將連接到域控制器(並且由於 NETLOGON 共享包含所有 DC 上的相同文件,因為它使用 FRS,因此與您交談的 DC 無關緊要。