середа, 28 травня 2014 р.

История о том, как я ставил драйвера A4Tech XL-750BH на Win 7x64

Все началось довольно давно

Заприметил я эту чудо-мишь еще года 2 назад. Она мне сразу понравилась, так как её клон жил у меня уже 4  года, но не такой "леопардовый". Колесико перестало работать еще год назад (ремонтировал его 1 раз, после чего оно прослужило еще год). Пришло время обновить "гардероб".

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


Что ж, перейдем к самому приятному для вас и неприятному (в прошедшем времени) для меня.

Раскопки могил

Ну это не совсем могилы, скорее так я вижу свой стационарный ПК, на котором уже 6 лет не переустанавливалась старенькая Win 7 x64.

Стоит заметить, что на ПК с новыми материнками (ноутбуки не исключение) мышь подхватывается на ура, хотя что будет если установить фирменную утилиту Oscar я не проверял.

При первом подключении мыши к Основному ПК (P5K-SE, 4 GB RAM DDR2-800, Core 2 Duo E6750), вполне себе рабочей лошадке, если вы не дизайнер/крутой программист, она определилась как HID устройство, но както вяленько. Установил Oscar с диска, который шел в комплекте. Он на чтото ругался, но позволял настроить смену DPI по нажатию цветной кнопочки. Перегрузил ПК. Цветной индикатор-кнопка горел до момента начала загрузки винды. Все... Дальше труба... Ноль на массу хоть что ты делай. Читаем форумы.

"Перед установкой драйверов удалите ВСЕ HID устройства, установленные на ПК"... нехило так. Ладно, удалили, даже тот неопределенный девайс, которым теперь является наша полумертвая с виду мышь. Перегрузили (для чистоты эксперимента перекинули мышь на другой порт). О, да! Мышь определилась, даже светится кнопочка, но вот незадача, система продолжает поиск драйверов для некоегого неопределенного устройства (предполагаю, мышь то не самая обычная, программируемая). Это было бы не так обидно, если бы после неудачного поиска драйверов и сообщения об ошибке мышь не переставала работать :( 

Перезагрузка не помогает.

Удаление и переустановка Oscar (который гдето в недрах должен и драйвера то содержать) не помогает.

Удаление драйвера неопределенного устройсва не помогает.

Форумы по схожей проблеме (как русскоязычные, так и англоязычные) предлагают скачать Oscar поновее, ссылаясь на китайский сайт вендора. Качаем. Ставим. Не помогает.

Святой Грааль

Пытаемся искать драйвер по коду устройства usb\vid_09da&pid_9090 и тут уже пришло время кричать "Бинго" или "Эврика", кому что ближе. Находим один форум. на котором люди сталкивались с проблемами установки, схожимы с нашими. Вот он форум.

Если вкратце, то вся заковырка в пропавшем файле usb.inf. Где же его взять и куда положить?
Взять в папке \Windows\System32\DriverStore\FileRepository\usb.inf_amd64_neutral_*
Положить в папку \Windows\inf\

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

После перезагрузки все работало как часы.

Благодарю за внимание

P.S. Если сразу мышь не определилась, попробуйте подключить любую обычную USB мышь и дождаться пока подтянутся драйвера, после чего произвести автоматический поиск драйверов для нашей новой мыши через Диспетчер устройств.

  

четвер, 10 квітня 2014 р.

3 способа имортировать проекты в MS Project 2010 из локальных *.mpp файлов

Задача: Импортировать 15+ проектов Microsoft Project 2010, сохраненных ранее локально в файл с расширением mpp (стандартный формат експорта из Project-a). 

Проблемы: Сервер не пустой, на нем имеются enterprise ресурсы (люди), некоторые из которых уже деактивированы. 

Способ №1 
Если всё хорошо и так совпало, что в проекте задействованы только пользователи, ресурсы которых на проджекте (читай учетные записи на сервере) числяться как Active, то нам повезло. Алгоритм следующий:
  1. Запускаем MS Project Professional 2010, который вы уже настроили на подключение к серверу*
  2. Открываем проект локально
  3. Жмём "Save as"
  4. Вписываем необходимое имя проекту
  5. Жмём "Save"
  6. Видим ругательство, что такие ресурсы уже есть на сервере и нажимаем "Yes to all", чем соглашаемся на замену локальных ресурсов на те, которые уже есть на сервере с таким именем
  7. Наблюдаем за сохранением проекта на сервер в правом нижнем углу
  8. Открываем проект на сервере
  9. Публикуем проект из главного меню

Стоит отметить, что данный способ отработает лишь в случае, если все ресурсы активны. Если хотя-бы один был отключен, вы рискуете испортить локальный файл, поэтому настоятельно рекомендую сделать резервную копию и уже с ней проводить вышеописанные манипуляции 


Способ №2
Если способ номер 1 не сработал, не отчаивайтесь. В самом худшем случае вы могли испортить файл проекта, но с резервной копией это не так страшно. Верный признак, что первый метод дал сбой - отсутствие информации о сохранении проекта на сервер в правом нижнем углу окна клиента MS Project, как показано на рисунке.

   

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

В левом нижнем углу жмем "Continue to Step 2"

 

В открывшемся окне видим количество локальных ресурсов и количество конфликтов (левый верхний угол)

   

 Стоит обратить внимание не на количество ошибок, а на общее количество ресурсов. Как показала практика, даже исправив все ошибки мы всеравно в итоге получим новые и их сумма будет равна количеству ресурсов. Существует 2 основных типа ошибок, на которые стоит обратить внимание и решение которых позволит импортировать проект на сервер:
  1. Resource Name Already in Use - Решается переименованием всех локальных ресурсов, напротив которых отображается такая ошибка**
  2. Resource already exists - Решается подменой локального ресурса на корпоративный. Алгоритм описан ниже. После его выполнения нужно проделать те же действия, что и при "Already in Use" ошибке, также для всех ресурсов.

После этого можем сохранять проект на сервер по упрощенной схеме.

  1. Жмём "Save as"
  2. Вписываем необходимое имя проекту
  3. Жмём "Save"
  4. Если все сделали верно, то наблюдаем за сохранением проекта на сервер в правом нижнем углу
  5. Открываем проект на сервере
  6. Подменяем переименованные ресурсы на правильные, убирая лишние символы
  7. Публикуем проект из главного меню
Подмена локального ресурса на корпоративный (Enterprise)
Когда вы определили, что необходимо заменить локальный ресурс корпоративным, это легко сделать с помощью функции "Build Team from Enterprise"

   

 В открывшемся окне в левой колонке выбираем корпоративный ресурс кликом миши, в правом - локальный и жмем "Replace". Проделываем процедуру только для ресурсов, напротив которых ошибка "already exists"
   

Способ №3 
Случается так, что люди, задействованные в проекте увольняются, с кем не бывает :) А импортировать както нужно. Первые 2 способа не дадут результата, так как при отключении учетной записи пользователя в Active Directory, ресурс пользователя становится неактивным. По-умолчанию галочка "Prevent Active Directory synchronization for this user " не стоит***.
 

