Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не отрабатывает logon script из за цифер в имени переменной / 9 сообщений из 9, страница 1 из 1
09.12.2010, 15:09
    #37004669
henaromatus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
Доброго времени суток, помогите разобраться начинающему ))
Есть простенький скриптик для подключения сетевых принтеров в зависимости от членства в группе AD.
Если объявить Const IT = "cn=PrinterUsers_B122IT" (цифры в низвании группы) - не отрабатывает, в таком виде Const IT = "cn=PrinterUsers" все работает. Хочется сделать в удобном виде с полным названием, т.к. принтеров в организации оч много...
Заранее благодарю
Вот сам скрипт:


Const IT = "cn=PrinterUsers_B122IT"
Const BUH = "cn="PrinterUsers_A207BUH""

On Error Resume Next
Set WshNetwork = WScript.CreateObject("WScript.Network")

'MsgBox Err.Number
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups=""
strGroups = LCase(Join(CurrentUser.MemberOf))
'MsgBox strGroups
If InStr(strGroups, IT) Then
PrinterPath = "\\root02\B122IT"
WshNetwork.AddWindowsPrinterConnection (PrinterPath)
WshNetwork.SetDefaultPrinter (PrinterPath)
End If
If InStr(strGroups, BUH) Then
PrinterPath = "\\root02\A207BUH"
WshNetwork.AddWindowsPrinterConnection (PrinterPath)
WshNetwork.SetDefaultPrinter (PrinterPath)
End If
...
Рейтинг: 0 / 0
09.12.2010, 15:15
    #37004689
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Const IT = "cn=PrinterUsers_B122IT" 
Const BUH = "cn="PrinterUsers_A207BUH""

On Error Resume Next
Set WshNetwork = WScript.CreateObject("WScript.Network")

'MsgBox Err.Number
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups=""
strGroups = LCase(Join(CurrentUser.MemberOf))
'MsgBox strGroups
If InStr(strGroups, IT) Then
  PrinterPath = "\\root02\B122IT"
  WshNetwork.AddWindowsPrinterConnection (PrinterPath)
  WshNetwork.SetDefaultPrinter (PrinterPath)
End If
If InStr(strGroups, BUH) Then
  PrinterPath = "\\root02\A207BUH"
  WshNetwork.AddWindowsPrinterConnection (PrinterPath)
  WshNetwork.SetDefaultPrinter (PrinterPath)
End If
...
Рейтинг: 0 / 0
09.12.2010, 15:23
    #37004718
henaromatus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
Shocker.Pro,

И так не работает

Const IT = "cn=PrinterUsers_B122IT"
Const BUH = "cn=PrinterUsers_A207BUH"

On Error Resume Next
Set WshNetwork = WScript.CreateObject("WScript.Network")

'MsgBox Err.Number
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups=""
strGroups = LCase(Join(CurrentUser.MemberOf))
'MsgBox strGroups
If InStr(strGroups, IT) Then
PrinterPath = "\\root02\B122IT"
WshNetwork.AddWindowsPrinterConnection (PrinterPath)
WshNetwork.SetDefaultPrinter (PrinterPath)
End If
If InStr(strGroups, BUH) Then
PrinterPath = "\\root02\A207BUH"
WshNetwork.AddWindowsPrinterConnection (PrinterPath)
WshNetwork.SetDefaultPrinter (PrinterPath)
End If
...
Рейтинг: 0 / 0
09.12.2010, 15:27
    #37004729
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
henaromatusИ так не работает
я по делу ничего сказать не могу, просто оформил ваш код для читаемости, см. правила.
...
Рейтинг: 0 / 0
09.12.2010, 15:30
    #37004737
Игорь Горбонос
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
> Автор: henaromatus
> И так не работает


А не работает, это как? Что пишет?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
09.12.2010, 15:43
    #37004775
henaromatus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
Игорь Горбонос,

с простым именем например prn_user_group принтер добавляется и все хорошо, если написать так prn_user_group1 - не работает, ошибок никаких в лог не пишет и не выдает ничего.
думаю есть какие - то ограничения, возможно объявить как то по - другому константу.. я в этом ни бум бум.. поэтом спрашиваю, в гугле не нашел ответа
...
Рейтинг: 0 / 0
09.12.2010, 16:05
    #37004850
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
henaromatus,

Давайте локализуем, если я правильно понял ("принтер не добавляется"), у вас не работают две строки?
Код: plaintext
1.
PrinterPath = "\\root02\B122IT"
WshNetwork.AddWindowsPrinterConnection (PrinterPath)
тогда причем тут константа?
...
Рейтинг: 0 / 0
09.12.2010, 16:45
    #37004977
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
В общем, вы сами себя где-то запутали. Ваши константы не имеют отношения к именам принтеров и их добавлению, и вообще не нужны, по большому счету. Если я правильно понял ваш код, вам нужно что-то типа следующего (не проверял):

Код: plaintext
1.
2.
3.
4.
5.
6.
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
For Each Gr In CurrentUser.MemberOf
  PrinterPath = "\\root02\"+Gr
  WshNetwork.AddWindowsPrinterConnection PrinterPath
Next
WshNetwork.SetDefaultPrinter PrinterPath
...
Рейтинг: 0 / 0
09.12.2010, 16:58
    #37005027
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не отрабатывает logon script из за цифер в имени переменной
Поковырял, не все так просто, но наверное вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
k=Split(CurrentUser.MemberOf,",")

For i= 0  To UBound(k)
  If InStr( 1 ,k(i),"CN=")<> 0  Then
    PrinterPath = "\\root02\"+Mid(k(i), 4 )
    WshNetwork.AddWindowsPrinterConnection PrinterPath
  End If
Next
WshNetwork.SetDefaultPrinter PrinterPath
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не отрабатывает logon script из за цифер в имени переменной / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]