Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Powershell Start-Process msiexec on a remote machine not working

For some reason Start-Process msiexec won't work when run through invoke command on a remote machine. I looked it up and while some people recommend using psiexec i have seen a lot of people using the plain old invoke-command to start msi installers on remote machines.

This is the code i am currently using:

$session = New-PSSession -computername $computerName -ea stop

$command = {

    Param(
    [Parameter()]
    [string]$computerName,

    [Parameter()]
    [string]$domain,

    [Parameter()]
    [string]$user,

    [Parameter()]
    [string]$password,

    [Parameter()]
    [string]$installDir
    )

    $msiArgumentList = "/i C:\Installer.msi /l c:\log.txt /quiet /qr /norestart IAGREE=Yes DOMAIN=$domain ACCOUNT=$user PASSWORD=$password PASSWORDCONFIRM=$password INSTALLDIR=$installDir"

        Start-Process msiexec -ArgumentList $msiArgumentList -Wait

}

Invoke-Command -session $session -ScriptBlock $command -ArgumentList $computerName, $domain, $user, $password, $installDir

Remove-PSsession -session $session

I used the same method to install services remotely using intallutil and it worked. Scripting is enabled on target machine as well as remoting so by all accounts it should work. Both computers have the same credentials but i still tried adding credentials to both invoke-command and the pssession. I tested the code locally and the installation worked. Remotely it doesn't and no errors what so ever. i can see on the target machine in taskmanager that msiexec is started but nothing happens. I even tried disabling the firewall and still nothing. i tried the & operator to start msiexec and still nothing.

Not sure what else i could try.

like image 629
user1752736 Avatar asked Oct 22 '22 01:10

user1752736


1 Answers

Maybe you try another way, if you don't come forward? Use Task scheduler, to start the command line e.g by creating and executing a task on the remote machine:

SchTasks /CREATE /XML mycommand.xml /TN "thiscommand"
SchTasks /RUN /TN "thiscommand"

This is for starting a task (like) on the local computer. With parameter /S you can create tasks on remote computers as in:

SchTasks /S thatPC /CREATE /XML mycommand.xml /TN "thiscommand"
SchTasks /S thatPC /RUN /TN "thiscommand"

For details of parameters and for syntax of the .xml file defining the task you can look into the help.

like image 177
Philm Avatar answered Nov 03 '22 05:11

Philm