Question Ecrire une clé de registre avec espaces

Plus d'informations
il y a 15 ans 2 mois #9006 par JoJo
Bonjour,

j'ai un petit souci qui ne se produit pas sur toutes mes machines. je cherche à écrire une clé dans HKEY_Users, sous la ruche de l'utilisateur loggué, ceci en tant qu'administrateur...(je suis loggué avec un compte user standard et j'éleve mon powershell ISE)

Ce script fonctionne tres bien lorque la clé ne contient pas d'espaces dans son chemin. Des qu'il y en a, j'ai une erreur d'écriture.

Le code :
[code:1]function ConvertTo-Sid ($NtAccount)
{
(new-object system.security.principal.NtAccount($NTaccount)).translate([system.security.principal.securityidentifier])
}


################ Script ###################
$LoggedOnUser = (Get-WmiObject Win32_ComputerSystem).Username
$UserID = (ConvertTo-Sid ($LoggedOnUser)).Value

$RegKey = $UserID+\"\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\"
$Name = \"DefaultConnectionSettings\"
$valuetest = \"test\"
[Microsoft.Win32.registrykey] $oregkey = [Microsoft.Win32.registry]::Users
$oregkey = $oregkey.OpenSubKey($RegKey, $true)
$oregkey.SetValue($Name, $valuetest)
$oregkey.Close()[/code:1]

HELP !!!

Merci ;)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 mois #9009 par Matthew BETTON
Salut,

Pour un accès local, la ruche HKEY_USERS\[SID de l'utilisateur actuellement connecté] est accessible directement depuis la ruche HKEY_CURRENT_USER.

Donc, à moins de vouloir accéder à HKEY_CURRENT_USER à distance, je ne vois pas quel est ton intérêt de vouloir absolument résoudre le SID de l'utilisateur connecté avant de procéder à la modification du registre utilisateur, via un script exécuté en local...

Afin de récupérer l'utilisateur actuellement connecté sur la machine, tu n'es pas obligé de faire appel à WMI. Tu peux simplement passer par les variables d'environnement (peut être plus \"léger\") :

[code:1]$LoggedOnUser = $env:USERDOMAIN+\"\\"+$env:Username[/code:1]

Toutefois, je viens de tester ton script, et il fonctionne... Même si le chemin de la clef contient des espaces.

Quel est le message d'erreur que tu observes, lorsque le script ne fonctionne pas ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 mois #9010 par JoJo
L'interet de resoudre le SID de l'utilisateur connecté reside dans le fait que le script sera executé avec un compte LOCALSYSTEM (via une tache planifiée), donc je ne peux pas taper sur HKCU directement...

Sinon l'erreur
[code:1]Exception calling \"SetValue\" with \"2\" argument(s): \"Attempted to perform an unauthorized operation.\"
At E:\Test.ps1:16 char:18
+ $oregkey.SetValue <<<< ($Name, $valuetest)
+ CategoryInfo : NotSpecified: (: ) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException[/code:1]

Et c'est ce que je disais aussi ce script fonctionne sur 2 de mes 3 machines...weird

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 mois #9011 par Matthew BETTON
OK !

Je comprends beaucoup mieux le besoin et je retire donc ce que j'ai écrit :laugh:


\"Attempted to perform an unauthorized operation.\" : ça fait penser à un problème de permission...

Tu es sous quelle version de Windows ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 mois #9012 par JoJo
Oui ça m'a bien entendu fait penser à ça aussi...
Sauf que les membres du groupe administrateur ont full control en ACL sur les clés en question...

Je suis sur Windows 7 64

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 15 ans 2 mois #9013 par Matthew BETTON
... oublier ma question : tu as déjà indiqué que tu utilises PowerShell ISE en mode élevé... =&gt; Je ne vois pas pourquoi tu as ce problème...<br><br>Message édité par: Matthew BETTON, à: 24/02/11 16:29

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.036 secondes
Propulsé par Kunena