PB SCRIPT VIA GPO

Le
Vincent
Bonjour,

J'utilise le script ci-dessous pour personnaliser le screensaver
"ss3dfo.scr" (logon script via GPO). Sur les postes W2000, tout se passe
bien. Sur les postes XP, la texture du screensaver n'est appliquée qu'au 2è
logon. Le 1er logon met à jour les clés de registre dans "HKCUControl
PanelScreen Saver.3DFlyingObj" uniquement ce qui provoque une erreur au
déclenchement du screensaver.
"HKCUSoftwareMicrosoftScreensaversFlying Objects" n'est mis à jour qu'au
2è logon et je ne comprends pas pourquoi.

Merci pour vos avis

'- DEBUT DU SCRIPT


'DECLARATION DES VARIABLES ET OBJETS

Const HKEY_CURRENT_USER = &H80000001
Const OverwriteExisting = TRUE

Set objShell = CreateObject("WScript.Shell")
Set objEnvironment = objShell.Environment("Process")
strLogonServer = objEnvironment("LOGONSERVER")
strUserProfile = objEnvironment("USERPROFILE")
strComputer = "."
strTexture = "logo.bmp"
strGPOID = "placer ici l'identifiant unique de la GPO"
'Exemple: strGPOID = "{60401FD4-345F-4FE4-B395-B7340C0BF85F}"
strSourcePath = strLogonServer &
"sysvolfr.veolia-es.group.vePolicies" & _
strGPOID & "UserScriptsLogon" & strTexture
strTargetPath = strUserProfile & "Application Data"

'TRAITEMENT

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "ootcimv2")

Set colOperatingSystems = objWMIService.ExecQuery _
("Select * from Win32_OperatingSystem")

For Each objOperatingSystem in colOperatingSystems

'STATIONS WINDOWS 2000

If left(objOperatingSystem.Caption, 20) = "Microsoft Windows 20" Then

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\"
& _
strComputer & "ootdefault:StdRegProv")

strKeyPath = "Control PanelScreen Saver.3DFlyingObj"
strValueName = "Texture"
strValue = strTargetPath & strTexture
objReg.SetStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Mosaïque"
strValue = 100
objReg.SetStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Options"
strValue = 1
objReg.SetStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Taille"
strValue = 75
objReg.SetStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "TextureFileOffset"
strValue = 50
objReg.SetStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Type"
strValue = 6
objReg.SetStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

'STATIONS WINDOWS XP

Elseif left(objOperatingSystem.Caption, 20) = "Microsoft Windows XP" Then

Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\"
& _
strComputer & "ootdefault:StdRegProv")

strKeyPath = "SoftwareMicrosoftScreensaversFlying Objects"
strValueName = "Texture"
strValue = strTargetPath & strTexture
objReg.SetExpandedStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "AllScreensSame"
strValue = 0
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Options"
strValue = 1
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Size"
strValue = 75
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Tesselation"
strValue = 200
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "TextureFileOffset"
strValue = 50
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Type"
strValue = 6
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strKeyPath = "Control PanelScreen Saver.3DFlyingObj"
strValueName = "Texture"
strValue = strTargetPath & strTexture
objReg.SetExpandedStringValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "AllScreensSame"
strValue = 0
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Options"
strValue = 1
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Size"
strValue = 75
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Tesselation"
strValue = 200
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "TextureFileOffset"
strValue = 50
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue

strValueName = "Type"
strValue = 6
objReg.SetDWORDValue _
HKEY_CURRENT_USER, strKeyPath, strValueName, strValue
Else
End If
Next

'- FIN DU SCRIPT
--
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gilles LAURENT [MVP]
Le #684943
"Vincent" news:
| Bonjour,

Bonjour,

| J'utilise le script ci-dessous pour personnaliser le screensaver
| "ss3dfo.scr" (logon script via GPO). Sur les postes W2000, tout se
| passe bien. Sur les postes XP, la texture du screensaver n'est
| appliquée qu'au 2è logon. Le 1er logon met à jour les clés de
| registre dans "HKCUControl PanelScreen Saver.3DFlyingObj"
| uniquement ce qui provoque une erreur au déclenchement du screensaver.
| "HKCUSoftwareMicrosoftScreensaversFlying Objects" n'est mis à
| jour qu'au 2è logon et je ne comprends pas pourquoi.
[...]

La clé de registre doit exister avant de pouvoir fixer la valeur :
CreateKey HKEY_CURRENT_USER, strKeyPath
SetExpandedStringValue HKEY_CURRENT_USER,strKeyPath ...

La méthode SetExpandedStringValue n'est utile que si la valeur du
registre contient une variable d'environnement. A priori cela n'est pas
le cas ici. Vous devriez donc utiliser la méthode SetStringValue.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Vincent
Le #688097
Bonjour,

J'étais convaincu que cette clé existait par défaut ... erreur !
J'ai donc insérer un CreateKey et maintenant tout est OK.

Merci pour votre aide

VB


"Vincent" news:
| Bonjour,

Bonjour,

| J'utilise le script ci-dessous pour personnaliser le screensaver
| "ss3dfo.scr" (logon script via GPO). Sur les postes W2000, tout se
| passe bien. Sur les postes XP, la texture du screensaver n'est
| appliquée qu'au 2è logon. Le 1er logon met à jour les clés de
| registre dans "HKCUControl PanelScreen Saver.3DFlyingObj"
| uniquement ce qui provoque une erreur au déclenchement du screensaver.
| "HKCUSoftwareMicrosoftScreensaversFlying Objects" n'est mis à
| jour qu'au 2è logon et je ne comprends pas pourquoi.
[...]

La clé de registre doit exister avant de pouvoir fixer la valeur :
CreateKey HKEY_CURRENT_USER, strKeyPath
SetExpandedStringValue HKEY_CURRENT_USER,strKeyPath ...

La méthode SetExpandedStringValue n'est utile que si la valeur du
registre contient une variable d'environnement. A priori cela n'est pas
le cas ici. Vous devriez donc utiliser la méthode SetStringValue.

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr





Publicité
Poster une réponse
Anonyme