Вход

Блог
ноя 17
Чарвак и Чимган

Не всё же работать. Иногда необходимо делать в работе перерыв. Так ка я очень люблю горы, то не мог удержаться и съездить подышать горным воздухом. Небольшой фотоотчёт ниже.

WP_20171112_13_19_59_Pro

WP_20171112_12_39_39_Panorama

WP_20171112_12_39_28_Pro

WP_20171112_10_14_16_Pro

ноя 14
Права на сайт SharePoint через группу AD

Недавно столкнулся с такой проблемой. Есть пользователи, которым надо получить доступ к сайту SharePoint. Чтобы было проще администрировать, была создана группа Global Security, содержащая этих пользователей. После этого я добавил группу на SharePoint. И тут проявилась неприятная вещь. Ни один пользователь не смог получить доступ на сайт.

После долгих поисков выяснился такой во механизм:

  1. Пользователю были выданы права непосредственно на учётную запись.
  2. Пользователь залогинился на SharePoint
  3. Учётную запись пользователя убрали с SharePoint
  4. Добавили пользователя в группу AD
  5. Группе AD дали доступ на сайт SharePoint

При такой ситуации необходимо около 10 часов, для того чтобы обновился кэш в котором хранится предыдущая запись о пользователе. Чтобы не ждать 10 часов, можно использовать команду PowerShell:

Clear-SPDistributedCacheItem –ContainerType DistributedLogonTokenCache

После выполнения можно заходить под пользователем.

окт 14
Не отображаются проекты в PWA 2016

При установке очередного обновления на SharePoint 2016 у меня пропала возможность видеть проекты из PWA. И полностью лента проектов стала недоступной.

Данная проблема возникает только при установке MUI. При обновлении через Windows Update или WSUS, почему то не устанавливаются обновления для MUI.

В результате, необходимо отдельно скачать обновление. Установить и всё начинает работать.

авг 11
Missing Feature

Собственно, скрипт взят по ссылке. Оставил себе, чтобы не забыть.

[MissingFeature] Database [SharePoint_WSS] has reference(s) to a missing feature: Id = [8096285f-1463-42c7-82b7-f745e5bacf29], Name = [My Feature], Description = [], Install Location = [Test-MyFeature]. The feature with Id 8096285f-1463-42c7-82b7-f745e5bacf29 is referenced in the database [SharePoint_WSS], but is not installed on the current farm. The missing feature may cause upgrade to fail. Please install any solution which contains the feature and restart upgrade if necessary.

Если скрипт запустить целиком, то результат выдаст только на экране. Для удаления ошибки не обходимо убрать в конце '-ReportOnly'

function Remove-SPFeatureFromContentDB($ContentDb, $FeatureId, [switch]$ReportOnly)
{
    $db = Get-SPDatabase | where { $_.Name -eq $ContentDb }
    [bool]$report = $false
    if ($ReportOnly) { $report = $true }
    
    $db.Sites | ForEach-Object {
        
        Remove-SPFeature -obj $_ -objName "site collection" -featId $FeatureId -report $report
                
        $_ | Get-SPWeb -Limit all | ForEach-Object {
            
            Remove-SPFeature -obj $_ -objName "site" -featId $FeatureId -report $report
        }
    }
}
function Remove-SPFeature($obj, $objName, $featId, [bool]$report)
{
    $feature = $obj.Features[$featId]
    
    if ($feature -ne $null) {
        if ($report) {
            write-host "Feature found in" $objName ":" $obj.Url -foregroundcolor Red
        }
        else
        {
            try {
                $obj.Features.Remove($feature.DefinitionId, $true)
                write-host "Feature successfully removed from" $objName ":" $obj.Url -foregroundcolor Red
            }
            catch {
                write-host "There has been an error trying to remove the feature:" $_
            }
        }
    }
    else {
        #write-host "Feature ID specified does not exist in" $objName ":" $obj.Url
    }
}

Remove-SPFeatureFromContentDB -ContentDB "SharePoint_WSS" -FeatureId "8096285f-1463-42c7-82b7-f745e5bacf29" –ReportOnly

После этого ошибка пропадает.

авг 11
Missing Setup File
[MissingSetupFile] File [Features\ReportServer\ReportViewer.dwp] is referenced [2] times in the database [SharePoint_WSS], but is not installed on the current farm. Please install any feature/solution which contains this file. One or more setup files are referenced in the database [SharePoint_WSS], but are not installed on the current farm. Please install any feature or solution which contains these files.

Для решения данной ошибки необходимо в SQL Management Studio проверить наличие данной записи в базе:

Select * from AllDocs where SetupPath = 'Features\ReportServer\ReportViewer.dwp'
  

И если в результате есть какие-либо записи, то выполнить другую команду:

Delete from AllDocs where SetupPath = 'Features\ReportServer\ReportViewer.dwp'
  

После этого ошибка пропадает.

авг 11
Missing Site Definition
[MissingSiteDefinition] 1 Sites in database [SharePoint_WSS] has reference(s) to a missing site definition, Id = [3200] Lcid = [1033]. The site definitions with Id 16781 is referenced in the database [SharePoint_WSS], but is not installed on the current farm. The missing site definition may cause upgrade to fail. Please install any solution which contains the site definition and restart upgrade if necessary.

Если столкнулись с такой ошибкой, то необходимо в SQL Management Studio выполнить запрос к базе данных, которая указана в ошибке.

SELECT Title, WebTemplate
FROM dbo.Webs
ORDER BY WebTemplate
  

В ответе увидим список всех подсайтов и ID их шаблонов

image

В результате, если удалить подсайт с отсутствующим шаблоном, то ошибка исчезнет.

