Массовая замена адреса сервера

Автор Тема: Массовая замена адреса сервера  (Прочитано 7576 раз)

HUR

  • Участник
  • **
  • Сообщений: 36
    • Просмотр профиля
    • e-book's for you
    • E-mail
Массовая замена адреса сервера
« : 25 Ноябрь 2011, 09:25:50 »
Здраствуйте!
Если сервер Lotus переехал на новый адрес, т.е. находиться на другом доменном имени, но конфигурация та жа.

Можно ли сделать скрипт изменяющий в notes.ini место подключение?
Или все же прийдется у каждого менять путь через клиент вручную?
Ну и другие способы...

K85

  • Старший специалист
  • ****
  • Сообщений: 127
  • http://nick-name.ru/sertificates/727639/
    • Просмотр профиля
Re: Массовая замена адреса сервера
« Ответ #1 : 25 Ноябрь 2011, 20:02:16 »
1. Отправляете всем пользователям письмо, в котором создаете кнопку, при нажатии которой и дожны пройти изменения

беру у себя с примера не проверяя, так что проверьте на тесте сначала
Const VIEW_LOCATION_NAME = "($Locations)"
Const VIEW_CONNECTION_NAME = "($Connections)"

Const OLD_DOMAIN_NAME = "Название домена _ Старое"   
Const NEW_DOMAIN_NAME = "Название домена _ Новое"   

Sub Click(Source As Button)
Dim session As New NotesSession
Dim dbNab As NotesDatabase
Dim view As NotesView
Dim note As NotesDocument
Dim sNamesLine As String
Dim nPos As Integer
Dim sDomainValue As String
Dim bNeedsUpdate As Integer
Dim bLocationModified As Integer
On Error Resume Next
sNamesLine = session.GetEnvironmentValue("names",True)
nPos = Instr(sNamesLine, ",")
If nPos > 0 Then
sNamesLine = Left$(sNamesLine, nPos-1)
Else
sNamesLine = "names.nsf"
End If
Set dbNab = New NotesDatabase( "",sNamesLine )
If Not(dbNab.isOpen) Then
Messagebox("Не удалось")
Exit Sub
End If
Set view = dbNab.GetView(VIEW_LOCATION_NAME)
If (view Is Nothing) Then
Messagebox("книга отсутствует.")
Exit Sub
End If

Set note = view.GetFirstDocument
While Not(note Is Nothing)
sDomainValue = note.Domain(0)
If Lcase(sDomainValue) = Lcase(OLD_DOMAIN_NAME) Then
note.Domain = NEW_DOMAIN_NAME
note.MailServer="Название сервера "
Call note.save(True,False)
bLocationModified = True               
End If
Set note = view.GetNextDocument(note)
Wend
Set view = dbNab.GetView(VIEW_CONNECTION_NAME)
If (view Is Nothing) Then
Messagebox("книга отсутствует.")
Exit Sub
End If
Set note = view.GetFirstDocument
While Not(note Is Nothing)
bNeedsUpdate = False         
sDomainValue = note.SourceDomain(0)
If Lcase(sDomainValue) = Lcase(OLD_DOMAIN_NAME) Then
note.SourceDomain = NEW_DOMAIN_NAME
note.MailServer="Название сервера "
bNeedsUpdate = True

End If
sDomainValue = note.DestinationDomain(0)
If Lcase(sDomainValue) = Lcase(OLD_DOMAIN_NAME) Then
note.SourceDomain = NEW_DOMAIN_NAME
note.MailServer="Название сервера"

bNeedsUpdate = True
End If
If (bNeedsUpdate) Then Call note.save(True, False)
Set note = view.GetNextDocument(note)
Wend
Set note = dbNab.CreateDocument

If (bNeedsUpdate) Then
Messagebox("переоткройте.")
Else
Messagebox("Спасибо")
End If
End Sub

Здесь смысл, что указывается название старого домена, с которым сравнивается домен указанный в месте вызова сотрудника, и если старое название совподает, то тогда укажется новый домен, название сервера, ну и можно дописать другие данные, которые надо поменять автоматически у всех

dahiko

  • Специалист
  • ***
  • Сообщений: 59
    • Просмотр профиля
Re: Массовая замена адреса сервера
« Ответ #2 : 30 Декабрь 2011, 15:09:54 »
Можно групповыми политиками windows заметить существующий notes.ini на новый при загрузки ПК пользователя. Если этот метод вам подходит, то могу подробно описать.

HUR

  • Участник
  • **
  • Сообщений: 36
    • Просмотр профиля
    • e-book's for you
    • E-mail
Массовая замена адреса сервера
« Ответ #3 : 19 Январь 2012, 12:12:34 »
Было б неплохо написать пару методов решения этой проблемы, и отнести ее к FAQ

На моем месте проблема была решена, составлением мануала для пользователя что и как тыкнуть чтоб заработало (+с перездом на новый рабочий год)