Need help writing a Powershell script to automate a silent install of Avamar Client on multiple machines












2















I am writing a Powershell script to automate a silent install of Avamar Client on multiple machines.



Here is the script that I have written so far, but it keeps coming up with errors:



#Variables
$computername=Get-Content C:PSdeploylist.txt
$sourcefile= "\mydomain.orgpublicAvamarClient-windows-x86_64-7.1.100-370.msi"
$credentials = Get-Credential
#This section will install the software
foreach ($computer in $computername)
{
$destinationFolder = "\$computerC$Temp"
#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
Invoke-Command -ComputerName $computer -ScriptBlock {Start-Process 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi' -ArgumentList msiexec /I} -credential $creds
}


Here is the error that I get:



PS C:Usersn1254937> C:UsersmyuseridDesktopAvamarClient remote install.ps1
cmdlet Get-Credential at command pipeline position 1
Supply values for the following parameters:
A positional parameter cannot be found that accepts argument '/I'.
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
+ PSComputerName : test.mydomain.org


What am I doing wrong?










share|improve this question





























    2















    I am writing a Powershell script to automate a silent install of Avamar Client on multiple machines.



    Here is the script that I have written so far, but it keeps coming up with errors:



    #Variables
    $computername=Get-Content C:PSdeploylist.txt
    $sourcefile= "\mydomain.orgpublicAvamarClient-windows-x86_64-7.1.100-370.msi"
    $credentials = Get-Credential
    #This section will install the software
    foreach ($computer in $computername)
    {
    $destinationFolder = "\$computerC$Temp"
    #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
    Invoke-Command -ComputerName $computer -ScriptBlock {Start-Process 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi' -ArgumentList msiexec /I} -credential $creds
    }


    Here is the error that I get:



    PS C:Usersn1254937> C:UsersmyuseridDesktopAvamarClient remote install.ps1
    cmdlet Get-Credential at command pipeline position 1
    Supply values for the following parameters:
    A positional parameter cannot be found that accepts argument '/I'.
    + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
    + PSComputerName : test.mydomain.org


    What am I doing wrong?










    share|improve this question



























      2












      2








      2








      I am writing a Powershell script to automate a silent install of Avamar Client on multiple machines.



      Here is the script that I have written so far, but it keeps coming up with errors:



      #Variables
      $computername=Get-Content C:PSdeploylist.txt
      $sourcefile= "\mydomain.orgpublicAvamarClient-windows-x86_64-7.1.100-370.msi"
      $credentials = Get-Credential
      #This section will install the software
      foreach ($computer in $computername)
      {
      $destinationFolder = "\$computerC$Temp"
      #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
      Invoke-Command -ComputerName $computer -ScriptBlock {Start-Process 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi' -ArgumentList msiexec /I} -credential $creds
      }


      Here is the error that I get:



      PS C:Usersn1254937> C:UsersmyuseridDesktopAvamarClient remote install.ps1
      cmdlet Get-Credential at command pipeline position 1
      Supply values for the following parameters:
      A positional parameter cannot be found that accepts argument '/I'.
      + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
      + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
      + PSComputerName : test.mydomain.org


      What am I doing wrong?










      share|improve this question
















      I am writing a Powershell script to automate a silent install of Avamar Client on multiple machines.



      Here is the script that I have written so far, but it keeps coming up with errors:



      #Variables
      $computername=Get-Content C:PSdeploylist.txt
      $sourcefile= "\mydomain.orgpublicAvamarClient-windows-x86_64-7.1.100-370.msi"
      $credentials = Get-Credential
      #This section will install the software
      foreach ($computer in $computername)
      {
      $destinationFolder = "\$computerC$Temp"
      #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
      Invoke-Command -ComputerName $computer -ScriptBlock {Start-Process 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi' -ArgumentList msiexec /I} -credential $creds
      }


      Here is the error that I get:



      PS C:Usersn1254937> C:UsersmyuseridDesktopAvamarClient remote install.ps1
      cmdlet Get-Credential at command pipeline position 1
      Supply values for the following parameters:
      A positional parameter cannot be found that accepts argument '/I'.
      + CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
      + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.StartProcessCommand
      + PSComputerName : test.mydomain.org


      What am I doing wrong?







      script powershell






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 2 '15 at 21:56









      DavidPostill

      104k25225259




      104k25225259










      asked Apr 2 '15 at 21:50









      nicknick

      1112




      1112






















          1 Answer
          1






          active

          oldest

          votes


















          0














          The definition for -ArgumentList is <String>, which is an array of strings.



          As-is, it's seeing it as -ArgumentList msiexec, followed by /I which isn't a valid argument for Start-Process.



          To specify multiple arguments you need to provide them as an array of strings, which can be written as a comma-separated list in PowerShell. So to specify your two arguments you'd use -ArgumentList 'msiexec','/I'.



          Having said that, I don't believe it will work even if you make that correction. As-is, you're telling it to run the .MSI file, and feeding the .MSI file two arguments: msiexec and /I.



          What you should be aiming to do is start msiexec, specifying the .MSI file and the /I as arguments for msiexec.



          So try something like:



          {Start-Process 'msiexec' -ArgumentList 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


          Or just:



          {Start-Process 'msiexec' 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


          ...since -ArgumentList is actually optional (like -FilePath is).






          share|improve this answer























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "3"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f897265%2fneed-help-writing-a-powershell-script-to-automate-a-silent-install-of-avamar-cli%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            The definition for -ArgumentList is <String>, which is an array of strings.



            As-is, it's seeing it as -ArgumentList msiexec, followed by /I which isn't a valid argument for Start-Process.



            To specify multiple arguments you need to provide them as an array of strings, which can be written as a comma-separated list in PowerShell. So to specify your two arguments you'd use -ArgumentList 'msiexec','/I'.



            Having said that, I don't believe it will work even if you make that correction. As-is, you're telling it to run the .MSI file, and feeding the .MSI file two arguments: msiexec and /I.



            What you should be aiming to do is start msiexec, specifying the .MSI file and the /I as arguments for msiexec.



            So try something like:



            {Start-Process 'msiexec' -ArgumentList 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


            Or just:



            {Start-Process 'msiexec' 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


            ...since -ArgumentList is actually optional (like -FilePath is).






            share|improve this answer




























              0














              The definition for -ArgumentList is <String>, which is an array of strings.



              As-is, it's seeing it as -ArgumentList msiexec, followed by /I which isn't a valid argument for Start-Process.



              To specify multiple arguments you need to provide them as an array of strings, which can be written as a comma-separated list in PowerShell. So to specify your two arguments you'd use -ArgumentList 'msiexec','/I'.



              Having said that, I don't believe it will work even if you make that correction. As-is, you're telling it to run the .MSI file, and feeding the .MSI file two arguments: msiexec and /I.



              What you should be aiming to do is start msiexec, specifying the .MSI file and the /I as arguments for msiexec.



              So try something like:



              {Start-Process 'msiexec' -ArgumentList 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


              Or just:



              {Start-Process 'msiexec' 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


              ...since -ArgumentList is actually optional (like -FilePath is).






              share|improve this answer


























                0












                0








                0







                The definition for -ArgumentList is <String>, which is an array of strings.



                As-is, it's seeing it as -ArgumentList msiexec, followed by /I which isn't a valid argument for Start-Process.



                To specify multiple arguments you need to provide them as an array of strings, which can be written as a comma-separated list in PowerShell. So to specify your two arguments you'd use -ArgumentList 'msiexec','/I'.



                Having said that, I don't believe it will work even if you make that correction. As-is, you're telling it to run the .MSI file, and feeding the .MSI file two arguments: msiexec and /I.



                What you should be aiming to do is start msiexec, specifying the .MSI file and the /I as arguments for msiexec.



                So try something like:



                {Start-Process 'msiexec' -ArgumentList 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


                Or just:



                {Start-Process 'msiexec' 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


                ...since -ArgumentList is actually optional (like -FilePath is).






                share|improve this answer













                The definition for -ArgumentList is <String>, which is an array of strings.



                As-is, it's seeing it as -ArgumentList msiexec, followed by /I which isn't a valid argument for Start-Process.



                To specify multiple arguments you need to provide them as an array of strings, which can be written as a comma-separated list in PowerShell. So to specify your two arguments you'd use -ArgumentList 'msiexec','/I'.



                Having said that, I don't believe it will work even if you make that correction. As-is, you're telling it to run the .MSI file, and feeding the .MSI file two arguments: msiexec and /I.



                What you should be aiming to do is start msiexec, specifying the .MSI file and the /I as arguments for msiexec.



                So try something like:



                {Start-Process 'msiexec' -ArgumentList 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


                Or just:



                {Start-Process 'msiexec' 'c:tempAvamarClient-windows-x86_64-7.1.100-370.msi','/I'}


                ...since -ArgumentList is actually optional (like -FilePath is).







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Apr 3 '15 at 0:56









                Ƭᴇcʜιᴇ007Ƭᴇcʜιᴇ007

                98.9k14156212




                98.9k14156212






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Super User!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f897265%2fneed-help-writing-a-powershell-script-to-automate-a-silent-install-of-avamar-cli%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

                    Mangá

                    Eduardo VII do Reino Unido