spark.ps1 5.32 KB
clear
#
#	Este script tem por finalidade instalar um aplicativo com base
#	nos parametros estabelecidos abaixo
#
#
#	Desenvolvido por Emerson
#	Versão do script 1.4 02/08/2017
#	1.4   17-12-12  - reformulado para uso com GPO, incluido spark.properties - warley-cti
#	1.3   17-08-02	- reorganizado as pastas de instalação \\gr-fs\install\Padrao
#	1.2.1 17-07-31 	- ajustado para instalar a versão 2.8.3
#	1.2   17-07-05 	- ajustado para instalar nova versão e excluir arquivo de instalação antigo
#	1.1   17-07-04 	- ajustado a linha para geração do arquivo de LOG substituindo o comando echo pelo add-content
#	1.0   17-06-30 	- criado o script

New-Item $env:TEMP\spark.properties -type file -force -value "#Spark Settings 
#Fri Jul 28 21:20:52 BRT 2017
username=SeuSiape
ccAdvancedConfig=true
hostAndPort=false
proxyEnabled=false
windowTakesFocus=false
useVersionAsResource=false
compressionOn=false
notifyOnOffline=false
disableAsteriskToasterPopup=false
checkForBeta=false
trustStorePassword=
videoDevice=imgstreaming\:0
audioDevice=audiosilence\:
SelectedCodecs=ALAW/rtp^ULAW/rtp^gsm/rtp^g723/rtp^
xmppHost=
isMucRandomColors=true
isMucHighNameOn=false
isMucHighTextOn=false
AvailableCodecs=
resource=Spark
SystemTrayNotificationEnabled=false
showOfflineUsers=false
loginAnonymously=false
server=chat.cefetes.br
useHostnameAsResource=false
showHistory=true
DisableHostnameVerification=true
pkiEnabled=false
debuggerEnabled=false
notifyOnOnline=false
showPrevHistory=true
DisplayTime=1000
ccInvisibleLogin=true
ssoEnabled=false
toasterPopup=false
pkiStore=JKS
xmppPort=5222
proxyPassword=
isMucHighToastOn=false
buzzEnabled=true
stunFallbackHost=
HISTORY_SORT_DATEASC=true
loginAsInvisibleEnabled=false
isShowingRoleIcons=false
timeFormat=HH\:mm
protocol=SOCKS
lastUpdateCheck=1501287514968
showTypingNotification=false
proxyUsername=
showEmptyGroups=false
timeout=10
ccAnonymousLogin=true
AcceptAllCertificates=true
chatNotificationOn=true
offlineGroupVisible=true
password
jksPath=
autoAcceptMucInvite=false
audioSystem=wasapi
timeDisplayed=true
ccAccountsReg=true
ccHostNameChange=true
useAdHocRoom=true
tabsOnTop=true
passwordSaved=true
ccPswdAutologin=true
defaultChatLengthTimeout=15
isShowJoinLeaveMessagesOn=true
autoLoginEnabled=true
stunFallbackPort=3478
sslEnabled=false
trustStorePath=
playbackDevice=wasapi\:{3.0.0.00000002}.{6C26BA7D-F0B2-4225-B422-8168C5261E45}
ssoMethod=file
saslGssapiSmack3compat=false
" | out-null
######
$date = Get-Date
$App = "Spark"
$Version = "2.8.3"
$AppExe = "C:\Program Files (x86)\Spark\Spark.exe"                      #executavel do aplicativo após instalação
$AppDate = "2017-01-29"                                                 #data do aplicativo, para verificar a atualização
$SourceFile = "\\gr-fs\install\Padrao\Aplicativos\spark_2_8_3_online.exe"       #local do installer na rede
$spark_properties = "$env:TEMP\spark.properties"
$FileExe = "$env:TEMP\spark_2_8_3.exe"                            #local do installer na maquina
$Parameters = "-q"                                                      #parametros de instalação
$Process = "Installer"                                                  #nome do processo do installer
$LogFile = New-Item $env:TEMP\_$env:computername.txt -type file -force
#$LogFile = "$env:TEMP_$env:computername.txt"          #arquivo de log de instalação e atualização
# 	Função para a instalação do aplicativo
#
function instalar ($Arg1,$Arg2)
    {
    if (!(test-path $FileExe))                                          #Arquivo de instalação local encontrado?
        {        
        if (test-path "$env:TEMP\spark*.exe")                   #remove arquivos de instalação antigos se existirem
            {Get-ChildItem "$env:TEMP\spark_*.exe"|ForEach-Object { Remove-Item $_ }
            }
        Copy-Item -Path $SourceFile -Destination $FileExe   | out-null             #copia o arquivo de instalação novo        
        start-sleep 10
        }
    $proc = Get-Process
    if ($proc.name -contains "Spark") {Stop-Process -Name Spark -Force -Confirm}    
    & $Arg1 + $Arg2
    start-sleep 20  #aguarda o processo de instalação iniciar
    Do {            #aguarda a finalização do processo
        start-sleep 10
        $proc = Get-Process
       } While ($proc.name -contains $Process)

    $date = Get-Date
    Add-Content -Path $LogFile -Value ("O $App versão $Version foi instalado em $date")
    # Substituição do arquivo de configuração para todos os usuários da maquina
    $Users = Get-ChildItem -Directory -Path C:\Users 
    ForEach ($User in $Users){
        $dir = "C:\Users\" + $User.name + "\AppData\Roaming\Spark"
        if (!(test-path $dir)) {mkdir $dir}
        $file = $dir + "\spark.properties"
        Copy-Item -Path $spark_properties -Destination $file | out-null
        }
    }
# 	Inicio da rotina de verificação da instalação do aplicativo
#
if (test-path $AppExe) #Aplicativo Instalado?
    {
	if ((Get-ItemPropertyValue -Name lastwritetime -Path $AppExe) -gt (get-date $AppDate)) 
       { instalar $FileExe $Parameters}
    }    
    else 
        {
        instalar $FileExe $Parameters
        }
# Substituição do arquivo de configuração padrão para os novos usuários da maquina
$dir = "C:\Users\Default\AppData\Roaming\Spark"
if (!(test-path $dir)) {mkdir $dir}
$file = $dir + "\spark.properties"
Copy-Item -Path $spark_properties -Destination $file | out-null