Powershell et l'accès des Publics
-
10-12-2019 - |
Question
Je suis en train de construire un système de script powershell qui va fusionner des comptes d'utilisateur, une boucle sur toutes les collections de sites et de supprimer les 2 comptes d'utilisateurs, puis exécuter la compilation de l'audience.J'ai des pièces de 1 et 2 de travail après un peu de travail, mais je suis accroché sur d'accrochage dans le public.J'ai vu ce post par l', et il y a toujours des bombes sur la ligne 3 avec:
New-Object :Exception d'appel ".ctor" avec "1" argument(s):"Objet de référence non définie à une instance d'un objet." Au niveau de ligne:3 char:18 + $upm = New-Object <<<< Microsoft.Bureau de.Serveur.Userprofile.UserProfileManager($contexte);+ CategoryInfo :InvalidOperation:(:) [Nouvelle-Objet], MethodInvocationException + FullyQualifiedErrorId :ConstructorInvokedThrowException,Microsoft.PowerShell.Commandes.NewObjectCommand
Si je fais un $context
, il me donne un GUID de tous les zéros.Je suis le développement de ce sur mon windows 7 local de la machine, plein d'un accès admin à tout.
$site = Get-SPSite "http://localhost"
$context = Get-SPServiceContext $site;
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context);
$audmgr = New-Object Microsoft.Office.Server.Audience.AudienceManager($context)
$aud = $audmgr.GetAudience("Irvine")
La solution
Bleh, je n'ai pas mentionné dans les autorisations de l'application de service, même si j'ai été répertorié en tant qu'administrateur.
De l'Image et de fixer la courtoisie de get-spscripts
Autres conseils
Quelqu'un sur les forums MSDN eu le même problème.Ils ont résolu en changeant la façon dont le contexte a été instancié.Fondamentalement ce faire:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
$context = [Microsoft.Office.Server.ServerContext]::GetContext($mysite)
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)