Удаленная установка программ по сети powershell

Я пытаюсь установить .NET Framework 4.5 на удаленный сервер Win2008R2 через сеанс PowerShell таким образом (пользователь находится в группе администраторов сервера):

$session = New-PSSession -ComputerName $server -Credential Get-Credential Invoke-Command -Session $session -ScriptBlock

И тогда я получаю эту ошибку:

Executable: C:tempdotnetfx45_full_x86_x64.exe v4.5.50709.17929 — logging level: standard — Successfully bound to the ClusApi.dll Error 0x80070424: Failed to open the current cluster Cluster drive map: » Considering drive: ‘C:’. Drive ‘C:’ has been selected as the largest fixed drive Directory ‘C:aa113be049433424d2d3ca’ has been selected for file extraction Extracting files to: C:aa113be049433424d2d3ca Error 0x80004005: Failed to extract all files out of box container #0. Error 0x80004005: Failed to extract Exiting with result code: 0x80004005 === Logging stopped: 2013/09/04 16:29:51 ===

Если я запускаю команду локально на сервере — все работает нормально.

Удаленная установка программ в домене с помощью msi файла


Start-Process -FilePath «C:tempdotnetfx45_full_x86_x64.exe» ` -ArgumentList «/q /norestart» -Wait

Источник: poweruser.guru

Установка .exe на удаленном компьютере из PowerShell

В какой ОС работает система (станция управления или центральная система), где эти сценарии выполняются? В Windows XP существует известная проблема с WMI и -asJob.
Проверьте это: Запрос WMI Script как задание В таком случае я бы предложил перейти к системе Windows 7, а затем запустить Script для удаленной установки .exe на всех других машинах.

ответил(а) 2020-04-02T14:18:24.945345+03:00 3 года, 3 месяца назад

добавить комментарий

Читайте также:
Как убрать из автозапуска программы Яндекс

пожаловаться

Еще в рубрике

Powershell: существует ли ограничение на количество типов файлов вывода, которые у меня есть?

Я хочу добавить последние измененные дату и время в этот сценарий powershell

Как определить [bigint] в powershell windows7?

Не удалось обрезать/отрезать «$»

Другие вопросы

Как выполнить поиск сертификатов типа Server Exchange или Server Authentication, установленных на главном компьютере с помощью PowerShell?

Сортируйте Hashtable и назначьте ее новой переменной в Powershell

Прочитать Json Object в Powershell 2.0

  1. Вопросы
  2. Powershell-v2.0
  3. Установка .exe на удаленном компьютере из PowerShell

Источник: progi.pro

Дружим PowerShell и SSH на Windows и Linux

В данной статье рассмотрим возможности использования SSH между Windows и Linux компьютерами, а также использовании PowerShell через SSH в кроссплатформенной среде.

Как установить приложения с помощью Powershell

Выполенине удаленных команд PowerShell и SSH

Устанавливаем OpenSSH на Windows

Начиная с Windows 10 1709 все очень просто. Нужно просто открыть приложение настроек. Далее выбираем приложения-> управление дополнительными компонентами-> сервер openssh и устанавливаем его. Или выполнить команду powershell

PowerShell
Get-WindowsCapability -Online | ? name -like * ssh * | Add-WindowsCapability -Online

Эта же команда подойдет для Windows Server 1709.

Для Windows Server 2016, Windows 8.1 и предыдущих версии нам понадобится OpenSSH дистрибутив, который можно скачать с https://github.com/PowerShell/Win32-OpenSSH/releases в самом простом случае, нужно будет скаченный архив извлечь в C:Program FilesOpenSSH, и запустить скрипт install-ssh.ps1. Если что-то пошло не так воспользуйтесь следующей статьей https://github.com/PowerShell/Win32-OpenSSH/wiki/Install-Win32-OpenSSH

Далее запускаем службу OpenSSH

Настраиваем SSH

В общем-то теперь можно пользоваться ssh.

С компьютера на ubuntu или windows запускаем

ssh — l UserName IP

Где username имя пользователя, а ip – IP адрес компьютера которым вы желаете управлять. Далее необходимо ввести пароль пользователя, обратите внимание если вы используете учетную запись Microsoft необходимо указать имя пользователя локального, а пароль уже от учетной записи Microsoft. У меня возникли сложности с вводом паролей с русскими символами.

Читайте также:
Мои документы тур программа

Если не хочется использовать парольную идентификацию при подключении к Windows компьютеру можно использовать идентификацию по ключу, для этого на ubuntu запускаем

ssh — keygen

После чего необходимо скопировать содержимое файла ~/.ssh/id_rsa.pub с ubuntu в файл c:usersпользователь.sshauthorized_keys на windows. Придется это сделать вручную, т.к. ssh-copy-id не отрабатывает корректно для windows машины. В результате мы можем запускать

ssh — l UserName IP

и система не будет требовать пароль.

Кстати, если надо подключаться к Linux машине без пароля, то тогда запускаем ssh-keygen на Windows машине и копируем содержимое c:usersпользователь.sshid_rsa.pub в ~/.ssh/authorized_keys .

Настраиваем подключение не к cmd, а к powershell

По умолчанию OpenSSH будет подключать нас к cmd, безусловно мы можем запустить команду

powershell

Однако это не всегда удобно и не то, к чему мы стремимся.

Для того чтобы при подключении по SSH мы автоматически попадали в PowerShell можно изменить значение ключа реестра ComputerHKEY_LOCAL_MACHINESOFTWAREOpenSSHDefaultShell на путь к исполняемому файлу PowerShell. Это будет выглядеть примерно так:

PowerShell

New-ItemProperty -Path «HKLM:SOFTWAREOpenSSH» -Name DefaultShell -Value «C:WindowsSystem32WindowsPowerShellv1.0powershell.exe» -PropertyType String -Force

Если кто-то знает как это же сделать для Linux, напишите в комментариях.

Взаимодействие PowerShell и SSH

Обычный Windows PowerShell основанный на .Net Framework не может использовать openssh, зато PowerShell Core, основанный на кроссплатформенной .Net Core может. При использовании PowerShell Core вы должны дополнительно тестировать ваши скрипты.

Источник: get-powershell.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru