Diagnostic du problème
Identification de l'erreur
Lors de l'importation d'un profil ou de l'utilisation de l'option -silentImport, une boîte de dialogue indique "NVAPI_ACCESS_DENIED". Ce blocage survient souvent lors de l'écriture des paramètres de configuraton.
Vérifications système
- L'application NPI est-elle exécutée en tant qu'administrateur ?
- Le compte Windows dispose-t-il de privilèges administrateur ?
- Le pilote NVIDIA est-il fonctionnel (aucun point d'exclamation dans le Gestionnaire de périphériques) ?
Vérification du répertoire clé
- Accédez à
C:\ProgramData\NVIDIA Corporation\ - Vérifiez la présence du dossier
Drs - À l'intérieur, les fichiers
nvdrsdb0.binetnvdrsdb1.bindoivent exister
Analyse approfondie
Origine du problème de droits
Le pilote NVIDIA stocke les profils graphiques dans C:\ProgramData\NVIDIA Corporation\Drs. Ce dossier contient la configuration globale (nvdrsdb0.bin) et les paramètres utilisateur (nvdrsdb1.bin). Lorsque NPI ne dispose pas des droits d'écriture sur ce dossier, l'API NVAPI refuse l'accès.
Termes techniques
- NVAPI : interface de programmation NVIDIA permettant d'interagir avec le pilote graphique.
- Drs : abréviasion de Display Reference Settings, dossier système contenant les profils.
- nvdrsdb0.bin / nvdrsdb1.bin : fichiers binaires contenant respectivement la configuration par défaut et les profils personnalisés.
Impacts possibles
Outre l'importation, les problèmes de droits peuvent empêcher :
- La sauvegarde des réglages personnalisés
- L'application de profils spécifiques aux jeux
- La synchronisation des configurations dans un environnement multi-utilisateurs
Solutions hiérarchisées
Solution de base : configuration manuelle des droits
- Accédez au dossier parent :
Explorateur de fichiers → C:\ProgramData\NVIDIA Corporation\ - Créez ou vérifiez le dossier Drs :
- S'il n'existe pas, faites un clic droit → Nouveau → Dossier → nommez-le
Drs - S'il existe, clic droit → Propriétés
- S'il n'existe pas, faites un clic droit → Nouveau → Dossier → nommez-le
- Modifiez les permissions de sécurité :
- Onglet Sécurité → cliquer sur Modifier
- Sélectionnez votre compte utilisateur dans la liste
- Cochez Contrôle total → Appliquer
- Cliquez sur Avancé → cochez Remplacer toutes les autorisations d’objets enfants
- Validez par OK
- Vérification : créez un fichier texte test dans le dossier Drs ; s'il s'enregistre, les droits sont corrects.
⚠️ Avertissement : La modification des droits sur les dossiers système peut avoir un impact sur la sécurité. Limitez les changements aux seuls répertoires nécessaires et vérifiez le bon fonctionnement après l'opération.
Solution avancée : script PowerShell automatisé
Pour un déploiement sur plusieurs machines :
# Chemin du dossier Drs
$cheminDrs = "C:\ProgramData\NVIDIA Corporation\Drs"
# Création si absent
if (-not (Test-Path -Path $cheminDrs)) {
New-Item -ItemType Directory -Path $cheminDrs -Force | Out-Null
Write-Host "Dossier Drs créé"
}
# Récupération de l'utilisateur courant
$utilisateur = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
# Définition des droits
$acl = Get-Acl -Path $cheminDrs
$regle = New-Object System.Security.AccessControl.FileSystemAccessRule(
$utilisateur, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"
)
$acl.SetAccessRule($regle)
Set-Acl -Path $cheminDrs -AclObject $acl
Write-Host "Droits accordés à $utilisateur sur $cheminDrs"
Utilisation :
- Enregistrez le code dans
Correction-NPI.ps1 - Exécutez PowerShell en tant qu'administrateur
- Lancez
.\Correction-NPI.ps1
Solution experte : réparation du pilote et du système
Si les solutions précédentes échouent :
-
Désinstallation complète du pilote : utilisez l'outil DDU (Display Driver Uninstaller) en mode sans échec, choisissez Nettoyer et redémarrer, puis installez le pilote NVIDIA officiel avec l'option Installation personnalisée → Exécuter une installation propre.
-
Vérification des fichiers système :``` sfc /scannow DISM /Online /Cleanup-Image /RestoreHealth
-
Réparation du profil utilisateur : créez un nouveau compte administrateur Windows, testez NPI dans ce compte. Si le problème disparaît, migrez vos données vers ce nouveau compte.
Bonnes pratiques et prévention
Gestion des droits selon le principe du moindre privilège
- N'accorder les droits d'écriture qu'aux utilisateurs concernés
- Utiliser des groupes de sécurité (ex :
UtilisateursNVIDIA) plutôt que des comptes individuels - Auditer régulièrement les permissions des répertoires sensibles
Surveillance et alertes
Pour détecter les modifications non autorisées :
# Sauvegarde de la configuration ACL actuelle
$chemin = "C:\ProgramData\NVIDIA Corporation\Drs"
$aclRef = Get-Acl $chemin
$aclRef | Export-Clixml -Path "C:\Scripts\ACL_Drs_Reference.xml"
# Comparaison périodique (à exécuter via une tâche planifiée)
$aclCourante = Get-Acl $chemin
$aclSauve = Import-Clixml -Path "C:\Scripts\ACL_Drs_Reference.xml"
if (Compare-Object $aclCourante.Access $aclSauve.Access) {
Write-EventLog -LogName Application -Source "Monitoring NPI" -EventId 1001 -EntryType Warning -Message "Permissions du dossier Drs modifiées"
}
FAQ
Q : Pourquoi l'erreur persiste-t-elle même avec un compte administrateur ?
R : Le Contrôle de compte d'utilisateur (UAC) peut limiter les droits réels. Lancez NPI explicitement avec Exécuter en tant qu'administrateur ou activez l'option Exécuter ce programme en tant qu'administrateur dans les propriétés du raccourci.
Q : Après correction, les profils ne se sauvegardent toujours pas. Que faire ?
R : Un logiciel tiers (antivirus, utilitaire d'optimisation) peut bloquer l'écriture dans ProgramData. Désactivez temporairement ces logiciels pour tester, puis ajoutez le dossier Drs à la liste d'exclusion de votre sécurité.
Q : Comment gérer plusieurs utilisateurs sur une même machine ?
R : Créez un groupe local (ex : ConfigNVIDIA), accordez-lui les droits d'écriture sur Drs, puis ajoutez chaque utilisateur concerné à ce groupe. La gestion centralisée simplifie les changements ultérieurs.