Как установить .net4 на компьютер Server 2008 r2 с помощью psremoting в powershell?

3495
Jake

Мне нужно написать скрипт, который устанавливает .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). 

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

3
Похоже, проблема с разрешением, Как вы запускаете скрипт? Ƭᴇcʜιᴇ007 12 лет назад 1
Я выполнял это как администратор с пользователем, который является частью группы администраторов. Запуск сценария без строки «enter-pssession», похоже, не проблема. Jake 12 лет назад 0
Как щелкнуть правой кнопкой мыши-> Запуск от имени администратора на .PS1? Ƭᴇcʜιᴇ007 12 лет назад 0
На самом деле я делаю это на powershell.exe и запускаю его через консоль. Jake 12 лет назад 0
Надеюсь, что вы используете PS 3.0 и Server 2008 R2 системы с обновлением SP1. Кстати, вы можете взглянуть на http://calegp.com/?p=247&cpage=1#comment-177. Lasith 11 лет назад 0

2 ответа на вопрос

0
rezilient

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

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

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

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

Я не смогу использовать Opalis из-за юридических проблем, стоимости и настроек. Powershell был выбран из-за его возможностей удаленного взаимодействия, минимальной настройки и уже установлен на машинах с Server 2008 R2. Надеюсь, это решение поможет кому-то еще! Jake 12 лет назад 0
0
Jake

Я нашел решение этой проблемы с помощью запланированных задач. Установщик .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

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

какое-нибудь окончательное решение? что такое "installdotnet4"? Kiquenet 11 лет назад 0

Похожие вопросы