Распространение nethasp.ini групповыми политиками

15.02.14

База данных - Инструменты администратора БД

Автоматизируем указание конкретного HASP LM пользовательским компьютерам при помощи GPO.

Как известно, несколько одноранговых HASP ключей совместно не работают. Точнее, работают, но плохо.

Проблема заключается в том, что клиент, не сумев получить лицензию с одного из ключей по причине его исчерпания, с другого ключа того же ранга пытаться получить лицензию не будет. Это by design и не лечится.

Существует метод обхода этой проблемы: требуется установить ключи и менеджеры лицензий на различные серверы и каждому компьютеру указать свой адрес HASP LM, иными словами - вручную распределить компьютеры по менеджерам лицензий, отредактировав nethasp.ini на каждом компьютере.

А поскольку мы с вами люди ленивые и к каждому компьютеру ходить не желаем, мы воспользуемся возможностями групповых политик Active Directory: установим startup script, который сам напишет в nethasp.ini все, что нам нужно, при включении компьютера.

В качестве критерия развертывания будем использовать членство компьютера в группах: создадим в AD группу с наименованием "NH_managed" - в нее мы будем включать все компьютеры, содержимим nethasp.ini которых мы будем управлять, и группы распределения по HASP LM - назовем их NH_server1 и NH_server2 - по ним мы будем распределять клиентские компьютеры.

После этого нам останется только создать либо выбрать подходящий существующий GPO (объект групповой политики) и установить в нем в качестве startup-скрипта наш скрипт.

Обратите внимание: startup-скрипт устанавливается в политике компьютера и действует только на компьютеры, следовательно, управляемые компьютеры должны находиться в OU (подразделениях), попадающих под действие нашего GPO.

Logon же скриптом, отрабатывающим при входе пользователя, воспользоваться без потенциально небезопасных ухищрений не удастся - logon-скрипт исполняется в контексте пользователя, а у нормального администратора пользователи не располагают требуемыми для записи nethasp.ini правами.

Что делает скрипт - да очень просто:

  1. проверяет членство компьютера в группе NH_managed, если не член - то ничего не делает
  2. проверяет членство компьютера в группах  NH_server1 и NH_server2, если член - пишет им в nethasp.ini соответствующий адрес HASP LM, если же нет - то 127.0.0.1, чтобы вообще к хаспам не лезли.
  3. если же проверить членство в группах не удалось (к примеру, недоступен контроллер домена) - ничего не меняет.

P.S. Если у Вас нет AD, или Вы не умеете с AD работать - сочувствую, придется либо учиться, либо админить ногами.

А вот и наш скрипт, в нем следует лишь указать реальные адреса HASP LM

'==========================================================================
' VBScript Source File -- Set nethasp.ini on computer group membership
'
' Please set your group names and NH server addresses at GetNHaddrByGroup() definition section
' 
'==========================================================================
Option Explicit
Dim NH_address
NH_address = GetNHaddrByGroup()
If NH_address = "" Then
Else
	CreateNHINI(NH_address)
End If

Function GetNHaddrByGroup()
	On Error Resume Next
	Dim wshNetwork, ADSysInfo, CurrentHost, StrGroups, NHaddr
	Dim addr1, addr2, addrNull, group1, group2  
	NHaddr = ""
	'=============================================
	' set addresses and group names here:
	group1 = "NH_server1"
	addr1 = "192.168.0.2"
	
	group2 = "NH_server2"
	addr2 = "192.168.0.7"
	
	' addrNull writes to nethasp.ini if the computer is not member of group1 or group2, 
	' but is member of "NH_managed" group
	addrNull = "127.0.0.1"
	'=============================================
	
	Set ADSysInfo = CreateObject("ADSystemInfo") 
	If ADSysInfo.ComputerName = "" Then
		GetNHaddrByGroup = ""
		Exit Function 
	Else
		Set CurrentHost = GetObject("LDAP://" & ADSysInfo.ComputerName) 
	End If
	StrGroups = Join(CurrentHost.MemberOf)
	If InStr(StrGroups, "NH_managed") Then
		If InStr(StrGroups, group1) Then
			NHaddr = addr1
		Else
			If InStr(StrGroups, group2) Then
				NHaddr = addr2
			Else
				NHaddr = addrNull
			End If
		End If
	End If
	GetNHaddrByGroup = NHaddr 
End Function

