Powershell и доступ к аудиториям
-
10-12-2019 - |
Вопрос
Я пытаюсь создать полнофункциональный сценарий PowerShell, который объединит учетные записи пользователей, переберет все семейства сайтов и удалит две учетные записи пользователей, а затем выполнит компиляцию аудитории.После небольшой работы у меня есть части 1 и 2, но я зациклен на привлечении аудитории.я видел эта почта Пером, и в третьей строке он всегда вылетает:
Новый объект:Исключение при вызове ".ctor" с аргументом(ами) "1":"В экземпляре объекта не задана ссылка на объект." В строке: 3 char: 18 + $ upm = new-object <<<< microsoft.office.server.userProfiles.userProfilEmanager ($ context);+Информация о категории:Неверная операция:(:) [новый-объект], исключение MethodInvocationException + FullyQualifiedErrorId :ConstructorInvokedThrowException,Microsoft.PowerShell.Commands.NewObjectCommand
Если я сделаю $context
, это дает мне GUID, состоящий из всех нулей.Я разрабатываю это на своем локальном компьютере с Windows 7, имею полный доступ администратора ко всему.
$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")
Решение
Блин, меня не было в разрешениях служебного приложения, хотя я был указан как администратор.
Изображение и исправление любезно предоставлены get-spscripts
Другие советы
У кого-то на форумах MSDN была такая же проблема.Они исправили это, изменив способ создания экземпляра контекста.В основном сделайте это:
[Reflection.Assembly]::LoadWithPartialName("Microsoft.Office.Server")
$context = [Microsoft.Office.Server.ServerContext]::GetContext($mysite)
$upm = New-Object Microsoft.Office.Server.UserProfiles.UserProfileManager($context)