Запустите файл из Powershell, не получив сообщение «Хотите запустить этот файл?»диалог - PullRequest
2 голосов
/ 01 декабря 2010

Я перебираю .exe-файлы в каталоге и извлекаю MSP-файлы.
В идеале это должно происходить тихо.


Эта команда пакетного файла работает отлично.1006 *


Этот сценарий PowerShell практически завершает свою работу.

$exeFiles = Get-ChildItem -path $directory -recurse -include *.exe
foreach($file in $exeFiles) 
{ 
    $appArgs = '/quiet /extract:"' + $directory + '"'
    Start-Process $exeFiles $appArgs -PassThru | Wait-Process
}


Однако Windows 7 выдает «Хотите запустить этот файл?»диалоговое окно.
Как мне сделать PowerShell действительно тихим?

Ответы [ 2 ]

0 голосов
/ 26 мая 2011

Проблема, с которой вы сталкиваетесь, - это доверительные отношения между компьютером и ресурсом, с которого он получает файл. если обе машины принадлежат одному домену, вы не должны получать это диалоговое окно. если они не находятся в домене (т. е. внутренней сети или экстрасети), перейдите в: Панель управления-> Свойства обозревателя -> Безопасность -> Локальная интрасеть -> Сайты нажмите «добавить», введите ресурс, которому хотите доверять

Файл: //servername.domainname

нажмите ОК и попробуйте снова. Лично я пытаюсь сделать это через WMI, кто-нибудь знает как?

0 голосов
/ 01 декабря 2010

Не уверен, что это ваша проблема, но вы вызываете Start-Process для переменной $ exeFiles, а не

for ($file in $exeFiles)
{
    start-process $file (...etc)
}

Вы также передаете аргументы как строку, так что я подозреваю, что они не доходят до exe. если вы передаете аргументы в start-process, они должны быть в форме массива, по одной строке на элемент в массиве. Кроме того, powershell использует $ args и кажется неизменным, поэтому вам нужно другое имя переменной:

Итак, ваш код должен выглядеть примерно так:

$directory = "C:\test"
$exeFiles = Get-ChildItem -path $directory -recurse -include *.exe
foreach($file in $exefiles) 
{ 
    $myArgs = '/quiet', ('/extract:"' + $directory + '"')
    Start-Process $file $myArgs -PassThru | Wait-Process
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...