2015-11-03 92 views
0

我希望对问题有所帮助我运行了一个从vbs登录脚本调用的批处理文件。我不经常这样做。从登录脚本中运行批处理不起作用

的情景:拷贝一个小的配置文件,谁在某AD组属于自己的本地机器上,其程序文件(x86)的文件夹的用户,从目录%LOGONSERVER%\ SYSVOL \ ad.company .org \ scripts \ companyname \ country \ site;此外,VBS登录脚本所在的位置(实际上,它是登录脚本的一部分,但特定于站点并处理驱动器映射)以及ASCII配置文件。很简单。

AD组的测试不成问题。问题是我有VBS脚本中的条件测试组成员资格,如果是true,我使用Wscript.shell来运行我的批处理,这不过是设置robocopy将配置文件复制到用户的本地PC,但它不运行。我可以从测试用户的PC手动运行批处理,没问题。

我的VBScript看起来像这样(请注意,ADHelper是从主登录脚本使用的对象,我知道它的工作原理):

Call updatePTP 

    Sub updatePTP 

    dim objShell 
    set objShell = CreateObject("WScript.Shell") 

    If ADHelper.IsCurrentUserMember("AD_Group-Name") Then 
    objShell.Run("%logonserver%\sysvol\ad.company.org\scripts\companyname\country\site\test.cmd") 
    End If 

    Set objShell = Nothing 

End Sub 

我也试着从NETLOGON代替SYSVOL引用


我的批处理看起来是这样的:

robocopy %source% %destination% %filename% 

我想这大概有我不太了解从用户PC上的登录服务器上运行批处理或程序的事情,但我已经看过一些不再使用的旧脚本(但是请保留)我基本上模仿我在那里找到的东西......脚本和批处理本身很容易理解。

感谢您的任何见解。

回答

1

试试这个

Strlogonserver= CreateObject("WScript.Shell").ExpandEnvironmentStrings("%logonserver%") 
If ADHelper.IsCurrentUserMember("AD_Group-Name") Then 
    objShell.Run(Strlogonserver & "\sysvol\ad.company.org\scripts\companyname\country\site\test.cmd") 
    End If 

你不能在VB中的字符串中使用的系统环境变量。事先展开

相关问题