2

Я пытаюсь создать сценарий PowerShell для запуска программ после загрузки компьютера. Я убираю вещи из области "запуска" реестра и помещаю их в сценарий в том порядке, в котором я хочу, и после вставки некоторых задержек для элементов, которые не важны для немедленного запуска. Это код для запуска Outlook, например:

# Outlook
Start-Sleep -s 10
Invoke-Item "c:\Program Files (x86)\Microsoft Office\Office14\OUTLOOK.EXE"

Это работает для путей, у которых нет переключателя, но я не могу заставить его работать, если включен переключатель. Например, это команда запуска для Windows Live Messenger:

c:\Program Files (x86)\Windows Live\Messenger\msnmsgr.exe /background

Таким образом, пробелы также вызывают некоторые проблемы. Я пробовал это:

#Start-Sleep -s 10
$test= {"c:\Program Files (x86)\Windows Live\Messenger\msnmsgr.exe"}
Invoke-Item $test /background

но это тоже не работает.

Есть идеи?

2 ответа2

1

Привет, кто-то в Твиттере помог мне найти решение.

Мне вообще не нужна команда Invoke-Item, и я сначала попробовал без нее, но с амперсандом все заработало. Итак, моя строка должна была быть:

& 'c:\Program Files (x86)\Windows Live\Messenger\msnmsgr.exe' /background

Надеюсь, что это поможет кому-то еще в будущем, так как я не мог найти много онлайн.

1

Используйте Invoke-Expression :

#Start-Sleep -s 10
$test= "c:\Program Files (x86)\Windows Live\Messenger\msnmsgr.exe /background"
Invoke-Expression $test 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .