2010-03-03 6 views
0

Dans la section de registre Winlogon, j'aimerais que PowerShell affiche la valeur de données pour DefaultUserName.Comment faire pour afficher PowerShell Valeurs de données de registre

Ceci est aussi loin que j'ai:

Etape 1

get-itemproperty -path "hklm:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\" 

Etape 2

Je Rajouter: Pour

-Name DefaultUserName 

Mais ce ne sera pas un retour valeur.

D'autres noms, même s'ils sont visibles dans regedit, n'apparaissent pas dans PowerShell, par exemple AutoAdminLogon. Question: comment PowerShell peut-il afficher ce que je peux voir avec regedit?

+0

Soryy, je devais lire que deux fois. Je vois le champ AutoAdminLogon lorsque j'exécute la commande. – xcud

Répondre

0

J'ai essayé les mêmes commandes sur une autre machine, ils travaillaient parfaitement, comme prévu . Ainsi, ma machine d'origine doit avoir un registre défectueux, ou au moins, des autorisations bizarres.

0

Est-ce que

Get-ItemProperty -path "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\" |% {$_.DefaultUserName} 

travail pour vous

+0

Ne renvoie aucune valeur Est-ce que |% {$ _. DefaultUserName} est identique à -Name DefaultUsername? –

+0

oui juste vérifier. vérifiez pour voir si vous avez des permmisons à la clé. – rerun

+0

Oui, j'ai le contrôle total. –

2

Vous pouvez essayer la ligne de commande standard:

reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon" /v DefaultUserName 
0

Un suivi tardif.

Comme suggéré par Frank, REG.EXE fonctionne bien.

Cependant, une petite fonction C ne parvient pas à lire ce message spécifique DefaultUserName: l'API RegQueryValueExA ne renvoie pas d'erreur, mais une taille de 1 octets! Sous la même branche, je peux lire Shell.

Avec REGEDIT.EXE je vérifie les autorisations, pour les valeurs qu'ils sont

Administrateurs:, utilisateurs: Lire.

OS: Windows 7 Home Premium - 64 bits

DWORD RegGetValueA(HKEY hTree, LPCSTR lpSubKey, LPCSTR lpValueName, LPDWORD lpdwType, LPVOID lpData, LPDWORD lpdwSize) 
{ 
    #define KEY_WOW64_32KEY  0x0200  // on 64-bit Windows should operate on the 32-bit registry view (HKLM\SOFTWARE\Wow6432Node\...) 
    #define KEY_WOW64_64KEY  0x0100  // on 64-bit Windows should operate on the 64-bit registry view 
    DWORD ret, dwAlter = 0; 
    HKEY hKey; 

retry: 
    ret = RegOpenKeyExA(hTree, lpSubKey, 0, KEY_READ | dwAlter, &hKey); 
    if (ret != ERROR_SUCCESS) 
     return ret; 

    ret = RegQueryValueExA(hKey, lpValueName, NULL, lpdwType, lpData, lpdwSize); 
    RegCloseKey(hKey); 

    if (ret != ERROR_SUCCESS && dwAlter == 0) 
    { 
     dwAlter = KEY_WOW64_64KEY; 
//  printf("retry... %d\r\n", dwAlter); 
     goto retry; 
    } 

    return ret; 
} 
2

encore plus simple:

gp "HKLM:\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\").DefaultUserName 
Questions connexes