powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не отрабатывает logon script из за цифер в имени переменной
9 сообщений из 9, страница 1 из 1
Не отрабатывает logon script из за цифер в имени переменной
    #37004669
henaromatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, помогите разобраться начинающему ))
Есть простенький скриптик для подключения сетевых принтеров в зависимости от членства в группе 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
Не отрабатывает logon script из за цифер в имени переменной
    #37004689
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Не отрабатывает logon script из за цифер в имени переменной
    #37004718
henaromatus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Не отрабатывает logon script из за цифер в имени переменной
    #37004729
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
henaromatusИ так не работает
я по делу ничего сказать не могу, просто оформил ваш код для читаемости, см. правила.
...
Рейтинг: 0 / 0
Не отрабатывает logon script из за цифер в имени переменной
    #37004737
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: henaromatus
> И так не работает


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

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

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

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

Код: 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
Не отрабатывает logon script из за цифер в имени переменной
    #37005027
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поковырял, не все так просто, но наверное вот так:
Код: 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
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не отрабатывает logon script из за цифер в имени переменной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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