【问题标题】:launch VBS script after PC startupPC 启动后启动 VBS 脚本
【发布时间】:2012-12-04 15:28:34
【问题描述】:

我想在 PC 启动 (Win XP) 后启动我的简单 VBS 脚本。我不想把这个脚本放在 C:\Documents and Settings\%UserName%\Start Menu\Programs\Startup

我想用脚本来做,可以吗?

Script:<br>
Dim oShell<br>
Set oShell = WScript.CreateObject ("WScript.Shell")<br>
oShell.run "notepad.exe c:\text.txt"

【问题讨论】:

  • PC 是否加入了域?如果是这样,您不能使用网络策略/登录脚本吗?

标签: vbscript


【解决方案1】:

您要么必须将它放在 Startup 文件夹中,要么从注册表中运行它。

对于所有用户,使用注册表项HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

对于当前用户,使用注册表项HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

【讨论】:

  • 问题是如何在启动时运行 vbs 脚本而不是从哪里运行
【解决方案2】:

深入

如何自动化 VBScripts 在启动时运行。

第一步

  • 单击Start -&gt; Run -&gt; cmd 或单击search 并输入cmd
  • 按回车
  • 在命令提示符中键入assoc .vbs 哪个应该打印.vbs=VBSFile
  • 在命令提示符下输入ftype VBSFile

应该打印:

vbsfile="%SystemRoot%\System32\WScript.exe" "%1" %*

所以,现在您知道您的 vbscript 文件默认使用 WScript 打开。

  • 在命令提示符中,输入:

    reg查询HKEY_CLASSES_ROOT\Applications\WScript.exe /s

如果你没有看到这个:

HKEY_CLASSES_ROOT\Applications\WScript.exe
    (Standard)    REG_SZ    "%SystemRoot%\System32\WScript.exe" "%1" %*

那么你需要做以下,如果你看到的是上面的,那么你可以跳过并进入第3步

第 2 步

  • 转到:

    开始

    运行

  • 输入:

    注册表编辑器

  • 选择 regedit 按 enter(或双击 regedit)并允许 对您的计算机进行更改的程序

  • 导航到:

HKEY_CLASSES_ROOT\Applications\WScript.exe(如果 WScript.exe 密钥不存在,请右键单击 Applications 并创建新密钥,将其重命名为 WScript.exe)

  • 在右边空白处,有数值的地方,右键 和
  • 选择新的
  • 选择字符串值
  • 在突出显示新值 #1 的名称下,通过键入重命名 (标准)
  • 在数据下,双击空值并输入你得到的值 从上一步开始

"%SystemRoot%\System32\WScript.exe" "%1" %*

第三步

  • 如果您没有打开注册表,

转到:

  • 开始
  • 运行

输入:

regedit

选择应用程序,按 Enter 并允许程序对您的计算机进行更改

  • 否则,如果 regedit 已打开,则:
  • 导航到:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

  • 右键单击运行文件夹
  • 在右边空白处,有数值的地方,右键 并选择新的
  • 选择可扩展字符串值
  • 在新值 #1 突出显示的名称下,键入您的重命名 自己的名字,例如我的脚本
  • 在数据下,双击空值并输入
  • 确保其类型为 REG_EXPAND_SZ,即扩展字符串
"%SystemRoot%\System32\WScript.exe" "C:\Users\me\myFolder\mySub-folder\myFile.vbs" "%1" %*
  • 重新启动您的机器。您的 vbs 应该会自动运行

注意事项:

  • 确保将 .VBS 添加到 Path 环境变量中
  • 如果您想改用 cscript,请在​​第 2 步中输入:

    reg查询HKEY_CLASSES_ROOT\Applications\cscript.exe /s

...而是继续,注意在相关的地方用 cscript 替换 WScript 即这个查询:

reg query HKEY_CLASSES_ROOT\Applications\cscript.exe /s

应该产生这个结果:

(Standard)    REG_SZ    "C:\Windows\System32\cscript.exe" "%1" %*
  • 如果您的键和/或值弄乱了,您可以随时右键单击 搞砸了项目并将其删除。但是,如果您想使用 终端,您可以随时关注:http://ss64.com/nt/reg.html
  • 要检查 WScript 是否是启动应用程序之一,请按 ctrl+alt+delete,选择任务管理器,单击启动。您应该会看到列出的 Microsoft Windows Based Script Host。

【讨论】:

  • 首先,感谢您真正明确的回答!我一直在关注您的回答,直到第 2 步(新建)。我收到了一个错误Cannot create value: Error writing to the registryPS: 我尝试将我的 VBs 文件放在启动路径上,但需要我没有的管理员帐户。知道我还能做些什么来在启动时运行文件吗?
  • 您好,也许是您的公司,例如我的任何客户都不会授予员工完整的管理员权限,以便他们可以改变机器的行为。如果您想继续进行此操作,则必须向该笔记本电脑的所有者征求许可,或者如果它是您自己的笔记本电脑,则您需要更改权限,这完全是另一个话题
【解决方案3】:

只是一个约会,每个人都可能已经知道了。

HKLM 适用于机器上的任何用户,因为意味着本地机器

HKCU 仅适用于当前用户。

【讨论】:

  • 问题是如何在启动时运行 vbs 脚本而不是从哪里运行
【解决方案4】:

将此代码添加到 vbs 脚本的开头 将 myKey 的末尾更改为您要调用的注册表项

Set WshShell = CreateObject("WScript.Shell")
myKey = "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MyVbsScript"
WshShell.RegWrite myKey,WScript.ScriptFullName,"REG_SZ"

【讨论】:

    【解决方案5】:

    简单的方法:

    制作一个bat文件

    WScript.exe "Path\to\your\script.vbs"
    

    从 gpedit.msc 将其添加到启动

    【讨论】:

      【解决方案6】:

      您可以通过

      从注册表或启动中触发 vbscipt
      WScript C:\somefloder\somefolder2\yourscript.vbs
      

      你可以把这一行放在一个值上

      对于机器 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 上的所有用户

      对于当前用户 HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-29
        • 2016-09-16
        • 1970-01-01
        • 1970-01-01
        • 2014-04-13
        • 2021-02-25
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多