авг 11
Проблемы с переустановкой PowerPivot 16 для SharePoint

Собственно проблема тянется с 2010 версии. Если по каким-то причинам удалить PowerPivot, то установить обратно его не получится. Выдаст разные ошибки. Например:

The feature with ID ‘1a33a234-b4a4-4fc6-96c2-8bdb56388bd5’ is still activated within this farm or stand alone installation. Deactivate this feature in the various locations where it is activated or use -force to force uninstallation of this feature.
  1. Для правильной переустановки необходимо выполнить команду
  2. stsadm -o uninstallfeature -id ‘1a33a234-b4a4-4fc6-96c2-8bdb56388bd5’ -force
    
  3. Затем с помощью средств установки PowerPivot удалить остатки
  4. После этого произвести установку

И всё работает.

авг 04
Скрипт включения Anti Spam в Exchange 2016

Чтобы не забыть. Запускается из Exchange PowerShell.

& $env:ExchangeInstallPath\Scripts\Install-AntiSpamAgents.ps1
Set-TransportConfig -InternalSMTPServers 192.168.1.1 # IP адрес Exchange
авг 02
Если всё плохо с Exchange 2016

Если решили убить начисто Exchange Server 2016, то есть хорошая статья по этому поводу. Ссылка на статью. И ещё одна статья, если не получилось по первой – ссылка.

Причины могут быть разными. В моём случае невозможность восстановить ECP. Предварительно, перед удалением, копируем базы или делаем резервное копирование.

P.S. Через три дня мучений я восстановил Exchange Server. При этом собрал, наверное, все возможные ошибки, которые бывают при установке. По этому – никому не рекомендую восстанавливать Exchange на туже самую ОС. Самый быстрый способ – вычистить AD и переустановить операционную систему под Exchange.

июл 19
Резервное копирование SharePoint

Самым доступным способом резервного копирования является PowerShell. Можно, конечно, использовать DPM, Acronis и др. Но иногда достаточно и простого скрипта. Ниже как раз он и есть:

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

# Блок переменных

$today = Get-Date
$full = 'Saturday'
$BackupFolder = '\\имя-сервера\путь-к-архиву'
$BackupReport  = $BackupFolder + '\spbrtoc.xml'
$Days = 7
$EmailTo = 'почта_кому@домен.ru'
$EmailServer = 'имя-почтоыого-сервера'
$EmailFrom = 'почта_откуда@домен.ru'

# Остановка службы поиска

write-host 'Начинаем приостановку службы поиска'
$ssa = Get-SPEnterpriseSearchServiceApplication 'имя-службы-поиска'
Suspend-SPEnterpriseSearchServiceApplication -Identity $ssa
write-host 'Служба поиска приостановлена'

# Вспомогательная функция отправки почты

Function SendMail ([String]$vSubject, [String]$vBody) 
{
    Send-MailMessage -From $EmailFrom -Subject $vSubject -To $EmailTo -Body $vBody -SmtpServer $EmailServer -BodyAsHtml -Encoding UTF8

}

# Блок резервного копирования

Try
{
    $ExistsBackups = (Get-SPBackupHistory -Directory $BackupFolder -ShowBackup)
    If ($ExistsBackups -eq $null)
    {
        Backup-SPFarm -Directory $BackupFolder -BackupMethod Full -Verbose -Percentage 5
        SendMail 'SharePoint Farm Full Backup created' 'Добрый день. Создана полная резервная копия фермы SharePoint.'
    }
    else
    {
        if ($full -eq $today.DayOfWeek)
        {
            Backup-SPFarm -Directory $BackupFolder -BackupMethod Full -Verbose -Percentage 5
            SendMail 'SharePoint Farm Full Backup created' 'Добрый день. Создана полная резервная копия фермы SharePoint.'
        }
        else
        {
            Backup-SPFarm -Directory $BackupFolder -BackupMethod Differential -Verbose -Percentage 5
            SendMail 'SharePoint Farm Differential Backup created' 'Добрый день. Создана разностная резервная копия фермы SharePoint.'
        }
    }
}
Catch [System.Exception] 
{
    SendMail 'SharePoint Farm Backup Failed' 'Добрый день. Ошибка создания резервной копии:

$_.' } # Восстановление службы поиска write-host 'Начинаем восстановление службы поиска' Resume-SPEnterpriseSearchServiceApplication -Identity $ssa write-host 'Служба поиска восстановлена' # Блок удаления устаревших резервных копий Try { $LatestDate = (Get-Date).adddays(-$Days) [xml]$FileData = Get-Content $BackupReport $BackupEvents = $FileData.SPBackupRestoreHistory.SPHistoryObject ForEach ($BackupEvent in $BackupEvents) { $BackupDate = [DateTime]$BackupEvent.SPStartTime If ($BackupDate -lt $LatestDate) { $FileData.SPBackupRestoreHistory.RemoveChild($BackupEvent) [System.String]$DelDir = $BackupEvent.SPBackupDirectory Remove-Item $DelDir -Recurse $FileData.Save($BackupReport) } } } Catch [system.exception] { SendMail 'SharePoint Backup Warning' 'Добрый день. Произошла ошибка при удалении резервной копии старше $Days дней. Описание ошибки: $_.' }

Теперь добавляем скрипт в Task Scheduler и получаем письма.

Скрипт удаляет устаревшие копии и создаёт разные архивы. Если необходимо, расписание или схема резервного копирования может быть изменена.

1 - 10Далее

 ‭(скрыто)‬ Работа с блогом

 Обо мне

fot-1913.jpg

Арсений Евмененко. Бизнес-тренер, архитектор, MCSE и почти альтруист.​​