2017-08-10 3 views
-2

La classe GPPermissionCollection n'a pas de constructeur et je ne sais pas comment en déclarer l'objet ou l'utiliser.C#, Utilisation de la variable locale non signée

GPDomain domain = new GPDomain(sDCName + "." + sDCExtention); 
Gpo gpo_background = domain.CreateGpo("August-HCalendarGPO"); 

GPPermission gp = new GPPermission("Everyone", GPPermissionType.GpoEditDeleteModifySecurity, false) ; 
GPPermissionCollection gppc; 
gppc.Add(gp); //This Line Has Error 
gpo_background.SetSecurityInfo(gppc); 

le "gppc.Add (gp);" a une erreur "Utilisation de variable locale non signée". comment réparer cette erreur? toute aide sera appréciée

+1

L'erreur est assez explicite, avez-vous essayé de le réparer quoi que ce soit? – DavidG

+0

'GPPermissionCollection gppc;' vous venez de déclarer qu'il n'a pas créé une nouvelle instance ou quoi que ce soit. manquant le '= new GPPermissionCollection()'? – Matt

+1

@DavidG GPPermissionCollection N'existe pas de constructeur.i ne sait pas comment initialiser l'objet GPPermissionCollection. –

Répondre

3

Vous ne pouvez pas créer une instance de GPPermissionCollection, car ses constructeurs sont internal. Vous aurez besoin d'obtenir cette collection de votre GPO via GetSecurityInfo():

GPDomain domain = new GPDomain(sDCName + "." + sDCExtention); 
Gpo gpo_background = domain.CreateGpo("August-HCalendarGPO"); 

GPPermission gp = new GPPermission("Everyone", GPPermissionType.GpoEditDeleteModifySecurity, false) ; 

// get permissions collection from gpo 
GPPermissionCollection gppc = gpo_background.GetSecurityInfo(); 

gppc.Add(gp); 
gpo_background.SetSecurityInfo(gppc); 
+0

Ca me va bien !! –

+0

même si cette ligne de code est très simple et facile pour vous mais cela m'a beaucoup aidé. Merci beaucoup. –