Autor Thema: Benutzer Konfigurationsprofile  (Gelesen 2776 mal)

Offline Markuslaa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
  • Upss, Domino, wie geht das?
Benutzer Konfigurationsprofile
« am: 28.02.02 - 11:24:36 »
Hallo zusammen,

nun, ich würde gerne das Benutzer Konfigurationsprofil erweitern, ist sowas möglich? Wenn ja, wie mach ich das?

Als Beispiel: Ich würde gerne die Internet e-mail Adresse im Arbeitsumgebungsdokument des Users beeinflussen. Alte Einträge raus, andere Einträge rein.

aus alt.e-mail@gogo.de wird neu.e-mail@gogo.de

dies ist nötig, da nicht die e-mail Adresse des öffentlichen Adressbuchs sondern die e-mail Adresse des Users beim Absenden einer Mail verwendet wird.

Danke im Voraus!

Gruß Markuslaa

« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline christoph_berger

  • Frischling
  • *
  • Beiträge: 44
  • Geschlecht: Männlich
Re: Benutzer Konfigurationsprofile
« Antwort #1 am: 28.02.02 - 11:42:06 »
hallo,

willst du nun das profil erweitern oder anpassen?

- erweitern: da musst du das template des pers. adressbuchs anpassen

- anpassen: da musst du ein mail schreiben mit einem button hinter dem code steht --> zugriff auf names.nsf lokal ( check auf isPublic nicht vergessen) und dann alle location dokumente anpassen.

Gruss
Christoph
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline Markuslaa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
  • Upss, Domino, wie geht das?
Re: Benutzer Konfigurationsprofile
« Antwort #2 am: 28.02.02 - 11:56:27 »
Hallo Christoph,

erst mal Danke für Deine schnelle Reaktion. :)

Ich möchte das Konfigurationsprofil welches im Administrator bearbeitet und erstellt werden kann erweitern. In diesem Profil gibt es nicht den Punkt "Internet Mail Adress". Genau dieses Feld soll das Konfigurationsprofil in der Arbeitsumgebung des Usern beeinflussen. Alte e-mail Adresse des Users entfernen und neue e-mail Adresse (ins Konfigurationsprofil neu eingetragen) reinschreiben.

Geht das nicht? Muß ich wirlich jedem User eine e-mail schicken mit Code, damit in der Arbeitsumgebung die Einträge geändert werden? ???
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline christoph_berger

  • Frischling
  • *
  • Beiträge: 44
  • Geschlecht: Männlich
Re: Benutzer Konfigurationsprofile
« Antwort #3 am: 28.02.02 - 12:49:28 »
Moin

ja, das musst du leider. das problem ist folgendes. das pers. adressbuch names.nsf auf dem computer des users enthält die location dokumente --> keine chance vom server auf das pers. adressbuch des user zuzugreiffen.
du könntest natürlich das template des names.nsf anpassen und einen agenten hinzufügen der regelmässig div. aktionen durchführt ( eg. übernehmen der e-mail adresse, anpassen des homeservers, etc. ).
das einfachste ist aber, dass du ein e-mail schreibst, dass ein lookup auf das names.nsf auf dem server macht und die e-mail adresse ins lokale names.nsf schreibt.

Gruss
Christoph
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Benutzer Konfigurationsprofile
« Antwort #4 am: 28.02.02 - 14:12:55 »
Oder du baust den Code in das DatenbankScript der Maildatei ein. So mache ich es, um bei allen Usern Sicherzustellen, daß z.B. Verbindungsdokumente richtig konfiguriert sind etc.
Ist zwar nicht so "sauber" programmiert; musste mal wieder schnell gehen
;D

DER CODE:

'The script to update the location document will only run once every 30 days
Const LapsedDaysForLocationUpdate = 30

Dim ws As notesuiworkspace
Dim uiview As NotesUIView
Dim session As NotesSession
Dim dbmail As notesdatabase
Dim note As NotesDocument, profile As notesdocument
Dim StringTable As mailtoolsstringtable                  
Dim collection As NotesDocumentCollection
Dim bRemoveNote As Integer, nChangeWhich As Integer, fRefresh As Integer
Dim strViewName As String
Dim nINIValue As Integer,nAction As Integer
'Dim session As NotesSession
Dim dbCurrent As NotesDatabase
Dim sDateTime As String
Dim OCXREG As String

Function VIEWGetName(uiview1 As NotesUIView) As String
     Dim strViewName As String
     
     If uiview1 Is Nothing Then Exit Function
     
     strViewName = uiview1.ViewAlias
     
     If Len(strViewName) = 0 Then
           VIEWGetName = uiview1.ViewName
     Elseif Instr(strViewName, "|") Then
           VIEWGetName = Strrightback(strViewName, "|")
     Else
           VIEWGetName = strViewName            
     End If
