Я пытаюсь установить .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
- Вопросы
- Powershell-v2.0
- Установка .exe на удаленном компьютере из PowerShell
Источник: progi.pro
Дружим PowerShell и SSH на Windows и Linux
В данной статье рассмотрим возможности использования SSH между Windows и Linux компьютерами, а также использовании PowerShell через SSH в кроссплатформенной среде.
Как установить приложения с помощью Powershell
Устанавливаем 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