Kullanıcı kimlik bilgilerini doğrulamak için bir Windows komut satırı yardımcı programı var mı?


19

Windows platformunda, bir geçirebilmesi herhangi bir komut satırı yardımcı programı var username, password domain namekimlik bilgilerini doğrulamak üzere (veya muhtemelen hesabı devre dışı olduğuna dair bir hata vermek yok veya süresi dolmuş değil)?


2
Neden olur sen kimsenin kimlik bilgilerini ancak kendi doğrulamak gerekir. Sorumlu ve saygın bir SysAd olarak, başkalarının kimlik bilgilerini bilmenize gerek yoktur (belki de root veya Domain Admin hesapları hariç).
gWaldo

6
@gWaldo: Buraya, mevcut bir makine hesabının kimlik bilgilerini isteyen bir yükleyici programı yazan bir yazılım mühendisi olarak geldim, daha sonra kod düzeyinde Win32 API kimliğe bürünme çağrıları için sakladık (şifreli). Bu soruyu ve yanıtı meşru olmanın yanı sıra alakalı ve yararlı buldum.
Mike Atlas

1
Kullanıcıları varsayılan bir şifre ile ayarladım ve değiştirmelerini istedim. Şimdi birkaç hafta sonra kimin kimin kimin olmadığını bilmek istiyorum.
Mark Berry

@MarkBerry kullanıcı profilindeki onay kutusunu işaretleyerek bir sonraki oturum açma sırasında parolalarını değiştirmeye zorlamalısınız.
Craig

2
@Craig, girişte şifrelerini değiştirmeye zorlasam bile, bu hala bir hafta veya bir ay sonra giriş yaptıklarını garanti etmez; Komut satırından kontrol etmenin bir yoluna ihtiyacım var. Zorunlu parola değişikliği, Ağ Düzeyinde Kimlik Doğrulama etkinse uzak kullanıcıları bile kilitleyebilir. Ve bazen, şirket (müşteri) bir şifre değişikliğini zorunlu kılmaktan daha yumuşak bir dokunuş gerektirir.
Mark Berry

Yanıtlar:


14

net useKomut satırındaki kullanıcı adını ve parolayı belirterek komutu kullanabilirsiniz (formda net use \\unc\path /user:username passwordve errorlevelbir kimlik bilgisinin geçerli olup olmadığını doğrulamak için döndürüleni kontrol edin .

runasKomut Eğer sert bir zamanı çıkışı test zorunda gidiyoruz o hariç de çalışırdı.

Bir hesabın varlığı için bir kimlik bilgisini test etmek net userveya kullanmakla ilgili olacaktır dsquery. net userBir hesap kilitlendi, ancak sorgulama eğer komut söylemeyeceğim lockoutTimekullanıcı hesabının niteliğini sana anlıyordu.


7
runas /user:username cmdusernamegeçerli bir şifre girmiş gibi yeni bir komut satırı penceresi açar ve bu kullanıcı bu bilgisayara giriş yapabilir. Genelde bakabileceğim kişisel bilgilere dayanarak şifrenin hala varsayılan olduğunu test etmek için bir kabuk açacağım.
PsychoData

13

Powershell'de:

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:\>

Referans: /programming/7663219/how-to-authenticate-an-user-in-activedirectory-with-powershell


Buraya geliyorum ObjectNotFound: (Test-ADAuthentication:String) [], CommandNotFoundException. Bu yalnızca yerel hesaplar için değil, bir etki alanı denetleyicisinde çalışır mı?
SaAtomic

1
@SaAtomic Oturumu çalıştırmadan önce işlevi tanımlamanız gerekir. Test-ADAuthenticationpowershell içine inşa edilmez
Kolob Kanyonu

1
Cevabınız hakkında gerçekten sevmediğim bir şey, şifreyi güvenli bir dize olarak okumamanızdır. Düz metin parolaları her zaman kötü bir fikirdir. $pass = Read-Host -assecurestring 'Enter password'
Kolob Kanyonu

1

AD'nin bir LDAP sunucusu olduğu için, ona bağlanmak için bir LDAP komut satırı aracı kullanabileceğinizi ve böylece etkin olup olmadığını doğrulayacağınızı eklemek istedim. Ayrıca daha yüksek ayrıcalıklara sahip bir kullanıcı olarak bağlanabilir ve daha sonra LDAP ilkelerini kullanarak AD'yi arayabilirsiniz.

Ama hey-- Powershell'de yanlış bir şey yok!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.