11 сентября 2013 г.

Outlook 2013: Пустая панель папок после обновлений (Folder Pane is empty)

Для решения данной проблемы нужно удалить два обновления kb2810009 и kb2817630

Или с пылу с жару хотфикс  - http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=2817503&kbln=en-us

 

10 июля 2013 г.

Исправление Warning "Inbound authentication failed with error LogonDenied for Receive connector Client Frontend" от MSExchangeFrontEndTransport

Проблема:

В журнале приложений CAS01 фиксируются предупреждения вида:

Log Name:      Application
Source:        MSExchangeFrontEndTransport
Date:          09.07.2013 15:24:02
Event ID:      1035
Task Category: SmtpReceive
Level:         Warning
Keywords:      Classic
User:          N/A
Computer:      CAS01.domain.com
Description:
Inbound authentication failed with error LogonDenied for Receive connector Client Frontend CAS01. The authentication mechanism is Login. The source IP address of the client who tried to authenticate to Microsoft Exchange is [127.0.0.1].
Event Xml:
< Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="MSExchangeFrontEndTransport" />
    <EventID Qualifiers="32772">1035</EventID>
    <Level>3</Level>
    <Task>1</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2013-07-09T11:24:02.000000000Z" />
    <EventRecordID>164696</EventRecordID>
    <Channel>Application</Channel>
    <Computer>CAS01.domain.com</Computer>
    <Security />
  </System>
  <EventData>
    <Data>LogonDenied</Data>
    <Data>Client Frontend CAS01</Data>
    <Data>Login</Data>
    <Data>127.0.0.1</Data>
  </EventData>
< /Event>


При этом в журнале "\\cas01\c$\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive\" фиксируются записи вида:


CAS01,08D04A98B8FDD36A,42,127.0.0.1:587,127.0.0.1:41112,*,,Inbound AUTH LOGIN failed because of LogonDenied 2013-07-09T11:24:03.000Z,CAS01\Client Frontend CAS01,08D04A98B8FDD36A,43,127.0.0.1:587,127.0.0.1:41112,*,,User Name: HealthMailbox896e040d888546a48194fb00dd245648@domain.com


Решение:

Вывести список всех ящиков HealthMonitor'ов по команде powershell-консоли Exchange на сервере CAS01:

PS> Get-Mailbox -Monitoring 

Удалить все эти ящики:

PS> Get-Mailbox -Monitoring | Remove-Mailbox

При этом выбрать вариант  "[A] Yes to All".

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


Active Directory operation failed on server.domain.com. This error is not retriable. Additional information: Access is denied.
Active directory response: 00000005: SecErr: DSID-031520C3, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0
    + CategoryInfo          : NotSpecified: (:) [Remove-Mailbox], ADOperationException
    + FullyQualifiedErrorId : 7C60F97C,Microsoft.Exchange.Management.RecipientTasks.RemoveMailbox
    + PSComputerName        : cas01.domain.com

  
Проверить оставшиеся ящики:

PS> Get-Mailbox -Monitoring

Найти в AD учётную запись (или записи), соответствующую имени оставшегося ящика HealthMonitor'а, и проверить, что в её свойствах в разделе "Profile" -> "Security" -> "Advanced" предлагается только отключить наследование прав (Disable inheritance). Если же предлагается наоборот включить наследование, то включить наследование.

Ещё раз выполнить удаление ящиков:

PS> Get-Mailbox -Monitoring | Remove-Mailbox

Проверить оставшиеся ящики:

PS> Get-Mailbox -Monitoring
Даже если какие-то ящики остались, перезапустить службу "MSExchangeHM" (Microsoft Exchange Health Manager) на всех серверах: CAS01, MBX01, MBX02.

Кое-что по теме: 

22 ноября 2012 г.

Автоматизация поднятия первого контроллера домена

Как говорится -  лень двигатель прогресса. И только благодаря этому появился у меня скрипт который через Powershell поднимает роль контроллера домена, добавляет новых пользователей, подразделения, перемещает пользователей в нужные OU, создает группы безопасности и в них же с добавляет пользователей.

