Мой скрипт powershell запросит и обновит атрибут ldap из репозитория ldap. Но атрибут, который я хотел запросить / обновить, является пустым полем в репозитории ldap. Насколько я знаю, PowerShell не может принять пустое значение, поэтому мой скрипт вернул следующее сообщение об ошибке
You cannot call a method on a null-valued expression.
At D:\deployment\test.ps1:67 char:17
+ ... $f = $l.Attributes['String7'].GetValues('string')
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
Я положил Set-StrictMode -Off
, чтобы принять нулевое значение, но, похоже, оно не работает должным образом
Пожалуйста, обратитесь к следующему сценарию
foreach ($l in $r.Entries)
{
//some process over here
if($ID -eq "xxxxx")
{
$N = $l.Attributes['String11'].GetValues('string')
if($N -eq "something here")
{
$f = $list.Attributes['String7'].GetValues('string')
if($f -eq $null)
{
//update string7 attribute
$l.Attributes['String7'].SetValues("x")
}
}
}
$r
будет моим ответом из репозитория ldap, и String7
по умолчанию пусто