none
异常客户端无法执行组策略启动脚本 RRS feed

  • 问题

  • 这里有几台奇怪的PC win7系统,在PC系统日志里有同步域策略的日志“成功处理了此用户的组策略设置。自上一次成功处理了组策略后,没有检测到更改。”,而且各方面使用正常。

    但是该PC总是不执行域里的用户登录脚本。同一域里相同策略的其他机器都没有问题,正常映射。该脚本是用来映射网络驱动器的。

    该问题机器通过Rsop.msc看过了,策略已经发到机器上,而且启动里也有相应的脚本。如果把脚本复制到本地,手动运行也是没有问题的。

    我怀疑是机器上的某个服务被禁用了,导致开机脚本就是不执行。

    不知有什么方法能解决该问题。该win7客户端不考虑重装系统。



    2013年7月12日 8:26

答案

  • 谢谢Repl

    我按你的方法进行了测试,结果都没有解决问题。

    后来参考了MapNetworkDrive方法,改了一下配置,后来问题解决了。

           objnet.MapNetworkDrive "S:", "\\192.168.22.9\file\部门目录\网络集成部",True
           objShell.NameSpace("S:").Self.Name = "网络集成部"

    加上了True,解释如下:

    可选。表示映射信息是否存储在当前的用户配置文件中的布尔值。如果提供的 bUpdateProfile 的值为 true,则该映射存储在用户的配置文件中(默认值为 false)。

    将共享网络驱动器添加到计算机系统中。
    
    object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])
    参数
    object 
    WshNetwork 对象。 
    strLocalName 
    表示映射驱动器的本地名的字符串值。 
    strRemoteName 
    表示共享的 UNC 名称 (\\xxx\yyy) 的字符串值。 
    bUpdateProfile 
    可选。表示映射信息是否存储在当前的用户配置文件中的布尔值。如果提供的 bUpdateProfile 的值为 true,则该映射存储在用户的配置文件中(默认值为 false)。 
    strUser 
    可选。表示用户名的字符串值。如果使用当前用户以外的其他用户的凭据来映射网络驱动器,则必须提供该参数。 
    strPassword 
    可选。表示用户密码的字符串值。如果使用当前用户以外的其他用户的凭据来映射网络驱动器,则必须提供该参数。 
    

    2013年8月9日 3:07

