是否可以在 Windows 7 上使用 Task Scheduler 进行安全的 USB 自动运行?

Vil*_*nen 5 windows-7 autorun scheduled-tasks

我发现Windows 7 不允许在 USB 驱动器上自动运行

是否可以通过使用任务计划程序设置任务来规避这一点(以安全的方式),插入 USB 驱动器时会触发该任务?乍一看,我找不到任何与事件查看器相关的事件。

mto*_*one 4

我和你有同样的问题,并使用 Scripting Guy 博客(此处此处)中的技术使用 powershell(Windows 内置脚本)解决了一些问题。该脚本作为后台进程持续运行,您可以在系统登录时使用任务计划程序启动该进程。每当插入新驱动器时,脚本就会收到通知,然后执行某些操作(此处您配置脚本而不是任务)。由于它在等待下一个插入的驱动器时基本上暂停,因此您不应该发现它占用太多资源。我来啦:

\n\n

1) 启动 Powershell ISE,可以在开始菜单的 Accessories/Windows Powershell 下找到它。

\n\n

2)将以下内容复制粘贴到Powershell中。

\n\n
\n#需要 -version 2.0\nRegister-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange\nwrite-host (get-date -format s) " 开始脚本..."\ndo{\n $newEvent = Wait-Event -SourceIdentifier volumeChange \n $eventType = $newEvent.SourceEventArgs.NewEvent.EventType\n $eventTypeName = switch($eventType)\n {\n 1 {"配置已更改"}\n 2 {"设备到达"}\n 3 {"设备删除"}\n 4 {"对接"}\n }\n write-host (get-date -format s) " 检测到事件 = " $eventTypeName\n if ($eventType -eq 2)\n {\n $ driveLetter = $newEvent.SourceEventArgs.NewEvent.DriveName\n $driveLabel = ([wmi]"Win32_LogicalDisk=\'$driveLetter\'").VolumeName\n write-host (get-date -format s) " 驱动器名称 = " $driveLetter\n write-host (get-date -format s) " Drive label = " $driveLabel\n # 如果驱动器符合指定条件则执行进程\n if ($driveLetter -eq \'Z:\' -和 $driveLabel -eq \'Mirror\')\n {\n write-host (get-date -format s) " 在 3 秒内启动任务..."\n start-sleep -seconds 3\n start-process "Z:\\sync.bat"\n }\n }\n Remove-Event -SourceIdentifiervolumeChange\n} while (1-eq1) #循环直到下一个事件\nUnregister-Event -SourceIdentifiervolumeChange\n
\n\n

3)您需要修改上面的脚本,告诉脚本要查找什么驱动器,以及要执行什么。要更改的两行是:

\n\n
    \n
  • if ($driveLetter -eq \'Z:\' -and $driveLabel -eq \'Mirror\')

    \n\n

    我的名为“Mirror”的 USB 硬盘被设置为 Z: 驱动器。if ($driveLabel -eq \'MyDiskLabel\')如果您不关心这封信,您可以直接使用。

  • \n
  • start-process "Z:\\sync.bat"

    \n\n

    您想要执行的任何任务的路径。在我的示例中,我在 USB 驱动器上创建了一个批处理文件,该文件启动 3-4 个备份任务,但它可以是任何内容。

  • \n
\n\n

4) 完成后,将脚本保存在某个位置(扩展名 .ps1),然后在任务计划程序中创建一个任务,让脚本在后台运行。我的看起来像这样:

\n\n
    \n
  • 触发:登录时
  • \n
  • 行动:启动一个程序
  • \n
  • 程序/脚本:powershell
  • \n
  • 添加参数:-ExecutionPolicy Unrestricted -File "D:\\Stuff\\Backup script.ps1"
  • \n
\n\n

5) 瞧\xc3\xa0!

\n\n

6) 额外的东西:\n如果您希望隐藏脚本窗口,请使用以下参数:

\n\n
    \n
  • 添加参数:-WindowStyle Hidden -ExecutionPolicy Unrestricted -File "D:\\Stuff\\Backup script.ps1"
  • \n
\n\n

如果要将脚本消息输出到日志文件(每次脚本启动时(即登录时)都会被覆盖),请使用以下任务操作:

\n\n
    \n
  • 程序/脚本:cmd
  • \n
  • 添加参数: /c powershell -WindowStyle Hidden -ExecutionPolicy Unrestricted -File "D:\\Stuff\\Backup script.ps1" > "D:\\Stuff\\script log.txt"
  • \n
\n\n

任何时候你想结束正在运行的隐藏脚本,都可以在任务管理器中结束“Powershell”进程。

\n


归档时间:

查看次数:

10453 次

最近记录:

11 年,2 月 前