Comment dois-je prendre possession d'une clé de registre via Powershell?
Je suis tenter de prendre possession d'une clé de registre via Powershell, et il ne fonctionne pas en mode silencieux. Je suis en utilisant le code suivant:
# get the username of the current user
$uname = [System.Security.Principal.WindowsIdentity]::GetCurrent().Name
# create an identity reference for the owner
$user = new-object System.Security.Principal.NTAccount($uname)
# create a "drive" for HKEY_CLASSES_ROOT
new-psdrive -name HKCR_zf -psprovider Registry -root HKEY_CLASSES_ROOT
# change the current location
set-location HCKR_zf:\CLSID
# set ACLs
(get-acl '{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}').setowner($user)
Tout se passe bien jusqu'à la dernière ligne, mais le .setowner() l'appel échoue silencieusement (le propriétaire n'est pas modifié).
Comment dois-je prendre possession d'une clé de registre?
OriginalL'auteur Mark | 2012-08-20
Vous devez vous connecter pour publier un commentaire.
Juste appeler
SetOwner
ne pas valider la modification. Vous avez besoin de passer l'objet acl retour àSet-Acl
pour valider la modification.Découvrez ce fil, il y a une bonne description et exemple complet de code. Semble il y a quelques autres à sauter à travers des cerceaux, ainsi: http://social.technet.microsoft.com/Forums/en/winserverpowershell/thread/e718a560-2908-4b91-ad42-d392e7f8f1ad
OriginalL'auteur latkin
Parfois script n'ont pas de propriété, de privilèges ou d'autorisations pour modifier les valeurs de registre. Il a besoin de privilèges d'administrateur. Côté script prend les autorisations de manière récursive pour toutes les sous-clés.
Exemples d'appels:
Vous venez devrait définir ensuite la touche func:
OriginalL'auteur Argimko
Et bien c'est un clarifcation forme un autre post, mais il est vraiment important!
Pour le script posté dernier, assurez-vous d'ajouter une sécurité qui vérifie la touche$. Sinon, vous devez écraser tous les RegKeys en particulier rootkey.
Revenir à un point de restauration ne fonctionne pas comme ordinateur-les comptes n'ont pas accès au trou rootkey.
Quelque chose comme:
if ($key.longueur -eq 0) {
write-host "clé paramètre doit être défini"
de retour
}
OriginalL'auteur Anton
Lors de l'utilisation IDs comme
{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31}
vous devez utiliser""
Par exemple:
(HKLM:\SOFTWARE\Classes\CLSID\"{031E4825-7B94-4dc3-B131-E946B44C8DD5}",Microsoft.Win32.RegistryKeyPermissionCheck]::ReadWriteSubTree,[System.Security.AccessControl.RegistryRights]::takeownership)
OriginalL'auteur Soulcrush
Une variation sur une autre réponse. Ce n'établit de la propriété.
OriginalL'auteur Slogmeister Extraordinaire
@Slogmeister et l'auteur de l'original, je dois vous dire merci, je ne pouvais pas obtenir ce triées. Et vous m'avez aidé à le faire, juste une question, pourriez-vous élaborer sur la logique derrière cela, ce que l'autorisation de la structure est au-dessus de l'admin, tels que l'admin en essayant de prendre la propriété serait un échec(comme il l'a fait avant votre script)? Aussi, quels sont les sous-systèmes sont impliqués et où peut-on aller pour en apprendre plus sur eux. C'est à dire, qu'est-ce que le script de l'interaction avec et comment et pourquoi 🙂 je sais...Mais il est important de savoir que ce petit exersise prouvé. J'ai essayer de réinstaller SSDT et parce que certains des principaux était de ne pas laisser les altérations qu'il a échoué, ainsi qu'une foule d'autres paquets, tout SQL liées essentiellement.
Merci mille fois, si vous avez le temps d'élaborer ou pas...
Qui a été la clé de la délinquance.
Désolé De Quoi? Avez-vous lu le commentaire ou juste coup d'œil à la dernière ligne, qui est juste une note de bas de page.
OriginalL'auteur ArrantSymmetry