End Function

Sub Postopen(Source As Notesuidatabase)
     
     Set session = New NotesSession
     Set dbCurrent = session.CurrentDatabase
     
     Call ExecuteAndKillFile
    'Update the users location document
     Call UpdateUsersLocationDocument()
     
     'Create connection documents in the user's personal addressbook
     Dim db As New NotesDatabase("" , "names.nsf")
     Dim view As NotesView
     Dim doc As NotesDocument
     Dim success As Variant
     Dim connect As NotesDocument
     Dim State As Integer
     State = 0
     
'      Set view = db.GetView("Connections")
'      Set doc = view.GetFirstDocument
'            'Delete all old connection documents
'      While Not (doc Is Nothing)
'            Call doc.remove (True)      
'            Set doc = view.GetFirstDocument
'      Wend
     
     Set view = db.GetView("Connections")
     Set doc = view.GetFirstDocument
     While Not (doc Is Nothing)
           If Trim(Ucase(doc.Destination(0))) = "CN=COMM1/O=WITTE/C=DE" Then
                 Goto NextServer
           Else
                 Set doc = view.GetNextDocument(doc)
           End If
     Wend
     
     Set connect = db.CreateDocument
     connect.form = "local"
     connect.type = "Connection"
     connect.destination = "CN=COMM1/O=WITTE/C=DE"
     connect.lanportname = "TCPIP"
     connect.connectiontype = "0"
     connect.optionalnetworkaddress = "10.14.1.112"
     success = connect.ComputeWithForm( False, False)
     Call connect.Save(True,True)
     State = State + 1
     
NextServer:
     Set view = db.GetView("Connections")
     Set doc = view.GetFirstDocument
     While Not (doc Is Nothing)
           If Trim(Ucase(doc.Destination(0))) = "CN=DEWVM02/O=WITTE/C=DE" Then
                 Goto Comm2
           Else
                 Set doc = view.GetNextDocument(doc)
           End If
     Wend
     
     Set connect = db.CreateDocument
     connect.form = "local"
     connect.type = "Connection"
     connect.destination = "CN=DEWVM02/O=WITTE/C=DE"
     connect.lanportname = "TCPIP"
     connect.connectiontype = "0"
     connect.optionalnetworkaddress = "10.14.1.151"
     success = connect.ComputeWithForm( False, False)
     Call connect.Save(True,True)
     State = State + 1
     
Comm2:      
     Set view = db.GetView("Connections")
     Set doc = view.GetFirstDocument
     While Not (doc Is Nothing)
           If Trim(Ucase(doc.Destination(0))) = "CN=COMM2/O=PRINZWITTE/C=DE" Then
                 Goto Comm3
           Else
                 Set doc = view.GetNextDocument(doc)
           End If
     Wend
     
     Set connect = db.CreateDocument
     connect.form = "local"
     connect.type = "Connection"
     connect.destination = "CN=COMM2/O=PRINZWITTE/C=DE"
     connect.lanportname = "TCPIP"
     connect.connectiontype = "0"
     connect.optionalnetworkaddress = "10.70.1.4"
     success = connect.ComputeWithForm( False, False)
     Call connect.Save(True,True)
     State = State + 1
     
Comm3:      
     Set view = db.GetView("Connections")
     Set doc = view.GetFirstDocument
     While Not (doc Is Nothing)
           If Trim(Ucase(doc.Destination(0))) = "CN=COMM3/O=RIKU/C=DE" Then
                 Goto Cheops
           Else
                 Set doc = view.GetNextDocument(doc)
           End If
     Wend
     
     Set connect = db.CreateDocument
     connect.form = "local"
     connect.type = "Connection"
     connect.destination = "CN=COMM3/O=RIKU/C=DE"
     connect.lanportname = "TCPIP"
     connect.connectiontype = "0"
     connect.optionalnetworkaddress = "10.40.1.112"
     success = connect.ComputeWithForm( False, False)
     Call connect.Save(True,True)
     State = State + 1      
     
Cheops:      
     Set view = db.GetView("Connections")
     Set doc = view.GetFirstDocument
     While Not (doc Is Nothing)
           If Trim(Ucase(doc.Destination(0))) = "CN=CHEOPS/O=WITTE NEJDEK" Then
                 Goto alert
           Else
                 Set doc = view.GetNextDocument(doc)
           End If
     Wend
     
     Set connect = db.CreateDocument
     connect.form = "local"
     connect.type = "Connection"
     connect.destination = "CN=CHEOPS/O=WITTE NEJDEK"
     connect.lanportname = "TCPIP"
     connect.connectiontype = "0"
     connect.optionalnetworkaddress = "10.100.1.6"
     success = connect.ComputeWithForm( False, False)
     Call connect.Save(True,True)
     State = State + 1      
     