# Имя модуля: ADDS-Domain-Controller.ps1 (Add Domain Services on windows server 2008R2)
#          Создан: 29 апреля 2011 год.
#      Описание: Добавление доменных служб на windows Server 2008 R2 с
#      созданием дочерних OU, груп безопасности и пользователей в них. Наименование OU, SecurityGroup берется из поля OU
# Предвариетельные действия: Для успешного выполнения скрипта запускаем из командной строки PowerShell
# Set-ExecutionPolicy RemoteSigned -force с правами Администратора   или
# Set-ExecutionPolicy unrestricted -force с правами Администратора
#
# Формат входного csv в кодовой странице UTF-8:
#       Name,SamAccountName,UserPrincipalName,GivenName,Surname,DisplayName,OU,Department,Title,Office,OfficePhone
#       "Евдокимов Михаил Борисович","EvdokimovM","EvdokimovM","Михаил","Евдокимов","Евдокимов Михаил Борисович","АУП","Аппарат управления","Председатель КСП","509","285-682"
#
#
#Объявляем переменные
$Password = "
P@ssw0rd"
$ADForestPrep = Get-ADForest
$ADRootDSEPrep = Get-ADRootDSE
$ADForestSfx = "@" + $ADForestPrep.name
$ADRootDSEName = $ADRootDSEPrep.defaultNamingContext


$UsrDB = Import-Csv "C:\KSP scripts\Users.csv" | select Name, SamAccountName, UserPrincipalName, GivenName, Surname, DisplayName,OU,Department,Title,Office,OfficePhone -unique
$OuDB =  Import-Csv "C:\KSP scripts\Users.csv" | select OU -unique
$GroupDB =  Import-Csv "C:\KSP scripts\Users.csv" | select OU -unique
 <#
  # Добавляем роль доменных служб
    Add-WindowsFeature –Name ADDS-Domain-Controller –IncludeAllSubFeature
  #Повышаем сервер до уровня контроллера домена
    Dcpromo /unattend /InstallDNS:Yes /dnsOnNetwork:Yes /ReplicaOrNewDomain:Domain /NewDomain:Forest /NewDomainDNSName:ksp.local /DomainNetBiosName:ksp /DatabasePath:"C:\Windows\NTDS" /LogPath:"C:\Windows\NTDS" /SysvolPath:"C:\Windows\SYSVOL” /safeModeAdminPassword:P@ssw0rd /ForestLevel:4 /DomainLevel:4 /RebootOnCompletion:No
 #>


 Function Add-OU {
  process {
   New-ADOrganizationalUnit -Name $_.OU -Path $ADRootDSEName
       Write-host "Added OU $($_.OU)" -ForegroundColor Green}


}
 function Add-User {
  process {
   New-ADUser  -name $_.Name -SamAccountName $_.SamAccountName  -UserPrincipalName "$($_.UserPrincipalName + $AdForestSfx)"  -GivenName $_.GivenName -Surname $_.Surname -DisplayName $_.DisplayName  -Path "OU=$($_.OU),$($ADRootDSEName)" -Department $_.Department -Title $_.Title -Office $_.Office -OfficePhone $_.OfficePhone -Enabled $true -AccountPassword (ConvertTo-SecureString -AsPlainText $Password -Force) -ChangePasswordAtLogon $true
        Write-host "Added User $($_.name) to $($_.OU)" -ForegroundColor Green
  }
 }

 Function Add-Group {
 process {
   New-ADGroup -Name $_.OU -DisplayName $_.OU -Path "OU=$($_.OU),$($ADRootDSEName)" -GroupCategory  Security -GroupScope Global
     Write-host "Added SecurityGroupGroup $($_.OU)" -ForegroundColor Green
  }
 }

 Function Add-GroupUser{
 process {
   Add-ADGroupMember  -Identity "CN=$($_.OU),OU=$($_.OU),$($ADRootDSEName)" -Members "CN=$($_.Name),OU=$($_.OU),$($ADRootDSEName)"
    Write-host "Added Users  $($_.Name) to SecurityGroup $($_.OU)"  -ForegroundColor Green
 
  }
 }


