Поиск неиспользуемых сайтов и привилегированных пользователей в Sharepoint


В Sharepoint есть механизм контроля за неиспользуемыми сайтами. В настройках можно включить рассылку уведомлений собственникам сайтов, если сайт не используется более заданного количества дней. Дополнительно можно включить автоматическое удаление такого сайта после отправки указанного количества уведомлений.

Несмотря на наличие такого удобного механизма, бывает необходимо получить список неиспользуемых сайтов в явном виде, например, для архивирования и последующего ручного удаления. Читать далее

Реклама

Как извлечь учетные данные из Sharepoint Secure Store


Переносил на днях базу данных используемую в External Type на сайте Sharepoint, и потребовалось уточнить от имени какой учётной записи производится доступ к базе данных. Всю цепочку настроек можно посмотреть через сайт управления кроме используемой учётной записи.

Нашелся вот такой простой скриптик, который выводит все Secure Store Target Application Id и соответствующие им логины и пароли:


$SecureStoreProvider=[Microsoft.Office.SecureStoreService.Server.SecureStoreProviderFactory]::Create()
$site = Get-SPSite -Identity $(Get-SPWebApplication -IncludeCentralAdministration | ?{ $_.IsAdministrationWebApplication}).Url
$SecureStoreProvider.Context = Get-SPServiceContext -Site ($site)
$SecureStoreProvider.GetTargetApplications() |  ForEach-Object {
Write-Host $_.Name
try {
$SecureStoreProvider.GetCredentials($_.ApplicationId) | ForEach-Object {
$Credential = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($_.Credential))
Write-Host "`t$($_.CredentialType): $($Credential)"
}
} catch  {
Write-Host "`t$($_)"  -ForegroundColor yellow
}
}
<div class="container">
<div class="line number1 index0 alt2"><code class="powershell plain"> </code></div>
</div>

Скрипт взят отсюда https://sharepointobservations.wordpress.com/2015/02/05/retrievingrecovering-secure-store-credentials/

Проблема на сервере Office Web Apps после установки обновлений


После накатки последних обновлений на Office Web Apps спустя некоторое время перестал работать предпросмотр и перестали открываться файлы в браузере, причем постепенно: какие-то открываются, какие-то нет. Чудеса и только! Читать далее

Проблема обработки входящей почты в Sharepoint Server 2013


Уже долгое время тянется проблема на Sharepoint Server 2013 связанная с тем, что не работает обработка входящих писем из папки Drop. Читать далее

Sharepoint — мусор на файловой шаре


На днях настраивал в Sharepoint индексацию файловых шар. При изучении ошибок индексации обнаружил попытки Sharepoint проиндексировать файлы вида ~*.* – временные файлы, которые создают приложения Microsoft Office. Эти временные файлы удаляются автоматически при закрытии рабочего файла в приложении Office, но если рабочий файл не закрыли нормальным способом (потеря сети, крах системы, крах приложения и т.п.), то временные файлы могут оставаться на диске и образовывать мусор. Со временем на большом файловом сервере могут скопиться тысячи таких файлов занимающих гигабайты дискового пространства.

В Sharepoint пришлось создать правило индексации исключающее файлы вида ~*.* Это уменьшило число ошибок индексации и заметно уменьшило время индексации: если такой временный файл новый и используется, то он как правило заблокирован для доступа, и процесс индексации начинает его «долбить», растрачивая ресурсы и замедляя индексацию. Это был позитивный результат. Но сам мусор остался на дисках.

Чтобы его удалить, пришлось искать подходящий инструмент. Проблема заключалась в том, что пользователи создают папки очень большой длинны и большой вложенности. Когда имя файла превышает 260 символов (что жёстко задано в Windows File Explorer), то происходит ошибка и процесс очистки останавливается. Поэтому требовался инструмент, который бы использовал низкоуровневый API Win32 и был лишен этого ограничения. Таким инструментом оказалась давно известная утилита robocopy.

Получилась такая команда:

robocopy "E:\Data" null  ~*.* /s /mov

Учтите, что при выполнении robocopy вполне способна полностью занять одно ядро CPU и серьезно нагрузить систему ввода-вывода, поэтому чистку больших томов лучше запускать в часы наименьшей нагрузки.

Полезные ссылки:

1. Long Paths in .NET, Part 1 of 3 [Kim Hamilton]
2. Long Paths in .NET, Part 2 of 3 [Kim Hamilton]
3. Long Paths in .NET, Part 3 of 3 [Kim Hamilton]

Sharepoint Server 2013 – удаление RBS


После экспериментов по установке и настройке RBS (Remote Blob storage) на Sharepoint возник закономерный вопрос о том, как откатиться: полностью деактивировать и деинсталлировать RBS.

Последствия установки RBS в том, что часть информации оказывается вне SQL-базы в виде файлов на файловой системе. Поэтому просто взять и удалить RBS из списка установленных программ это значит разрушить базу, что категорически неприемлемо. Читать далее

Удаление старых топологий поиска в Sharepoint


После настройки и оптимизации индексирования источников контента в Sharepoint обнаружил целую пачку старых конфигураций получившихся в результате клонирования топологии:


$ssa = Get-SPEnterpriseSearchServiceApplication

$ssa.Topologies | ? {$_.State -eq "Inactive"} }

Так как система настроена и откатываться уже нет необходимости, то можно удалить неактивные топологии:


$ssa.Topologies | ? {$_.State -eq "Inactive"} | % {$_.Delete()}