Я пытаюсь прочитать срок действия пароля администратора из ActiveDirectory:

Dim DC = New  PrincipalContext(ContextType.Domain)
Dim cmp = ComputerPrincipal.FindByIdentity(DC, hostnm)
Dim desting As String = cmp.DistinguishedName
Dim de As New DirectoryEntry("LDAP://" & desting)
pwdexp = de.Properties("ms-Mcs-AdmPwdExpirationTime").Value.ToString()

Но я вижу только <COM Type>:

Однако время истечения пароля администратора может быть легко прочитано PowerShell:

$TestValue = [adsi]"LDAP://CN=xxx,OU=xxx,OU=xxx,OU=xxx,OU=xxx,DC=xxx,DC=xxx,DC=xx"
$TestValue.ConvertLargeIntegerToInt64($Testvalue."ms-Mcs-AdmPwdExpirationTime"[0])

И я знаю, что есть такое свойство:

Интересно, но я могу прочитать другой параметр ms-Mcs-AdmPwd:

Dim DC = New  PrincipalContext(ContextType.Domain)
Dim cmp = ComputerPrincipal.FindByIdentity(DC, hostnm)
Dim desting As String = cmp.DistinguishedName
Dim de As New DirectoryEntry("LDAP://" & desting)
pwdexp = de.Properties("ms-Mcs-AdmPwdExpirationTime").Value.ToString()

и значение можно увидеть из отладчика:

Как правильно прочитать свойство ms-Mcs-AdmPwdExpirationTime ?

1 ответ1

2

Это работает для меня в powershell:

$comp = Get-ADComputer Laptop8 -Properties ms-MCS-AdmPwdExpirationTime
$([datetime]::FromFileTime([convert]::ToInt64($comp.'ms-MCS-AdmPwdExpirationTime',10)))

удачи Сем

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .