понедельник, 1 июля 2013 г.

Очистить все события в журналах (EventLogs)

Делаем файл "ClearAllEvents.ps1":

Param(
[string] $computerName = "localhost"
)

$logs = get-eventlog -computername $computername -list | foreach {$_.Log} | foreach {clear-eventlog -comp $computername -log $_ }
get-eventlog -computername $computername -list

Как сменить контроллёр домена (удалив старый)

Натрахался изрядно, пока не нашёл нормальную статью как и что делать. Статья старая, но разницы никакой.

http://support.microsoft.com/kb/555846

четверг, 20 июня 2013 г.

Как найти/выделить все картинки в Word

В поиске вводим "^g" - найдёт все картинки.
Чтобы применить к ним стиль, нужно запустить поиск и замену, в поле поиска ввести "^g", а в замене указать какой стиль к ним применить, например, рамочку.

понедельник, 10 июня 2013 г.

4 лекции по технологиям виртуализации Microsoft

День 1. Виртуализация серверов: Технологии и лицензирование
Докладчики: Вероника Ленькова, Николай Иванов (Microsoft)

Видеозапись (250 МБ) и презентация на SkyDrive: http://sdrv.ms/149YNFk

День 2. Проект по виртуализации инфраструктуры: мастер-класс
Докладчики: Илья Задворошный, Андрей Выставкин (Microsoft)

Видеозапись (246 МБ) и презентация на SkyDrive: http://sdrv.ms/149YNFk

День 3. Виртуализация рабочих мест: Технологии и лицензирование

Докладчики: Вероника Ленькова, Николай Иванов, Илья Задворошный (Microsoft)

Видеозапись (208 МБ) и презентация на SkyDrive: http://sdrv.ms/149YNFk

День 4. Мониторинг, управление и защита рабочих станций в корпоративной среде с помощью продуктов System Center 2012 SP1
Докладчики: Андрей Выставкин, Максим Синельников, Георгий Гаджиев, Андрей Борзенко (Microsoft)

Видеозапись (315 МБ) и презентация на SkyDrive: http://sdrv.ms/149YNFk

суббота, 25 мая 2013 г.

Выполнение PowerShell в коде программы .Net

Так как powershell и .Net очень близки, то помимо стандартного варианта "вызвать исполняемый файл powershell из кода и передать ему команды", есть и более красивый/умный вариант - через объектную модель PowerShell.

За работу с PowerShell отвечает сборка "System.Management.Automation.dll". Она ставится вместе с SDK или же через NuGet:
Install-Package System.Management.Automation

После этого пишем простенький метод:

   1:  using System.Management.Automation.Runspaces;
   2:  using System.Text;
   3:   
   4:  namespace PowerShell
   5:  {
   6:      public class PowerShellInterpreter
   7:      {
   8:          public string Execute(string command)
   9:          {
  10:              var runspace = RunspaceFactory.CreateRunspace();
  11:              var executeResult = new StringBuilder();
  12:              try
  13:              {
  14:                  runspace.Open();
  15:   
  16:                  var pipeline = runspace.CreatePipeline();
  17:                  pipeline.Commands.AddScript(command);
  18:   
  19:                  var result = pipeline.Invoke();
  20:                  foreach (var psObject in result)
  21:                  {
  22:                      executeResult.AppendLine(psObject.ToString());
  23:                  }
  24:              }
  25:              finally
  26:              {
  27:                  runspace.Close();
  28:              }
  29:              return executeResult.ToString();
  30:          }
  31:      }
  32:  }

Сначала мы создаём "Runspace" - это что-то типа инстанса powershell в памяти, который может обрабатывать поступающие команды (pipeline). Запихиваем в pipeline команду и просим её выполнить (Invoke), в результате получаем массив PSObject (базовый объект powershell). Результат выполнения команд в PowerShell может быть многострочным, поэтому именно массив, а не один объект. Далее мы эти объекты объединяем в строку и возвращаем результат.

Вот такой код можно используем для проверки:
   1:  using System;
   2:  using Microsoft.VisualStudio.TestTools.UnitTesting;
   3:   
   4:  namespace PowerShell
   5:  {
   6:      [TestClass]
   7:      public class PowerShell
   8:      {
   9:          [TestMethod]
  10:          public void PowerShellExcuteTest()
  11:          {
  12:              var interpreter = new PowerShellInterpreter();
  13:              const string command = "$psversiontable.psversion";
  14:              var result = interpreter.Execute(command);
  15:              const string expected = "3.0\r\n";
  16:   
  17:              Assert.AreEqual(expected, result);
  18:          }
  19:      }
  20:  }

вторник, 7 мая 2013 г.

Баги с лайками в SharePoint 2013

Интересно, как Microsoft тестируют продукт перед выпуском? 

Создаём обсуждение

лайкаем его, F5

дизлайкаем его, F5

Баг: 1 пометка "Нравится". Откудова, а?! Я же дизлайкнул!
лайкаем его, F5

Баг: уже 2 пометки "Нравитися". Можно два раза лайкать?
дизлайкаем его, F5

понедельник, 6 мая 2013 г.

Первая помощь

Кто обязан оказать первую помощь:
- госслужащий в форме (полицеский, врач, охранник, сварщик и кто угодно);
- любой водитель (да, читайте законы внимательно).

Алгоритм.
Первичный осмотр:
1. Мне что то угрожает? (Да -> уходите)
2.1. Чел сам попросил
2.2. Чел валяется без сознания, проверяем:
- окрикнуть
- потрясти
- сделать ему больно (костяшками пальцев по грудине, сжать трапецивидную мышцу за шеей, сжать губу под носом...)
2.2.1. Заглянуть в рот, очистить содержимое рта:
Запрокиньте челу голову назад. Указательные пальцы на челюсть снизу, где скулы. Большие бальцы на подбородок. Открывает рот, потянув чуть на себя челюсть. Не выньте челюсть =) Двумя пальцами вынимаем содержимое (блевотину)) ) изо рта (чтоб мог дышать, иначе помрёт).
2.2.2. Проверить дыхание
- глазами, движение воздуха
- запах
- почувствовать рукой на грудной клутке
Пульс мерять не нужно - не умеете и потеряете время. Дыхание = пульс!
Нет дыхания -> немедленно СЛР.
3. Вызвать скорую - 03.

Обращаем внимание на пункт 3 - чем раньше вызовете скорую, тем лучше, лечить и спасать, просьба, после вызова скорой!

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

Обморок - если чел свалился при вас. Если никто не видел как он упал, лечить от обморока нельзя, даже опасно, можно убить. Если чел свалился при вас, то полождите на землю, поднимите ноги. Кровь к голове придёт и через 15-30 секунд чел очнётся. Если был не обморок, а сердечный приступ, то вы его убили, +1.

Вопросы от скорой.
Всегда такие, не психуйте и не спешите.
1. Пол:
- мужской
- женский
- иное (ага, есть такое, дети до 1 года)
2. Возраст:
- младенец
- ребёнок
- подросток
- молодой человек
- средних лет
- пожилой
- очень пожилой
Возраст влияет на бригаду медиков и тулзы, которые они с собой захватят!
3. Что случилось?
"Не вася много пил, его бросила жена, которая родила пятерых детей, уехавших за границу и не присылающих открытку бедной матери, которая с горя начала пить и порезала палец, когда дядя ваня смотрел футбол..." а "упал, без сознания". Что случилось - это не история жизни, а состояние человека, что с ним произошло в последнюю минуту.
4. Адрес
5. Опционально: Кто вы?
6. Опционально: Было ранение? (приедет милиция)
7. Телефон, можно мобильный. Да, у всех скорых есть мобильники!
"Вызов принят, ждите"

Вторичный осмотр:
1. МЧС (мужики, чего случилось) - потом расскажете скорой, толпа будет тупить и нихрена не сможет сказать.
2. Осмотр тела. Очень просто, как в американских фильмах про копов - кладёте руки по краям тела, начиная с плеч, и ведёте их вниз. Тело симметрично, если что-то есть с одной стороны, а с другой стороны нет - значит проблема, запоминаете и не лезете туда! Дождитесь скорой!

Перевести в востановительное состояние. 
Иначе язык западёт и чел задохнётся, так как даже в сознании запавший язык не вынуть. Восстановительное состояние - лёжит на богу, верхняя нога согнута в колене, нижняя рука вытянута в сторону взгляда, верхняя рука согнута и подложена под голову или плечо (не даёт челу скатиться на пузо).



вторник, 30 апреля 2013 г.

В TFS 2012 не работает "Open in Microsoft Excel" в Office 2013

Проблема обычно лечилась переустановкой "Microsoft Office Developer Tool for Visual Studio 2012".
Но в этот раз ничего не помогало. Даже когда просто запускал Excel я не видел вкладки "TEAM". Но вручную, после активации add-in в FILE\Options\Add-ins manaege COM add-ins, появлалсь до следующего запуска Excel. 
Лечется легко, нужно добавить этот add-in в автозапуск. Через реестр это делается так:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\Addins\TFCOfficeShim.Connect.4\LoadBehavior значение 3