Su una piattaforma Windows, esiste un'utilità della riga di comando a cui posso passare un username
, password
domain name
per 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 name
per verificare le credenziali (o eventualmente dare un errore che l'account è disabilitato, non esiste o è scaduto)?
Risposte:
È possibile utilizzare il net use
comando, specificando il nome utente e la password nella riga di comando (nel modulo net use \\unc\path /user:username password
e controllare il errorlevel
reso per verificare se una credenziale è valida.
Anche il runas
comando 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 user
o dsquery
. Il net user
comando non ti dirà se un account è bloccato, ma interrogare l' lockoutTime
attributo dell'account utente potrebbe dirlo.
runas /user:username cmd
aprirà una nuova finestra della riga di comando come username
se 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) [], CommandNotFoundException
qui Funziona esclusivamente su un controller di dominio e non per account locali?
Test-ADAuthentication
non è 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!