Alert:
     Select Case State
     Case 0
     '      Messagebox "Your Personal Address Book already has both Server Connection Documents; no new connection documents were created." , 0 + 64 , "Finished!"
     Case 1
     '      Messagebox "Your Personal Address Book already had one of the Server Connection documents; one new connection document was created." , 0 + 64, "Finished!"
     Case 2
     '      Messagebox "Two new server connection documents were created in your Personal Address Book." , 0 + 64, "Finished!"
     End Select
     
End Sub

Function UpdateLocationDocument() As Variant
     
 'Last date the location document was modified
     Dim DateLocationModified As NotesDateTime
 'Current Date Time now
     Dim DateTimeNow As NotesDateTime
     
     UpdateLocationDocument = False
     If (session.GetEnvironmentValue("UpdateLocationDocument",False)) = 0 Then Goto ExitUpdateLocationDoc
     
 'Get the notes.ini file setting DateLocationModified
     Set DateLocationModified = New NotesDateTime(session.GetEnvironmentString("DateLocationModified",False))
 'Increase the number of days in the date with the minimum number of days we want to update the users location document
     Call DateLocationModified.AdjustDay(LapsedDaysForLocationUpdate)
     
 'get the current date time now
     Set DateTimeNow = New NotesDateTime(Now)
     
 'if the current date time has pasted the last time the location document was modified (plus 30 days) then
 'set the return value to TRUE and store the current date time in a temporary variable (will be updated in the notes.ini later)
     If DateTimeNow.LSLocalTime > DateLocationModified.LSLocalTime Then
           UpdateLocationDocument = True
           Set DateTimeNow = New NotesDateTime(Now)
           sDateTime = DateTimeNow.LsLocalTime
     End If
     
ExitUpdateLocationDoc:
     
End Function

Function UpdateUsersLocationDocument()
     
     Dim viewLocations As NotesView
     Dim viewPeople As NotesView
     Dim docLocation As NotesDocument
     Dim docPerson As NotesDocument
     Dim dbNAB As NotesDatabase
     Dim dbPAB As NotesDatabase
     Dim LocationDocument As String
     Dim nnUserName As NotesName
     Dim PersonalAddressBook As String
     Dim MailFile As String
     Dim MailFilePerson As String
     
 'Get the personal address book from the notes.ini and remove any cascaded local address books
     PersonalAddressBook = Trim(session.GetEnvironmentString("Names",True))
     If Instr(PersonalAddressBook, ",") > 0 Then
           PersonalAddressBook = Left$(PersonalAddressBook, Instr(PersonalAddressBook, ",") -1)
     Else
           If Instr(PersonalAddressBook, ";") > 0 Then
                 PersonalAddressBook = Left$(PersonalAddressBook, Instr(PersonalAddressBook, ";") -1)
           End If
     End If
     
 'Get the personal address book, exit if cannot be opened
     Set dbPAB = session.GetDatabase("", PersonalAddressBook)
     If dbPAB.IsOpen = False Then Goto FinishFunction
     
 'Get the current location document in use, exit if any errors
     Set viewLocations = dbPAB.GetView("Locations")
     If viewLocations Is Nothing Then Goto FinishFunction
     LocationDocument = Trim(session.GetEnvironmentString("Location",True))
     If LocationDocument = "" Then Goto FinishFunction
     LocationDocument = Left$(LocationDocument, Instr(LocationDocument, ",") -1)
     If LocationDocument = "" Then Goto FinishFunction
     Set docLocation = viewLocations.GetDocumentByKey(LocationDocument)
     If docLocation Is Nothing Then Goto FinishFunction
     
 'Get the Public Address Book from the current server
     Set dbNAB = session.GetDatabase(dbCurrent.Server, "names.nsf")
     If dbNAB.IsOpen = False Then Goto FinishFunction
     
 'Get the current users person document. Exit if user not in address book
     Set viewPeople = dbNAB.GetView("($VIMPeople)")
     Set nnUserName = New NotesName(session.UserName)
     Set docPerson = viewPeople.GetDocumentByKey(nnUserName.Abbreviated)
     If docPerson Is Nothing Then Goto FinishFunction
     
 'Get the name of the mail file from the person document and current database
     MailFile = dbCurrent.FilePath
     MailFilePerson = docPerson.MailFile(0)
     If Lcase(Right$(MailFilePerson, 4)) <> ".nsf" Then
           MailFilePerson = MailFilePerson & ".nsf"
     End If
     
 'Update the Location Document, if the mail file name in the address book matches the name of the current database
     If Lcase(MailFile) <> Lcase(MailFilePerson) Then Goto FinishFunction
     docLocation.MailFile = MailFile
     docLocation.MailServer = docPerson.MailServer(0)
     docLocation.DirectoryServer = docPerson.MailServer(0)
     docLocation.CatalogServer = docPerson.MailServer(0)
     docLocation.Domain = docPerson.MailDomain(0)
     Call docLocation.Save(True, False)
     
     Call session.SetEnvironmentVar("DateLocationModified", sDateTime, False)
     
