Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #wip_java_update.ps1
- #Java installer/updater
- #Prerequisites PS 2.0 and http://archive.msdn.microsoft.com/PSTerminalServices. Only tested on 2008 R2.
- #
- #Setup - Change these to meet your needs
- Import-Module PSTerminalServices
- $Serverlist = new-pssession -computername ts01,ts02,ts03
- $Message = "The server is going down for maintenance in 10 minutes. Please save your work and logoff."
- $MailServer = smtp.mail.com
- $MailSender = scripts@mail.com
- $MailRecipient = admin@email.com
- #
- #Begin Install/Update
- #Change logon mode to drain.
- invoke-command -session $serverlist -scriptblock {change logon /drain}
- #Send warning to all users
- get-content x:\scripts\servers.txt | foreach {Get-TSSession -State Active -ComputerName $_ | Send- SMessage $Message}
- #Wait X minutes
- Start-Sleep -seconds 600
- #Force all users to log off
- get-content x:\scripts\servers.txt | foreach {{Get-TSSession -ComputerName $_ -Username [a-z]** | Stop-TSSession –Force}
- #Copy installation application to temp folder on all servers
- get-content x:\scripts\servers.txt | foreach {Copy-Item x:\jre.exe -Destination \\$_\c$\temp}
- #change server mode to install
- invoke-command -session $Serverlist -scriptblock {change user /install}
- #Execute installer
- invoke-command -session $Serverlist -scriptblock {c:\temp\jre.exe /s IEXPLORER=1 /L C:\setup.log}
- #Wait X minutes. Need to add process query and resume when all installs are finished
- Start-Sleep -seconds 360
- #Change user mode to execute
- invoke-command -session $serverlist -scriptblock {change user /execute}
- #Change logon mode to enabled so that users can log back in
- invoke-command -session $serverlist -scriptblock {change logon /enable}
- #Set SMTP server
- $smtp = New-Object Net.Mail.SmtpClient("$MailServer")
- #Send completion email
- $smtp.Send("$MailSender","$MailRecepient","Java Update Completed","Java installed!")
- #Close all remote sessions created in this script
- remove-pssession -session $Serverlist
Advertisement
Add Comment
Please, Sign In to add comment