Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[SPS 2003 SP1 FR] [DEV] Mise à jour du modèle de quota des sites personnelles

1 réponse
Avatar
Nicolas COLLET
Bonjour,

Je souhaite mettre à jour le modèle de quota des sites personnelles d'un
certain nombre d'utilisateurs (+ de 200).

J'ai donc utilisé le modèle objet de SPS pour faire ceci.

La mise à jour est simple mais j'ai un problème d'autorisation sur les sites
personnelles.

Voici mon code :
<-------------------------------------------------------------------------------------->
// Mise à jour des quotas de disque des sites personnelles des professeurs.
string [] listeUser;
string sAccount="";
string url;

string rne="";

SPGlobalAdmin globalAdmin = new SPGlobalAdmin();
SPGlobalConfig globalConfig = globalAdmin.Config;
SPSite sitePerso = null;

if(txtbox_Numero.Text!="") {
// Récupérer les variables
du fichier de config
GenererVariable();

string UrlPortailTopology = portailUrl;
Numero=txtbox_Numero.Text;
TopologyManager tm = new TopologyManager();
PortalSite ps = tm.PortalSites[new Uri(UrlPortailTopology)];
PortalContext pc = PortalApplication.GetContext(ps);
UserProfileManager upm = new UserProfileManager(pc);

// Mise à jour des sites persos
listeUser = getUsers(Numero);

// Changer d'identité pour devenir administrateur SPS
AdminContext adminContext = new AdminContext("sharepointAdmin");
WindowsImpersonationContext wic = adminContext.Impersonate();

foreach (string valeurUser in listeUser) {
try {
sAccount = this.domaineW2k + "\\" + valeurUser;
if (upm.UserExists(sAccount)) {
UserProfile userp = upm.GetUserProfile(sAccount);
url = userp.PersonalUrl;
if(url.IndexOf("MySite")>0)
userp.CreatePersonalSite();
else {
sitePerso = userp.PersonalSite;
sitePerso.CatchAccessDeniedException = false;

sitePerso.Quota = globalConfig.QuotaTemplates["Site personnel Perso"];
sitePerso = null;
}
}
else
throw new Exception("le compte n'existe pas ");
}
catch(Exception ex) {
LoggerErreur(" Erreur lors de la creation du site :\n " + sAccount+
"\r\n"
+ ex.Message.ToString() + "\r\n"
+ ex.Source.ToString() + "\r\n"
+ ex.GetType().ToString() + "\r\n"
+ ex.StackTrace, "log-quota-site-perso.txt" );
}
}
// Repasser sous l'utilisateur courant
wic.Undo();

if(erreur)
FermerFichierErreur();

MessageBox.Show("Maj des quotas de disque de sites personnelles terminées.");
}
else MessageBox.Show("Donner le numéro");
<-------------------------------------------------------------------------------------->

Voici l'exception :
Erreur lors de la creation du site :
TOTO\Nom.prenom
Accès refusé.
Microsoft.SharePoint
System.UnauthorizedAccessException
at Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0)
at Microsoft.SharePoint.Library.a.a(String A_0, UInt16 A_1, Int64 A_2,
Int64 A_3, Int32 A_4)
at Microsoft.SharePoint.SPSite.set_Quota(SPQuota value)
at WindowsApplication1.Form1.btnMajQuotaSite_Click(Object sender, EventArgs
e)

Comment est-il possible soit de rajouter un administrateur à tous les sites
personnelles, soit d'utiliser un compte ayant les droits sur les sites personnelles
et dans ce cas lequel ?

L'impersonation que j'utilise me permet d'utiliser le compte de service utilisé
dans sharepoint pour la configuration de la base de données, il est aussi
administrateur du portail.

Cordialement.
Nicolas COLLET

1 réponse

Avatar
EROL MVP SPS
Bonjour,

Ne pourriez vous point créeer un group intersite qui a ces droits
et là il pourra faire ce que vous souhaitez. Voir l'aide de SPS.

Avez vous testé l'utilisation des pages d'administration HTML pour gérer les
utilisateurs et les groupes intersites.

Avec un nom spécifique au regard de votre ligne:
// Changer d'identité pour devenir administrateur SPS

