Powershell для установки всех exe и msu в папку на удаленном сервере - PullRequest
0 голосов
/ 25 июня 2018

Мне удалось скопировать все исправления и исполняемые файлы с одного сервера в список серверов с помощью этого решения Теперь я пытаюсь установить все исправления и EXE в папку назначения на удаленном сервере. Использование

$comname = Get-Content -Path ‘H:\InstallationFiles\server.txt’
$fname = Get-ChildItem ‘H:\InstallationFiles\Patch’ -Recurse -force | select-object FullName
Set-Item wsman:\localhost\client\trustedhosts * -Force
Foreach($sname in $comname){
    Foreach($installpath in $fname){
         $newproc=([WMICLASS]”\\$_\root\cimv2:win32_Process”).Create(“$installpath /s”)
          If($newproc.ReturnValue -eq 0){
              Write-Host $_ $newproc.ProcessID
          }
           Else {
               Write-Host $_ Process Create failed with $newproc.ReturnValue
           }
      }
}

Но я получаю ошибку ниже

Process Create failed with
Cannot convert value “\\\root\cimv2:win32_Process” to type “System.Management.ManagementClass”. Error: “Invalid parameter “
At H:/InstallationFiles/installfiletoserver.ps1:15 char:9
+            $newproc=([WMICLASS]”\\$_\root\cimv2:win32_Process”).Create(“$installFil ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo : InvalidArgument: (:) [], Runtime.Exception
          + FullyQualfiedErrorId : InvalidCastToWMIClass

Даже я пытался использовать команду Invoke, но это тоже не получается.

Invoke-command -ComputerName $sname -ScriptBlock {
       Start-Process $installpath -ArgumentList ‘/silent’ -wait
}

Команда Invoke завершается неудачно с

[servername] Connection to remote server servername  failed with the following error message : The WinRM client cannot process the request because the server name cannot be resolved l. For more information, see the about_Remote_Troubleshooting Help topic.
+ CategoryInfo : OpenError: (servername:String) [], PSRemotingTransportException
+FullyQualifiedErrorId : ComputerNotFound, PSSessionStateBroken

Я получаю эту ошибку для всех серверов и даже для запуска других команд, таких как new-item и т. Д. На серверах с блоком сценария в Invoke-Command. Я не уверен, что мне не хватает. Может кто-нибудь помочь мне установить все exe и msu в папку на удаленном сервере с помощью Powershell? Спасибо!

Ответы [ 2 ]

0 голосов
/ 02 июля 2018
$comname = Get-Content -Path ‘H:\InstallationFiles\server.txt’

$ fname = Get-ChildItem ‘H: \ InstallationFiles \ Patch’ -Recurse -force | объект выбора FullName Set-Item wsman: \ localhost \ client \ trusthosts * -Force Foreach ($ sname в $ comname) { Foreach ($ installpath в $ fname) { $ newproc = ([WMICLASS] »\ $ sname \ root \ cimv2: win32_Process»). create («wusa.exe $ installpath / extract: $ destpath«) If ($ newproc.ReturnValue -eq 0) { Write-Host $ _ $ newproc.ProcessID } Остальное { Write-Host $ _ Процесс Создать не удалось с $ newproc.ReturnValue } } }

$ fname = Get-ChildItem ‘H: \ InstallationFiles \ Patch * .cab’ -Recurse -force | объект выбора FullName Foreach ($ sname в $ comname) { Foreach ($ installpath в $ fname) { $ newproc = ([WMICLASS] »\ $ sname \ root \ cimv2: win32_Process»). create («DISM.exe / online / Add-package / packagepath: $ destpath«) If ($ newproc.ReturnValue -eq 0) { Write-Host $ _ $ newproc.ProcessID } Остальное { Write-Host $ _ Процесс Создать не удалось с $ newproc.ReturnValue } } }

Попробуйте это .. Но я думаю, что мы добавим ожидание для wusa.exe и dism.exe .., чтобы ждать, чтобы закрыть его ..

так что попробуйте только с одним файлом .. для начала ...

0 голосов
/ 26 июня 2018

Файл MSU, который вы пытаетесь установить?если да, вам нужно распаковать файл .. я думаю, что сгенерирует cab-файл ... и чем вы сможете это сделать.

$newproc=([WMICLASS]”\\$_\root\cimv2:win32_Process”).Create(“DISM.exe /Online /Add-Package /PackagePath:$installpath ”)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...