В составе SysInternals Suite помимо прочего есть такая утилита, как PsLoggedOn, отображающая, как несложно догадаться из названия, время входя в систему пользователя, — весьма полезная информация для системного администратора. Но суть скорее здесь в том, как вышеобозначенная утилита получает эти сведения, а способов между тем довольно много: от считывания времени модификации ключа реестра HKEY_CURRENT_USERVolatile Environment до задействования таких API-функций как LsaEnumerateLogonSessions, LsaFreeReturnBuffer, LsaGetLogonSessionData, — но то все про различные языки программирования. Как на счет штатных средств, но без WMI?
Читать полностью »
Метка «vbscript»
Время последнего входа в систему
2015-03-20 в 22:16, admin, рубрики: Песочница, метки: vbscript, windowsУпрощаем жизнь администратору, ассоциируем имя пользователя и имя компьютера в автоматическом режиме в каталоге AD
2013-09-06 в 13:06, admin, рубрики: ActiveDirectory, ldap, powershell, vbscript, windows, Алгоритмы, все любят котиков, системное администрирование, системное администрирование windows, метки: ActiveDirectory, ldap, powershell, vbscript, все любят котиков, системное администрирование, системное администрирование windows Добрый день!
Наверное, у всех системных администраторов была проблема определения имени компьютера пользователя. То есть мы знаем имя сотрудника, но какой у него компьютер, без понятия. И, зачастую, попытка заставить пользователя определить имя компьютера вызывает мучение. Они вместо этого называют имя пользователя, mail, номер телефона, все что угодно, только не имя компьютера. А попытка объяснить пользователю где находится информация о системе вызывает баттхерт сотрудника и лютую ненависть. Можно, конечно, было бы написать какую-нибудь утилитку, позволяющая отображать имя компьютера на рабочем столе или где-нибудь еще на видном месте, но для этого надо каждый раз объяснять где находится эта информация. Немного упрощает задачу, но не решает ее полностью. Тем более что я склоняюсь к тому, что пользователю и во все положено не знать имя компьютера, на котором он сидит. В результате было решено сделать определение имени компьютера современным, удобным, правильным и, главное, автоматическим.
Примерно так может выглядеть подключение к компьютеру. При чем оснастку даже не обязательно открывать с помощью административной учетной записи. Для тех, кому интересно как все это работает и как это сделать в вашей инфраструктуре, добро пожаловать под кат.
Для выполнения описанного, вы должны понимать что такое AD, понимать хотя бы примерно структуру объектов в AD, понимать работу скриптов, а также любить котиков.
Читать полностью »
«Многопоточность» WSH VBScript
2013-08-12 в 17:40, admin, рубрики: multithreading, vbscript, wsh, ненормальное программирование, метки: multithreading, vbscript, wshКостыль
Доброго всем времени суток. Предлагаю костыль, реализующий механизм многопоточности (а точнее «многопроцессности») для WSH VBScript. Не рекомендуется лицам с аллергией на индокод.
Первая мысль о потенциальных удобствах многопоточности пришла однажды во время решения на добровольных началах относительно несложной задачи по обработке и визуализации информации. И, поскольку установка IDE навроде Visual Studio и наш Helpdesk — понятия несовместимые, из «легальных» оставались только VBA и WSH. В то время был выбран последний. А действующие административные ограничения и желание получить дружественные методы продиктовали требования к данной реализации многопроцессности:
- Код расположен в одном файле, как обычный сценарий.
- Использует минимум ActiveX, и только встроенных, работоспособен без WMI, под WSH x86/x64.
- Достаточная функциональность и удобство важнее быстродействия и паттернов.
Особенности:
- Запущенный скрипт выполняет служебную функцию. Основной код выполняется в последующих процессах.
- В «полной версии» основной код размещается только в классах, экземпляр любого из которых можно создать в отдельном процессе. В каждом новом процессе скрипт создает экземпляр служебного класса, который создает экземпляр указанного целевого класса, вызывает целевой метод, контролирует его ход, создает в глобальном контексте скриптов переменные, ссылающиеся на созданные экземпляры классов. В предшествующий скрипт возвращается объект инициализированного целевого класса, и «обрабатываются» события инициализации и завершения целевого класса запущенного скрипта.
- В «легкой версии» логика аналогична, только основной код размещается внутри sub’ов, предшествующему скрипту возвращается не объект, а индекс запущенного, и нет обработки событий.
- Для создания нового процесса скрипт рекурсивно запускает самого себя, передав данные о вызываемом методе и идентифицирующую информацию в именованном аргументе.
- Единого пространства исполнения нет, каждый скрипт хранит свои данные и объекты в своем контексте. Для обмена данными объект Me первого скрипта передается в последующие с применением GlobalContainer, описанным в теме «обмен данными и объектами между скриптами — 2» на Сером форуме. Каждый скрипт после завершения целевого метода ожидает разрешения на завершение, такая задержка позволяет забрать из него полученную информацию.
- Функционирует одинаково в WSH WScript и CScript, и в виде скомпилированного в ScriptCryptor exe-файла (правда, в exe не работают методы class_terminate).
Сохранение документов Excel в PDF на сервере
2013-01-14 в 9:19, admin, рубрики: office, PDF, php, vbscript, Веб-разработка, Программирование, системное программирование, метки: office, PDF, PHP, vbscriptНе так давно появилась задача создать простой сервис по созданию PDF отчетов на основе офисных документов для интранета. И вроде бы все просто, но вот с сохранением Excel в PDF возникли проблемы. Интересно? Прошу под кат.
Easy-программирование танка-шпиона
2012-12-10 в 13:00, admin, рубрики: diy или сделай сам, vbscript, Гаджеты. Устройства для гиков, Программирование, робототехника, роботы, метки: c++, diy или сделай сам, vbscript, Программирование, робототехника, роботы
Хочу рассказать Вам, как можно управлять айГаджетами с PC, да еще и программировать их. Все, что описано в статье применимо как к Brookstone Rover Spy Tank, так и к AR Drone Parrot. На «Хабре» уже ни раз были статьи о серии высокотехнологичных гаджетов AR Drone Parrot. Как-то мало интереса проявляется Brokstone Rover Spy Tank, хотя, как ни странно, эта игрушка хоть и не такая эффектная, в силу того, что не летает, зато более практичная. Во первых заряда 6 элементов пиатния серии АА хватает на несколько часов непрерывной работы. Во вторых, его можно использовать как гиковскую веб-камеру, с помощью которой можно следить за тем, что происходит дома с любого другого компьютера, ну и, как бонус, гонять своих домашних животных. Настроив доступ по RDP к домашнему компьютеру, можно управлять этим изделием, как мобильной веб-камерой, которая не просто показывает картинку, но еще и передвигается по помещению.
Читать полностью »
Аудит пользователей в AD через VBS с занесением в SharePoint при помощи PowerShell
2012-11-11 в 6:07, admin, рубрики: active directory, ldap, powershell, sharepoint, vbscript, системное программирование, метки: active directory, ldap, powershell, sharepoint, vbscriptДобрый день наблюдатели НЛО
Хотел описать, как собирал информацию о пользователях из AD и затем размещал информацию на SharePoint для удобочитаемости и в любой момент посмотреть о том, или ином пользователе нужную для нас информацию.
Опишу просто, так как всё оно было…
Читать полностью »
Собираем документацию ProGit, под Windows
2012-11-10 в 15:42, admin, рубрики: Git, pandoc, vbscript, метки: Git, pandoc, vbscriptПредисловие
Добрый день.
Вот уж, около полгода, наша компания перешла с системы контроля версий SVN на Git. О преимуществах или недостатках я писать не буду, их обсудили не раз. Ребята, которые этим занимались в нашей команде, написали несколько внутренних статей с основными сценариями: создание бранчей, мерджи и т.п.
Но жизнь преподносит свои сюрпризы и выход за основные сценарии всегда обозначался фразой WTF или говоря по русски «я думал Git сделает так, почему он сделал по другому?»
И всё сводилось к тому, что нужно читать документацию по Гиту. (А на чтение документации, всегда нет времени.)
По этому поводу была статья Завершён перевод книги «Pro Git» на хабре.
Но как оказалось, в документацию ещё вносятся изменения. Не часто, но всё же, тут хорошо видно, когда вносились последние.
И возникла идея слепить последний вариант доки…
Читать полностью »
Компиляция программного проекта на Fortran
2012-08-01 в 19:31, admin, рубрики: fortran, vbscript, Visual Studio, Компиляторы, Песочница, разработка, метки: fortran, vbscript, Visual Studio, компиляторы, разработка Всем известны плюсы ночной сборки и тестирования: утром мы знаем всю информацию о проекте:
собрался ли проект, сколько тестов прошли, имеем собранный экзешник, который можно предъявить заказчику.
Одной из самых больших проблем наладки процесса автоматической сборки и тестирования проекта на фортране является построение исполнимого файла в неинтерактивном режиме, в первую очередь в режиме командной строки.
Напомним, что файлы в фортрановском проекте зависят друг от друга через модули. Если в одном файле есть module A
, а в другом — use A
, то первый файл должен быть скомпилирован раньше. При этом подобная информация нигде не прописывается и генерируется на лету. Интеграция компилятора Intel Fortran с Visual Studio в большинстве случаев правильно определяет последовательность компиляции, однако и она может ошибиться, что уж говорить о специальных утилитах, нацеленных на создание make-файлов.
Ниже приводится метод определения зависимостей в файлах проекта и описание процесса автоматической сборки проекта без использования специальных программ.
Читать полностью »
Инвентаризация малой кровью
2012-07-10 в 22:00, admin, рубрики: active directory, vbscript, windows, Песочница, метки: active directory, vbscriptОднажды потребовалось провести «инвентаризацию», то есть узнать за каким компьютером, какой пользователь сидит.
Вариант пройти по рабочим местам посмотреть, поспрашивать, был отброшен, как еретический.
Так как все пользователи заведены в Службе каталогов Active Directory, так же, как и рабочие места, родилась идея выдрать всю необходимую информацию из AD. Можно, конечно было обратиться к администратору домена и спросить все данные у него, но мы не ищем легких путей.
Читать полностью »
Программирование / [Из песочницы] UTF-8: Кодирование и декодирование
2012-02-16 в 9:09, admin, рубрики: utf-8, vbscript, Юникод, метки: utf-8, vbscript, Юникод Причиной разобраться в том, как же работает UTF-8 и что такое Юникод заставил тот факт, что VBScript не имеет встроенных функций работы с UTF-8. А так как ничего рабочего не нашел, то пришлось писть/дописывать самому. Опыт на мой взгляд полезный в любом случае. Для лучшего понимания начну с теории.
О Юникоде
До появления Юникода широко использовались 8-битные кодировки, главные минусы которых очевидны:Всего 255 символов, да и то часть из них не графические;
Возможность открыть документ не с той кодировкой, в которой он был создан;
Шрифты необходимо создавать для каждой кодировки.