Показаны сообщения с ярлыком Windows. Показать все сообщения
Показаны сообщения с ярлыком Windows. Показать все сообщения

суббота, 21 сентября 2013 г.

Как НЕ надо настраивать IPv6 transition в Windows 8

До чего же может дойти человеческая мысль! Просто ужас порой берет. В общем, решил я покачать всякого интересного с одного известного торрент трекера. Ну что, все так делают, чем я хуже. В общем – пошел на сайт, а он не работает. Вот блин, копирасты, подумал я. Погуглил, нашел слухи о том что сайт по DDOS атакой, и всякие товарищи предложили пойти на ipv6 адрес данного трекера. Сказано – сделано. Но ping сразу, из коробки, не пошел. Я не стал долго думать над решением. Зачем, если сначала проще всего спросить у гугла. И гугл нашел решение. Ну по правде говоря это решение для Win7, но поскольку разница идеологически не очень большая – работать должно. Но меня сразу смутило начало – “Шаг 1. Удаляем весь мусор”. Это просто феерия, накал сами знаете чего! Вот отчего все что там перечислено – мусор? Позвольте поинтересоваться, что оно вообще такое? От чего же оно мусор? НУ и далее по тексту ручное добавление дефолтного маршрута и проблемы из этого вытекающие. Моему возмущению просто нет предела. И после вот такого “конфигурирования” вы хотите чтобы ОС работала как надо?

В общем, единственное что полезно в этой статье – это список teredo серверов и IPv6 DNS. Все остальное можно смело отправить на помойку. К слову, в конфигурации по умолчанию у меня оно таки заработало, позже, после тестов. Не знаю почему, не вникал. Исследование требует времени. Возможно есть некторые проблемы с teredo сервером по умолчанию, а возможно они случились когда я попытался этим воспользоваться. Не могу сказать точно, но в конечном итоге простейшая процедура следующая:

  • Указать IPv6 DNS в настройках интерфейса
  • Задать сервер teredo, отличный от заданного по умолчанию
  • Подождать, пока поднимется туннельный интерфейс. По умолчанию он поднят и настроен, но может статься, что не работает. По разным причинам, тут сниффр в руки и вперед. Правда думается, что во многих случаях будет работать из коробки, и все это нужно проделывать только если не работает.


Ну и собственно, картинки:
Настройки сетевого интерфейса
teredoConsole2

Настройка teredo интерфейса
teredoConsoleMain

После всего вернул в исходное состояние но все продолжило работать и пинговаться. Возможно нужно было только сказать:
netsh interface teredo set state type= client
или как-то так, чтобы его подергать.
Вывод, читайте документацию, и думайте головой прежде чем что-то удалять!

Взял как бы тут, правда я же это и написал )

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

Конфигурирование single sign-on для RD Services

Итак. Задача, сделать так, чтобы при запуске клиентского подключения система не спрашивала имя и пароль. Для этого нужно создать GPO, с соответствующими настройками. Основная настройка:

Computer configuration\Policies\Administrative Templates\System\Credentials Delegation\Allow Delegating Default Credentials

Самый главный вопрос, что писать в настройках политики. Если внимательно изучить пояснение, то структура записи должна быть ясна. По сути вы должны указать SPN того сервера, которому вы собираетесь делегировать свои Credentials. Узнать этот самый SPN, можно командой setspn:


где, nyc-ts - это имя сервера терминалов, SPN которого необходимо узнать. Помеченные желтым записи - это SPN связанные со службой терминального сервера, то есть как раз те, которые нас интересуют. При этом нужно иметь ввиду, что, для корректной работы, при указании имени сервера в командной строке mstsc или в его окне, нужно писать имя так, как оно написано после слэша в строке SPN.
Как водится после создания готовую политику нужно назначить на соответствующие OU, для ускорения применения выполнить gpupdate /force. Кроме того в этой же политике можно сконфигурировать и дополнительные параметры для подключающихся клиентов.

Powershell 3

Свершилось! Группа разработки Powershell в своем блоге опубликовала, правда довольно давно, заметку о новом powershell 3 и о его возможностях. В принципе, все движется к тому, что управление новыми клинтскими и серверными ОС будет основано на нем. Особенно учитывая тот факт, что в сессии, посвященной введению в Windows Server 8, было сказано что основным типом инсталляции нового сервера будет Server Core. В общем, учим.

Problem Steps Recorder

Всем привет. Я думаю, все должны знать об этом функционале, и скорой всего, многие знают. Но если кто не знает, то вот, простая и доступная презентация. Идея утилиты в том, что можно записать свои действия, приводящие к проблеме и предоставит их в службу поддержки или на форум, когда просишь помощи. Мне кажется, это было бы значительно более быстро и удобно, чем описывать проблему вручную.

среда, 10 августа 2011 г.

Копипаст в виртуалку

В процессе работы понадобилось передать содержимое всяких текстовых файликов в виртуалки на основе hyperv. При этом очень хотелось не подключать их ни к общей сети ни к сети компьютера-хоста. В общем – без всяких там RDP и иже с ними. Просто скопировать и вставить. Для этих целей есть встроенная возможность:

typeText

Однако если попытаться вставить большой объем текста – получается следующее:typeTextErr


Собственно говоря, покопавшись в гуглах я обнаружил, что есть WMI Классы для работы с hyperv. Собственно на основе их родилась вот такая вот функция. Особенность функции в том, что тот метод, который зовется из WMI, принимает на вход только ascii строку – 7 бит. А значит, русский шрифт, как не прискорбно, передать не выйдет. Ну да и черт с ним, хотя, конечно, печалька.

К слову говоря, sleep тут нужен по причине того, что без него работает с некоторыми странностями.
<#
.SYNOPSIS
Отправка текста в буфере обмена в виртуальную машину hyper-v

.DESCRIPTION
Текст, находящийся в буфере обмена отправляется в виртуальную машину
методом TypeText wmi класса Msvm_Keyboard. Попросту говоря при передаче текста
внутри виртуальной машины эмулируется нажатие соответствующих клавиш.
Для использования функции необходимо наличие в буфере обмена текста, и открытое активное
окно редактора текста в виртуальной машине

.PARAMETER $VM
Имя виртуальной машины.

.PARAMETER $Server
Имя hyper-v сервера. Поумолчанию используется текущая машина

.EXAMPLE
PS C:\>send-clipboardtext -vm pkidemosubordinateca1

Пример вызова функции

.INPUTS
System.String,System.String
#>
function send-clipboardText {
[CmdletBinding()]
param(
[parameter(Position=0 , Mandatory = $true, ValueFromPipeline = $false)] $VM,
[String]$Server="."
)
begin {
try {
}
catch {
}
}
process {
try {
$text = ([System.Windows.Forms.Clipboard]::GetText()) -split "`n"
$ascii = [System.Text.Encoding]::ASCII

if ($VM -is [String]) {$VM=(Get-VM -Name $VM -Server $Server) }
if ($VM -is [System.Management.ManagementObject]) {
$VSMKB=($VM.getRelated("Msvm_Keyboard") | select-object)
if ($text -ne $null ) {
foreach ($line in $text){
$bytes = $ascii.getBytes($line)
$line = $ascii.getString($bytes)
$result = $VSMKB.TypeText($line)
if ($result.returnvalue -eq 0) {write-host "'$line' was successfully sent to $vm on $server"}
sleep -Milliseconds ($line.Length*10)
}
}
}
}
catch {
echo "oops!"
$Error
}
}
end {
try {
}
catch {
}
}
}

Ну и пример вызова
send-clipboardtext -vm contosoca1

четверг, 10 февраля 2011 г.

Windows 7/2008 R2 Service pack is RTM

Несмотря на кучу сообщений до этого и выложенное в торрент сетях, только сейчас можно с уверенностью сказать – SP1 для семерки и Windows2008 R2 вышел. Официально его можно будет получить 22 февраля, с чем вас и поздравляю.

четверг, 22 июля 2010 г.

Уязвимость в LNK

Уязвимость позволяет выполнить код от имени текущего пользователя, при работе системы с lnk файлами, примерно вот так:


Небольшой, так сказать, обзор.

Хабр
Еще хабр
Пруф оф концепт

Ну и собственно реакция MS Security Essentials:

lnkvuln

Другие методы борьбы с уязвимостью lnk файлов:

Didier Stevens 1
Didier Stevens 2
Microsoft

пятница, 16 июля 2010 г.

Локальный администратор

По сути дела эта заметка так, ничего особенного. Просто мне, почему-то раньше эта мысль в голову не приходила. Наверное не задумывался.

Так вот. Часто бывает, когда необходимо залогиниться на компьютер пользователя с привилегиями администратора. Не runas использовать, а именно войти в графическую сессию. В этом кроется опасность, особенно если компьютер доменный, а аккаунт, под которым вы входите – доменного администратора. Если на компьютере “вирус” – он получит права доменного админа и вперде :), заре на встречу. Это, само собой – не хорошо. Что делать? А ничего сложного. Есть специальная доменная политика Restricted groups. Попросту говоря, вы можете указать, в какой локальной группе, какие пользователи должны содержаться. В этом случае вы можете создать доменного пользователя, с правами обычного пользователя, и централизованно добавить его в группу локальных администраторов на всех машинах домена. Само собой, что этот пользователь должен иметь сложный длинный пароль. Но зато зайдя под ним вы не дадите возможности вирусам шастать по домену.

PS.
Коллега, Ростислав, справедливо ткнул меня носом в мою ошибку:

2. По заметке: если ты запустишь процесс от имени локального админа, который также является локальным адмиом на других рабочих станциях, то у него будут все права на заражение парка машин.

Да, действительно, это так [заготавливает ведро пепла].

Однако продолжим.

понедельник, 21 июня 2010 г.

Установка софта через глобальные политики

А точнее о некоторых проблемах с этим связанных. Давеча пришлось перенести хранилище дистрибутивов с одного сервера на другой по причине падения первого. Причем упал он совсем. Навсегда. Собственно, проблем с переносом никаких не возникло, какие уж тут проблемы. А вот с инсталляцией возникли. Никак не хотел софт ставиться из нового расположения. В логе ругалось довольно странным образом.

installError1

Все выглядело так, как будто не хватает прав на доступ. Первым делом были проверены права на ресурсах. Они оказались в норме. Для authenticated users доступ на чтение. Но не работало, хоть тресни. Что же делать, как же быть? Ну что ж, раз при инсталляции система идет на шары под учетной записью компьютера, имело смысл попробовать сходить таки под учетной записью компьютера и посмотреть, что же за ошибка выдается при доступе к общему ресурсу. Как это сделать? Помогает все тот же psexec.

installError2

При помощи соответствующих ключей программы можно запустить cmd под системной учетной записью. Сделав это, я попробовал подключить сетевой ресурс от имени машины и получил осмысленное сообщение об ошибке. Оказалось, что на новом хранилище дистрибутивов политикой отключен доступ по сети. Самым простым вариантом было переместить учетную запись сервера в подходящий OU, в котором нужная политика была сконфигурирована корректно. В итоге проблема была решена – установка пошла корректно.

воскресенье, 6 июня 2010 г.

Проблема с DNS зоной Active Directory

Давеча меня попросили разобраться с проблемой. При попытке добраться из одного домена в другой, через доверительные отношения, выдавалось сообщение: “Отсутствуют серверы, которые могли бы обработать запрос на вход в сеть”. Я зашел через RDP на проблемный контроллер домена и попробовал. Сообщение действительно выдавалось :). Занятно, но при попытке зайти на общедоступные ресурсы с другой стороны успешно удавалось. Мало того, ситуация складывалась так, что домен, в ресурсы которого не удавалось зайти был совсем недавно создан и в него был мигрирован другой домен, NT4. Так вот в ресурсы этого NT4 заходило без вопросов и проблем. Собственно говоря вот так примерно это выглядело. Зеленые стрелки это удачные заходы на общие ресурсы, а красные – соответственно, неудачные. Внешние эллипсы это два физически удаленных географических места, соединенных wan соединением.

domains

Что ж, подумал я, вероятно где-то есть проблема с разрешением имен. И тут я сделал первую ошибку. Я просто бросил пинг из одного и из другого домена. Имена исправно разрешались и пинги исправно шли. Странно, подумалось мне, очень странно. Недолго думая я поставил снифферы на трех машинах. На контроллерах в обоих w2k3 доменах и на файловом сервере, доступиться к которому не удавалось. Хотел посмотреть, где и почему все застряет. И тут меня ждал обескураживающий результат. Все выглядело нормально на первый взгляд. То есть файловый сервер корректно шел на свой контроллер домена за разъяснениями, по поводу имени пользователя из другого домена. Тот, в свою очередь ходил в удаленный домен однако конечный контроллер почему-то упорно возвращал ошибку. И только в этот момент мне пришло в голову внимательно посмотреть в зону DNS домена-источника. Сделай я это раньше – сэкономил бы кучу времени. Оказалось,что его зона не содержит ни одной srv записи. То есть не было ни одной “подпапки” в оснастке DNS. Кроме того, были отключены автоматичесие обновления. Вот это да, подумалось мне. Положение спас файлик
%SystemRoot %\System32\Config\Netlogon.dns. В нем, как водится, находилась корректная структура зоны, нужные srv записи. Я просто скопировал нужные записи в текущий файл зоны и перезапустил DNS. Затем сбросил кеш всех серверов в обоих доменах и все. Проблема пропала. По сути дела можно было просто включить автоматические обновления и перегрузиться или перезапустить netlogon, который, если верить документации, должен был перерегистрировать записи из этого файла. Но, об этом я подумал только после того как скопировал записи и перезапустил DNS.

В последствии, копаясь в гугле, нашел вот эту тему, и скрипт из нее. Думаю, он делает тоже самое:

rem Экспорт зоны в файл.
rem ---------------------
dnscmd localhost /ZoneExport domain.lan exported.domain.lan.dns

rem Импорт зоны из файла.
rem ---------------------
dnscmd.exe localhost /ZoneDelete domain.lan
dnscmd.exe localhost /ZoneAdd domain.lan /Primary /file exported.domain.lan.dns /load dnscmd.exe localhost /ZoneResetType domain.lan /DsPrimary /OverWrite_Ds

Проблема с Outlook 2003 и загрузкой диска.

И снова здравствуйте. Уже очень давно ничего не писал. То не находил времени, то желания. К сожалению порой лень сильнее меня. Как жаль, что никто еще не придумал никакой “золотой таблетки” от лени. Вот, чтобы выпил, и все. Никакой лени или плохого настроения.

В общем, в этой заметке хочу вкратце рассказать об одной интересной ситуации, случившейся на днях. Один из компьютеров моей организации вдруг ни с того ни с сего начал жутко тормозить. Причем пользователь жаловался, что не может работать с почтой. Клиентом, в нашем случае, является outlook 2003. Придя к пользователю я сразу обратил внимание на то, что лампочка активности жесткого диска постоянно горит. Трещащие звуки самого диска были слышны постоянно. При этом, как и следовало ожидать, скорость отклика системы была очень медленной. Я задумался: как можно узнать какой процесс в этом виноват? Меня сразу посетила мысль о process explorer. С его помощью это можно сделать довольно легко. Для этого нужно добавить дополнительные колонки.


IO

К сожалению на рассматриваемой машине мне не удалось сделать нужных скриншотов. По этому я публикую только те, что сделал на своей. Итак, на рисунке видно, какие колонки стоит добавить для того, чтобы обнаружить, какой процесс генерирует большое количество IO операций. Отсортируем отображение по этим колонкам и, вот оно, outlook в верху списка. Мало того, при попытке закрыть приложение его окно пропало, а процесс остался, генерируя дикий IO. Вот и причина тормозов. Мало того, пользователь ведь думает, что раз окно пропало – приложение закрыто. Я подождал еще с пару минут в надежде что outlook закроется. Но нет, не закрылся. Пришлось убить вручную. Долго думать о причинах такого поведения не пришлось. При старте он выдавал сообщение о неправильном закрытии файла личных папок и я решил что вся проблема в нем. Я просто создал еще один файл личных папок, перезапустил outlook и перенес все содержимое старого файла в новый. Процесс длился около получаса, в результате чего новый файл стал размером в 3ГБ хотя старый был всего 1,6ГБ. После окончания переноса я отключил старый файл, оставив только новый. Еще пара проверок и, ура, проблема исчезла.

четверг, 15 апреля 2010 г.

Как звать компьютер пользователя

К огромному сожалению мне приходится заниматься поддержкой пользователей. Ох, как меня утомляют эти однотипные вопросы о том, как отправить почту или почему она мне не приходит. Или как удалить/добавить строчки в ячейках и почему у меня спрашивает пароль, если у меня его никогда не было. Мало того, люди не понимают, что в моей голове не удерживается эта куча ассоциаций “человек-компьютер”, и я не могу знать кто за каким компьютером работает и какой у него адрес. А ведь эта информация нужна мне, для подключения по vnc к их машинам. И как объяснить им, где посмотреть имя их машины, не говоря уже об адресе, если они не делают различий между именем машины и именем пользователя. В общем, после долгих раздумий и мытарств пришел к простому решению – bginfo. Программа позволяет отобразить прямо на рабочем столе, точней на его обоях нужные данные. Достаточно только раздать ее пользователям, и прописать в автозапуск.

