Bonjour,

je me lance dans le scripting PowerShell. D'où ma question à caractère néophyte. Ma question est la suivante : comment tester l'existence d'une clef dans le registre et récupérer sa valeur.

Admettons que je souhaite tester puis récupérer la valeur de la clef HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\ClearPageFileAtShutdown

J'ai donc utilisé le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# Chemins registre
$HKLM_Mem_management = "HKLM:SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management"

[...]

# Création du label $label_utilisateur
$label_utilisateur = New-Object System.Windows.Forms.Label

[...]

$clef_registre_existe = Test-Path $HKLM_Mem_management
if($clef_registre_existe -eq $true)
{
    $value = (Get-Item -Path $HKLM_Mem_management)."ClearPageFileAtShutdown"
    valeur de la clef si elle existe sinon "Clef registre inexistante !"
} else {
    $value = "Chemin registre inaccessible !"
}

$label_utilisateur.Text = "Utilisateur : $resultat"
Seulement, j'ai beau avoir testé différentes méthodes pour faire cette condition (celle en gras) mais aucune ne fonctionne. J'ai essayé de comparer avec"", $null et consorts mais rien.

Autre question, est-il possible de tester directement la présence (ou non) d'une clef ? Visiblement (et d'après l'aide en ligne de MS), Test-Path retourne toujours FALSE si on souhaite lui passer la clé directement.

Je fais donc appel à votre aide et vous remercie par avance.