Несколько соображений при удаленной установке приложений:
1) Для установки потребуется взаимодействие с пользователем?
2) Каким пользователем вы пользуетесь для установки программного обеспечения?
3) Имеет ли тот же пользователь, которого вы используете для установки программного обеспечения, сопоставления дисков и / или доступ для чтения данных сетевого хранилища?
Имея это в виду, я рекомендую следующий подход.
1. Создайте скрипт для копирования всей папки установки в локальную систему
2. Запустите приложение установщика локально, используя системную учетную запись
У меня есть некоторый код, который я построил с powershell некоторое время назад, вот соответствующие строки кода, которые вас заинтересуют:
$computername=read-host "type in a computername"
mkdir \\$computername\c$\MyAppInst
copy-item "X:\Software\App1\setup.exe" "\\$computername\c$\MyAppInst"
start-process "psexec.exe" -args "-accepteula -s -d -i 0 \\$ComputerName wscript.exe C:\MyAppInst\install.vbs" -passthru
Я собрал свою собственную оболочку vbscript, прежде чем начать установку приложения, потому что я не думаю, что psexec может правильно обрабатывать все параметры установки.
В моем случае мы должны были выполнять резервное копирование USMT (scanstate) удаленно. Вот код VB, который мы использовали (отредактированный с указанием информации о компании). Мне нравится использовать escape-символ двойной кавычки в vb (это chr (34)), чтобы облегчить поиск и устранение неисправностей. Еще одна веская причина, по которой я помещаю все в переменную, заключается в том, что я могу wscript.echo эту переменную и посмотреть, что именно запускается.
Set objShell = WScript.CreateObject("WScript.Shell")
fileExecutablePath=chr(34) & "C:\Desktop Tools\USMTv2\scanstate.exe" & chr(34)
fileExecutableSwitches=" " & chr(34) & "\\server\migration_data\" & objShell.Environment("PROCESS").Item("COMPUTERNAME") & chr(34) & " /c /localonly /ue:MYDOMAIN\* /ue:" & objShell.Environment("PROCESS").Item("COMPUTERNAME") & "\*" & " /uel:7 /config:" & chr(34) & "C:\Desktop Tools\USMTv2\config.xml" & chr(34) & " /i:" & chr(34) & "C:\Desktop Tools\USMTv2\migapp-CompanyAppsOnly.xml" & chr(34) & " /i:" & chr(34) & "C:\Desktop Tools\USMTv2\migdocs-Company.xml" & chr(34) & " /l:" & chr(34) & "\\server\migration_data\" & objShell.Environment("PROCESS").Item("COMPUTERNAME") & "\" & objShell.Environment("PROCESS").Item("COMPUTERNAME") & "_usmtBACKUP.log" & chr(34) & " /v:13 /targetWindows7"
return=objShell.Run(fileExecutablePath & fileExecutableSwitches, 0, true)
wscript.echo "Your local data has been backed up. This data will be transferred to your new computer. Anything you now save locally will not be transferred."