从登录脚本运行批处理不起作用

时间:2015-11-03 16:39:08

标签: windows vbscript cmd server login-script

我希望能帮助我解决运行从vbs登录脚本调用的批处理文件的问题。我不经常这样做。

方案:将属于某个AD组的用户的小配置文件从目录%logonserver%复制到其程序文件(x86)文件夹中\ SYSVOL \ ad.company.org \脚本\公司名称\国家\站点;这也是VBS登录脚本所在的位置(实际上,它是登录脚本的一部分,但是特定于站点并处理驱动器映射)以及ASCII配置文件。非常简单。

测试AD组不是问题。问题是我在VBS脚本中有一个测试组成员身份的条件,如果是,我使用Wscript.shell来运行我的批处理,这只不过是设置robocopy将配置文件复制到用户&# 39;本地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

My Batch看起来像这样:

robocopy %source% %destination% %filename%

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

感谢您的任何见解。

1 个答案:

答案 0 :(得分: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字符串中使用系统环境变量。事先扩展它们

相关问题