Lotus notes 使用lotus脚本强制notes用户在下次登录时更改密码/internet密码

Lotus notes 使用lotus脚本强制notes用户在下次登录时更改密码/internet密码,lotus-notes,lotusscript,Lotus Notes,Lotusscript,实际上,我已经创建了一个代理来创建带有默认密码的用户ID。我想强制用户在下次登录时更改internet密码和Notes ID密码。有没有办法使用LotusScript方法来更改它?或者管理员仍然需要在每个用户配置文件中勾选该函数 这是我创建ID的代理代码 Sub Initialize ' this agent use on [register] button locate on [request form] xpages Dim s As New NotesSession,

实际上,我已经创建了一个代理来创建带有默认密码的用户ID。我想强制用户在下次登录时更改internet密码和Notes ID密码。有没有办法使用LotusScript方法来更改它?或者管理员仍然需要在每个用户配置文件中勾选该函数

这是我创建ID的代理代码

Sub Initialize
    '   this agent use on [register] button locate on [request form] xpages

    Dim s As New NotesSession, db As NotesDatabase, a As NotesAgent
    Dim doc As NotesDocument
    Set db = s.Currentdatabase
    Set a = s.Currentagent
    Set doc = s.Documentcontext     '   uidoc 

    Dim certid As String 'full path of cert id
    Dim certpasswd As String
    Dim OU As String
    Dim lastname As String
    Dim firstname As String
    Dim middleinit As String
    Dim usrIdpath As String
    Dim mailsvr As String
    Dim mailfile As String
    Dim userpasswd As String
    Dim internetpath As String

    Dim depvw As NotesView, depdoc As NotesDocument
    Set depvw = db.Getview("Department sort by dept")
    Set depdoc = depvw.Getdocumentbykey(doc.Dept(0), True)
    If Not depdoc Is Nothing Then
        certid = depdoc.IdPath(0)                   '   full path of cert id
        certpasswd = depdoc.IdPassword(0)               '   Cert id password(password)
        OU = ""                         '
        lastname= doc.Name(0)                   '   current document selected mail (person)
        firstname = ""                      '   [din't used]
        middleinit = ""                     '   [din't used]
        usrIdpath = depdoc.DptIdStor(0) +doc.SelectMail(0)+ ".id"   '   user path
        mailsvr = depdoc.MailSvr(0)                 '   mail svr
        mailfile = depdoc.MailLocation(0)+doc.SelectMail(0)         '   Mail\Person
        userpasswd= depdoc.UserPassword(0)          '   User password
        internetpath = doc.SelectMail(0)+depdoc.InternetPath(0)     '   mail address

    End If

    Dim reg As New NotesRegistration
    Dim dt As Variant
    dt = DateNumber(Year(Today)+1, Month(Today), Day(Today))

    reg.RegistrationServer = mailsvr        '"CN=ServerOne/O=dev"
    reg.CreateMailDb = True                 '
    reg.CertifierIDFile = certid            '"C:\IBM\Domino\data\office.id"
    reg.Expiration = dt
    reg.IDType = ID_HIERARCHICAL
    reg.MinPasswordLength = 1               ' password strength
    reg.IsNorthAmerican = True
    reg.OrgUnit = OU                ' "" empty ..will just follow certid registration
    reg.RegistrationLog = "log.nsf"
    reg.UpdateAddressBook = True
    reg.StoreIDInAddressBook = True
    reg.MailInternetAddress =  internetpath 


    Call reg.RegisterNewUser(lastname, _    ' last name
    usridpath, _                '"C:\IBM\Domino\data\ +name+.id"    ' file to be created
    mailsvr, _                  '"CN=ServerOne/O=dev"               ' mail server
    firstname, _                ' first name
    middleInit, _               ' middle initial
    certpasswd, _               '"office"                           ' certifier password
    "", _                                       ' location field
    "", _                                       ' comment field
    mailfile, _                 '"mail\person.nsf"                 ' mail file
    "", _                                   ' Forwarding domain
    userpasswd, _               '"password", _                   ' user password
    NOTES_DESKTOP_CLIENT)               ' user type

    Print "Please wait ...... Registration in progress"
