Improve company productivity with a Business Account.Sign Up


script to install msi package remotely in 100 servers

Posted on 2011-09-16
Medium Priority
1 Endorsement
Last Modified: 2012-05-12

i need help to install a package to 100 WINDOWS 2008 SERVERS.

the script must do this from txt file with server list (one per line):

1-copy the msi file from my local c:\package.msi to remote folder c:\install

2-install msi with silent mode

3-remove the c:\install folder

4-get report to be sure for success of installation

5-reboot the server

Question by:cawasaki
  • 7
  • 4

Author Comment

ID: 36553832
any help plz?
LVL 11

Expert Comment

ID: 36561909
OK. Some questions first:
- is PS configured via GPO (I mean - Execution Policy, ACL, CredSSP, etc)?
- what kind of package is this? Some hotfix or custom program? If latter - how does it report the results? By creating registry entry or some file in %windir% or whatever?

Author Comment

ID: 36562732
hi marek1712,

powershell is installed in all server. no problem to execute powershell remotely, i have many worked script....

the msi package is the trend antivirus, it uninstall the acutal installed antivirus and install the new one.

for the :
4-get report to be sure for success of installation, it can be do bye export the applicaiton event, i have not the exact number of event for succesfull install of trend antivirus but i can give you it.

sorry for my bad english !
Worried about phishing attacks?

90% of attacks start with a phish. It’s critical that IT admins and MSSPs have the right security in place to protect their end users from these phishing attacks. Check out our latest feature brief for tips and tricks to keep your employees off a hackers line!


Author Comment

ID: 36565673
its very difficult?
LVL 11

Expert Comment

ID: 36568437
Well, this script should be easy:
#List of the servers - one per row. No semicolons, etc
$pc_list = Get-Content c:\list.txt
#Loop to get through each server from the list
#In it we'll remote to the machine (Enter-PSSession) and check if the target dir DOESN'T exist.
#If it isn't there - it'll be created.
#Next - the target file will be copied and installed using msiexec (silently, without restart)
#EVERY action will be  recorded in a file specified after /l switch
#Then - the process will quit.
foreach ($pc in $pc_list)
    Enter-PSSession -ComputerName $pc
    if (!(Test-Path c:\install)) {New-Item -ItemType Directory -Path C:\install}
    Copy-Item \\server\your_file.msi C:\install
    msiexec /i C:\install\your_file.msi /quiet /norestart /l* \\server\some_path\$pc.log

Open in new window

Beware though - I don't have test environment ATM, so can't really test it out. I'd suggest you to create a VM and use it as a lab for this script.
Also - try to install it manually on one of the machines and check the eventlog then. I can't include events if I don't know what we're looking for ;)
If you have remoting configured then there should be no issues (we don't even have to use CredSSP so it's one possible problem less).

The downside of this script is that it'll perform the actions sequentially - meaning it'll go server by server. The other idea would be to run the script block as a job - it'd perform simultaneously then. Haven't used it yet though ;)

Author Comment

ID: 36568664
OK, i will test this script and report the result in 1 hour


Author Comment

ID: 36569712

ok have a problem with enter-pssesison command, i suspect a remote service is off.

i suggest a bat or cmd script with psexec use if you can help me?

the error:

Enter-PSSession : Connecting to remote server failed with the following error m
essage : WinRM cannot process the request. The following error occured while us
ing Kerberos authentication: The network path was not found.
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specifie
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does
not exist.

thanks for your help

Author Comment

ID: 36569973
for the event,here the information:

application event

event 1033

source: MsiInstaller

LVL 11

Accepted Solution

marek1712 earned 2000 total points
ID: 36579185
Enable PS Remoting via GPO:
If you want to do this psexec way that badly (make sure firewal isn't blocking it)...
OK - first the installation (you may need to specify DOMAIN\username and password with -u and -p switches):

psexec @computer_list.txt -c \\path\to_the_following.BAT
if not exist c:\install md c:\install
copy \\server\Path_to_file.msi c:\install
msiexec /i c:\install\file.msi /quiet /norestart /l* \\server\some_path\%computername%.log

Open in new window

psloglist @computer_list.txt -i 10 -n 5 Application >> \\server\Path_to_log_file.log

Open in new window

to save results to one log file. It'll save five most recent 1033 events to the common file (as this event is not specific to your AV software some other installation logs may get in the way).
As always /? switch will help you.
LVL 11

Expert Comment

ID: 36579188
Meh, it should be:

psloglist @computer_list.txt -i 1033 -n 5 Application >> \\server\Path_to_log_file.log

Author Comment

ID: 36593157
ok i will test this script and report result

Featured Post

Improved Protection from Phishing Attacks

WatchGuard DNSWatch reduces malware infections by detecting and blocking malicious DNS requests, improving your ability to protect employees from phishing attacks. Learn more about our newest service included in Total Security Suite today!

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Just after setting up Cloud PBX connectivity and migrated Skype users to SFBO, we noticed inbound calls not working but outbound calls would work.
How to Import Outlook PST file to Exchange Server Mailbox without Powershell and Exchange Admin Center. Use SysTools Exchange Import Tool to Move PST file in Exchange 2016 / 13 / 10/ 07 Server Mailbox including Contacts, Calendar, Task and journal d…
Learn several ways to interact with files and get file information from the bash shell. ls lists the contents of a directory: Using the -a flag displays hidden files: Using the -l flag formats the output in a long list: The file command gives us mor…
Screencast - Getting to Know the Pipeline

588 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question