2

Я сделал ему следующий код, используя код, присутствующий на этом форуме.Установите .msi удаленно с помощью Powershell

cls 
$computername = Get-Content 'C:\Users\C201578-db\Documents\server.txt' 
$sourcefile = "\\iceopsnas\LNT_SoftwareRep.grp\CORE\COTS\EMC\Avamar\Avamar_7.0\CR06794393\AvamarClient-windows-x86_64-7.0.102-47.msi" 
#This section will install the software 
foreach ($computer in $computername) 
{ 
    $destinationFolder = "\\$computer\C$\Avamar" 
    #This section will copy the $sourcefile to the $destinationfolder. If the Folder does not exist it will create it. 
    if (!(Test-Path -path $destinationFolder)) 
    { 
     New-Item $destinationFolder -Type Directory 
    } 
    Copy-Item -Path $sourcefile -Destination $destinationFolder 
    Write-Host "Copied Successfully" 
    Invoke-Command -ComputerName $computer -ScriptBlock { & cmd /c "msiexec.exe /i C:\Avamar\AvamarClient-windows-x86_64-7.0.102-47.msi" /qb ADVANCED_OPTIONS=1 CHANNEL=100} 
    Write-Host "Installed Successfully" 
} 

Я пробовал все перестановки и комбинации, но не повезло. Пробовал все предложения, которые я получил при публикации этого вопроса, но ничего. Процедура копирования выполнена успешно, но файл .msi не устанавливается. Возможно, этот вопрос будет отмечен дублирующимся, но все же предложит некоторые изменения, прежде чем делать это.

+0

@Kayasax: Я могу открыть удаленный сеанс. Но не работает. Что касается psexec, у меня нет такой идеи. можете ли вы предоставить и отредактировать для него. thnx – user2068804

+0

любая ошибка msg работает msiexec с удаленного сеанса? для psexec попробуйте что-то вроде 'psexec.exe \\ $ computer -s -u Adminuser -p AdminPassword msiexec/i C: \ Avamar \ AvamarClient-windows-x86_64-7.0.102-47.msi/qb ADVANCED_OPTIONS = 1 CHANNEL = 100 ' –

+0

Ошибка msg от msiexec. Также, пожалуйста, скажите мне, где должен быть размещен вышеуказанный код? Я не совсем понимаю это. Thnx – user2068804

ответ

1

В качестве обходного пути (отсутствие деталей не помогает устранить проблему), вы можете использовать сторонний инструмент psexec.exe для запуска установщика на удаленном хосте.

Попробуйте заменить Invoke-команду с

psexec.exe \\$computer -s -u Adminuser -p AdminPassword msiexec /i C:\Avamar\AvamarClient-windows-x86_64-7.0.102-47.msi /qb ADVANCED_OPTIONS=1 CHANNEL=100 
+1

Не могли бы вы изменить приведенный выше сценарий и сообщить мне, возможно ли изменить указанный выше код для установки файла .exe. На самом деле я пытаюсь удалять SQL удаленно с помощью powershell. Пожалуйста, дайте предложение ur – user2068804

2

попробовать определение вашей команды в качестве блока сценария вместо:

$command = "msiexec.exe /i C:\Avamar\AvamarClient-windows-x86_64-7.0.102-47.msi" 
    $scriptblock = [Scriptblock]::Create($command) 
    Invoke-Command -ComputerName $computer -ScriptBlock $scriptblock 
0

Это работает отлично с PsExec.exe, я установил его на более чем 100 рабочих столов пользователя. Установите IP-адреса своего пользователя в файле clients.txt. Ниже мой код:

cls 
$computername = Get-Content 'C:\Setup\clients.txt' 
$sourcefile = "C:\Setup\MySyncSvcSetup.msi" 
$serviceName = "MySyncWinSvc" 
$adminUserName = "username" 
$adminPassword = "[email protected]" 
#This section will install the software 
foreach ($computer in $computername) 
{ 
    #First uninstall the existing service, if any 
    C:\PSTools\psexec.exe \\$computer -s -u $adminUserName -p $adminPassword msiexec.exe /x C:\SetupFiles\MySyncSvcSetup.msi /qb 
    Write-Host "Uninstalling Service" 
    $destinationFolder = "\\$computer\C$\SetupFiles" 
    #This section will copy the $sourcefile to the $destinationfolder. If the Folder does not exist it will create it. 
    if (!(Test-Path -path $destinationFolder)) 
    { 
     New-Item $destinationFolder -Type Directory 
    } 
    Copy-Item -Path $sourcefile -Destination $destinationFolder 
    Write-Host "Files Copied Successfully" 
    C:\PSTools\psexec.exe \\$computer -s -u $adminUserName -p $adminPassword msiexec.exe /i C:\SetupFiles\MySyncSvcSetup.msi /qb /l* out.txt 
    Write-Host "Installed Successfully" 
    C:\PSTools\psexec.exe \\$computer -s -u $adminUserName -p $adminPassword sc.exe start $serviceName 
    Write-Host "Starting the Service" 
}