Solved

script to install msi package remotely in 100 servers

Posted on 2011-09-16
11
3,144 Views
1 Endorsement
Last Modified: 2012-05-12
hi,

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

thanks
1
Comment
Question by:cawasaki
  • 7
  • 4
11 Comments
 

Author Comment

by:cawasaki
ID: 36553832
any help plz?
0
 
LVL 11

Expert Comment

by:marek1712
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?
0
 

Author Comment

by:cawasaki
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 !
0
 

Author Comment

by:cawasaki
ID: 36565673
its very difficult?
0
 
LVL 11

Expert Comment

by:marek1712
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
    Exit-PSSession
}

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 ;)
0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 

Author Comment

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

thanks
0
 

Author Comment

by:cawasaki
ID: 36569712
hi,

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
d.
  -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
0
 

Author Comment

by:cawasaki
ID: 36569973
for the event,here the information:

application event

event 1033

source: MsiInstaller

thanks
0
 
LVL 11

Accepted Solution

by:
marek1712 earned 500 total points
ID: 36579185
Enable PS Remoting via GPO:
http://blog.powershell.no/2010/03/04/enable-and-configure-windows-powershell-remoting-using-group-policy/
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


Then:
 
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.
0
 
LVL 11

Expert Comment

by:marek1712
ID: 36579188
Meh, it should be:

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

Author Comment

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

Featured Post

Maximize Your Threat Intelligence Reporting

Reporting is one of the most important and least talked about aspects of a world-class threat intelligence program. Here’s how to do it right.

Join & Write a Comment

This is a PowerShell web interface I use to manage some task as a network administrator. Clicking an action button on the left frame will display a form in the middle frame to input some data in textboxes, process this data in PowerShell and display…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
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…
This video explains how to create simple products associated to Magento configurable product and offers fast way of their generation with Store Manager for Magento tool.

743 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

Need Help in Real-Time?

Connect with top rated Experts

15 Experts available now in Live!

Get 1:1 Help Now