Powershell и IBM / Lotus Domino - PullRequest
       30

Powershell и IBM / Lotus Domino

1 голос
/ 13 апреля 2020

Я написал 9 подпрограмм за последние несколько недель в Powershell для Domino, они все, кажется, делают то, что мне нужно, кроме 1!

Это метод RegisterNewUser, который делает все, кроме адреса электронной почты. Если я настраиваю пользователя через Domino Administrator, я получаю все, включая адрес электронной почты ie внутренний адрес, который называется 'bob patz / smallhome'.

Если я использую свой код, это использует процесс регистрации, но все, что я заканчиваю доменная часть внутреннего адреса электронной почты'@smallhome'.

Кто-нибудь знает, как это исправить? Я не думаю, что powershell использует язык @formula в любой форме, поэтому я предполагаю, что мне как-то нужно найти правильный столбец в документе или базе данных и каким-то образом добавить туда полное имя.

Есть ли кто-нибудь там? кто может помочь в любом случае?

считает Марк

<#TOP TIP: THIS MUST RUN UNDER POWERSHELL (X86), ELSE IT WILL NOT WORK!!

Эта функция PowerShell была создана в марте 2020 года (мной) Марком Бейкером как «а» только для того, чтобы проверить, могу ли я де-мистифицировать некоторая структура базы данных Domino, после выполнения коротких фрагментов кода и использования Get-Member в некоторых его частях, просмотра фрагментов кода в Интернете и чтения части онлайн-информации от IBM, я предложил функцию ниже, чтобы создать новый Lotus Notes User.

#

Оригинальный код: 31/03/2020 от MBaker

Большой объем работ по тестированию и диагностике различных настроек и значений ВСЕГДА привел меня к тому, что это заработало, начиная с 08 / 04/2020 Мне просто нужно разработать настройки для установки правильного адреса электронной почты на человека.

#

Вот как использовать эту функцию: * 1 020 *

New-DominoUserRegistration "hazell" "C: \ Program Files \ IBM \ Lotus \ Notes \ Data \ ids \ people \ dhazell.id" "CN = Dom-01 / O = Smallhome" "Даниэль" "" "swindon" "Работа" "комментарий" "mail \ dhazell" "" "пароль" 176 "dhazell"

Основное использование этой функции - подключение к серверу IBM Domino и создание новых заметок лотоса пользователь.

>

Function New-DominoUserRegistration {
[cmdletbinding()]
        param (
        [parameter(Position=0,Mandatory=$true,ValueFromPipeline=$True)][string]$lastname,
        [parameter(Position=1,Mandatory=$true,ValueFromPipeline=$True)][string]$Useridfile,
        [parameter(Position=2,Mandatory=$true,ValueFromPipeline=$True)][string]$mailserver,
        [parameter(Position=3,Mandatory=$true,ValueFromPipeline=$True)][string]$firstname,
        [parameter(Position=4,Mandatory=$false,ValueFromPipeline=$True)][string]$middle,
        [parameter(Position=5,Mandatory=$true,ValueFromPipeline=$True)][string]$certpw,
        [parameter(Position=6,Mandatory=$true,ValueFromPipeline=$True)][string]$location,
        [parameter(Position=7,Mandatory=$true,ValueFromPipeline=$True)][string]$comment,
        [parameter(Position=8,Mandatory=$true,ValueFromPipeline=$True)][string]$maildbpath,
        [parameter(Position=9,Mandatory=$true,ValueFromPipeline=$True)][string]$fwddomain,
        [parameter(Position=10,Mandatory=$true,ValueFromPipeline=$True)][string]$userpw,
        [parameter(Position=11,Mandatory=$true,ValueFromPipeline=$True)][int]$usertype,
        [parameter(Position=12,Mandatory=$true,ValueFromPipeline=$True)][string]$ShortName
    )
cls
# Create Lotus Notes Object
$DomSession = New-Object -ComObject Lotus.NotesSession
# Initialize Lotus Notes Object
# "It'll use your open notes session and authentication Details"
$DomSession.Initialize()

# Use Method from Objects returned in variable $domsession one of which is CreateAdministrationProcess which
# takes a Server as input
$adminProcess = $Domsession.CreateRegistration()

$expiration = (Get-Date).adddays(1095)

$adminprocess.certifieridfile="C:\Program Files (x86)\IBM\Lotus\Notes\Data\ids\cert.id"
$adminprocess.Expiration =$expiration
#$adminprocess.RegistrationLog ="C:\program files (x86)\IBM\lotus\notes\data\reglog.nsf"
#[int]$adminProcess.MinPasswordLength=5
$adminprocess.RegistrationServer="Dom-01/smallhome"
$adminprocess.UpdateAddressBook=$true
$adminProcess.GroupList="Test4"
#$adminProcess.CreateMailDb=$true
#[int]$adminProcess.MailQuotaSizeLimit="100"
#[int]$adminProcess.MailQuotaWarningThreshold="90"
$adminProcess.PolicyName="/Registration_Settings"
$adminProcess.ShortName=$ShortName
[int]$adminProcess.MailOwnerAccess=2
$adminProcess.MailACLManager="LocalDomainAdmins"
$adminProcess.MailInternetAddress="$ShortName"+"@smallhome.local"
$adminProcess.MailTemplateName="Mail85.ntf"

$Notesid=$adminprocess.RegisterNewUser($lastname,$Useridfile,$mailserver,$firstname,$middle,$certpw,$location,$comment,$maildbpath,$fwddomain,$userpw,$usertype)

}
New-DominoUserRegistration "archer" "C:\Program Files (x86)\IBM\Lotus\Notes\Data\ids\people\barcher.id" "CN=Dom-01/O=Smallhome" "basil" "" "swindon" "Work" "comment" "mail\barcher" " " "password" 176 "barcher"
[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/2Wamq.png

1 Ответ

0 голосов
/ 23 апреля 2020

У меня теперь есть ответ на этот вопрос, он пришел от кого-то другого на другой доске: строка [параметр (Позиция = 9, Обязательный = $ true, ValueFromPipeline = $ True)] [строка] $ fwddomain,

Необходимо вставить [AllowEmptyString ()] перед [string] $ fwddomain, а поле ввода было "" и должно быть "". Похоже, что $ fwddomain влияет на внутренний адрес электронной почты с именем ie: 'bob patz / smallhome'.

Я проверил это, и он отображается в представлении людей, а также теперь я могу отправлять электронные письма другим пользователям и самим себе!

Проблема решена. С уважением Марк

...