вторник, 30 декабря 2014 г.

Exam 70-347 Enabling Office 365 Services

Сегодня сдал экзамен Exam 70-347 Enabling Office 365 Services
Как и прошлый экзамен - сдавал бесплатно, по ваучеру. Было около 45 вопросов.
Половина вопросов совсем простые, если доводилось администрировать Office 365.
Мне как разработчику SharePoint особенно легко было отвечать на вопросы по SharePoint Online.
Сдавал в тестовом центре при УЦ Инвента, т.к. в УЦ Специалист не было мест на сегодняшнюю дату. 

среда, 3 декабря 2014 г.

Exam 70-346 Managing Office 365 Identities and Requirements

Сегодня удалось сдать экзамен Exam 70-346 Managing Office 365 Identities and Requirements

Сейчас попытка обойдётся в €60.00 EUR. Second Shot'а нет.
Я сдавал по ваучеру, еще можно получить. Следующий экзамен - 70-347.
Сдавал в Thomson Prometric. С 01.01.2015 можно будет сдавать только через Pearson VUE.
Есть инструкция как пройти регистрацию для Pearson VUE.
Экзамен достаточно простой, особенно если у Вас был опыт внедрения Office 365.
Сложными показались вопросы по федерации и SSO, а так же вопросы из разряда "А какой порт(ы) что-то там".

вторник, 2 декабря 2014 г.

SharePoint. System.ArgumentException: calType

В процессе использования SharePoint 2013 коллега поправил себе профиль, добавив дополнительные языки:


Установлен Service Pack 1, а English Language Pack - нет.
Сразу же после применения изменений на всех страницах появлялась ошибка:

Пробовал через PowerShell скопировать поля из работающего профиля в сломанный, это не дало результат.
Исправить удалось удалением профиля, используя PowerShell:
if ((Get-PSSnapin "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null) 
{
    Addd-PSSnapin "Microsoft.SharePoint.PowerShell"
}
[void][reflection.assembly]::Loadwithpartialname("Microsoft.Office.Server");     
$site=new-object Microsoft.SharePoint.SPSite("http://portal");            
$serviceContext = Get-SPServiceContext $site;            
$site.Dispose();            
$upm = new-object Microsoft.Office.Server.UserProfiles.UserProfileManager($serviceContext);
$upm.RemoveUserProfile("Domain\Account");
Хотя это можно сделать через веб-интерфейс.
Потом на всякий случай удалил пользователя из user information list, для этого я использовал SharePoint End User Viewer Tool, таким образом проблема была решена.

Но ошибка может сохраняться, если пользователь присутствует на других коллекциях.
Это происходит из-за того, что каждая коллекция сайтов имеет свой список сведений о пользователях. Коллекций может быть очень много. Например, из-за личных сайтов.
Чтобы автоматически удалить из всех коллекций - воспользуйтесь скриптом ниже:
Add-PSSnapin Microsoft.SharePoint.PowerShell
$UserLogin = "i:0#.w|domain\login";
$Sites = Get-SPSite -Limit All
$AllSites = @()

foreach($Site in $Sites)
{
    $RootWeb = $Site.RootWeb
    If([bool](Get-SPUser -Identity $UserLogin -Web $RootWeb -EA SilentlyContinue) -eq $True)
    {
        $User = Get-SPUser -Identity $UserLogin -Web $RootWeb
        Write-Host ("Удален из " + $RootWeb.Url)
        Remove-SPUser -Identity $User -Web $RootWeb -Confirm:$False
        $AllSites += $RootWeb.Url
    }
    else
    {
        Write("Отсутствует на: " + $RootWeb.Url)
    }
}

if(!($AllSites).count -eq 0)
{
    Write-Host "Removed user $($UserLogin) from:" -Fore "Magenta"
    foreach($S in $AllSites){Write-Host “- $S”}
    Write-Host ""
    $AllSites = @()
}