Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Windows NT/2000/2003 (http://forum.oszone.net/forumdisplay.php?f=5)
-   -   Проблема со скриптом на VBS (http://forum.oszone.net/showthread.php?t=64342)

UnDetect 14-04-2006 13:26 427818

Проблема со скриптом на VBS
 
Доброго всем времени суток.

Решил я тут себе жизнь упростить и сформировать пользователям сигнатурки автоматически путем заполнения формы данными, взятыми из 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 кодировка. Если кто-нибудь подскажет, как мне преобразовать строку - буду оч благодарен.


Время: 15:02.

Время: 15:02.
© OSzone.net 2001-