Como ler uma propriedade `ms-Mcs-AdmPwdExpirationTime` do ActiveDirectory

0

Estou tentando ler o tempo de expiração da senha do administrador em 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()

Mas o que eu vejo é apenas <COM Type>: insira a descrição da imagem aqui

No entanto, o tempo de expiração da senha do administrador pode ser facilmente lido pelo 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])

E eu sei que existe essa propriedade: insira a descrição da imagem aqui

Curiosamente, mas posso ler outro parâmetro 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()

e o valor pode ser visto no depurador:

insira a descrição da imagem aqui

Como ler uma propriedade ms-Mcs-AdmPwdExpirationTimecorretamente?

Um passo adiante
fonte
FYI ... Você pode examinar o comando simples net user /domain administratorassim e ver o valor do campo Expirar senha .
Pimp Juice IT

Respostas:

2

Isso funciona para mim no PowerShell:

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

boa sorte Sem

sanderk
fonte
-1
cls;$error.clear()

$computer = Read-host "Enter the name of the computer"

$LocalAdmin = "" | Select Computer,AdmPwd,Expires

$LocalAdmin.Computer = $Computer

$LocalAdmin.AdmPwd = $(Get-ADComputer $computer -Properties ms-MCS-AdmPwd | select -ExpandProperty ms-MCS-AdmPwd)

$FileTime = Get-ADComputer $computer -Properties ms-MCS-AdmPwdExpirationTime

$LocalAdmin.Expires  = $([datetime]::FromFileTime([convert]::ToInt64($FileTime.'ms-MCS-AdmPwdExpirationTime',10)))


$LocalAdmin | ft -AutoSize
OuttaBeer
fonte
Observe que a pergunta era sobre solução VB. A solução do PowerShell já era conhecida na pergunta original.
Michał Sacharewicz 29/03