среда, 10 марта 2010 г.

Windows и логи squid 2: Анализ логов squid

Следующим шагом будет небольшая модернизация нашей таблицы в sql server и самого скрипта, а так же простое и быстрое получение отчета. Наша задача быстро и просто, без лишней головной боли получить отчет по использованию трафика пользователями. Для этого мы воспользуемся таким супернавернутым средством как microsoft excel. Как оказалось, круче него только горы.

Однако, для начала нам стоит изменить таблицу sql server, в которой хранятся наши логи. Мы добавим вычисляемое поле, которое будет преобразовывать данные объемов трафика из байтов в мегабайты. Для этого можно сделать примерно следующее:

alter table accesslog add mb as ((cast ([size] as decimal (20,3))/1024)/1024)

Проблема в том, что поле size у нас типа bigint, что обусловлено типом в файле лога. Верней особенностями logparser при работе с типами. При создании вычисляемого поля, сервер использует тип данных для поля, основываясь на исходных полях. В итоге, если не использовать преобразование cast ([size] as decimal (20,3) тип данных нового поля будет целым, что приведет к потере дробной части.

После добавления поля, количество полей, понятное дело, изменится. Это требует небольшой коррекции скрипта:

LogParser.exe" -o:sql -server:SQLSERVER -database:weblog -ignoreIdCols:on -createTable:on -i:TSV -iSeparator:space -nSep:1 -headerRow:off "select TO_TIMESTAMP( ADD( TO_INT(field1), TO_INT(TIMESTAMP('1970','yyyy')) ) ) AS field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, 0.0 into accesslog from \\gateway\squid\access.log.2"

Нужно добавить в конце инструкции select еще одно поле подходящего типа. Это, опять же, требования самого logparser.

Итак, предварительные приготовления сделаны. Займемся отчетом. Займет эта процедура очень немного времени. На самом деле значительно меньше, чем у меня ушло на написание этой заметки.

Прежде всего создаем источник данных, путем создания запроса к внешним данным:

olap1

 olap2

Указываем параметры нового запроса. А именно, откуда берем данные: сервер, таблица, язык. Язык влияет на формат дат. Кроме того выбираем тип аутентификации на сервере. В моем случае это доменная аутентификация. Однако можно использовать и аутентификацию sql server.

olap3

olap4

olap6

Теперь, используя вновь созданный источник, начинаем выбирать данные.

olap5

Тут нам нужно выбрать все поля таблицы, в которой хранятся данные squid, которые мы импортировали нашим скриптом. Для этого вам будет предложено окошко визарда. Прежде всего там нужно выбрать поля фактов. То есть поля, по которым будет происходить агрегирование. В нашем случае мы выбираем ранее созданное поле mb – объем данных, преобразованых к мегабайтам.

olap7

Теперь самое интересное. Выбираем измерения. Это поля, которые будут, так сказать, задавать оси пространства, в котором располагаются наши факты. То есть, можно будет задать выборку по двум осям, скажем дате и имени пользователя. На пересечении этих полей в пространстве будут лежать значения фактов, которые соответствуют выборке.

oplap8

Затем визард предложит вам выбрать тип создаваемого куба. Я выбрал тут первый тип, чтобы не ждать долго его создания.

olap9

После всего этого придется подождать пару минут, пока построится куб. Итогом этой работы будет сводная таблица, в которую можно произвольно добавлять нужные нам поля, произвольно фильтровать, сортировать отбирать.

olap12

Готовый файл вы можете спокойно сохранить себе на диск. После того как новые логи будут втянуты в базу, достаточно нажать на кнопку “обновить данные” на панели инструментов, немного подождать – и вы получите готовый отчет с кучей всяких плюшек и фишек.

В общем и целом – задача довольно простая. Результат выглядит удобно и достаточно интерактивен, поскольку можно строить всякие графички, плюшечки и всякие разные красивости при помощи того же excel.

понедельник, 8 марта 2010 г.

Windows и логи squid

  Некоторое время назад потребовалось предоставлять информацию, на предмет использования интернет на рабочем месте. Вообще, я считаю, что это лишнее. Если люди делают свою работу хорошо, зачем ограничивать им интернет. Тем более что в наше время он совсем не дорог. Однако руководство имеет совсем другое мнение. Заковыка состояла в том, что вся инфраструктура построена на windows, а прокси, соответственно, на linux. Файлы логов опубликованы на этом linux при помощи общей папки. Однако, имеющиеся под linux средства анализа и генерации отчетов никого не устроили по непонятным мне причинам. Вероятно потому, что внешний вид отчетов оставляет желать лучшего. Да и работать c html отчетами не удобно. Другое средство - internet access monitor for squid почему-то вело себя совсем неадекватно. Что, учитывая его стоимость и ограничения, совсем не хорошо. Например, поставить его можно только на одно рабочее место. То есть, если несколько человек хотят посмотреть отчеты и при этом, при необходимости, детализировать их там где надо, возникает проблема. Отчеты можно генерировать по расписанию, и рассылать почтой, но вот нужного функционала нет. Мало того, при быстром разрастании базы отчеты строятся “тыщщу лет”. В общем – никакой стабильности.

    Поколебамшись, я решил накрутить что-нибудь сам. Идея была в том, чтобы втянуть логи, как есть, в MS SQL Server, и потом обрабатывать их. И вот тут то и появилась первая проблема. Логи формата по-умолчанию, никак не хотели втягиваться стандартным визардом импорта. Верней, втягиваться то они втягивались. Но визард, разбирал их не совсем корректно. А все потому, что отформатированы они, мягко говоря, через одно место. То есть, человеку их, конечно, удобно читать. А вот разобрать их на столбцы простыми кликами мышки оказалось сложнее. В итоге, я решил использовать для этой цели powershell. Дай, думаю, я удалю лишние пробелы, авось втянется. Однако и тут, облом подкрался незаметно… Время обработки одного 300мб файла переваливало за 11 мин. Меня такая ситуация не устраивала в корне.

    В общем, поборовшись, какое-то время за скорость я решил вернуться к более традиционным средствам LogParser. Оказалось, что эта утилита умеет не только исполнять простые запросы на sql подобном языке к файлам различных форматов. Она умеет еще кучу всего всякого разного, включая преобразование форматов и запись в таблицы SQL Server. Последнее его свойство я и решил попробовать использовать. Оставалась только одна задача. Поле даты в этих журналах хранится в формате unix timestamp. Соответственно его нужно преобразовать к подходящему формату. И тут на помощь снова приходит logparser. Он подерживает некий набор функций, по работе с данными входных файлов. В общем и целом, без долгих разговоров – вот такой вот простой скрипт:

LogParser.exe" -o:sql -server:SQLSERVER -database:weblog -ignoreIdCols:on -createTable:on -i:TSV -iSeparator:space -nSep:1 -headerRow:off "select TO_TIMESTAMP( ADD( TO_INT(field1), TO_INT(TIMESTAMP('1970','yyyy')) ) ) AS field1, field2, field3, field4, field5, field6, field7, field8, field9, field10 into accesslog from \\gateway\squid\access.log.2"

Этот запрос выбирает данные прямо из логов squid и пишет их в базу ms sql. При этом, в случае отсутствия нужной таблицы первый раз, она создается. Единственный эпизод, после создания имеет смысл изменить имена полей таблицы, а так же типы данных полей, хранящих количество переданых байт и затраченое время на bigint. Это стоит сделать для того, чтобы в дальнейшем упростить запросы к базе, поскольку при агрегировании этих данных может случиться переполнение. Этот скрипт можно запускать по расписанию, допустим, каждый день. Запрос на моих объемах и условиях выполняется 5-6 минут. Думаю, процесс можно значительно ускорить, если разбить процедуру на два этапа. Сначала преобразовывать файл лога в более привычный формат, например csv, а затем втягивать его в базу при помощи bcp. Скорее всего можно достичь скорости, где-то в районе от 30 сек до минуты-двух.

вторник, 9 февраля 2010 г.

Руссинович как всегда жжот

Не спорю, такой функционал уже давно существует в других операционных системах. Да и в Windows от сторонних производителей он тоже был давненько. Однако мой опыт работы с подобными продуктами был немного неудачным. И я, в конечном итоге, отказался от такого решения. Но вот сегодня нашел вот эту вещь. А поскольку я доверяю автору – буду пробовать еще раз :)

суббота, 16 января 2010 г.