3

Мне нужно написать скрипт, который устанавливает .net 4 удаленно, используя powershell, на группу компьютеров с Server 2008 R2. Я основал свой скрипт на http://social.technet.microsoft.com/Forums/en-US/winserverpowershell/thread/3045eb24-7739-4695-ae94-5aa7052119fd/.

enter-pssession -computername localhost
$arglist = "/q /norestart /log C:\Users\tempuser\Desktop\dotnetfx4"
$filepath = "C:\Users\tempuser\Desktop\dotNetFx40_Full_setup.exe"
Start-Process -FilePath $filepath -ArgumentList $arglist -Wait -PassThru

После выполнения команды я получаю следующие ошибки журнала (при локальном запуске тех же строк устанавливается .net без ошибок):

Action: Downloading Item 
Failed to CreateJob : hr= 0x80200014
Action: Performing actions on all Items
Action: Performing Action on Exe at C:\Users\tempuser\Desktop\dotnetfx4\SetupUtility.exe
Exe (C:\Users\tempuser\Desktop\dotnetfx4\SetupUtility.exe) succeeded.
 Exe Log File: dd_SetupUtility.txt
Action complete
Action: ServiceControl - Stop clr_optimization_v2.0.50727_32
 ServiceControl operation succeeded!
Action complete
Action: ServiceControl - Stop clr_optimization_v2.0.50727_64
 ServiceControl operation succeeded!
Action complete
Action: Performing Action on Exe at C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\Windows6.1-KB958488-v6001-x64.msu
Exe (C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\Windows6.1-KB958488-v6001-x64.msu) failed with 0x5 - Access is denied. .
 PerformOperation on exe returned exit code 5 (translates to HRESULT = 0x5)
Action complete
 OnFailureBehavior for this item is to Rollback.
Action: Performing actions on all Items
Action complete
Action complete
Action: Downloading http://go.microsoft.com/fwlink/?LinkId=164184&clcid=0x409 using WinHttp 
WinHttpDetectAutoProxyConfigUrl failed with error: 12180
Unable to retrieve Proxy information although WinHttpGetIEProxyConfigForCurrentUser called succeeded
Action complete
C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\TMPF279.tmp.exe: Verifying signature for netfx_Core.mzz
C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\TMPF279.tmp.exe Signature verified successfully for netfx_Core.mzz
Action complete
 Decompression completed with code: 16389
 Decompression of payload failed: C:\Users\tempuser\AppData\Local\Temp\Microsoft .NET Framework 4 Setup_4.0.30319\netfx_Core.mzz
Action complete
 Final Result: Installation failed with error code: (0x80074005) (Elapsed time: 0 00:00:28).

Есть какие-то настройки безопасности или что-то еще, что я пропустил?

2 ответа2

0

Я понял, как заставить это работать, используя Opalis. Существует опция для запуска процесса "Интерактивно" вместо в фоновом режиме. Он по-прежнему работает удаленно, поэтому я могу запустить его на нескольких машинах. Это то, что помогло мне. Вот как Opalis определяет различные способы исполнения:

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

Фон, обычный приоритет - выберите этот параметр, чтобы запустить команду или программу в фоновом режиме с приоритетом процесса, установленным на нормальный. В этом режиме пользовательский интерфейс не будет отображаться.

Фон, низкий приоритет - выберите этот параметр, чтобы запустить команду или программу в фоновом режиме с низким приоритетом процесса. В этом режиме пользовательский интерфейс не будет отображаться. Некоторые программы могут работать некорректно при низком приоритете. Если это так, используйте вместо этого Интерактивный или Backgroud, обычные настройки приоритета.

0

Я нашел решение этой проблемы с помощью запланированных задач. Установщик .net 4 не имеет проблем с выполнением запланированной задачи от имени текущего пользователя-администратора, под которым он не запускается напрямую через powershell.

Создание, запуск и удаление указанной задачи через сеанс psremoting работает нормально.

schtasks /create /tn net4install /sc Once / St 12:34 / sd 01/02/2003 / f / np / RL наивысший / tr M:\SharedDriveLocation\dotNetFx40_Full_setup.exe / q / norestart

schtasks / run /tn net4install / i

schtasks / delete /tn installdotnet4 / f

Ужасно, но это работает. Если кто-нибудь найдет более изящный способ решить эту проблему, у меня все уши =)

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