Wednesday, 20 January 2016

IDE Delphi as phenomena in history.

Hello everybody.

I had a great mood by development tool Borland Delphi. It was very progressive IDE for me. In spite of for duobts of C-developers it has very strong position in Rapid IDE world. My latest project by Delphi was Nyukers Network Suite® - swiss army knife for administrator.

Today I take an active part in others projects and have not coding. But accidently I found my grandma Borland Delphi 5.0 on my PC. Perhaps I moved it from my old PC. I could to run it without installation, my mind remember it. I needed to change some registry keys and added some BPL files to system32 folder. And It is here, our belle!




May be you know that one of main features Borland Delphi was its expansion by additional component libraries. What's sweets I added to it?


Of course, the first library was legendary RX! It was a bomb, and it had assemebled the guys from Master-bank. This library had fresh air in standard component set of Delphi.


Saturday, 16 January 2016

Запуск программ от имени SYSTEM в MS Windows.

Всем привет.

Периодически у меня возникает необходимость запуска программ от имени системы (SYSTEM или Local System).  Обычно  это необходимо для целей тестирования или отладки работы различных программ и скриптов, которые в дальнейшем будут запускаться планировщиком. Тестировать работоспособность подобных программ не всегда правильно из-под учетной записи Администратора.

Точно такая же необходимость возникает когда некий процесс работающий от имени SYSTEM подгружает саму систему и другие задачи не могут из-за него работать. Недавний случай с серверным антивирусом который ночью пошел на апдейт, но так и не смог обновиться. В результате зависшый процесс занял весь процессорный ресурс под 99% и никак не давался мне для завершения по taskkill. Потому как выполнялся от SYSTEM. Пришлось воспользоваться методом описанным ниже.

Запуск программ от имени SYSTEM в Windows XP.

Как же можно запустить программу или же интерактивную командную строку (cmd) с правами администратора? В Windows XP или Windows Server 2003 это можно сделать очень просто. Достаточно было зайти в систему с правами администратора, открыть командную строку и набрать в ней:

at 12:13 /interactive cmd.exe
, где12:13 – ваше текущее время + одна минута (в 24 часовом формате).

Помните что в для этого должна быть запущена служба "Планировщик заданий". После наступления указанного времени перед вами появится черное окно командной строки, запущенное с правами Local System. Стоит отметить, что если вы выполняете этот трюк через терминальное подключение  к Windows Server 2003, то окно командной строки запуститься в консольной сессии.

Wednesday, 13 January 2016

Быстрый апдейт КТ «АРГУС».

Всем привет.

Время от времени приходится сталкиваться с таким вот чудным девайсом.


Компьютерный терминал (КТ) «АРГУС» разработан на базе PinPad CIT 1000 компании Castles и предназначен для обслуживания клиентских чиповых карт НСМЭП. КТ «АРГУС» работает как в режиме on-line, так и в режиме off-line. 

КТ «АРГУС» устанавливается на компьютер, работающий под ОС Windows XP и выше. Для работы терминала необходимо наличие одного свободного СОМ порта и наличие принтера при работе терминала без кассового аппарата.

Это так, для общей информации. Для работы  с КТ устанавливается соответствующий софт, который, как водится "в большой литературе" привязывается к конкретному компьютеру. Он имеет свои настройки которые требуют как минимум двоих администраторов. К сожалению сохранить эти настройки кроме как сделать скриншоты до сих пор другой возможности нет. Поэтому при замене компьютера приходится весь процесс инсталляции и конфигурирования софта проходить заново. Просто скопировать нужный файл не получится. Что удивительно это же приходиться делать и при апдейте ибо новая версия всегда идет полным пакетом. Таким образом риски от человеческого фактора присутствуют в полном объеме.

Что делать? Приходится выкручиваться. Но это поможет только при апдейте на тот же компьютер. Как? А все просто. Разворачиваем новую версию на другой ПК и берем оттуда только главный ЕХЕ-модуль. Накрываем им наш рабочий, но устаревший модуль.) Все настройки сохранены. 

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

Всем удачи.

Monday, 11 January 2016

PowerShell and MS Excel 2010.

Hi all.

Do you imagine - PowerShell 2.0 is not working with MS Excel 2010 if your OS has interface language location another than English (en-US) ? Although PS is working well with MS Word 2010 by any language.

So, and what we have decision?

The good guys made Function for change Host.CurrentCulture to "en-US" on the fly.

Here is her code:

Function Using-Culture (
[System.Globalization.CultureInfo]$culture = (throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}"),
[ScriptBlock]$script= (throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}"))
{
    $OldCulture = [System.Threading.Thread]::CurrentThread.CurrentCulture
    trap
    {
        [System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture
    }
    [System.Threading.Thread]::CurrentThread.CurrentCulture = $culture
    Invoke-Command $script
    [System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture
}

The string for using of this function:
using-culture en-US {get-date}

And below my simple PS-example of function application:

#get process
$a = Get-Process -name powershell*
$a

#function Using-Culture
Function Using-Culture (
[System.Globalization.CultureInfo]$culture = (throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}"),
[ScriptBlock]$script= (throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}"))
{
    $OldCulture = [System.Threading.Thread]::CurrentThread.CurrentCulture
    trap
    {
        [System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture
    }
    [System.Threading.Thread]::CurrentThread.CurrentCulture = $culture
    Invoke-Command $script
    [System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture
}

Using-Culture en-US -Script {
$b = New-object -ComObject Excel.Application
$b.Visible= $true
$c = $b.WorkBooks.Add()
$d = $c.Sheets.Add()

#insert data to Excel
$d.Cells.Item(1,1) ="Process Name"
$d.Cells.Item(2,1) =$a.Name
$d.Cells.Item(1,2) ="ID"
$d.Cells.Item(2,2) =$a.ID
}

Good luck.

Tuesday, 5 January 2016

Правка куста HKCU с помощью MS SССM.


Всем привет.


Так получилось что под Новый Год надо было срочно менять ветку реестра у пользователя. Ну сами понимаете, когда пользователь думает о новогоднем столе его поднимать из-за рабочего компьютера не легко. Конечно помог SCCM. Но был нюанс. А именно -  менять надо было значение в ветке HKCU.

Ну сделать файлик hkcu1.reg с следующим содержанием не проблема:
[HKEY_CURRENT_USER\Software\ARM8\CurrentSec]
"Certific"="http://certif.xyzxyz64.net/certific/"

А для раздачи командный файл вот такого содержания:
@echo on
chcp 1251

REM импорт файла hkcu1.reg
reg import hkcu1.reg

REM проверка значения после импорта
PowerShell.exe "Get-ItemProperty -path HKCU:Software\ARM8\CurrentSec -name "Certific""

exit /b 0

А вот чтобы попасть именно в HKCU то надо быть аккуратным. Тут права Администратора не подходят, нужен как раз Пользователь. Поэтому при создании программы в MS SССM на раздачу (deployment) надо указать обязательно чтобы был логин Пользователя  и под его же правами. Смотрите рисунок. 



Ничего сложного, но новичок может этот момент  упустить.
Успехов!


Версия на печать

Популярное