понедельник, 28 ноября 2011 г.

Lync and fortunes

lync1

“Продаю параошют. Использовался только один раз, ни разу не открывался. Небольшие кровоподтеки.”

“Жизнь – крутая штука. Купи шлем.”

“Не могу придумать умную фразу, чтобы поделиться ей.”

Некоторые люди очень любят помещать забавные предложения вроде этих в свой мессенджер. Я-то точно люблю. В случае с OCS это можно было сделать вручную (как, впрочем, и в Lync). Но только одно такое сообщение всё время… Скууучно. Особенно, если Вы накопили множество таких фраз. Менять их вручную – почти такое же скучное занятие, как не менять их. Вот потратить кучу (пусть даже и небольшую) времени, чтобы  создать маленькую програмку, которая будет это делать за нас – это наш метод! 

Как бы то ни было, я пробовал в своё время сделать это с OCS клиентом, но мне это не удалось. То ли я плохо пытался, то ли решение не было достаточно простым для меня… В любом случае, обычно в “следующей версии” всё лучше, чем в предыдущей (если по началу у Вас ничего не получается, назовите это “версия 1.0”) и в Lync мы получили новый SDK, с несомненными улучшениями, такими, как возможность менять строку статуса программно Подмигивающая рожица

Вкратце: Вы можете прочитать о той части SDK, которая помогла мне построить мой скрипт, потом прочитать о написании скриптов на PowerShell для Lync c помощью extencibility API и наконец прочитать о том, как управлять именно нужным параметром. Ещё один шаг, который нужно предпринять: скачать и установить SDK. После этого можно будет написать и использовать собственные скрипты для любых задач, связанных с Lync.

Или можно просто использовать этот скрипт:

 

#Load Assembly

$assemblyPath = "C:\Program Files (x86)\Microsoft Lync\SDK\Assemblies\Desktop\Microsoft.Lync.Model.DLL"

Import-Module $assemblyPath

 

#Initialize objects

$client = [Microsoft.Lync.Model.LyncClient]::GetClient()

$self = $client.Self;

 

#Get a fortune

$Fortunes = Get-Content c:\temp\fortunes.txt

$linesNumber = $Fortunes.Length

$todaysFortuneNumber = Get-Random -Maximum $linesNumber -Minimum 1

$todaysFortune = $Fortunes[$todaysFortuneNumber -1]

 

#Publish personal note of the local user

$contactInfo = new-object 'System.Collections.Generic.Dictionary[Microsoft.Lync.Model.PublishableContactInformationType, object]'

$contactInfo.Add([Microsoft.Lync.Model.PublishableContactInformationType]::PersonalNote $todaysFortune)

$ar = $self.BeginPublishContactInformation($contactInfo, $null, $null)

$self.EndPublishContactInformation($ar)

 

Он явно не идеален и не делает всех тех вещей, которые нужно бы делать (например, не проверяет, а подключен ли клиент Lync к серверу), но его можно рассматривать как рабочий прототип. =)

четверг, 17 ноября 2011 г.

Где моя почта, чувак?! (meme edition)

Один из недавних запросов от пользователя гласил, что вся его почта, минуя папку Входящие сразу же идёт в папку… Удалённые. Ну нет проблем. подумал я, давайте найдём правило, которое это делает и удалим его.

all-the-things-meme-generator-delete-all-the-rules-dee398

Просто, как “раз, два, три, не работает”. Да, даже после удаления всех правил, во входящих почты не прибавилось.

i-find-your-lack-of-mail-disturbing

Что делать дальше?Переместить ящик в другую базу? Да вряд ли, да и если даже и помогло бы, то это не решение, на самом деле (как впрочем и то, к чему мы в итоге пришли).

Даже Гугл Всемогущий не осилил в моих руках предоставть решение (потом, когда я уже знал, что искать, я его нашел) так что для экономии времени мы прибегли к последней надежде: Премьер поддержке MS (мне правда вовсе не хотелось вывести породу пользователей, читающих почту в удалённых и хранящих годовой отчет в корзине). Обходное решение было весьма простым: установить на почтовом ящике параметр AutomateProcessing в значение AutoUpdate. После этой команды:

Get-Mailbox | Set-CalendarProcessing -AutomateProcessing AutoUpdate

всё вернулось к нормальному положению дел. И знаете что? Это прекрасно, даже с учётом того, что это решение не было найдено мной =)

понедельник, 14 ноября 2011 г.

TechEd - всё

imageЧто ж, как ни обидно, а конференция и впрямь закончилась. Мне понравилось:

1) Я встретил множество друзей и приятелей (MVP и не только)

2) Я ответил на небольшую кучку вопросов от посетителей и получил часть из них на “домашнее задание”

3) Я таки прочитал свой доклад не забыв ничего существенного. Пока еще не известны результаты анкетирования, но я надеюсь, присутствующим понравилось (хотя единственным отзывом пока было “ну может это и круто, но я уже это всё знаю” =))) )

4) Я встретил Томаса Шиндера и он… взял у меня интервью для “from end to edge and beyond”. Это было КРУТО: я даже не уверен, что мой английский был хоть сколько нибудь приличен (это вряд ли – слишком волновался =) ) и что я вообще не нёс чушь… Когда будет запись – буду плакать =)

Так что я постановляю, что TechEd удался (несмотря на некоторые вполне очевидные огрехи в организации. Впрочем, моментов, которые были безупречны тоже было более, чем достаточно). Я уже жду следующего TechEd Подмигивающая рожица