Script d'installation du client ICA avec netoyage des fichiers .ini

Voici un des mes scripts, qui supprime tous les fichiers de conf du client Citrix dans tous les profils locaux du poste et dans le dossier du client Citrix.

Les chemins vers le client sont en dur :frowning: (C:program filesCitrix). Ce script appelle le package msi (dont il faut evidemment changer le chemin) pour effectuer la mise à jour du client :angel:

Il faut des droits d’admins pour lancer le script. (xrunas ou remoteexec)





'==========================================================================
'
' AUTEUR : BREDA Maxime , XXXXX
' DATE : 06/09/2007
'
' Modifié par : ,
' DATE : xx/xx/xx
'
' COMMENT: Script d'installation du client citrix
'
'==========================================================================


Const FICLOG = "ICAVERSION.txt"
const ForReading =1
const ForWriting = 2
Const ForAppending = 8
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Set wshshell = createobject("WScript.Shell")
Set WshSysEnv = WshShell.Environment("PROCESS")
strUserprofile = WshSysEnv("USERPROFILE")
stlogonserver = WshSysEnv("LOGONSERVER")
Set WshNetwork = CreateObject("WScript.Network")

on error resume next

strComputer = WshNetwork.ComputerName 'le nom actuel du serveur/poste de travail

'Filtre sur le nom du poste : Le nom de poste doit commence par P, pour l'installation du client
if left(ucase(StrComputer),len("P")) = "P" then

if fso.FileExists("C:Program FilesCitrixClient ICA" & FICLOG) = false then
if fso.FileExists("C:Program FilesCitrixICA Client" & FICLOG) = false then
MsgBox "Mise à jour du client Citrix, le poste va redémmarer" & vbCrLf & "" & vbCrLf & "Merci de patienter. Veuillez cliquer sur Ok",vbCritical + vbOkOnly + vbSystemModal + 0,"Mise à jour du client Citrix"
LOGUER("Intallation client Citrix v10")
dim fold
set fold = fso.GetFolder("c:Documents and Settings")

dim foldcol
set foldcol = fold.SubFolders

foldcount = foldcol.count
firsttime = 0

'do the subfolder stuff
dim sf
for each sf in foldcol
if fso.FileExists(sf.path & "Application DataICAClientPN.ini") = true then
fso.deletefile sf.path & "Application DataICAClientPN.ini"
end if
if fso.FileExists(sf.path & "Application DataICAClientAPPSRV.ini") = true then
fso.deletefile sf.path & "Application DataICAClientAPPSRV.ini"
end if
next

if fso.FileExists("C:Program FilesCitrixClient ICAappsrv.src") = true then
fso.deletefile "C:Program FilesCitrixClient ICAappsrv.src",true
fso.deletefile "C:Program FilesCitrixClient ICAappsrv.ini",true
fso.deletefile "C:Program FilesCitrixClient ICApn.src",true
fso.deletefile "C:Program FilesCitrixClient ICApn.ini",true
fso.deletefile "C:Program FilesCitrixICA Clientappsrv.src",true
fso.deletefile "C:Program FilesCitrixICA Clientappsrv.ini",true
fso.deletefile "C:Program FilesCitrixICA Clientpn.src",true
fso.deletefile "C:Program FilesCitrixICA Clientpn.ini",true
end if
runappli("MSIEXEC.EXE /I ""\SRVFICsystem$ProgicielsMetaframeclient ica V10pkg finalica32pkgv10FULL.msi"" & ""/quiet")
end if
end if
end if

Function runappli(Appli)

Dim Fso,F,A,B
set process = GetObject("winmgmts:{impersonationLevel=impersonate}!Win32_Process")
result = process.Create (Appli,null,null,processid)

End function

Function LOGUER(LeTexte)
if trim(FICLOG) = "" then exit function
filespec = "C:Program FilesCitrixClient ICA" & FICLOG
Set FichA = fso.OpenTextFile(filespec,ForAppending, true)
ficha.writeline Now & " : " & LeTexte
FICHA.close
filespec = "C:Program FilesCitrixICA Client" & FICLOG
Set FichA = fso.OpenTextFile(filespec,ForAppending, true)
ficha.writeline Now & " : " & LeTexte
FICHA.close

end function

joe, pense a jouter le support du PNAgent dans ton script.



ajouter un truc du genre (ça vient d’un .bat) :

Reg delete HKCUSoftwareCitrixPNAgent

Del %AppData%CitrixPNAgent*.* /Q /F

"ThinIsFat" wrote:
joe, pense a jouter le support du PNAgent dans ton script.

ajouter un truc du genre (ça vient d'un .bat) :
Reg delete HKCUSoftwareCitrixPNAgent
Del %AppData%CitrixPNAgent*.* /Q /F
Oui bonne idée.
De toute façon, je vais le réécrire en définissant en entête tous les eléments ecrits en dur sous la forme de constante (chemin PN, doc & set, chemin du fichier ICA) et verifier la version du client citrix installé par registre et non par création d'un fichier txt sur le poste....

pense aussi aux clefs de registre du client 10.xx car celles ci remplacent les appsrv.ini et tout le toutim