关于域用户启动脚本(vbs)不执行问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于域用户启动脚本(vbs)不执行问题相关的知识,希望对你有一定的参考价值。

我用的是win2008 R2做的域控 ,客户机操作系统是winxpsp3,现在在域控"计算机配置"->"Windows设置"->"脚本(启动/关闭) 启动中添加了\\dbserver1\NETLOGON\password.vbs 这样一个脚本(该脚本是更改客户机上本地管理员admin密码的), 但是重启开机不能执行 根本没反应 ,在客户机运行gpresult 发现该策略已经加载了但是开机根本没执行,(我用客户机本地管理员登陆执行\\dbserver1\NETLOGON\password.vbs 提示我输入密码。我将域控的用户名密码输入上去后脚本执行,本地管理员密码更改生效,说明这个脚本是能更改密码的),上网查有人说启动脚本用的是本地system权限没法加载网络路径,╮(╯▽╰)╭ 到底什么原因啊忘高人指点一二

注:password.vbs 及NETLOGON我已经给我domain computer权限

问题解决后追加100分

vbs脚本中的内容是
-----------------------------------
dim password
password="xyz"
set shell=createobject("wscript.shell")
shell.run "net user administrator " & password
-----------------------------------

在客户机上执行CMD
gpupdate /force
更新下组策略试试
参考技术A 这么多贤赏 ,我真想回答对,可是我这不会呀

在 windows xp 中检测到 Internet 连接后如何启动 vbs 脚本? [关闭]

【中文标题】在 windows xp 中检测到 Internet 连接后如何启动 vbs 脚本? [关闭]【英文标题】:How to launch vbs script after internet connection is detected in windows xp? [closed] 【发布时间】:2011-09-22 20:10:20 【问题描述】:

wifi 连接建立后如何启动 vbs 脚本?

提前致谢。

【问题讨论】:

问题属于超级用户 如果您需要任何人的帮助,您需要提供更多信息,卡洛斯。 问题对我来说似乎很清楚。如何在建立 WiFi 连接时自动执行 VBScript。这个问题也可以说是关于编程的,因为答案最终可能会显示出来。对于不清楚的问题,我通常是一个傲慢的 SOB,但这个问题是完全公平的(需要注意的是它没有显示任何研究努力——但这不是一个容易搜索的问题)。 【参考方案1】:

您可以启动一个 VBScript,它会循环查找来自 Internet 站点/设备/任何东西的响应。当它看到它时,它会执行代码,否则它会尝试最多 XX 分钟并中止,例如:

Const strTarget = "cnn.com"

startTime = Time
boolExitFlag = False

Do

    ' Check to see if I can get a ping response from target
    If Ping(strTarget) Then

        ' Call the code to run on connect
        Call runOnWIFI              
        boolExitFlag = True
    End If


    WScript.sleep 1000 ' Pause for 1 seconds before next attempt

    ' Stop trying after 5 minutes   
    If DateDiff("s", startTime, time) => 300 then boolExitFlag = True

Loop while boolExitFlag <> True



' * * * * * * * * * * * * * * * * * * * * * * * * * * * 
' Subroutine to run when WIFI connection is detected
' * * * * * * * * * * * * * * * * * * * * * * * * * * * 
Sub runOnWIFI

    ' INSERT CODE TO RUN ON WIFI CONNECTION HERE

End Sub



' * * * * * * * * * * * * * * * * * * * * * * * * * * * 
' Subroutine to see if the target machine is online
' * * * * * * * * * * * * * * * * * * * * * * * * * * * 
Function Ping(strHost)

    Set objPing = GetObject("winmgmts:impersonationLevel=impersonate").ExecQuery("select * from Win32_PingStatus where address = '" & strHost & "'")

    z = 0
    Do    
        z = z + 1
        For Each objRetStatus In objPing        
            If IsNull(objRetStatus.StatusCode) Or objRetStatus.StatusCode <> 0 Then            
                PingStatus = False        
            Else
                PingStatus = True              
            End If      
        Next    

        ' Try a few times in case machine doesn't respond right away
        wscript.sleep 200
        If z = 4 Then Exit Do

    Loop until PingStatus = True

    If PingStatus = True Then 
        Ping = True
    Else
        Ping = False
    End If

End Function

【讨论】:

【参考方案2】:

您的应用程序可以简单地使用 cscript.exe 运行 .vbs 文件。例如

cscript.exe ScriptToLaunch.vbs

要检测互联网连接,您可以简单地使用某种“ping”命令。例如,请参阅VBS to check for active internet connection 并将其调整为..无论您使用的是什么开发堆栈..

【讨论】:

以上是关于关于域用户启动脚本(vbs)不执行问题的主要内容,如果未能解决你的问题,请参考以下文章

在 windows xp 中检测到 Internet 连接后如何启动 vbs 脚本? [关闭]

添加啥代码可以使vbs脚本开机自启动?

如何创建向所有用户 HKCU\... 配置单元(包括默认用户和域用户)写入 32 位和 64 位的 VBS 脚本

如何使用 Messagebox 在 Windows 7 任务调度程序中启动 VBS 脚本?

Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法

Centos 7关于rc.local脚本命令开机不执行及指定用户启动的解决方法