| John 的个人资料Старый нудила日志列表SkyDrive | 帮助 |
|
|
10月23日 ЧуднЫе дела с SQL DMOЕсть у меня несколько скриптиков на SQL DMO (знаю что древнятина, но переписывать лень). Занимался этот скриптик забавной штукой - выставлял правильный fileGrothType после "рукоприкладства" разных backup-ов и админов. Выглядел примерно так :
DBName = "MyBase"
Set oSQLServer = CreateObject("SQLDMO.SQLServer")
oSQLServer.LoginTimeout = 30 oSQLServer.LoginSecure = True oSQLServer.Connect "localhost" oSQLServer.Databases(DBName).TransactionLog.LogFiles(1).FileGrowthType = 0 И всё. Вообщем ничего сложного. Но заметл я , что перестал он этот "FileGrowthType" выставлять. Т.е. буквально за ним читаешь его-же, а он там не 0.
Чесал я репу. И уже стал пугаться, что что-то изменили в 2008-м сервере с совместимостью с DMO (сколько можно??!!! тащить за собой это старьё, наверное они подумали). Но всё остальное-то нормально делается. А вот именно FileGrowthType в этом скрипте не выставляется. Полдня бился. Не выставляется и именно в этом скрипте. Решене - пипец :
Вместо
oSQLServer.Databases(DBName).TransactionLog.LogFiles(1).FileGrowthType = 0
Надо
oSQLServer.Databases(DBName).TransactionLog.LogFiles(1).FileGrowthType = 0
oSQLServer.Databases(DBName).TransactionLog.LogFiles(1).FileGrowth = 10 Т.е. любое ещё действие с настройками базы и всё применяется замечательно. Казалось бы "при чём тут Microsoft"? ;-)))))) Но "ненатуральненько так выглядит ;-)))))
Кто такой Генерал Фелуре ...Выдержка попыток залезть на один из ftp серверов :
#Software: Microsoft Internet Information Services 7.0
#Version: 1.0 #Date: 2009-08-26 09:47:32 #Fields: date time c-ip s-port cs-method cs-uri-stem sc-status sc-win32-status sc-substatus x-session x-fullpath 2009-08-26 13:24:02 210.56.192.51 21 USER admin 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c -
2009-08-26 13:24:24 210.56.192.51 21 USER ftp 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:24:46 210.56.192.51 21 USER oracle 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:25:07 210.56.192.51 21 USER mysql 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:25:29 210.56.192.51 21 USER nagios 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:25:53 210.56.192.51 21 USER helen 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:26:37 210.56.192.51 21 USER web 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:27:01 210.56.192.51 21 USER webserver 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:27:24 210.56.192.51 21 USER red 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:27:45 210.56.192.51 21 USER java 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - 2009-08-26 13:28:06 210.56.192.51 21 USER streaming 331 0 0 5903e89e-51a6-43b3-a1cc-faa8c36cca0c - Всё понимаю, но кто такая "helen" и почему именно она, а не "john" какой нибудь? И почему только красный ("red")? Откуда любовь именно к этому цвету? "Шаррррада" (с) "Малыш" А.Б.С. 10月16日 Block IP addressПонадобилось мне блочить плохих пользователей через firewall. Написался забавный скрипт.
Что делает?
Парсит список лог фалов задаваемый маской. Выявляет упоминание IP адресов в этих файлах и формирует firewall-е правила по их блокировке. Расчитано на сутки (т.е. через 23 часа происходит реабилитация IP адреса.
Чуть подробне :
Скрипт стОит запускать раз в час. Файлы по маске смотрятся в текущем каталоге (для тех кто будет делать "запланированную задачу")
Сначала disable-иться правило "следующего часа" (как раз для "реабилитации IP". если за час не нагадит в лог файл, то в список и не попадёт).
Потом формируется список IP упоминавшихся в LOG файлах с течении последних 60 минут (параметр /TimeOld). чтобы не просматривать все файлы, смотрится дата модификации файла и если она раньше TimeOld, то файл даже не просматривается. Т.к. ввиду разных причин командная строка ограничена (я поставил 6000 символов в начале скрипта - iCmdLen = 6000 ), то не все отмеченные в логе N раз (/Count = 2000) могут попасть в правило, но скорее всего попадут в следующем часу. По умолчанию файл считается W3C логом с time stamp в GMT, т.е. читается комментарий #Fields: и определяются позиции параметров "date", "time" и "c-ip". Но можно задать позиции "руками" (встроенный help подскажет как"). Список запихивается в правило с именем XX (час запуска скрипта). Если правило отсутствует - оно создаётся.
Вот такой весёлый скрипт. Нам помог утихомирить небольшой напавший на нас BotNet. Идея мне понравилась тем, что как-то легко "самореализовалась" система реабилитации IP.
P.S. не всё оптимально (лишний раз формирование словаря и отсутствие некоторых проверок), зато наглядно :-)
P.P.S. возникнет желание - можно докастомизировать (указание каталогов, маски названий правил и произвольная реабилитация, например 3 дня) ...
7月7日 Письма наших писателей.Письмо клиента :
> имеется простое ASP.NET приложение, которое использует штатные контролы DetailsView,
> LoginView и проч. Текстовые метки компонентов там зависят от установленного значения из
> web.config system.web : globalication : culture/uiculture. Локально на компьютере разработчика все
> работае и переключается согласно документации MSDN.
Сразу вспомнился "Начальник чукотки" и эпизод, когда американец продаёт трубы от патефона (для родившихся в эпоху развитого капитализма - американец давал послушать патефон, потом отрывал трубу и продавал чукче, как "музыкальная шайтан труба").
Вот так и программисты : показывают на своей машине "Всё работает". Клиент несёт на хостинг - не работает. Кто виноват? Программист? ЩА! Хостер конечно. А клиент, естественно, прав. Раз программист написал в Web.Config :
<globalization
enableClientBasedCulture="true" fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto" /> И у него по русски, то значит всё правильно. А хостер систему настраивать не умеет. Как в анекдоте : "Я хочу что-бы машина была цвета бордо". Делают. "Не понял. Пацаны - бордо это, разве, не зелёный?" auto - это, разве, не русский?
Это реклама "марсианской логики" и патефоннных труб. 6月10日 Вот что с серверами Service Pack делает.Вот один из наших серверов :
Не ясно, насколько нужно Web Edition роль WSUS, но Application Server нужна "по любому".
Официально объявляется Service Pack 2. УРА !!! Или нет???
Вот поставленый сервер с SP2 :
Опа. Заметили что число ролей "уполовинилось". Ну ладно FSRM (File Services) вроде и не обещали, но вот Application - то за что?
Сел думать, нужен мне SP2 или подождать (только чего?)?
Update.
Хммм .... всё оказалось несколько проще :-))) Роли "уехали" в "фичи". Т.е. Application, подразумевающая WCF HTTP Activation, стала одной из возможностей .NET Framework, а File Server просто стал возможностью FSRM (что и показано на рисунке):
Продолжаем издеваться над дистрибутивами :-) Том както умудрился поставить сервер с одной ролью :-))))
5月18日 Тщательнее надо, господа из MS.Есть такой web site - winqual.microsoft.com. Это тот, который информацию о драйверах, update-ах и тому подобных вещах выдаёт. Тыркнулся я в него с приходом нового драйвера. И "не попал" ... Т.е. нет такого, сказал мой браузер. Разобиделся я и решил проверить данную информацию :
> nslookup winqual.microsoft.com
Non-authoritative answer:
Name: winqual.partners.extranet.microsoft.com Address: 213.199.138.104 Aliases: winqual.microsoft.com Да нет. вроде существут. Т.к. доверие к браузеру уже подорвано, лезем руками :
HTTP/1.1 200 OK
Content-Length: 1433 Content-Type: text/html Content-Location: http://winqual.microsoft.com/iisstart.htm Last-Modified: Thu, 24 Mar 2005 17:19:08 GMT Accept-Ranges: bytes ETag: "0ce4f969530c51:9526a" Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET Date: Mon, 18 May 2009 14:45:02 GMT Connection: close Вам тоже нравится выделенная строчка? ;-))))) О как. iisstart.htm, почти без присмотра? ;-))))
Дальше притвряемся совсем глупымии и делаем telnet на 80-й порт с фразой GET /<cr-lf> :
HTTP/1.1 302 Found
Date: Mon, 18 May 2009 14:48:28 GMT Server: Microsoft-IIS/6.0 X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Location: https://10.253.212.78/default.aspx Cache-Control: private Content-Type: text/html; charset=utf-8 Content-Length: 151 <html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="https://10.253.212.78/default.aspx">here</a>.</h2> </body></html> Connection to host lost. Расписные красавцы :-) Т.е. если ещё радом стоящий DNS-ик найти, то можно и про MS-овский intranet узнать. Хотя, судя по имени winqual.partners.extranet.microsoft.com, это не совсем MS и не совсем intranet. Но я-бы, всё одно, не подставлялся бы так.
4月15日 Ложечки-то нашлись ...Тут меня спросили, и я решил ответить :
К посту про IIS.CertObj - "ложечки нашлись". Т.е. IIS.CertObj в IIS7 эмулируется (что не может не радовать. Уж больно удобен). НО! Он устанавливается в случае выбора не "IIS 6 Metabase Compatibility" и не с "IIS 6 Scripting Tools", а с "IIS 6 Management Console" (которая мне там нафиг не нужна).
"Где логика, где разум?" (С) Анекдот
О пользе документирования (MS - ненатуралы)Нужно выполнить доооооолгий запрос на SQL-ле (ну ещё чутка обработать данные перед этим). "Нет ничего проще" подумал я и наваял на VBScript-е небольшой код :
Set oSQLBase = CreateObject("ADODB.Connection")
oSQLBase.ConnectionTimeout = 86400
oSQLBase.CommandTimeout = 86400 oSQLBase.Open
Set oRet = oSQLBase.Execute( "EXEC LoooongQuery" )
oSQLBase.Close Т.к. знаю, что выполняться должно доооолго, то смело ставлю суточный (86400 сек.) timeout (потом оказалось что там всё ещё дольше :-) ).
Выполняем. И получаем - Query Timeout ... И подозрительно быстро. Начинаю искать и гуглить. Даже попробовал заводить отдельный объект ADODB.Command и выставлять у него timeout. Всё одно рубит через 15 сек ... Бился полдня. ПЛЮНУЛ. Решил сделать через sqlcmd. Запускаю и получаю по морде :
>sqlcmd -t 86400
Sqlcmd: '-t 86400': Timeout has to be a number between 0 and 65535. Во как! И что главное, ни в одном (суки!!!) руководстве, как от MS, так и от сторонних источников пределы этого параметра не обозначены. Мало того, скрипт это "глотает" МОЛЧА и ничего не делает (т.е. timeout остается равным default, т.е. 15 сек.), так ещё и в самом параметре находится число которое указал я, а не "действующее".
"Программисты обладают альтернативным мышлением" (с) Мой.
Тихо шифером шурша ....Читаю сегодня про уязвимость :
Повышение привилегий в функции SearchPath() в Microsoft Windows
Описание:
... Уязвимость позволяет удаленному пользователю скомпрометировать целевую систему.
Уязвимость существует из-за ошибки в функции SearchPath() при обнаружении и открытии файлов на системе. Злоумышленник может обманом заставить пользователя загрузить на систему специально сформированный файл и заставить пользователя запустить приложение, способное при определенных обстоятельствах загрузить файл.
...
"Таааак ... У меня что-то с головой" (С) френен Бок
Т.е. играем в "армянский комсомол" (сами себе создаём трудности и сами их, с успехом, преодолеваем). Завтавить загрузить файл, заставить запустить программу, чтобы загрузить файл. "что-то новенькое в любовном лексиконе нашего двора" (с) "Стакан воды"
Вспоминается анекдот про программиста "Намылить, смыть, повторить ..."
P.S. Объяснять зачем и что, мне не надо. Просто фраза построена - ВИЗГ!
4月11日 Ping from alias IP или MS - ненатуралы.Зашел ко мне парень из DC (Data Center) с некой проблемой:
Очень часто устанавливая пользователям сервера, нужно инициировать сетевую деятельность с alias IP, т.е. дополнительного IP на интерфейсе (некая защита по arp cache). "Да легко" - сказал я - "Ping-ани default gateway". Услышал законный вопрос - "Как?". "Ну ... " - сказад я - "Ping -S, например ...". На что услашал "САМ ПОПИНГУЙ!!!".
И так. Хммм ... Сказал я ... Ну и попингую ... (У меня Win2003) :
> ping -S 10.10.10.10 10.10.10.1
10.10.10.10 is not a valid address. Во как! Курим help :
>ping -?
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name Options:
........... -S srcaddr Source address to use (IPv6-only). ........... Во как! IPv6 и баста! Нужно срочно искать замену. .... Прошло немного времени ... Эврика! PathPing нас спасёт :
> pathping -?
Usage: pathping [-g host-list] [-h maximum_hops] [-i address] [-n]
[-p period] [-q num_queries] [-w timeout] [-4] [-6] target_name Options:
......... -i address Use the specified source address. ......... Уф ... Проверил - работает. Можно расслабиться? Ну на всякий случай проверим на Win2008 :
Help на pathping не отличется, значит всё хорошо? :
> pathping -i 10.10.10.10 10.10.10.1
Tracing route to 10.10.10.1 over a maximum of 30 hops
The option -i is only supported for IPv6. Вот те ХРЕН!!! И что делать? Прошло немного времени ... А как там у нас поживает ping?:
> ping -?
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name Options:
........ -S srcaddr Source address to use. ........ Я один заметил отсутствие упоминания IPv6? Проверка показала правильность моей догадки.
НУ И КТО ТУТ НАТУРАЛ???? :-)))))))))))
4月10日 А вы спрашиваете откуда беруться "красноглазики"При поиске в сети нарвался на шедевральную фразу :
" .. ping сетевой эквивалент звукового устройства ..."
Ну какой "администратор" из такого, простите, вырастет ... 3月2日 Письма ... Кхм. _НАШИХ_ писателей.Идёт переписка с клиентом, у которого не совсем корректно работают скрипты. Не сказать что очень долгая, но идёт. И ТУТ ВДРУГ сотрудник поддержки выдаёт ответ клиенту:
> Итак, главный вопрос: кто должен выправлять ситуацию, и какие
> перспективы/рекомендации по ее исправлению? > Обращае Ваще внимание на то,что, подобная ошибка служитъ н фопйсувх с разрешения дежурного по столовой. Резервную копию Вы найдете на <там-то>. Всего доброго. Что он курил при этом, выяснить не удалось (было лень). НО! Спасибо адекватному клиенту. Ответ клиента порадовал :
Здравствуйте, ***** !
Вначале - небольшое лирическое вступление: Ах, дежурный по столовой, Вот и ты с своей обновой, С фопйсувх - ом на подносе И с ответом на вопросе! А если серьезно, то описанная в моем письме проблема была успешно разрешена программистом сайта ......... Во как !!! Вот таких-бы адекватных клиентов, да с пол мульёна :-)))))
P.S. Но что он курил НАДО УЗНАТЬ :-))))
2月3日 Альтернативно одарённые FTP клиенты.Жалуется клиент - "Постоянно 550-я ошибка. Вы там поправьте ...".
Смотрю логи (с моими коментариями):
#Time Command Parameter Error WorkDir
21:08:49 CWD AEEDA0CC.htm 550 /AEEDA0CC.htm
# Товарисч! Не надо "заходить" в файл. # Сделать его "рабочим каталогом" не получится 21:08:50 LIST AEEDA0CC.htm 550 /AEEDA0CC.htm # Ну нет такого файла. 21:08:50 LIST AEEDA0CC.htm 550 /AEEDA0CC.htm # С первого раза мы не понимаем. 21:08:50 LIST AEEDA0CC.htm 550 /AEEDA0CC.htm # Со второго тоже ... 21:08:50 DELE AEEDA0CC.htm 550 /AEEDA0CC.htm # Логика отличная. Что нельзя съесть или трахнуть, нужно обоссать. # Т.е. Если в него нельзя перейти или посмотреть, его надо удалить :-)))) 21:08:51 CWD AEC4AA06.htm 550 /AEC4AA06.htm
21:08:54 DELE AEC4AA06.htm 250 /AEC4AA06.htm # Логику вот этого понять не могу. Попытка зайти в файл как в каталог # и потом его удаление. 21:09:05 CWD /www 550 /www
21:09:05 CWD /www 550 /www 21:09:05 MKD /www 257 /www 21:09:05 CWD /www 250 /www # Разговор клиента (К) и сервера (С): # К - ЗАЙТИ В КАТАЛОГ! # С - ФИГ! # К - ЗАЙТИ В КАТАЛОГ! # С - ФИГ! # К - ДОГАДА!!! А создай каталог! # С - Пожалуйста! # К - ЗАЙТИ В КАТАЛОГ! # С - Пожалуйста! 21:09:06 CWD AAC52858.htm 550 /www/AAC52858.htm
21:09:06 RNFR aAC52858.htm 350 /www/aAC52858.htm 21:09:06 RNTO AC528589.htm 250 /www/AC528589.htm 21:09:07 LIST AAC52858.htm 550 /www/AAC52858.htm 21:09:07 LIST AAC52858.htm 550 /www/AAC52858.htm 21:09:07 LIST AAC52858.htm 550 /www/AAC52858.htm 21:09:07 DELE AC528589.htm 250 /www/AC528589.htm 21:09:07 DELE AAC52858.htm 550 /www/AAC52858.htm # Разговор клиента (К) и сервера (С) # К - Зайти в файл! # С - Неумею я заходить в файлы! # К - Тогда переименуй этот файл в "другой файл"! # С - Да без вопросов! # К - Покажи мне файл! # C - Хммм ... Ты чего? Мы-ж его только что переименовали! Не покажу. # К - Покажи мне файл! # К - Покажи мне файл! # К - Покажи мне файл! # К - Ну и фиг сним! Удали другой файл! # С - Пожалуйста! # К - Ну и фиг сним! Удали файл! # С - Дурак? Мы-ж его переименовали! Кто занает, что это за "альтернативно одарённый" FTP клиент?
Я-бы на месте сервера его вообще не пускал :-))))
1月22日 Remote Desktop OrganizerРабота с удалёнными машинами - это каждодневная необходимость.
99% - это RDP сессии. Оснастка "Remote Desktops" меня почти во всём устраивает, кроме нескольких мелочей:
- Нельзя отсортировать коннекты, так как я хочу. Они там появляются только в порядке добавления.
- Неплохо бы хранить коннекты в древовидном виде
- Хорошо бы видеть, к каким коннектам ты уже подсоединён (ну какой нибудь лампочкой подсветить)
Решил поискать. Ну не может такого быть, что бы только меня одного это не устраивало.
Навскидку нашел 3 решения. Остальное нужно как-то глубоко искать. (А. И безззплатно тоже это хочется :-) )
Хммм ... Неплохо. Поставил. Почти всё то, что мне нужно. Но, естественно, несколько нареканий:
а) Ограничения free версии - Limitations of vRD 2008 Express: up to 15 objects / 5 credentials storable / no Database-Modus available / duration is valid until 3-31-2009 (there will be a new version until end of duration). Кому-то может и хватит.
б) Из вышесказанного вытекает, что ждём версию 2009, которая "на днях". Кстати, похоже, вкусная будет.
в) 88$ - дороговато :-( А то купил бы. 30$ - сразу не раздумывая.
г) Не поверите, коннекты по мере появления. И сортировать можно только в алфавитном порядке :-))))
А так, всё хорошо. Почти ничего лишнего + добротные хорошие прелести (наборы аккаунтов, групповой коннект и т.д.). Хотя нет приятностей типа - запуск программ сразу при коннекте и т.д., то, что может стандартный RDP клиент (могли бы посмотреть и сделать). Вообще подожду 2009-го и тогда погоняю :-)
Вот так. Просто так и называется :-). Пример минимализма. Человеку, как и мне не хватало только деревяшечки коннектови сортировки их, так как я хочу. Отличная программа. НО! При двойном нажатии, зачем-то, создаёт новый коннект, а не фокусирует на уже существующем. Вот такая гадость :-( Всё хорошо, но вот этот момент очень не удобен. ОЧЕНЬ. Ну и, соответственно, нет подсветочки уже "законнекченных". Ну, до кучи, можно было бы и групповой коннект сделать и был бы идеал :-)
3. Terminals
Ну, куда ж без него. Идея - отлично. Реализация - пока на 3-ку. Как и всё в OpenSource - "не нравится? Сделай сам!". Вообще - пока сыр до невозможности. Эргономика - ни к чёрту. "Деревяшки" коннектов нет, есть "одноуровневое" таггирование (как они это называют). Многие действия - не очевидны и неудобны. Но пользоваться можно. Но оооочень сырой.
Позиционируется не как "сборщик коннектов", а как инструмент админа. И не безосновательно. Если руки не опустят - может получиться замечательная вещь. (Явный конкурент vRD)
Вот так. Нет в мире совершенства. 1月20日 ШарррррадаЗаметка на полях
Делаем 2 файла. Text.txt и Text.txtMy (желательно именно эти имена, позже расскажу зачем)
Идём в командную строку :
>dir /B
Text.txt
Text.txtMy Всё нормально. НО!
>dir /B *.txt
Text.txt Text.txtMy ОПА!!! Что за чёрт? По логике Text.txtMy под указанную wildcards не подходит. Может dir дурит?
>for %i in ( *.txt ) do @echo %i
Text.txt
Text.txtMy Нее ... Это вообще логика глючит. Похоже они сами "*"-ку подставляют в конце? Проверим:
>dir /B *.tx
Тишина. Забавно. Это чем-же расширение txt так понравилось CMD?
Не буду томить. Ларчик просто открывается :-) :
>dir /X *.txt
Volume in drive R is Vol Volume Serial Number is 2479-4AF2 Directory of R:\Temp
20.01.2009 15:04 16 Text.txt
20.01.2009 15:03 20 TEXT~1.TXT Text.txtMy 2 File(s) 36 bytes 0 Dir(s) 12 293 558 272 bytes free Забава в том, что ищет и по короткому имени тоже, а показывает длинное ... Вот и сидишь, чешешь репу :-)))) 1月15日 Ну кто тут "натурал"?Сижу, никого не трогаю,
Проверяю в коммандной строке :
> echo list volume | diskpart
Microsoft DiskPart version 5.2.3790.3959 Copyright (C) 1999-2001 Microsoft Corporation. On computer: PC DISKPART>
Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 V DVD-ROM 0 B Healthy Volume 1 C BOOT FAT Partition 502 MB Healthy System Volume 2 D SysDisk NTFS Partition 36 GB Healthy Boot Volume 3 I Util NTFS Partition 40 GB Healthy Volume 4 W DVD-ROM 0 B Healthy Volume 5 R Distrib NTFS Partition 77 GB Healthy DISKPART>
> Отлично. Теперь парсим вывод и подаём на вход тому-же diskpart. Делов-то. НЕЕЕЕЕЕЕ..... Для уверенности запускаем команду ещё раз:
>echo list volume | diskpart
Microsoft DiskPart version 5.2.3790.3959
Copyright (C) 1999-2001 Microsoft Corporation. On computer: PC DISKPART>
Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 R Distrib NTFS Partition 77 GB Healthy Volume 1 C BOOT FAT Partition 502 MB Healthy System Volume 2 D SysDisk NTFS Partition 36 GB Healthy Boot Volume 3 I Util NTFS Partition 40 GB Healthy Volume 4 W DVD-ROM 0 B Healthy Volume 5 V DVD-ROM 0 B Healthy DISKPART>
НЕ ПОНЯЛ!!!! А ну повтори? :
>echo list volume | diskpart
Microsoft DiskPart version 5.2.3790.3959
Copyright (C) 1999-2001 Microsoft Corporation. On computer: PC140 DISKPART>
Volume ### Ltr Label Fs Type Size Status Info ---------- --- ----------- ----- ---------- ------- --------- -------- Volume 0 R Distrib NTFS Partition 77 GB Healthy Volume 1 W DVD-ROM 0 B Healthy Volume 2 V DVD-ROM 0 B Healthy Volume 3 C BOOT FAT Partition 502 MB Healthy System Volume 4 D SysDisk NTFS Partition 36 GB Healthy Boot Volume 5 I Util NTFS Partition 40 GB Healthy DISKPART>
ОПА!!!! Вот это фокус. учитывая, что присвоение буквы диска через assign требует volume, результат становится непредсказуемым.
Я один такой счастливчик?
<<<
- Правда ведь? Ну как тут все увяжешь? Девушки услышать пенье... И ведь не всякое пенье какое-нибудь, а чтобы девушка была юная, находилась вне его пути, да еще только после того, как у него про дорогу спросит... Разве же так можно? Разве такие вещи алгоритмизируются?
- Вряд ли, - сказал я. - Я бы не взялся.
>>> (c) А.Б.С. "Понедельник начинается в субботу"
12月24日 VBScript - наше всё!!Мдяяя ...
Странная штука получается. Попробуйте выполнить вот такой VBS скрипт :
WScript.Echo "Right ->" & Now + TimeSerial(0,0,0)
WScript.Echo "Wrong ->" & Now - TimeSerial(0,0,0) WScript.Echo "Right ->" & Now - TimeSerial(0,0,0) + TimeSerial(0,0,0) WScript.Echo "Wrong ->" & Now + TimeSerial(0,0,0) - TimeSerial(0,0,0) WScript.Echo "Type right " & TypeName(Now + TimeSerial(0,0,0)) WScript.Echo "Type wrong " & TypeName(Now - TimeSerial(0,0,0)) Он достаточно понятен.
Нет, если делать явное приведение типов, через CDate(), то нормально. Но скажите почему, если последним оператором в выражении, в котором учавствуют только объекты типа Date, будет вычитание, то оно приведётся к другому типу ....
12月23日 Ну надо же, какая связь.- Женщина в красной кофточке, а у Вас что болит?
...
- Голова? Ну это вы съели что нибудь. И что Вам прописали?
...
- Уколы? В голову?
...
- А куда?
...
- Ну надо же какая связь!
(с) Кто то из сатириков.
На домашней машине отключился Remote Desktop. Без ругани и логов. RDP client connect и сразу-же disconnect. Тихо. Молча. Чуток поковырялся и плюнул. Не очень нужно было.
Но тут на работе, точно с такими же симптомами, взбрыкнул Server 2003. А это уже наглость, т.к. из дома теперь не поработаешь (естественно СРАЗУ нашлись VIP клиенты которым в воскресенье нужно было настроить, а настройки на рабочем сервере. Еле вывернулся). Но server уже ругался. Правда, единственным сообщением в System Event Log :
\SystemRoot\System32\RDPDD.dll failed to load
Ну хоть что-то. Поковырялся. Погуглил. Оказалаось, что это конфликт с драйверами видео карт от NVidia. О КАК!!!
И решается до безобразности просто :
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management]
"SessionImageSize"=dword:00000020 и reboot, естественно, т.к. Terminal Server сильно "ядерный". Помогло и домашней XP и рабочему Server 2003.
Вот догадаться до такого - безперспективняк! Век живи - век учись.
12月17日 Письма наших писателей ..."Здравствуйте!
Проблема заключается в очень медленной работе наших сайтов www._____.ru и www._____.ru. .............
Просим разобраться в существующей проблеме.
В данный момент наш сист.администратор находится в отпуске, так что ждем скорейшего и максимально полного ответа и помощи по этому эл.адесу: nobody@somehost.com " Предлагаю раширить круг интересов :
"в данный момент наш webmaster бухает, так что ждём быстрейшего и красивенького web сайта по адресу: www.google.com"
"в данный момент наш бухгалтер сидит, так что ждём правильного и аккуратного финансового отчёта по адресу: г. Город, у. Уличная, д. 1, оффис 22"
"в данный момент наш Генеральный Директор на Сейшелах, так что ждём что вы нам подгоните "жирнейших" и "богатейших" заказчиков, с ОГРОМНЫМ откатом, по телефону: 555-333-22" 12月16日 Про сертификаты и Win Server 2008Как и обещал ранее, расскажу про сертификаты.
Задача :
Реализовать автоматическую постановку сертификата для сайта IIS. Тоесть совсем автоматическую.
Реализация:
--------------------
Server 2003 и IIS6, соответственно. Да проще простого :
set iiscertobj = CreateObject("IIS.CertObj")
iiscertobj.InstanceName = "w3svc/2059934190"
iiscertobj.ServerName = "localhost" iiscertobj.Import "Loshadka.pfx" , "bubu" , False , True
Далее прикрутить binding и ВСЁ. Проще простого.
--------------------
Server 2008 (ну всё же beta он... хорошая, но beta) и IIS7 соответственно. Даже при установленной совместимости с IIS6 ответом на :
set iiscertobj = CreateObject("IIS.CertObj")
будет :
Microsoft VBScript runtime error: ActiveX component can't create object: 'IIS.CertObj'
Вот так. Ну должна же быть какая-то замена?
Ищем и ... Не находим :-(
Что предлагают нам взамен? А ничего. Пользуйтесь утилитами.
Отсупление - очень напоминает ситуацию с File Server Resource Manager из 2003-го R2. Ребята создали механизм, но скриптовую обвязку к нему не дали. Пользуйтесь утилями (http://technet.microsoft.com/en-us/cc730417.aspx -
Q: Is there a public scriptable API for FSRM?
A: FSRM has command line tools - dirquota.exe , filescrn.exe and storrept.exe which you can use for scripting. One more thing - the APIs themselves are not public - we plan to publish them in a future Windows release. ) Ну утилями тоже можно (но не совсем гибко и удобно). Так камими утилями-то? Куда ни кинь - везде рассказывают "какой менюшкой надо пользоваться, что бы импортировать сертификат". Это "автоматизация"????? Ррррррррр!!!!!!!
НО! Мы хитрые и знаем, что есть certutil. ОТЛИЧНО! Для начала импортнём сертификат. Ну ка расскажи нам как? (для уменьшения простыни пропустим через find):
>certutil -? | find /I "pfx"
-MergePFX -- Merge PFX files -ConvertEPF -- Convert PFX files to EPF file О как ! Что-то не видно слова import ... Но есть более расширенная справка. Может чего скажет?
>certutil -v -? | find /I "pfx"
-MergePFX -- Merge PFX files -ConvertEPF -- Convert PFX files to EPF file BackupDirectory -- directory to store backed up PFX file CertUtil [Options] -restoreKey BackupDirectory | PFXFile BackupDirectory -- directory containing PFX file to be restored PFXFile -- PFX file to be restored PFX file CertUtil [Options] -RecoverKey RecoveryBlobInFile [PFXOutFile [RecipientIndex]] CertUtil [Options] -MergePFX PFXInFileList PFXOutFile Merge PFX files PFXInFileList -- Comma separated PFX input file list PFXOutFile -- PFX output file CertUtil [Options] -ConvertEPF PFXInFileList EPFOutFile [cast | cast-] [V3CACertId][,Salt] Convert PFX files to EPF file PFXInFileList -- Comma separated PFX input file list И тут ни слова про импорт. Что делать? На просторах MS сайта, в закоулках, находим - http://technet.microsoft.com/en-us/library/cc786245.aspx
который говорит - ЕСТЬ правильные ключи у certutil для импорта PFX сертификата. И правда :
>certutil -importpfx -?
Usage: CertUtil [Options] -importPFX PFXFile Import certificate and private key PFXFile -- PFX file to be imported Defaults to personal machine store. Options:
-f -- Force overwrite -user -- Use HKEY_CURRENT_USER keys or certificate store -gmt -- Display times as GMT -seconds -- Display times with seconds and milliseconds -v -- Verbose operation -privatekey -- -p Password -- Password -csp Provider -- Provider CertUtil -? -- Display a verb list (command list)
CertUtil -importPFX -? -- Display help text for the "importPFX" verb CertUtil -v -? -- Display all help text for all verbs Зачем скрывать-то? Умеет ведь. Но не говорит, а надо выпытывать :-) Это ещё не вся правда. Оказывается у команды certutil -importpfx есть ещё ключи, которые она даже не говорит, но понимает. И написано это в одном "глухом месте" - http://blogs.technet.com/pki/archive/2007/07/29/marking-private-keys-as-non-exportable-with-certutil-importpfx.aspx
От так вот. Но это полдела. То что в IIS6 vs делали 4-мя строчками в скрипте, мы ещё не доделали. Т.е. сертификат импортировали, а к сайту его не привязали. Как? "Да легко!" говорят нам разработчики. Вот так, например. О скриптах даже речи не идёт. Программу писАть надоть. Да и certificate hash надо откуда-то взять. Тоже желательно "автоматически". Есть ещё программка. AppCmd, подумаете Вы? И ошибётесь. ApCmd (основная утилита для IIS7) не привязывает сертификаты к сайту. А кто? Не поверите! NETSH !!!! Убедитесь, набрав команду :
netsh -c "http" add sslcert ?
Т.е. Вместо удобного объекта для работы с сертификатами, мы получили связку из 3-х программ (которые ещё связать надо, что не особо тревиально): certutil (c неописанными параметрами), appcmd (привязка https на сайт) и netsh (для привязки сертификата к IP адресу и порту).
С ПРОДОЛЖАЮЩИМСЯ, ВАС, БЕТАТЕСТИРОВАНИЕМ Windows Server 2008 !!!! :-))))))
|
|
|