Вход

Блог
сен 17
Как установить Static IPv6 в режиме ServerCore

В оснастке sconfig нет возможности установить IPv6 адрес. Делать это необходимо используя PowerShell:

Сначала ищем индекс интерфейса

Get-NetIPAddress
  

image

Здесь же мы можем найти параметр InterfaceAlias, который нам понадобиться позже.

Запускаем команду для указания DNS серверов (в ней можно указать и IPv4 DNS серверы)и подставляем собственные IP адреса

Set-DNSClientServerAddress -InterfaceIndex 4 -ServerAddresses ffff:fff:ab0:7bc::10,ffff:fff:ab0:7bc::11

Затем указываем Gateway (alias сетевого подключения берём из команды выше)

netsh interface ipv6 add route ::/0 'vEthernet (External Network Virtual Switch)' ffff:fff:ab0:7bc::254

И, наконец, сам IP адрес

netsh interface ipv6 add address 'vEthernet (External Network Virtual Switch)' ffff:fff:ab0:7bc::4 
июл 27
Запуск пула IIS через скрипт

В продолжение предыдущего поста про запуск служб, появилась идея запуска пула IIS также с помощью скрипта. Идея возникла из-за лени разбираться почему отваливается пул WSUS. В результате написал скрипт, который запускает остановленные пулы, но при этом есть исключение для Default пула

import-module WebAdministration
$e = Get-IISAppPool
foreach ($et in $e)
{
if (($et.Name -ne 'DefaultAppPool') -and ((Get-WebAppPoolState -Name $et.Name).Value -ne 'Started'))
{
Write-Output ('Starting Application Pool: {0}' -f $et.name)
Start-WebAppPool -Name $et.name
}
}

Ну и из предыдущего поста берём параметры для запуска по расписанию.

июл 27
Запуск служб через скрипт

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

В итоге решил сделать скрипт, который запускается по расписанию через "Планировщика Задач" и стартует все остановленные службы, которые должны запускать автоматически. И так сначала сам скрипт

$e = Get-Service
foreach ($s in $e)
{
if (($s.Status -eq "Stopped") -and ($s.StartType -match "Automatic"))
{
Write-Host $s.DisplayName
$s.Start()
Start-Sleep -s 2
}
}

После написания и отладки скрипта столкнулся с другими проблемами:

  1. Запуск неподписанного скрипта из единого хранилища в сети - невозможен в автоматическом режиме
  2. В сетевом пути присутствуют пробелы

В результате в "Планировщике Задач" необходимо указать следущие параметры запуска:

Action: Start a program
Program: powershell
Add arguments: -executionpolicy bypass "& '\\путь\пусть с пробелами\StartAutomaticServices.ps1'"

Далее настраиваем расписание для запуска в рамках SLA. Это конечно не отменяет задачу по поиску корневой причины. Но нет ничего более постоянного, чем временное решение.

июн 22
Видео о перспективах обучения

Видео взято с сайта компании “Меркатор”. Уж очень понравилась идея и смысл ролика.

Ссылка на оригинал.

мар 13
Пропали UserView представления для Задач Project Server

При очередном обновлении SharePoint Server 2016 обнаружил что не работают PowerPivot отчёты, настроенные на использование представлений SQL UserView.

view

Для их восстановления, необходимо просто запустить команду на Application сервере и необходимые представления в SQL вновь появляются.

Repair-SPProjectWebInstance PWA_URL -RepairRule 7
ноя 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'
  

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

1 - 10Далее

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

 Обо мне

fot-1913.jpg

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