Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

PB SCRIPT VIA GPO

2 réponses
Avatar
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 "HKCU\Control
Panel\Screen Saver.3DFlyingObj" uniquement ce qui provoque une erreur au
déclenchement du screensaver.
"HKCU\Software\Microsoft\Screensavers\Flying 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 &
"\sysvol\fr.veolia-es.group.ve\Policies\" & _
strGPOID & "\User\Scripts\Logon\" & strTexture
strTargetPath = strUserProfile & "\Application Data\"

'TRAITEMENT

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

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 & "\root\default:StdRegProv")

strKeyPath = "Control Panel\Screen 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 & "\root\default:StdRegProv")

strKeyPath = "Software\Microsoft\Screensavers\Flying 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 Panel\Screen 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
-----------------------------------------

2 réponses

Avatar
Gilles LAURENT [MVP]
"Vincent" a écrit dans le message de
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
Avatar
Vincent
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" a écrit dans le message de
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