Если пользователь помечен как неактивный, то он не будет отображаться в списке корпоративных ресурсов в "Build Team from Enterprise". Если попытаться просто изменить статус пользователя на активный, то при сохранении получим ошибку, свидетельствующую о том, что доменная учетная запись для данного пользователя не прошла проверку.
 

Как с таким побороться? Нужно активировать учетные записи таких "неактивных" пользователей через подставные доменные учетные записи. К примеру создайте тестовые учетки с именами testproject1... и т.п., которые потом используйте как "User logon account:" при редактировании ресурса на портале. Далее алгоритм абсолютно такой же как и во втором способе.
*-File > Info > Manage Accounts > Configure Accounts > Add > Вводим имя (абсолютно любое) > Вводим адрес сервера (обязательно с http://) > Галочка "Set as default account"
**-Двойной клик миши по ресурсу > В поле Resource name дописываем циферку, дабы потом было легко заменить > OK
***- С правами администратора заходим на Project Web Access > Server Settings > Manage Users > Открываем интересующего пользователя

середа, 19 березня 2014 р.

ActiveDirectory get list memberof for user

Powershell 3.0

1) Данный скрипт позволяет получить в консоль список групп, в которых пользователь является членом.

$User = 'User.Name'
(Get-ADUser -Identity $User -Properties memberOf).memberOf | Sort-Object | % {(Get-ADGroup -Identity $_).Name}


2) Если пользователей несколько, то можно добавить цикл:

$UserList = 'User.One','User.Two'
foreach ($User in $UserList) {
"----------------------"
"User: " + $User + " is member of"
"----------------------"
(Get-ADUser -Identity $User -Properties memberOf).memberOf | Sort-Object | % {(Get-ADGroup -Identity $_).Name}
"----------------------"
}

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

3) Если нами нужно получить членство в группах для всех пользователей определенной группы, то используем слегка модифицированный скрипт из второго пункта

$UserList = Get-ADgroupmember AD_Group
foreach ($User in $UserList) {
"----------------------"
"User: " + $User + " is member of"
"----------------------"
(Get-ADUser -Identity $User -Properties memberOf).memberOf | Sort-Object | % {(Get-ADGroup -Identity $_).Name}
"----------------------"
}

4) Если групп/пользователей несметное количество, или их нужно заекспортить в текстовый файл, то при запуске скрипта нужно вконце добавить > filename.txt, например:

PS C:\> .\myscript.ps1 > out.txt

P.S. Скрипт не производит никаких модификаций, а лишь выборку, поэтому он абсолютно безопасен.