复制文件服务器启动,GPO启动脚本不复制文件

我创build了一个GPO启动脚本来执行特定AD容器中的计算机。 该脚本从AD netlogon共享中获取文件并将其放在计算机上的目录中。 鉴于正确的权限(即:我自己)可以执行脚本就好了,文件复制。 但在启动时不起作用 – 文件不会从AD服务器复制。

启动脚本应该作为localsystem运行(对吗?)。 所以问题是为什么这些文件不能在启动时复制? 难道是因为:

它是本地系统用户的权限吗?

读取registry在启动时有问题吗?

从AD netlogon文件夹中获取文件在启动时有问题?

我完全错过了吗?

我的testing机器具有脚本中描述的registry项和本地目录。 我自己有testing机器上的标准用户权限。 AD服务器是Windows 2008,testing客户端是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

附注:为确保脚本正确部署,我特意在脚本中join了一些错误,并在下次启动时出现错误信息。 所以我知道GPO是正确部署的。

在本地系统帐户下运行脚本将使用AD计算机帐户(即COMPUTERNAME $)连接到networking。

但是,%logonserver%variables可能在系统帐户的上下文中无效 – 在所有本地系统帐户与本地计算机进行身份validation之后,而不是域。 %logonserver%variables可能为空或等于本地计算机名称。

尝试使用\\domain.name\NETLOGON来代替。 这将连接到域控制器(因为NETLOGON共享包含所有DC上的相同文件,因为它使用FRS,所以与您正在交谈的DC无关紧要。

嗯…你在做什么应该工作。 我知道,这并没有太多的安慰,但我使用了大量的启动脚本(每天在我的客户站点上客户端comptuers上的数千个调用),而且脚本执行的可靠性也没有问题。

我会在registry读取后添加一个“On Error Goto 0”,以便报告脚本执行中的任何其他错误。 我还会考虑,至less对于testing,添加一些MsgBox调用来报告您为fso.CopyFile调用构build的值。 基本上用“PRINT”语句debugging它。

这不是有帮助的,但是这里是我如何使用batch file:

@echo off for /f "usebackq tokens=2*" %%i in (`reg query HKLM\Software\Oracle /v Oracle_Home ^| find /i "Oracle_Home"`) do ( if not "%%j"=="" copy /y "\\%USERDOMAIN%\netlogon\UpdatedFiles\some_file.tns" "%%j" )

顺便说一下:在Windows 7下运行启动脚本时,不应该有权限问题。脚本将以SYSTEM身份运行,UAC将不会启用。 微软得到了这个权利。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值