Powershell y acceso a audiencias
-
10-12-2019 - |
Pregunta
Estoy intentando crear un script de PowerShell completamente funcional que fusionará cuentas de usuario, recorrerá todas las colecciones de sitios y eliminará las 2 cuentas de usuario, luego ejecutará la compilación de audiencia.Tengo las partes 1 y 2 funcionando después de un poco de trabajo, pero estoy obsesionado con enganchar al público.He visto esta publicación por Per, y siempre aparece en la línea 3 con:
Nuevo objeto:Excepción al llamar a ".ctor" con argumentos "1":"Referencia a objeto no establecida como instancia de un objeto." En la línea: 3 char: 18 + $ upm = new-object <<<< Microsoft.Office.server.userProfiles.userProfilemanager ($ context);+ Información de categoría:Operación inválida:(:) [New-Object], MethodInVocationException + totalmente calificadoerRORID:ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
si hago un $context
, me da un GUID de todos ceros.Estoy desarrollando esto en mi máquina local con Windows 7, acceso de administrador completo a todo.
$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")
Solución
Bleh, no figuraba en los permisos de la aplicación de servicio a pesar de que figuraba como administrador.
Imagen y arreglo cortesía de obtener-spscripts
Otros consejos
Alguien en los foros de MSDN tuvo el mismo problema.Lo solucionaron cambiando la forma en que se creaba una instancia del contexto.Básicamente haz esto:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
$context = [Microsoft.Office.Server.ServerContext]::GetContext($mysite)
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)