Ana içeriğe atla

VbScript ile Local Kullanici Yönetimi (Change Local User Password)

Bu yazı Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2 ve Windows Server 2016 işletim sistemleri üzerinde kullanılabilecek bilgiler içerir.
Birden fazla sunucuda ya da bilgisayar üzerinde işlem yapmak otomasyon ve scripting gerektiren bir süreçtir. İhtiyaç dahilinde yazmış olduğum scriptle txt uzantılı bir dosyadan sunucu isimleri teker teker okunarak, loop döngüsü içerisinde sunuculara bağlantı kuruluyor ve şifresi değiştirilmek istenilen local kullanıcının sistemde tanımlı olup olmadığı kontrol ediliyor. Eğer local kullanıcı yok ise kullanıcı verilen şifre ile create edilerek administrators lokal grubuna dahil ediliyor, kullanıcı sistemde tanımlı ise şifresi yeni şifreyle değiştiriliyor.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile("D:\computerlist.txt", 1)

myUserName = "myUser"
myPassword = "myNewP@$$w0rd"

Do Until objTextFile.AtEndOfStream

strComputer = objTextFile.ReadLine
err.clear
on error resume next
set objUser = GetObject("WinNT://" & strComputer & "/" & myUserName &", user")

if err.number<>0 then
wscript.echo "User tanımlı degil ya da sunucuya ("&strComputer &") erisilemiyor "
err.clear

strDomain = strComputer
'Creating a User

Set colAccounts = GetObject("WinNT://" & strComputer & "")
Set objUser = colAccounts.Create("user", myUserName)
objUser.SetPassword myPassword
objUser.Description = "Kulanicimin Description Bilgisinde Bu Gözükecek"
objUser.SetInfo

Set objGroup = GetObject("WinNT://" & strComputer & "/Administrators,group")
Set objUser = GetObject("WinNT://" & strComputer & "/" & myUserName &",user")

If (objGroup.IsMember(objUser.AdsPath) = False) Then
objGroup.Add(objUser.ADsPath)

End If' End of If (objGroup.IsMember(objUser.AdsPath) = False) Then

' set password to not expire
intUserFlags = objUser.Get("UserFlags")
objUser.put "Userflags", intUserFlags OR &H10000
objUser.SetInfo

Wscript.echo strComputer & " sunucusunda, " & objUser.Name & "kullanicisi "& objGroup.Name & " grubu altinda olusturulmustur!"


Else
objUser.SetPassword myPassword
objUser.SetInfo


Wscript.echo strComputer & " sunucusunda psm_sos kullanicisinin sifresi degistirilmistir!"
end if
Loop

objTextFile.Close

Yorumlar

Bu blogdaki popüler yayınlar

gMSA (group managed service account) and SQL Server

MSA (managed user account) teknolojisinin sorunlarından bir tanesi aynı MSA'i birden fazla computer objesinde kullanamamaktı. Bu nedenle de gMSA (group managed service account) duyuruldu. gMSA ile; Passwordler Active Directory tarafından yönetileceği için complex olurlar ve sık sık otomatik olarak değiştirilir (default 30 days). Passwordler 240 bytes uzunluğunda randomly şifrelenmiş olarak üretilir. Ek olarak interactive logon amaçlı kullanılamazlar, yanlış şifre girilmesi sonucunda meydana gelen lock-out olma durumuna yakalnmazlar. Şifre değişikliği sonrasında SQL Server Servisinin restart edilmesine gerek bulunmaz. Aşağıda belirtilen adımlar pre-reqlerin tamamlanmış olduğu varsayılarak step by step aktarılmıştır. Prerequisetlerle ilgili detaylı bilgilendirmeye  https://technet.microsoft.com/en-us/library/jj128431.aspx#BKMK_gMSA_Req  linkinden erişilebilir. 1-  Active Directory Users and Computers Altında Global Security Group Oluşturma gMSA 'i kullanacağım...

PWDCOMPARE() ile SQL Server'da NonCompliant Password kontrolü

Bu yazı SQL Server 2008 ve sonrasi için geçerli bir yazıdır. SQL Server üzerinde tanımlı SQL loginlerin şifrelerinin bazı çok bilinen şifrelerle aynı olup olmadığı kontrolü yapılır. Faydalı oması dileğiyle. İlgili Transact-SQL'in kullanım şekli (syntax) aşağıdaki gibidir. PWDCOMPARE ( 'clear_text_password', password_hash [ , version ] ) Kullanılabilecek argümanların açıklaması aşağıdaki gibidir.  clear_text_password: Kontrol edeceğimiz şifrelenmemiş (unecnrypted) password.   password_hash: Logine ait password encrption hash bilgisi.  version: İsteğe bağlı olarak kullanılabilen bu parametre ile SQL Server 2000 öncesinden  taşınan ancak yeni versiyona convert edilmemiş loginlerin password_hashlerinin kontrol  edilmesi imkanı tanınır. Aşağıdaki T-SQL ile şifresi boş olan loginler getirilir. SELECT name FROM sys . sql_logins    WHERE PWDCOMPARE ( '' , password_hash ) = 1   Aşağıdaki T-SQL ile şifresi passwo...