Su una piattaforma Windows, esiste un'utilità della riga di comando a cui posso passare un username, password domain nameper verificare le credenziali (o eventualmente dare un errore che l'account è disabilitato, non esiste o è scaduto)?
Su una piattaforma Windows, esiste un'utilità della riga di comando a cui posso passare un username, password domain nameper verificare le credenziali (o eventualmente dare un errore che l'account è disabilitato, non esiste o è scaduto)?
Risposte:
È possibile utilizzare il net usecomando, specificando il nome utente e la password nella riga di comando (nel modulo net use \\unc\path /user:username passworde controllare il errorlevelreso per verificare se una credenziale è valida.
Anche il runascomando funzionerebbe, tranne per il fatto che avrai un tempo più duro per testare l'output.
Testare una credenziale per l'esistenza di un account sarebbe una questione di utilizzo net usero dsquery. Il net usercomando non ti dirà se un account è bloccato, ma interrogare l' lockoutTimeattributo dell'account utente potrebbe dirlo.
runas /user:username cmdaprirà una nuova finestra della riga di comando come usernamese tu fornissi la password valida e quell'utente possa accedere a questo computer. Solitamente aprirò una shell per testare che la password è ancora predefinita in base alle loro informazioni personali che posso cercare.
In Powershell:
Function Test-ADAuthentication {
param($username,$password)
(new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null
}
PS C:\> Test-ADAuthentication "dom\myusername" "mypassword"
True
PS C:\>
Riferimento: /programming/7663219/how-to-authenticate-an-user-in-activedirectory-with-powershell
ObjectNotFound: (Test-ADAuthentication:String) [], CommandNotFoundExceptionqui Funziona esclusivamente su un controller di dominio e non per account locali?
Test-ADAuthenticationnon è integrato in PowerShell
$pass = Read-Host -assecurestring 'Enter password'
Volevo solo aggiungere che poiché AD è un server LDAP, è possibile utilizzare uno strumento da riga di comando LDAP per "collegarsi" ad esso, confermando così se è attivo o meno. È inoltre possibile eseguire il binding come utente con privilegi più elevati e quindi cercare AD utilizzando i principi LDAP.
Ma hey ... niente di male in Powershell!