Где искать драйвер для Windows 7?


 

   Сегодня ставил принтер HP LaserJet 1200 под Windows 7, оказалось, что для устройств HP есть три места с драйверами: встроенные в Windows 7 драйверы, HP download и WindowsUpdate — причем наборы драйверов практически не пересекаются!!!

   Вывод: если драйвера устройства нет в Windows 7 (не работает автоматическое определение), обязательно надо сначала проверить WindowsUpdate и только после этого искать драйвер на сайте производителя.

   Надо еще добавить, что на многих сайтах производителей оборудования (и ПО тоже) есть раздел посвященный Windows 7, где описана политика фирмы, ее планы и фактическое пооложение дел с поддержкой Windows 7.

   Вот например у HP http://welcome.hp.com/country/us/en/mda/windows7/index.html?jumpid=hpr_R1002_USEN

   А какие где драйверы http://h41112.www4.hp.com/promo/win7web/printer-support/us/en/deskjet.html

   Удачи вам в переходе на Windows 7!!!

clip_image001

Импорт контактов из другого домена


 Поправка: статья написана для Exchange 2003, для версии Exchange 2010 смотрите тут

Когда у вас работает Active Directory и почтовая система Exchange, то пользователи получают глобальную адресную книгу, в которой есть почтовые адреса всех пользователей AD и всех почтовых контактов заведенных в AD. Это очень удобно: достаточно набрать в Outlook-е фамилию и адрес будет найден автоматически или предложены варианты.

Не редко рядом с нашим доменом или лесом существуют другие: соседних организаций, подразделений, фирм и т.п. При интенсивной переписке с пользователями из этих доменов хочется иметь их адресную книгу, чтобы каждый раз не искать нужного человека и не выяснять какой у него почтовый адрес или номер телефона. Обычно пользователи сами создают контакты у себя в Outlook-е. Но тогда теряется преимущество глобальной адресной книги: каждый пользователь должен сам найти информацию и создать контакт у себя. Лучше если это сделает один раз администратор, и контакты будут доступны всем пользователям. Но заводить контакты в большом количестве достаточно обременительно. К тому же их надо периодически обновлять.

Для синхронизации лесов (доменов) существуют специальные приложения. Например, Microsoft Identity Lifecycle Manager (ILM) или его предыдущая версия Microsoft Identity Integration Server (MIIS). Это мощние универсальные продукты, которые позволяют синхронизировать учетные записи, их свойства, пароли, сертификаты и все остальные атрибуты, позволяют гибко настраивать списки синхронизируемых объектов и их атрибутов, правила разрешения конфликтов и т.д. С помощью этих продуктов можно решить поставленную задачу. Вот только они платные и сложные. И в простых случаях, как наш, нет необходимости их использовать – можно обойтись досточно простым скриптом.

Вот пример простого скрипта на Powershell, который импортирует учетные записи пользователей как контакты из другого домена. Для выполнения скрипта нужно иметь права на создание контактов в родном домене и права на чтение учетных записей во втором домене. Вы можете легко изменить список атрибутов, которые синхронизируются этим скриптом по аналогии.

Вот сам скрипт:

$base = [ADSI]»LDAP://ou=Contacts, ou=DEP,dc=domain,dc=ru»

$users = (new-object System.DirectoryServices.DirectorySearcher([ADSI]»LDAP://ou=DEP1,dc=domain1,dc=ru»,»(&(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(title=*)))»)).findAll()

$users | ForEach-Object {

$_ = $_.GetDirectoryEntry()
$NewContact = $base.Create(«contact»,»cn=» + $_.cn)

$NewContact.SetInfo()

$NewContact.extensionAttribute15 = $base.distinguishedName

$NewContact.displayname = $_.displayname
$NewContact.givenname = $_.givenname
$NewContact.sn = $_.sn
$NewContact.initials = $_.initials
$NewContact.description = $_.description

$NewContact.department = $_.department
$NewContact.title = $_.title
$NewContact.company = $_.company

$NewContact.telephoneNumber = $_.telephoneNumber
$NewContact.othertelephone = $_.othertelephone

$NewContact.ipPhone = $_.ipPhone
$NewContact.otherIpPhone = $_.otherIpPhone

$NewContact.mobile = $_.mobile
$NewContact.otherMobile = $_.otherMobile

$NewContact.facsimileTelephoneNumber = $_.facsimileTelephoneNumber
$NewContact.otherfacsimileTelephoneNumber = $_.otherfacsimileTelephoneNumber

if ($_.proxyaddresses) {

$NewContact.proxyaddresses = $_.proxyaddresses
$NewContact.targetAddress = $_.proxyaddresses -clike «SMTP:*»
$NewContact.mailNickname = $_.cn

}

$NewContact.SetInfo()

}

Русский фонт в консольных программах Windows 7


 

   Неожиданно для себя наступил на грабли… Вот что значит никогда не работал с Vista! Запускаю Powershell, выполняю команду dir и вместо русских букв в наваниях файлов вижу вопросики. Система полностью английская. Включать русскую локаль? С чего бы вдруг?… Артем Проничкин и Василий Гусев научили меня, что надо поменять шрифт в свойствах окна. По умолчанию там стоит не TruType фонт “Raster Fonts”!!! (Кто бы мог подумать! Если бы знал – обязательно зарегистрировал как баг в программе русской беты.) Операция смены фонта через свойства заголовка окна простая, но как оказалось не совсем… Неожиданно после применения новых настроек я получил вот такое сообщение:

clip_image001

   При этом настройки к окну применились – видно новый фонт, размер и русские буквы отображаются, но при последующем запуске остались старые настройки.

   Понятно прав не хватает. Только прав на что? Пользователь администратор, UAC включен. Запускаем Powershell с повышенными правами и меняем свойства – ошибок нет, настройки применились и при последующем запуске остались как при повышенных правах, так и обычных. Интересно!

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

   Пробуем поменять настройки фонта для cmd.exe — никаких запросов на повышение прав, а настройки применились!

   Осталось понять, в чем отличие: почему в случае с Powershell нужны повышенные права, а в случае с cmd.exe нет. Обе программы лежат в системных папках. Но туда ничего не пишится при этой операции, а все настройки хранятся в реестре в разделе пользователя (HKEY_CURRENT_USER\Console), где он имеет полные права. В меню «Start» обе программы находятся в разделе Accessories. Чудо?

   Запустил утилиту Руссиновича Process Monitor. Оказалось в случае с Powershell выполняется попытка создать/изменить ярлык по пути C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk

   При модификации свойств окна cmd подобной попытки нет. Почему? Не знаю. Открываем свойства ярлыка, там путь C:\Users\<username>\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories. Теперь понятно, что ярлык Powershell лежит в системной папке меню, а ярлык cmd.exe в пользовательской – отсюда и требование к повышенным правам.

   В общем ничего страшного нет, но некоторое неудобство для пользователя может возникнуть. По идее вместо окна ошибки, я должен был получить приглашение UAC. С другой стороны есть еще консольные программы, которые прописаны в системной, а не пользовательской, части меню “Start”? Стандартных программ нет (Если только вы сами что-то поставите себе или пользователям. Хотя там могут оказаться «устаревшие» программы (несовместимые с Windows 7 и Vista). А в остальных ярлыках и менять нечего.

   С другой стороны хочется, чтобы все работало «из коробки»: такие мелкие неприятности портят впечатление от хорошей вещи. Поэтому при случае я попробую зарегистрироать кейс на сайте Connect с предложением разработчикам Windows 7 изменить фонт по умолчанию для консольных программ на TrueType фонт.