全部回复

  • 应该是做用户登录脚步
    2013年7月12日 12:05
  • 谢谢Faxiang Wang

    这么多天了,一直没有其他人回复。我没有看明白,“用户登录脚步”是什么意思?怎么解决我遇到的问题?

    2013年7月19日 3:04
  • 就是說把腳本放到 GPMC 對應 GPO 的 "用戶" 配置裡的登錄腳本, 而不是 "計算機"  配置的開機腳本.

    對於網絡硬盤映射, 不同的用戶是可以同時使用相同的盤符映射不同的共享. 但不會引起衝突, 因為每個用戶只能看到自己映射的共享.

    對於這點你可以在一台客戶端進行測試.


    Folding@Home

    2013年7月19日 11:05
  • 我配置的就是“用户登录脚本”,之前问题里写错了。

    我怀疑是客户端可能有相关的服务,或者软件禁止了映射共享的脚本运行,不知有什么方法可能检查原因。

    2013年7月19日 12:05
  • 不知道你具體建立映射磁盤的方式是否為通過

    net use

    進行. 如果是, 那麼可以嘗試通過在命令後

    追加 2>> C:\debug\net_use.log.

    來重定向標準錯誤輸出, 以獲取錯誤信息.


    Folding@Home

    2013年7月20日 5:21
  • 不好意识 上面打错字了

    就只有该机器会这样,说明是客户端的问题。该系统是否有优化软件进行优化,或者一些安全软件阻止脚本的运行

    2013年7月22日 10:48
  • 谢谢Repl

    我已经查看了,net use 返回的列表为空。

    我测试了下面的脚本,用户登录后,能正常输了log1.txt文件,但是驱动器就是映射不了。

    如果在进入系统之后再手机运行该脚本,脚本能运行成功。

    该问题机器之前安装过金山毒霸,怀疑有问题,之后卸载了,问题依旧。

    On Error Resume Next
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile=objFSO.CreateTextFile("C:\log.txt",true)
    
    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objNet = CreateObject("Wscript.Network")
    Set objShell = CreateObject("Shell.Application")
    strUser = objSysInfo.UserName
    Set objUser = GetObject("LDAP://" & strUser)
    strPath = objUser.AdsPath
    strtempOU = Split(strPath,",",-1,1)
    strOU=Replace(strtempou(1),"OU=","")
    Select Case strOU
         Case "网络集成部"
           objnet.MapNetworkDrive "S:", "\\192.168.22.9\file\部门目录\网络集成部"
           objShell.NameSpace("S:").Self.Name = "网络集成部"
           objTextFile.writeLine "成功映射部门网络驱动器  "
         Case "行政部"
           objnet.MapNetworkDrive "S:", "\\192.168.22.9\file\部门目录\行政部"
           objShell.NameSpace("S:").Self.Name = "行政部"
         Case "工程技术部"
           objnet.MapNetworkDrive "S:", "\\192.168.22.9\file\部门目录\工程技术部"
           objShell.NameSpace("S:").Self.Name = "工程技术部"
    End Select
    objnet.MapNetworkDrive "T:", "\\192.168.22.9\file"
           objShell.NameSpace("T:").Self.Name = "公司文件"
    Set objTextFile=objFSO.CreateTextFile("C:\log1.txt",true)
    

    2013年8月8日 9:56
  • 该问题机器之前安装过金山毒霸,怀疑有问题,之后卸载了,问题依旧。希望有其他方法检查出问题所在。

    2013年8月8日 9:58
  • 我建議你修改上述 VBS 腳本, 檢測每個關鍵對象是否實際存在, 而不是為 nothing, 比如最後一個關鍵對象 strOU. 如果不為 nothing, 那麼也建議將其內容輸出.

    此外還建議, 臨時將有問題的電腦移動到一個臨時 OU, 然後為該 OU 創建 GPO, 至於映射腳本使用 net use 實現.

    這樣來排除一下問題.


    Folding@Home

    2013年8月8日 10:47
  • 無論是使用 VBS 還是 net use 實現映射, 最好是先將有問題的電腦臨時移到一個 OU.

    Folding@Home

    2013年8月8日 10:49
  • 谢谢Repl

    我按你的方法进行了测试,结果都没有解决问题。

    后来参考了MapNetworkDrive方法,改了一下配置,后来问题解决了。

           objnet.MapNetworkDrive "S:", "\\192.168.22.9\file\部门目录\网络集成部",True
           objShell.NameSpace("S:").Self.Name = "网络集成部"

    加上了True,解释如下:

    可选。表示映射信息是否存储在当前的用户配置文件中的布尔值。如果提供的 bUpdateProfile 的值为 true,则该映射存储在用户的配置文件中(默认值为 false)。

    将共享网络驱动器添加到计算机系统中。
    
    object.MapNetworkDrive(strLocalName, strRemoteName, [bUpdateProfile], [strUser], [strPassword])
    参数
    object 
    WshNetwork 对象。 
    strLocalName 
    表示映射驱动器的本地名的字符串值。 
    strRemoteName 
    表示共享的 UNC 名称 (\\xxx\yyy) 的字符串值。 
    bUpdateProfile 
    可选。表示映射信息是否存储在当前的用户配置文件中的布尔值。如果提供的 bUpdateProfile 的值为 true,则该映射存储在用户的配置文件中(默认值为 false)。 
    strUser 
    可选。表示用户名的字符串值。如果使用当前用户以外的其他用户的凭据来映射网络驱动器,则必须提供该参数。 
    strPassword 
    可选。表示用户密码的字符串值。如果使用当前用户以外的其他用户的凭据来映射网络驱动器,则必须提供该参数。 
    

    2013年8月9日 3:07