Hepimiz Windows bir bilgisayarda veya sunucu üzerindeki kullanıcı hesaplarıyla uğraşıyoruz ve genellikle bunu Grafik Arayüz kullanarak gerçekleştiriyoruz.
Ancak zaman zaman domainde olmayan bir grup bilgisayar ya da sunucuda toplu olarak hesap ekleme, kaldırma, enable veya disable etme gibi işlemleri gerçekleştirmemiz gerekiyor ve çoğu zaman da bu tür işler için script kullanıyoruz.
Şimdi bir Windows bilgisayar ya da sunucuda CMD kullanarak “net user” komutu ile kullanıcı hesaplarını nasıl yönetebileceğimize bakacağız. Domainde olmayan bir grup sunucuya bir scripti nasıl dağıtacağımız ise bu yazının konusu değil ama ortamınızda SCCM varsa örneğin bunu rahatlıkla gerçekleştirebilirsiniz.
Öncelikle CMD kullanırken bunu elevated (yükseltilmiş) olarak çalıştırmanız gerektiğini hatırlatayım. Bunun için CMD üzerinde sağ click yapıp Run as Administrator demeniz gerekiyor.
NET USER komutu, bilgisayarlarlarda, kullanıcı hesaplarını oluşturmamıza ve var olan hesaplar üzerinde değişiklik yapmamıza yarar.
Eğer hiç bir parametre kullanmadan sadece NET USER komutunu kullanırsak, bilgisayardaki kullanıcı hesaplarını görüntüleriz.
CMD yi açtıktan sonra “net user” yazarak başlayalım.
C:\WINDOWS\system32>net user
User accounts for \\SYDEMOSRV-01
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
murat WDAGUtilityAccount
The command completed successfully.
C:\WINDOWS\system32>
Görüldüğü gibi net user komutu ile SYDEMOSRV-01 üzerindeki kullanıcıların listesini aldık.
Şimdi komutun parametrelerini inceleyelim ve bu komutla neler yapabileceğimize bakalım.
Kullanıcı eklemek için /ADD kullanıcı silmek için ise /DELETE parametrelerini kullanıyoruz.
Tabii ki bir kullanıcıadı ve şifre belirtmemiz gerekecek. Aşağıdaki ilk örnekte kullanıcı adı “sistem.yoneticisi” ve şifresi P@s5w0rD-%100 olan bir kullanıcı oluşturuyorum.
C:\WINDOWS\system32>net user sistem.yoneticisi P@s5w0rD-%100 /ADD
The command completed successfully.
Şimdi net user komutu ile kullanıcımızın oluştuğunu görelim.
C:\WINDOWS\system32>net user
User accounts for \\SYDEMOSRV-01
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
murat sistem.yoneticisi WDAGUtilityAccount
The command completed successfully.
Gördüğünüz gibi kullanıcı oluşmuş ve listede görünüyor.
Şimdi aynı kullanıcıyı silelim ve hemen peşinden yine net user komutu ile kullanıcının silindiğini görelim.
C:\WINDOWS\system32>net user sistem.yoneticisi /DELETE
The command completed successfully.
C:\WINDOWS\system32>net user
User accounts for \\SYDEMOSRV-01
-------------------------------------------------------------------------------
Administrator DefaultAccount Guest
murat WDAGUtilityAccount
The command completed successfully.
Şimdi NET USER komutunun aldığı parametrelere göz atalım
/ACTIVE: Bu parametre kullanıcı hesabının aktif veya pasif hale getirilmesi için kullanılır. Varsayılan değeri aktiftir ve YES ya da NO seçeneği alır.
/COMMENT: Hesabın yorum alanıdır. Buraya yazacağınız metin, hesap içerisinde yorum bölümünde yer alacaktır.
/EXPIRES: “mm/dd/yy(yy)” formatında bir tarih veya NEVER değerlerini alır. kullanıcı hesabı için bir Son Kullanma Tarihi belirlenmek isteniyorsa bu parametre kullanılır. Kullanılmadan bir kullanıcı hesabı oluşturulduğunda hesabın son kullanım tarihi olmaz. Ancak son kullanım tarihi verilmiş hesap bu parametre ile NEVER değerine getirilebilir (Son kullanım tarihi kaldırılabilir) veya hesabın son kullanım tarihi değiştirilebilir.
/FULLNAME: Kullanıcının Tam Adı bu parametre ile belirtilir. Belirtilmeden oluşturulan hesaplarda bir isim görülmez.
/PASSWORDCHG: Bu parametre kullanıcının şifresini kendisinin değiştirip değiştiremeyeceğini belirler. YES veya NO değerlerini alır. Kullanılmadan oluşturulan hesaplarda kullanıcı kendi şifresini değiştirebilir. Ancak bu parametre ile kullanıcının şifre değiştirebilme yetkisi kısıtlanabilir veya kısıtlanmış bir kullanıcıya yeniden kendi şifresini değiştirme yetkisi verilebilir.
/PASSWORDREQ: Kullanıcının bir paswordü olmasını zorunlu kılan veya password kullanmayan bir hesap olabileceğini gösteren parametredir. YES ve NO değerlerini alır. Varsayılan değeri YES tir.
/LOGONPASSWORDCHG: Hesabın ilk loginde şifresini değiştirmesinin gerekli olup olmadığının tanımlandığı parametredir. YES ve NO değerlerini alır, Varsayılan değeri NO dur.
Şimdi burada gördüğümüz parametreleri kullanarak, ismi “Sistem Yöneticisi“, kullanıcı adı “sistem.yoneticisi“, şifresi P@s5w0rD-%100 , Yorum olarak “Bu bir test hesabıdır” yazan, ilk logonda şifresini değiştirmek zorunda olan ve 31 Aralık 2022 tarihinde otomatik olarak disable olacak bir hesap oluşturalım.
C:\WINDOWS\system32>net user sistem.yoneticisi P@s5w0rD-%100 /ADD /FULLNAME:"Sistem Yöneticisi" /COMMENT:"Bu bir test hesabıdır" /LOGONPASSWORDCHG:YES /EXPIRES:"12/31/2022"
The command completed successfully.
Şimdi, “net user sistem.yoneticisi” komutuyla sistem.yoneticisi hesabının tüm özelliklerine bakalım.
C:\WINDOWS\system32>net user sistem.yoneticisi
User name sistem.yoneticisi
Full Name Sistem Yöneticisi
Comment Bu bir test hesabıdır
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires 12/31/2022 00:00:00
Password last set 3/15/2021 16:57:50
Password expires 4/26/2021 16:57:50
Password changeable 3/15/2021 16:57:50
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon Never
Logon hours allowed All
Local Group Memberships *Users
Global Group memberships *None
The command completed successfully.
Burada bir ipucu vereyim. Bir kullanıcıyı oluştururken şifresini komut satırı içerisinde kullanmak istemezseniz şifre alanına * (asterix) yazarak kullanıcı eklemeyi deneyin. Ben aşağıda sy01 isimli bir kullanıcı ekleyeceğim.
C:\WINDOWS\system32>net user sy01 * /add
Type a password for the user:
Retype the password to confirm:
The command completed successfully.
Gördüğünüz gibi siz komutu gönderdikten sonra sizden şifre istiyor ve girdiğiniz şifreyi ekranda göstermiyor.
Bir ipucu daha, eğer kullanıcıyı şifre girmeden oluşturmak isterseniz şifre alanına hiç birşey girmeyin. Aşağıdaki örnek sy02 kullanıcısını şifre olmadan oluşturacaktır.
C:\WINDOWS\system32>net user sy02 /add
The command completed successfully.
Bu başlığın konusu olmayan 2 bilgiyi bonus olarak vermek istiyorum.
İlki, kullanıcıları bir gruba ekleme. İsterseniz net use komutu ile bir kullanıcı oluşturmuş olun, isterseniz domaindeki bir kullanıcıyı local bir gruba ekleyecek olun bunu “net localgroup” komutu ile yapabilirsiniz.
Biraz önce oluşturduğumuz sistem.yoneticisi kullanıcısını Administrators ve “Remote Desktop Users” gruplarına eklemek istiyorum.
C:\WINDOWS\system32>net localgroup administrators sistem.yoneticisi /add
The command completed successfully.
C:\WINDOWS\system32>net localgroup "Remote Desktop Users" sistem.yoneticisi /add
The command completed successfully.
C:\WINDOWS\system32>net user sistem.yoneticisi
User name sistem.yoneticisi
Full Name Sistem Yöneticisi
Comment Bu bir test hesabıdır
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires 12/31/2022 00:00:00
Password last set 3/15/2021 17:12:15
Password expires 4/26/2021 17:12:15
Password changeable 3/15/2021 17:12:15
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon Never
Logon hours allowed All
Local Group Memberships *Administrators *Remote Desktop Users
*Users
Global Group memberships *None
The command completed successfully.
Yukarıda her iki gruba eklemek için yazdığım komutları, sonra kullanıcı özelliklerini görüntülediğim komutu ve çıktısını görebilirsiniz.
Bu konuyla ilgili ikinci bonus ise şu,
Biz yukarıda bir kullanıcı olulştururken hesaba son kullanma tarihi verdik. Ancak örneğin bir servis hesabı oluştursaydık hesabın şifresinide son kullanım tarihi olmadan oluşturmak isteyecektik.
Bunu net user komutu ile yapamıyoruz ama tabii ki bir yolu var.
Bunun için WMIC komutunu kullanıyoruz. WMIC Windows Management Interface Command anlamına gelir.
Komutumuzu aşağıdaki örnekte olduğu gibi kullanıyoruz
C:\WINDOWS\system32>WMIC USERACCOUNT WHERE Name='sistem.yoneticisi' SET PasswordExpires=FALSE
Updating property(s) of '\\SYDEMOSRV-01\ROOT\CIMV2:Win32_UserAccount.Domain="SYDEMOSRV-01",Name="sistem.yoneticisi"'
Property(s) update successful.
C:\WINDOWS\system32>net user sistem.yoneticisi
User name sistem.yoneticisi
Full Name Sistem Yöneticisi
Comment Bu bir test hesabıdır
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires 12/31/2022 00:00:00
Password last set 3/15/2021 17:16:39
Password expires Never
Password changeable 3/15/2021 17:16:39
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon Never
Logon hours allowed All
Local Group Memberships *Administrators *Remote Desktop Users
*Users
Global Group memberships *None
The command completed successfully.
WMIC USERACCOUNT WHERE Name=’sistem.yoneticisi’ SET PasswordExpires=FALSE komutunu kullandıktan sonra net user ile kullanıcının özelliklerine baktığımda şifrenin Never Expires hale geldiğini görüyorum.
Şimdi minik bir gerçek hayat senaryosu ile devam edelim.
Yüzlerce Workgroup sunucu üzerinde, Event Logları okuyabilmesi için SIEM yazılımının kullanacağı siemuser isimli bir kullanıcı oluşturup, tümüne aynı HEGfgh9$@FPq şifresini veriyorum, şifre expire olmamalı ve kullanıcı Event Log Readers grubuna eklenmeli. Bunun için bir script yazmakla uğraşmak yerine tek satırlık bir komutla çözmek istiyorum.
Birden fazla komutu tek satırda çalıştırmanın yolu, komutlar arasına && işareti koymaktır. İlk komut ile ikinci komut arasındaki && işareti ilk komutun başarılı şekilde çalışmasının ardından sonraki komutu çalıştırır. Eğer & koysaydık, ilk komuttan sonra o komutun başarılı olup olmadığına bakmaksızın ikinci komut çalışırdı.
C:\WINDOWS\system32>net user siemuser HEGfgh9$@FPq /ADD && net localgroup "Event Log Readers" siemuser /add && WMIC USERACCOUNT WHERE Name='siemuser' SET PasswordExpires=FALSE
The command completed successfully.
The command completed successfully.
Updating property(s) of '\\SYDEMOSRV-01\ROOT\CIMV2:Win32_UserAccount.Domain="SYDEMOSRV-01",Name="siemuser"'
Property(s) update successful.
Şimdi kontrol edelim.
C:\WINDOWS\system32>net user siemuser
User name siemuser
Full Name
Comment
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never
Password last set 3/15/2021 17:35:43
Password expires Never
Password changeable 3/15/2021 17:35:43
Password required Yes
User may change password Yes
Workstations allowed All
Logon script
User profile
Home directory
Last logon Never
Logon hours allowed All
Local Group Memberships *Event Log Readers *Users
Global Group memberships *None
The command completed successfully.
evet, olmuş görünüyor.
Yazının konusu aslında sadece NET USER komutunu CMD içerisinde kullanarak kullanıcı hesaplarını yönetmekti. Ancak bunlarla uğraşıyorsanız muhtemelen bu kullanıcıyı bir gruba eklemeniz ve bazen de şifresini asla expire olmayacak şekilde set etmeniz gerekeceğinden elim değmişken onları da yazdım. Umarım işinize yarar.
Leave A Comment?
You must be logged in to post a comment.