Windows 7 не запускает Portable Apps Starter на флэш-накопителе

Боюсь, ответ "это не из-за новых функций безопасности", но я все равно спрошу.

У меня есть флэш-накопитель USB, на котором я запускаю Portable Applications (а кто нет, верно?). Я использую 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 запускается, и у меня есть меню.

2 ответа

Решение

К сожалению, вы правы.

Новые функции безопасности Windows 7 не будут запускать программы автозапуска, если они не на оптическом носителе.

Подробнее здесь: Изменения автозапуска в Windows 7.

Это то, что я рассматривал для предыдущего проекта, и в конечном итоге я не начал его, однако мой подход заключался бы в том, чтобы отредактировать следующий сценарий 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: как автоматически запускать командный файл при вставке USB-накопителя в Windows 10?

Другие вопросы по тегам