Политики System Center Orchestrator с TechEd Russia 2011

На прошедшем TechEd Russia 2011, мы с Артуром Гаффановым в процессе нашего доклада “Интеграция продуктов System Center: облака без бла-бла-бла” показали много интересных демонстраций возможностей System Center Orchestrator.
В частности были следующие демки:

    Автоматическое добавление процессоров на виртуальные серверы по сигналу от System Center Operations Manager.

    Автоматическая очистка временных файлов на диске виртуального сервера если там заканчивается место, а если временных файлов было не много – увеличение виртуального диска и расширение раздела.
    Политика создающая Change Request в System Center Service Manager для тех компьютеров где требуется перезагрузка для установки обновлений и политика перезагружающая эти компьютеры после одобрения Change Request.
    Бонусная политика, уничтожающая виртуальные машины в ЦОД по команде из твиттера ;)

    Посмотреть запись доклада можно здесь.
    А если вы захотите что-то из этих политик применить у себя (разумеется адаптировав под свои задачи) или просто посмотреть на них более подробно, то можете загрузить файл экспорта отсюда. Обратите внимание, политики в формате Orchestrator RC, c Orchestrator Beta или Opalis они работать не будут. Зато скорее всего их можно будет импортировать в финальную релизную версию Orchestrator, когда она выйдет.

Опубликовано в Uncategorized. Комментарии (3) »

Новые русскоязычные ресурсы по PowerShell

Привет! К сожалению, в последнее время я несколько подзабросил свой блог. Впрочем скоро я снова начну писать, несколько интересных постов уже наготове Smile Но речь не об этом. Сообщество PowerShell не стоит на месте, и у нас появилось несколько новых русскоязычных ресурсов посвященных PowerShell. Знакомьтесь:

  • Скринкасты Юрия Лебедева о PowerShell – обучающее пособие для тех кому удобнее воспринимать информацию в формате видео.
  • Блог SHS (возможно знакомого многим по форумам), “еще один блог сисадмина” со всевозможными скриптами на PowerShell и другими интересными постами.
  • NETZ – Блог об администрировании Windows и не только, и конечно о PowerShell Smile
  • Заметки о PowerShell. Автор блога – Kazun, которого вы могли встретить в разделе скриптинга на русскоязычных форумах технет. В блоге приводятся интересные скрипты PowerShell, в том числе с активным применением C# и Win32API.
Опубликовано в Uncategorized. Комментарии (4) »

Invoke-SQL

Всем привет!

thumbnailCA2CQQEOСпасибо всем кто не отписался от моего блога несмотря на отсутствие новых постов в последнее время. У меня для вас есть кое что вкусное Smile

Я думаю большинству читателей моего блога, так или иначе приходится сталкиваться и взаимодействовать с серверами MSSQL, ведь большинстов современных серверных продуктов используют их для хранения данных. И я думаю что вам, так же как и мне, часто хотелось автоматизировать взаимодействие с этими хранилищами данных с помощью PowerShell. И Microsoft даже пошла нам на встречу выпустив SQL Server 2008 с интеграцией PowerShell. Это позволило нам автоматизировать настройку серверов SQL, но возможностей работы с данными содержащимися в базах к сожалению не прибавило. То же относится к недавно выпущенному MSSQL 2008 R2. А ведь казалось бы, нам нужно совсем немного – хотя бы простой командлет который смог бы принимать на вход SQL запрос, и возвращать данные не в текстовом представлении, как это делают osql.exe или isql.exe, а в виде объектов, со свойствами – столбцами. Аналогичный командлет на самом деле уже написала компания SoftwareFX, но он поставляется в составе их платного продукта PowerGadgets, который хоть и хорош сам по себе, но покупать его только для того чтобы удобно выполнять SQL запросы из PowerShell – просто нецелесообразно. Поэтому я решил написать собственный командлет (advanced function), с таким функционалом, являющийся на самом деле обёрткой над .NET классами для работы с SQL.

Читать далее…

Опубликовано в Uncategorized. Метки: , . Комментарии (10) »

BitsTransfer

Я уже писал про командлеты для передачи файлов с использованием BitsTransfer (раз, два), но думаю стоит вспомнить о них еще разок. Дело в том что те посты писались по CTP3, а в релизе модуль и сами командлеты были переименованы из FileTransfer в BitsTransfer :) Не ахти какое ужасное изменение, но лучше упомяну, а то те посты уже многих ввели в заблуждение :) Итак, в релизе делаем так:
Import-Module BitsTransfer
Get-Command -module BitsTransfer

Ну и до кучи, небольшой ролик демонстрирующий основные возможности командлетов :)

bits

На момент написания этого поста релиз PowerShell 2.0 и этого модуля, доступен только на Windows 7 и Windows 2008 R2. Но уже скоро должен выйти пакет с PS 2.0 и обновленным BITS для всех остальных систем, начиная с XP.

Опубликовано в Uncategorized. Метки: , . Комментарии отключены

Текущий “залогиненный” пользователь

Достаточно часто на форумах возникает вопрос – “Как получить имя пользователя работающего в системе в данный момент?”. Такое может понадобится например если у нас есть сценарий обрабатывающий все включенные компьютеры, и ему нужно знать имя текущего пользователя.

Итак, какие есть решения… А решений вроде бы немало. Во-первых – psloggedon.exe, прекрасная утилита от Microsoft SysInternals с отличными возможностями… но не для нашей задачи. Лучшее что она может – вывести список учетных записей выполнивших вход. Интерактивных и нет. Пользовательских и служб…

PS C:\root> psloggedon -l -x

loggedon v1.33 - See who's logged on
Copyright й 2000-2006 Mark Russinovich
Sysinternals - www.sysinternals.com

Users logged on locally:
     NT AUTHORITY\LOCAL SERVICE
     NT AUTHORITY\NETWORK SERVICE
     EURAZFIN\gusev
     EURAZFIN\sa1
     NT AUTHORITY\???????

А еще у неё какие то проблемы с юникодом… :( Придётся поискать другой метод. И он достаточно легко находится. На vbscript – http://blogs.msdn.com/alejacma/archive/2008/03/04/how-to-get-the-logged-on-user-with-wmi-vbscript.aspx. Здорово да? А казалось бы, такая простая задачка… Но может быть дело не в задачке, а в языке? ;)

Итак, решение на PowerShell. Сразу в виде удобной функции. По умолчанию получает текущего пользователя для локального компьютера, но можно указать и удалённый.

Function Get-LoggedOn ($Comp = $env:computername)            
{            
Get-WmiObject -computername $Comp -query `
    "Select logonid from Win32_LogonSession where logontype = 2 or logontype = 10" |             
foreach {Get-WmiObject -computername $Comp -query `
    "Associators of {Win32_LogonSession.LogonId=$($_.logonid)} Where AssocClass=Win32_LoggedOnUser Role=Dependent"}            
}            

Фактически тут только 1-2 строчки. Остальное для читабельности и обёртка в функцию. Копипастим её в консоль (или сразу в файл профиля), и используем:

PS C:\root> Get-LoggedOn esprimo10


AccountType : 512
Caption     : MYDOMAIN\gusev
Domain      : MYDOMAIN
SID         : S-1-5-21-445788029-8720151102-0124946612-1722
FullName    : Гусев Василий
Name        : gusev

Если вам нужны другие типы сессий, то вот тут есть полный список значений LogonType которые можно использовать в WMI запросе – http://msdn.microsoft.com/en-us/library/aa394189.aspx

Опубликовано в Uncategorized. Метки: , , . Комментарии (25) »
Follow

Get every new post delivered to your Inbox.

Join 30 other followers