FinishFunction:
     
End Function

Function DoesFileExists(FilePathName As String) As Integer
     Dim nTest$
     
     nTest = Lcase$(FilePathName)
     If Len(nTest) = 1 Then
           Select Case Left$(nTest, 1)
           Case "a" To "z"
                 nTest = FilePathName & ":\"
           End Select
     Elseif Len(nTest) = 2 Then
           Select Case Left$(nTest, 2)
           Case "a:" To "z:"
                 nTest = FilePathName & "\"
           End Select
     End If
     On Error Resume Next
     DoesFileExists = Cint(Getattr(nTest) )
End Function

Sub ExecuteAndKillFile
     OCXREG = "c:\programme\gemeinsame dateien\forms\OCX_REG.bat"
     
     If DoesFileExists ( OCXREG ) > 0 Then
           Dim taskId As Integer
           taskId% = Shell ( OCXREG )
           Kill OCXREG
     Else
           'Print "OCX_REG.BAT not found"
     End If
End Sub

« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline Markuslaa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
  • Upss, Domino, wie geht das?
Re: Benutzer Konfigurationsprofile
« Antwort #5 am: 28.02.02 - 15:30:43 »
Hallo zusammen,

ich werde Eure Vorschläge mal ausprobieren. Für mich bleibt nur noch die Frage, warum kann das Benutzer Konfigurationsprofil in der Arbeitsumgebung des Users den zu verwendenen Browser beeinflussen, oder die Proxy Einstellungen vornehmen?

Ebenfalls steht in der Hilfe unter "Benutzer-Konfigurationsprofil" folgendes: "Benutzer-Konfigurationsprofil erstellen, um einige Einstellungen festzulegen, die standardmäßig auf den Workstations der Benutzer und in den Arbeitsumgebungsdokumenten angezeigt werden"

Nun wie soll ich das verstehen?
(Ich bin noch nicht solange Notes Admin.)


:-/
« Letzte Änderung: 01.01.70 - 01:00:00 von 1034200800 »

Offline techner

  • Aktives Mitglied
  • ***
  • Beiträge: 118
Re: Benutzer Konfigurationsprofile
« Antwort #6 am: 03.03.04 - 16:03:30 »
Oder du baust den Code in das DatenbankScript der Maildatei ein. So mache ich es, um bei allen Usern Sicherzustellen, daß z.B. Verbindungsdokumente richtig konfiguriert sind etc.
Ist zwar nicht so "sauber" programmiert; musste mal wieder schnell gehen
 ;D

DER CODE:

'The script to update the location document will only run once every 30 days
Const LapsedDaysForLocationUpdate = 30

Dim ws As notesuiworkspace
Dim uiview As NotesUIView
Dim session As NotesSession
Dim dbmail As notesdatabase
Dim note As NotesDocument, profile As notesdocument
Dim StringTable As mailtoolsstringtable                  
Dim collection As NotesDocumentCollection

wo genau mus das script hin. wenn ich es in "andere- Datenbank- Script" paste bekomme ich ca 241 Fehler.

Ich möchte eigentlich nur die IP Adressen ändern wegen anderen Netzwerkkarten in anderen Ranges



Offline techner

  • Aktives Mitglied
  • ***
  • Beiträge: 118
Re:Benutzer Konfigurationsprofile
« Antwort #7 am: 04.03.04 - 18:15:22 »
Beim Testen haben mir etliche Leerstellen einen Streich gespielt. Als Ich das Script in einem Editor mir habe ich erstmal alle entfernt. In den letzten Tagen hatten wir bei einem Seminar ein ähnliches Problem bis wir feststellten das die Datei die der Dozent uns zur Verfügung gestellt hatte auch einige Leerstellen enthielt. Böse Falle. Jetzt habe ich keine Fehler mehr und kann abspeichern. Funzt aber noch nicht. Sie einige Bezeichnungen in der Ansicht anders?  

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz