Windows 7 不会在闪存驱动器上自动运行便携式应用程序启动器

Windows 7 不会在闪存驱动器上自动运行便携式应用程序启动器

恐怕答案是“由于新的安全功能,它不会”,但我还是会问。

我有一个 USB 闪存驱动器,用于运行便携式应用程序(谁没有呢?)。我使用 PStart 启动一个我已经使用了几年的漂亮菜单,将我的配置拨入到一些高效的程序中,所以我不想直接切换到另一个程序。

我在驱动器的根目录中有一个 Autorun.inf。其内容为:

[Autorun]
Open=Applications\pstart\PStart.exe
Action=Start PortableApps
Icon=Applications\PortableAppsMenu\PortableAppsMenu.exe
Label=PortableApps

当我在 Windows 7 上插入设备时,系统会提示我选择各种自动启动项想做:

自动运行对话框

它在 XP 和 Vista 上运行良好,插入 PStart.exe 后就会启动并且我有菜单。

答案1

不幸的是,你是对的。

Windows 7 的新安全功能不会运行自动运行程序,除非它在光学介质上。

更多详情请见:Windows 7 中的自动运行变化

答案2

这是我在之前的项目中考虑过的事情,但最终我并没有开始做,但我的方法是编辑以下 PowerShell 脚本来运行我想要的任何应用程序,在我的例子中,它将弹出除特定 USB 驱动器之外的所有驱动器。基本上,该脚本会监视表中的Win32_VolumeChangeEvent添加内容,然后触发应用程序以及一些事件元数据(例如驱动器号)。它可以适应运行任何应用程序或脚本。

function UsbMountWatcher {
     $alarm = New-Object System.Management.EventQuery
     $alarm.QueryString = "SELECT * FROM Win32_VolumeChangeEvent WHERE EventType = 2"
     New-Object System.Management.ManagementEventWatcher $alarm
}
$pathtompcmdrun = $env:PROGRAMFILES + "\Windows Defender\MpCmdRun.exe"
$watcher = UsbMountWatcher
while ($true) {
     $event = $watcher.WaitForNextEvent()
     $driveletter = $event.Properties["DriveName"].Value.ToString() + "\"
     &$pathtompcmdrun "-Scan" "-File" $driveletter "-DisableRemediation"
     Write-Output $LASTEXITCODE
}
$watcher.Stop()

来源:https://gallery.technet.microsoft.com/Custom-scan-a-USB-drive-17b9be2a

进一步阅读:https://alitarhini.wordpress.com/2010/11/05/listen-for-removable-device-events/

这也应该解决合并但不同的 Windows 10 问题:如何在 Windows 10 中插入 USB 驱动器时自动运行批处理文件?

相关内容