# Добавляем OU
  $OuDB | Add-OU $_
# Создаем пользователей и добавляем в нужные OU

 $UsrDB | Add-User $_

#Создаем группу безопасности глобальную в домене
 $GroupDB | Add-Group $_

#Добавляем пользователей в группы безопасности по отделам
 $UsrDB | Add-GroupUser $_



29 сентября 2012 г.

Аудит печати. Как узнать кто когда и сколько напечатал?

Как то меня спросили а можно ли средствами самой  Windows узнать кто сколько откуда и что напечатал. Немного подумав решил эту задачу с помощью простенького скрипта на PowerShell.
Грубо говоря он отбирает события в Event Log = 307 в котором есть все необходимые для меня данные.

Скрипт:

cls
$CurrentDate = Get-date 
$date = $CurrentDate.AddDays(-1) 
$yesterday = ($CurrentDate) - (new-timespan -day 1)
$a = "<style>"
$a = $a + "BODY{background-color:peachpuff;}"
$a = $a + "TABLE{border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}"
$a = $a + "TH{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:thistle}"
$a = $a + "TD{border-width: 1px;padding: 0px;border-style: solid;border-color: black;background-color:PaleGoldenrod}"
$a = $a + "</style>"
$EventLog = get-winevent -logname "Microsoft-Windows-PrintService/Operational" | Select UserID, TimeCreated, UserName, MachineName, Message, ID
$EventLog | ForEach-Object {
$_.UserName = $_.UserID.Translate([security.principal.ntaccount])

        }
 
 $EventLog | sort-object -property UserName,TimeCreated  | where {$_.ID -eq "307"} | where {$_.timecreated -ge $yesterday}  | ConvertTo-Html -head $a -body "<H2>PrintService</H2>" -As TABLE -Property TimeCreated, UserName, MachineName, Message |  Out-File -FilePath "C:\PRNLOG\$($yesterday.ToString("yyyyMMdd")).html"

Lync 2010 на новых ПК - пользователи не могут авторизоваться

После последнего обновления Lync Server CU 5 заметил что новые пользователи не могут аутентифицироваться в клиенте Lync. Все мои попытки самостоятельно решить данную проблему не увенчались успехом. Естественно я обратился к своим коллегам так же обитающим на форумах Technet. Описывать тут ее не буду, т.к. на форуме всё написано как мы выуживали корень нашей проблемы.
Вкратце о решении: Все мои проблемы были из за протокола Kerberos и разношерстности контроллеров домена у меня в инфраструктуре. Как только избавился от последнего контроллера на server 2003 все проблемы решились.

Remote Desktop Gatawey + Server 2012 + SmartCard

Настройка шлюза терминалов со стандартными настройками особо не вызывает проблем, но столкнулся с одной особенностью. При попытке аутентифицироваться  через смарткарты ничего не получалось. Так же было замечено что сертификат выданный мне центром сертификации расположенном на сервере 2003 определяется на server 2012 и windows 8 некорректно.

Решение:
Оказывается что в шаблоне сертификата SmartCard по умолчанию стоит ключ шифрования RSA (512), увеличил до 1024, перевыпустил. На новых ОС стал определяться корректно. И естественно заработала аутентификация через смарт карты.

Обсуждение на TechNet

Не было возможности записать ISO образы в Windows Server Datacenter 2012


Заметил странность: при попытке записи ISO стандартными средствами, кнопка записи образа притушена. Доступна только операция подключения как диска.
Решение:
На сервере было отключен компонент "Возможности рабочего стола". После включения данной фичи, запись ISO образов заработала.

P.S. Я очень много времени провожу на Форумах Technet и описываю неясные для меня вещи. В конце каждого из поста буду оставлять ссылку на обсуждение если таковая имеется:
Не доступна функция записи образов ISO