Les étapes à suivre pour ajouter des utilisateurs et des groupes intersites
sont identiques, quel que soit le mode de compte que vous utilisez. Quelle
que soit la méthode utilisée, vous pouvez gérer des utilisateurs et des
groupes intersites à partir de la page Paramètres du site de votre site Web.

Cdlt

--
EROL
http://www.clubsps.org
http://sharepointerol.blogspot.com/



"Nicolas COLLET" a écrit dans le message de news:

Bonjour,

Je souhaite mettre à jour le modèle de quota des sites personnelles d'un
certain nombre d'utilisateurs (+ de 200).

J'ai donc utilisé le modèle objet de SPS pour faire ceci.

La mise à jour est simple mais j'ai un problème d'autorisation sur les
sites personnelles.

Voici mon code :
<-------------------------------------------------------------------------------------->
// Mise à jour des quotas de disque des sites personnelles des
professeurs.
string [] listeUser;
string sAccount="";
string url;

string rne="";

SPGlobalAdmin globalAdmin = new SPGlobalAdmin();
SPGlobalConfig globalConfig = globalAdmin.Config;
SPSite sitePerso = null;

if(txtbox_Numero.Text!="") {
// Récupérer les
variables du fichier de config GenererVariable();

string UrlPortailTopology = portailUrl;
Numero=txtbox_Numero.Text;
TopologyManager tm = new TopologyManager();
PortalSite ps = tm.PortalSites[new Uri(UrlPortailTopology)];
PortalContext pc = PortalApplication.GetContext(ps);
UserProfileManager upm = new UserProfileManager(pc);

// Mise à jour des sites persos
listeUser = getUsers(Numero);

// Changer d'identité pour devenir administrateur SPS
AdminContext adminContext = new AdminContext("sharepointAdmin");
WindowsImpersonationContext wic = adminContext.Impersonate();

foreach (string valeurUser in listeUser) {
try {
sAccount = this.domaineW2k + "" + valeurUser;
if (upm.UserExists(sAccount)) { UserProfile userp =
upm.GetUserProfile(sAccount);
url = userp.PersonalUrl;
if(url.IndexOf("MySite")>0)
userp.CreatePersonalSite();
else {
sitePerso = userp.PersonalSite;
sitePerso.CatchAccessDeniedException = false;

sitePerso.Quota = globalConfig.QuotaTemplates["Site personnel Perso"];
sitePerso = null;
}
}
else
throw new Exception("le compte n'existe pas ");
}
catch(Exception ex) {
LoggerErreur(" Erreur lors de la creation du site :n " + sAccount+
"rn"
+ ex.Message.ToString() + "rn"
+ ex.Source.ToString() + "rn"
+ ex.GetType().ToString() + "rn"
+ ex.StackTrace, "log-quota-site-perso.txt" );
}
}
// Repasser sous l'utilisateur courant
wic.Undo();

if(erreur)
FermerFichierErreur();

MessageBox.Show("Maj des quotas de disque de sites personnelles
terminées.");
}
else MessageBox.Show("Donner le numéro");
<-------------------------------------------------------------------------------------->

Voici l'exception :
Erreur lors de la creation du site :
TOTONom.prenom
Accès refusé.
Microsoft.SharePoint
System.UnauthorizedAccessException
at Microsoft.SharePoint.g.a(UnauthorizedAccessException A_0)
at Microsoft.SharePoint.Library.a.a(String A_0, UInt16 A_1, Int64 A_2,
Int64 A_3, Int32 A_4)
at Microsoft.SharePoint.SPSite.set_Quota(SPQuota value)
at WindowsApplication1.Form1.btnMajQuotaSite_Click(Object sender,
EventArgs e)

Comment est-il possible soit de rajouter un administrateur à tous les
sites personnelles, soit d'utiliser un compte ayant les droits sur les
sites personnelles et dans ce cas lequel ?

L'impersonation que j'utilise me permet d'utiliser le compte de service
utilisé dans sharepoint pour la configuration de la base de données, il
est aussi administrateur du portail.

Cordialement.
Nicolas COLLET.