Function CreateNHINI(nhserveraddr)
	Dim filepath
	Dim ofile, objFSO
	filepath = GetNHPath()
	Set objFSO = CreateObject("Scripting.FileSystemObject")
	Set ofile = objFSO.CreateTextFile(filepath)
	ofile.WriteLine "[NH_COMMON]"
	ofile.WriteLine "NH_IPX =  Disabled"
	ofile.WriteLine "NH_NETBIOS =  Disabled"
	ofile.WriteLine "NH_TCPIP = Enabled"
	ofile.WriteLine "[NH_IPX]"
	ofile.WriteLine "[NH_NETBIOS]"
	ofile.WriteLine "[NH_TCPIP]"
	ofile.WriteLine "NH_SERVER_ADDR = " & nhserveraddr
	ofile.WriteLine "NH_PORT_NUMBER = 475"
	ofile.WriteLine "NH_TCPIP_METHOD = UDP"
	ofile.WriteLine "NH_USE_BROADCAST = Disabled"
	ofile.WriteLine ""
	ofile.Close 
End Function

Function GetNHPath()
	Dim WshShell, ProgramFilesPath, ProgramFilesx86Path
	Set WshShell = CreateObject("WScript.Shell")
	ProgramFilesPath = WshShell.ExpandEnvironmentStrings("%PROGRAMFILES%")
	ProgramFilesx86Path = WshShell.ExpandEnvironmentStrings("%PROGRAMFILES(x86)%")
	If  ProgramFilesx86Path = "%PROGRAMFILES(x86)%" Then
		' it's x32 OS, all OK
	Else
		ProgramFilesPath = ProgramFilesx86Path
	End if
	GetNHPath = ProgramFilesPath&"\1cv82\conf\nethasp.ini"
End Function

 

 

GPO Групповые политики HASP HASPLM лицензии License manager nethasp.ini

См. также

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 7140 руб.

20.08.2024    32760    201    104    

188

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    15573    66    33    

84

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 8.3.14 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

19200 руб.

06.12.2023    14283    61    8    

90

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14400 руб.

29.04.2020    37415    115    152    

82

Инструменты администратора БД Системный администратор 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

4200 руб.

10.11.2015    63968    99    59    

82

Инструменты администратора БД Пользователь 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Многие сталкиваются с проблемой когда изображения, находящиеся в базе разные по объему и размерам. Менеджеры могут добавить файлы в очень высоком разрешении, объемом свыше 20 Мегабайт. База данных становится слишком большой, выгрузка на сайт идёт медленно и требуется много место на хостинге. Как сжать картинки и уменьшить размер базы 1С? Это можно сделать с помощью данной обработки. Существует возможность выбрать различные варианты для того чтобы уменьшить картинки: в разы, в процентах от первоначального объема, а также сделать картинки одинаковой ширины. В результате размер базы 1С значительно сократится (в зависимости от количества и размера картинок), а изображения станут небольшого объема, равными по ширине, почти без потери качества. Работает на управляемых формах для УТ 11, КА, ERP.

3000 руб.

21.07.2022    11154    14    4    

22

Администрирование Инструменты администратора БД Удаленное управление Системный администратор 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Расширение разработано для автоматизации интеграции «1С:Зарплата и управление персоналом (редакция 3.1)» с сервисом Яндекс 360 через платформу «n8n». Расширение позволяет автоматически создавать учетные записи Яндекс для новых сотрудников, обновлять данные существующих сотрудников и блокировать учетные записи уволенных сотрудников. Обмен данными осуществляется через API Яндекс 360 с использованием промежуточного сервера платформы n8n, что обеспечивает гибкость, масштабируемость и упрощение интеграционных процессов.

3600 руб.

03.04.2025    860    2    0    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. bird21 42 19.02.14 09:07 Сейчас в теме
Любопытно, надо попробовать.
2. LynxX 99 19.02.14 12:02 Сейчас в теме
Спасибо, как раз сейчас решаем проблему.
3. juker 253 28.05.14 11:05 Сейчас в теме
К сожалению, в терминальных сессиях это не подойдет. Клиентом используются серверные бинарники без локальной установки.
4. asved.ru 37 28.05.14 11:36 Сейчас в теме
(3) juker, можно попробовать раздавать разные бинарники - а nethasp.ini класть в \bin\conf\
5. Vlad87 18.08.14 15:18 Сейчас в теме
Не могу отправить Вам лс. Можете скинуть контакты на hygienesss at gmail.com? Пожалуйста, вопрос на минуту. Извините за офтоп.
Оставьте свое сообщение