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

четверг, 10 июля 2014 г.

Как найти и сменить прокси для системной службы

Интересный квест поимел на днях. Поставили на сервер свой софт, проверили, отправили заказчику. Стали запускать у заказчика - облом, системная служба не хочет опрашивать железяки по http, запрос отваливается по таймауту - нет ответа. Железяки живые, из браузера с того же сервера замечательно опрашиваются.

Служба запускается под системной учёткой



Брандмауер винды конечно первым делом покрутил - дело не в нём. Запустил Microsoft Network Monitor, от службы вообще никаких запросов не видно, ОК, смотрю, а кудаж она пытается соединиться



Опа, а адресок-то знакомый - этож наш конторский прокси. Ага, сказали суровые сибирские мужики и набрали

netsh.exe winhttp show proxy

Фигвам, сказала netsh.exe



Пришлось обратиться к всемирному разуму, разум сказал, что надо настраивать прокси для системной учётки, для этого взять PsExec от Sysinternals и сделать так

psexec -i 0 -s "C:\Program Files\Internet Explorer\iexplore.exe"

-i - Запускаемая программа получает доступ к рабочему столу указанного сеанса
-s - Процесс запускается из системной учетной записи.

Появляется запрос



давим Просмотреть сообщение, видим Internet Explorer, запущенный под системной учёткой, а в его настройках - таки да, забит конторский прокси. После чистки порчу со службы как рукой сняло.

Остался правда вопрос как оно туда попало, что-то я не помню, чтоб при установке софта занимался вызовом системного призрака IE и задания в нем адреса прокси.

четверг, 23 января 2014 г.

А этим ребятам 2 года назад рассказал - бесполезно

Раз пошла такая пьянка © Есть еще такая прикольная штука - StyleManager от ProFactor - этот не переносит русских имен пользователей винды, говорит "Error: Unable to set the base install path."



оказалось, вместо C:\Users\Администратор\AppData\Roaming\ProFactor\ ищет свои данные в C:\Users\Администратор\AppData\Roaming\ProFactor\StyleManager, причём, если создать этот самый каталог Администратор то успокоится и будет работать.

И, кстати, переименование пользователя Администратор средствами винды в какую-нибудь латиницу не помогает, всё равно в C:\Users\ используется АдминистраС.

Так вот, товарищу из ProFactor Support рассказывал это всё ещё в 2011 году, сегодня посмотрел - на сайте всё та же глючная версия 1.18 :(

пятница, 16 августа 2013 г.

Давненько я не устанавливал винду

А оказалось в этом деле столько нового появилось :)

Во первых, сервер пришёл без CD/DVD, да и зачем, когда есть USB, наше всё. Это как оказалось, самое простое, берем UltraISO и закатываем iso-шный образ инсталятора винды на флэшку.

Потом оказалось, что 8 дисков каждый по 2.7ТБ подключаются к маме через аппаратный RAID, вернее 2 разных RAID-а, а диска с драйверами на них нет, из-за чего инсталятор винды показывает диски вместо 2.7ТБ как диски на 746ГБ. Хотя логика безусловно присутствует - зачем CD диск, если дисковода всё равно нету.

Ну, ладно, мы не гордые, идём на сайт Supermicro и видим, что драйвер Intel PCH Driver(SCU) (Romley) 3.7.0.1093 присутствует, а на Intel PCH Driver(SATA) (Romley) 3.7.0.1093 ссылка есть, а файла-то по ней нету.

Ну, на следующий-то день зоркий сокол догадался в ссылочке ftp://ftp.supermicro.nl/driver/SATA/Intel_PCH_RAID_Romley_RSTE/Windows/3.7.0.1093/Win.zip откатить версию на ftp://ftp.supermicro.nl/driver/SATA/Intel_PCH_RAID_Romley_RSTE/Windows/3.7.0.1092/Win.zip и о, чудо, драйвер закачался. Ещё через пару дней, кстати, страничку поправили, ссылка и в самом деле должна была быть на 1092.

А пока решил ставить винду на тот RAID, от которого драйвера скачались сразу. OK, скопировал драйвера на флэшку, поставил её в BIOS первой в очереди на загрузку и долго удивлялся почему инсталятор говорит "Установка Windows на данный диск невозможна. Выбранный диск имеют стиль разделов GPT". Ведь ясен же пень, что с MBR вместо GPT диск больше 2ТБ полностью использовать не получится.

Оказывается в очереди на загрузку в BIOS надо первой ставить не просто флэшку, а ту запись, где название флэшки предваряется волшебными буковками "UEFI:". GPT сразу становится для винды своим в доску, инсталлятор предупреждает, что хочет создать пару мелких служебных разделов (не давая выбрать, где именно) и наконец-то начинает копировать винду на HDD. Недолго, однако, музыка играет, сервер уходит на перезагрузку и загрузиться с HDD не может :( Оказалось, что эти самые служебные разделы инсталлятор создал на одном из 746ГБ огрызков RAID-а, на который не было драйверов. Пришлось временно отключать диски второго RAID-а, повторять процедуру заново и только тогда, наконец-то, всё заверте...

Малость переживал как драйвера на второй RAID встанут после установки винды, т.к. ни одного устройства с вопросиками в списке устройств не было, но обошлось щелчком на inf-файле драйверов и четыре 746ГБ огрызка влёт превратились в один диск второго RAID-а.

Интересно, когда я в следующий раз через пару лет буду ставить windows, что ещё новенького придумают...

четверг, 28 марта 2013 г.

MSVS - пути к h и lib файлам библиотек

В 2010 студии общие для всех C/C++ проектов пути к библиотекам исчезли из Tools - Options..., на виду осталась только возможность задать пути к библиотекам отдельно для каждого C/C++ проекта в его свойствах.

Новое расположение этих настроек оказалось так хорошо замаскировано, что приходится долго вспоминать его каждый раз, когда надо поменять, это View -> Other Windows -> Property Manager -> Microsoft.Cpp.Win32.user:



Дерево настроек вроде как намекает, что это настройки для текущего проекта, причем отдельно для Debug/Release, но это не так, это для всех C/C++ проектов, независимо от конфигурации. Храниться эти настройки будут в файле %LOCALAPPDATA%\Microsoft\MSBuild\v4.0\Microsoft.Cpp.Win32.user.props.

Вставить общие для всех C/C++ проектов пути к библиотекам можно либо в VC++ Directories - IncludeDirectories / LibraryDirectories, либо в C/C++ - General - Additional Include Directories / Linker - General - Additional Library Directories:



То, что в этих настройках будет вставлено в верхнем (настраиваемом) окошке:



в индивидуальных свойствах C/C++ проектов будет в таком же окне, но в нижнем, нередактируемом, сером окошке.

среда, 24 октября 2012 г.

Кое-что о windows 2008 r2 firewall

Наступаю на грабли настройки винды раз в год, так что запишу, чтоб не забыть.

  • Дано: Windows 2008 r2 server, на нем несколько сайтов под IIS, служба windows firewall ("Брандмауэр Windows") остановлена.
  • Переводим сервер из standalone в domain
  • Все сайты снаружи становятся недоступными.

Что произошло - в настройках windows firewall появилась новая категория сетей - domain network ("Доменные сети") с настройками по умолчанию в которых запрещены все входящие подключения.
Причем это правило действует несмотря на то, что служба windows firewall остановлена. Самая большая подлянка в том, что само правило видно только когда запускаешь службу windows firewall.

Т.е. что надо сделать - запустить службу windows firewall, увидеть правило для domain network, разрешить входящие подключения, либо вообще запретить для domain network использование windows firewall. После этого службу windows firewall можно остановить.

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

пятница, 20 апреля 2012 г.

Сокрытое в листве - 0x800700b7

Если после переноса web-сайта под IIS на новый комп он не открывается с ошибкой 0x800700b7 Ошибка конфигурации Определена копия раздела... с указанием куда-то внутрь файла web.config, не надо ничего выкашивать из web.config, нужно просто доустановить ASP.NET (из установщика компонентов windows), зарегистрировать его (aspnet_regiis.exe -i) и проверить, что указанный для сайта пул приложений использует нужную версию .NET Framework.

Подобными сведениями нужно дорожить. ©


четверг, 14 июля 2011 г.

Сокрытое в листве

Если активация windows или подключение к центру обновления обламывается с ошибкой 0x80072F8F нужно проверить дату на компьютере.

Подобными сведениями нужно дорожить. ©

среда, 13 июля 2011 г.

Пара-тройка способов поставить Windows Media Player Plugin на сервер

На многих инет-страничках сейчас воспроизведение аудио, радио и видео сделано на Windows Media Player, при попытке открыть их в FireFox или Chrome предлагается установить плагин:

Однако, если попробовать это сделать на windows-сервере (2003 или 2008), инсталлятор плагина скажет: "Package does not support server operating systems":

Для начала нужно открыть закаченный wmpfirefoxplugin.exe архиватором, например RAR-ом, и извлечь из него все файлы, в том числе ffplugin.msi.

Дальше самые умные берут Orca (редактор MSI), открывают ffplugin.msi и удаляют из него (Drop Row) "лишнюю" проверку:

После этого можно спокойно запускать установку измененного пакета:
msiexec /I ffplugin.msi
Люди попроще вместо Orca открывают в архиваторе уже ffplugin.msi, извлекают оттуда NPMSWMPdll, переименовывают в np-mswmp.dll и кладут ее в C:\Program Files\Mozilla Firefox\plugins.

Самые простые берут C:\Program Files\Mozilla Firefox\plugins\np-mswmp.dll на какой-нибудь машине с XP и копируют к себе.

Результат один - работающий плейер:

суббота, 9 июля 2011 г.

Создание сайта на IIS из инсталлятора

Смотрю кого-то занесло ко мне с поиском по фразе "как сделать инсталлятор сайта на iis". На самом деле их есть у меня. Вот выдержки из скрипта для Inno Setup, создающего сайт на основе каталога с файлами.

Несколько общих переменных и констант:
var
  WebSiteNamePage: TInputQueryWizardPage;
  DispatchWebSiteName: string;

const
  IISServerName = 'localhost';
  IISServerNumber = '1';
В самом начале убеждаемся, что все необходимое на месте:
function InitializeSetup(): Boolean;
begin
 // Проверка, что установлено все необходимое ПО
 result := IsDotNet35Installed() and IsSQLServerInstalled() and IsIISInstalled();
end;

// Проверка, что установлен Microsoft IIS
function IsIISInstalled() : Boolean;
var
 IIS: Variant;
begin
  try
    IIS := CreateOleObject('IISNamespace');
    result:=true;
  except
    result:=false;
    MsgBox( CustomMessage('InstallIIS'), mbError, MB_OK );
  end;
end;
Собственно создание сайта у меня происходит в PostInstall(), когда уже скопированы все файлы сайта:
// Действия после установки
procedure PostInstall();
begin
 // Создать виртуальный каталог IIS для сайта
 CreateDispatchVirtualDir();
end;

// Создание сайта на основе каталога со скопированными файлами
function CreateDispatchVirtualDir() : Boolean;
var
 IIS, WebSite, WebServer, WebRoot, VDir: Variant;
 ErrorCode: Integer;
begin
 result:=true;
 // подключение к IIS
 try
  IIS := CreateOleObject('IISNamespace');
 except
  result:=false;
  MsgBox( CustomMessage('InstallIIS'), mbError, MB_OK );
 end;

 if result then
 begin
  try
   // берем рычаги
   DispatchWebSiteName := WebSiteNamePage.Values[0];
   WebSite := IIS.GetObject('IIsWebService', IISServerName + '/w3svc');
   WebServer := WebSite.GetObject('IIsWebServer', IISServerNumber);
   WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');

   // удаляем виртуальный каталог, который собираемся создавать
   try
    WebRoot.Delete('IIsWebVirtualDir', DispatchWebSiteName);
    // сохранить изменения
    WebRoot.SetInfo();
   except
   end;

   // создаем виртуальный каталог
   VDir := WebRoot.Create('IIsWebVirtualDir', DispatchWebSiteName);
   VDir.AccessRead := True;
   VDir.AccessScript:=true;
   VDir.DefaultDoc:='default.aspx';
   VDir.AppFriendlyName := DispatchWebSiteName;
   VDir.Path := ExpandConstant('{app}');
   VDir.AppCreate(True);
   // сохранить изменения
   VDir.SetInfo();

   // открываем сайт в браузере
   ShellExec( 'open', 'http://' + IISServerName + '/' + DispatchWebSiteName + '/', '', '', SW_SHOW, ewNoWait, ErrorCode );
   result:=true;
  except
   MsgBox( CustomMessage('VirtualDirNotInstalled'), mbError, MB_OK );
   result:=false;
  end;
 end;
end;
Ну и удаление при деинсталляции:
// Действия после деинсталляции
procedure PostUninstall();
begin
 DeleteDispatchVirtualDir();
end;

// Удаление виртуального каталога
function DeleteDispatchVirtualDir() : Boolean;
var
 IIS, WebSite, WebServer, WebRoot: Variant;
begin
 result:=true;
 // подключение к IIS
 try
  IIS := CreateOleObject('IISNamespace');
 except
  result:=false;
 end;

 if result then
 begin
  try
   // берем рычаги
   WebSite := IIS.GetObject('IIsWebService', IISServerName + '/w3svc');
   WebServer := WebSite.GetObject('IIsWebServer', IISServerNumber);
   WebRoot := WebServer.GetObject('IIsWebVirtualDir', 'Root');

   // удаляем виртуальный каталог
   try
    WebRoot.Delete('IIsWebVirtualDir', DispatchWebSiteName);
    // сохранить изменения
    WebRoot.SetInfo();
   except
   end;
   result:=true;
  except
   result:=false;
  end;
 end;
end;
Скрипт проверен на windows 2003 и 2008. Надо только не забывать в 2008-й при настройке ролей сервера дополнительно инсталлировать компоненты, обеспечивающие совместимость со средствами управления IIS6:

суббота, 14 мая 2011 г.

Cygwin Bash Here

Надоело вручную переходить по каталогам в cygwin-овском bash-е, и уже почти было совсем занес шашку над C:\Program Files\Far\Addons\Shell\FARHere.inf, чтоб сделать из него BashHere.inf, но призадумался, ужели не все ещё украдено до нас. Оказалось таки да. При установке Cygwin можно было совершенно штатным образом отметить утилитку chere: Cygwin Promt Here context menus из раздела Shells (по умолчанию не устанавливается):



после чего запустить Cygwin и выполнить:

chere -i
вуаля, теперь можно запускать bash сразу в нужном каталоге:

среда, 13 октября 2010 г.

Как стать счастливым

Надо скачать Keyboard Layout Manager и отредактировать русскую раскладку клавиатуры - заменить запятую на дополнительной (цифровой) клаве на точку.

з.ы. для полноты ощущений предварительно помучаться с этой точкозапятой лет 10.