Доброго всем времени суток.
Решил я тут себе жизнь упростить и сформировать пользователям сигнатурки автоматически путем заполнения формы данными, взятыми из AD и сохранением этой самой формы в документах пользователей. Благо многое что хранится в AD.
Написал скрипт для создания автоподписей (русских и английских). запускаю - английские создаются на ура, а вот с русскими происходит беда. Из AD данные берутся, но при попытке сохранить их в файл выскакивает ошибка несовпадения типов.
Вот небольшой примерю Поле Description заполнено по-русски, поле Company должно быть заполнено обязательно, иначе это системный пользователь.
Код:
' VBScript source code
Const ADS_SCOPE_SUBTREE = 2
Dim objConnection
Dim objCommand
Dim objRecordset
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "мой.домен.local"
Set fso = CreateObject("Scripting.FileSystemObject")
Set objCommand.ActiveConnection = objConnection
objCommand.CommandText = "Select HomeDirectory, Description, DisplayName, Mail, Title, Department, Company, " & _
" TelephoneNumber, FacsimileTelephoneNumber, WWWHomePage" & _
" from 'LDAP://DC=airmg,DC=local' " & _
" Where objectClass='user' and objectClass='person' and objectClass <> 'computer'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
IF Not IsNull(objRecordSet.Fields("Company").Value) Then
WScript.Echo objRecordSet.Fields("Description").Value
End If
objRecordSet.MoveNext
Loop
Как я понимаю - в AD русские чары хранятся или в UTF-8, или в юникодах. А при записи в текстовый файл или при отображении через эхо используется ANSI кодировка. Если кто-нибудь подскажет, как мне преобразовать строку - буду оч благодарен.