End Sub
问题1:如何在下次登录时强制用户更改notes密码

问题2:如何强制用户在下次登录时更改internet密码


问题3:是否每次创建notes ID时都会自动保存到ID vault?据我所知,ID vault是一个存储所有ID的数据库。如果我错了,请让我知道。谢谢

不确定注册ID保险库,但是对于密码更改,我认为您可以只设置字段
HTTPPasswordForceChange=“1”

不确定注册ID保险库,但是对于密码更改,我认为您可以只设置字段
HTTPPasswordForceChange=“1”
,我在中回答了您的第2个问题

问题1和3密切相关:

首先,在您的域中设置一个ID-Vault。在多米诺骨牌中,这确实是一个必备品。在遵循管理员帮助时,这是一个简单的1-2-3步骤。设置vault后,只要您为通过分层策略分配了vault的认证机构注册用户,该ID就会自动上载到vault

这就是说:我永远不会在地址簿中存储用户ID,因为每个人都可以从那里访问它并假装是那个用户(假设他可以查询您的默认密码/给定密码)

要强制用户在首次登录后更改Notes-密码,我还使用id vault:无论何时使用vault更改用户密码,它都会自动强制用户在下次登录后更改密码:

这是一个简单的单行代码:

Call s.Resetuserpassword( mailsvr, "CN=User/O=dev", userpasswd )

这里最困难的事情是在vault中获得正确的权限(将选项设置为允许代码签名者及其运行代理以编程方式使用vault)

我在中回答了您的第2个问题

问题1和3密切相关:

首先,在您的域中设置一个ID-Vault。在多米诺骨牌中,这确实是一个必备品。在遵循管理员帮助时,这是一个简单的1-2-3步骤。设置vault后,只要您为通过分层策略分配了vault的认证机构注册用户,该ID就会自动上载到vault

这就是说:我永远不会在地址簿中存储用户ID,因为每个人都可以从那里访问它并假装是那个用户(假设他可以查询您的默认密码/给定密码)

要强制用户在首次登录后更改Notes-密码,我还使用id vault:无论何时使用vault更改用户密码,它都会自动强制用户在下次登录后更改密码:

这是一个简单的单行代码:

Call s.Resetuserpassword( mailsvr, "CN=User/O=dev", userpasswd )

这里最困难的事情是在vault中获得正确的权限(将选项设置为允许代码签名者及其运行代理以编程方式使用vault)

Dim reg As New notes注册reg.HTTPPasswordForceChange没有此功能或需要使用其他类型的过程…我从internet上阅读了一些资料…我需要先访问管理员数据库,然后调用某些notes管理员过程来强制更改密码吗?抱歉,我没有完全阅读您的问题。。。。。。我提到的字段设置在NAB中的person文档上。。。。我不是管理员,但我相信在安全设置文档中有一个密码策略/管理选项卡,您可以在第一次客户端使用时更改密码或类似的内容?。。。我相信那里也会有其他的设置,所以可能值得一看?Dim reg As New notes registration reg.HTTPPasswordForceChange没有此功能或需要使用其他类型的过程…我从internet上阅读了一些资料…我是否需要先访问管理员数据库,然后调用某些notes管理员过程来强制更改密码?抱歉,我没有完全阅读你的问题。。。。。。我提到的字段设置在NAB中的person文档上。。。。我不是管理员,但我相信在安全设置文档中有一个密码策略/管理选项卡,您可以在第一次客户端使用时更改密码或类似的内容?。。。我肯定那里也会有其他设置,所以可能值得一看?实际上我听说我的老板想要ID保险库…类似于存储所有新创建的ID。有一些问题,如果旧ID…我也可以存储到ID保险库吗?如果用户有策略,旧ID将在下次使用时自动上载。实际上,我听说我的老板想要ID vault…类似于存储所有新创建的ID。有一些问题,如果旧ID…我也可以存储到ID vault吗?如果用户有策略,旧ID将在下次使用时自动上载。