Forum
Öncelikle herkese kolay gelsin.
C:\Users içindeki tüm kullanıcıları (Administrator,Default,Public gibi yerel kullanıcılar hariç) ve aynı şekilde bunların tutulduğu regedit'teki HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList altındaki
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-3506207502-2077022625-1220149175-500 , HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-3506207502-2077022625-1220149175-1000 , HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-1-5-21-3506207502-2077022625-1220149175-1001
gibi Yerel Hesaplar dışındaki kullanıcıları sildirmek için bir komut dosyası için yardımınızı veya yol göstermenizi rica ediyorum.
Aslında bunları silebilecek bir komut dosyası hazırlamıştım ama yukarıda belirttiğim anahtar ve kullanıcıların silinmemesini sağlayamıyorum malesef.
Umarım bu konuda yardımcı olabilirsiniz.
Teşekkürler,
İyi Çalışmalar
Merhaba
Bu aracı denediniz mi?
https://helgeklein.com/free-tools/delprof2-user-profile-deletion-tool/
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************
Aşağıdaki kod ilgili kullanıcıyı silecektir;
void Main()
{
DirectoryEntry localDirectory = new DirectoryEntry("WinNT://" + Environment.MachineName.ToString());
DirectoryEntries users = localDirectory.Children;
DirectoryEntry user = users.Find("KULLANICI-ADI"); //<<== Kullanıcı adı buraya
users.Remove(user);
}
Hakan Hocam ve Volkan Hocam alakanıza teşekkürler.
@Hakan Hocam, belirtmiş olduğunuz tool belli süre zarfında aktif olmamış kullanıcıları siliyor malesef.
@Volkan Hocam,Emeğinize sağlık fakat bana süre veya kullanıcı ismi belirtmeden silecek bir koda ihtiyacım var.
Hakan Hocamın paylaşmış olduğu Tool'da süre sorunu olmasa iyi olurmuş.Az buçuk anladığım kadarıyla kodlar verilmiş ama süre durumunu göremedim.Lakin tam istediğim gibi hem "Users" klasöründen hemde "regedit"ten kullanıcıları silmekte.
Yönlendirdiğiniz sitede kodlar verilmiş yapabilirmiyim bilmiyorum ama hiç yoktan yol olur,deneyip bulurum umarım.
Teşekkürler.
Verdiğim kod bu işin nasıl yapıldığını gösteren bir örnek sadece. Kodu ihtiyaçlarınıza uygun şekilde düzenlemek ve hangi kriterlere göre çalışacağını sağlamak size kalmış. Sistemdeki kullanıcıların listesini alabilir, bu listeden silinmesini istemediğiniz hesap türlerini çıkarabilir ve geri kalan kullanıcıları bir döngü içerisinde kolaylıkla silebilirsiniz.
Kullanıcı listesini aşağıdaki şekilde alabilirsiniz;
using System;
using System.Management;
using System.Linq;
ManagementObjectSearcher usersSearcher = new ManagementObjectSearcher(@"SELECT * FROM Win32_UserAccount");
ManagementObjectCollection users = usersSearcher.Get();
var localUsers = users.Cast<ManagementObject>().Where(
u => (bool)u["LocalAccount"] == true &&
(bool)u["Disabled"] == false &&
(bool)u["Lockout"] == false &&
int.Parse(u["SIDType"].ToString()) == 1 &&
u["Name"].ToString() != "HomeGroupUser$");
foreach (ManagementObject user in localUsers)
{
Console.WriteLine("Account Type: " + user["AccountType"].ToString());
Console.WriteLine("Caption: " + user["Caption"].ToString());
Console.WriteLine("Description: " + user["Description"].ToString());
Console.WriteLine("Disabled: " + user["Disabled"].ToString());
Console.WriteLine("Domain: " + user["Domain"].ToString());
Console.WriteLine("Full Name: " + user["FullName"].ToString());
Console.WriteLine("Local Account: " + user["LocalAccount"].ToString());
Console.WriteLine("Lockout: " + user["Lockout"].ToString());
Console.WriteLine("Name: " + user["Name"].ToString());
Console.WriteLine("Password Changeable: " + user["PasswordChangeable"].ToString());
Console.WriteLine("Password Expires: " + user["PasswordExpires"].ToString());
Console.WriteLine("Password Required: " + user["PasswordRequired"].ToString());
Console.WriteLine("SID: " + user["SID"].ToString());
Console.WriteLine("SID Type: " + user["SIDType"].ToString());
Console.WriteLine("Status: " + user["Status"].ToString());
}
Teşekkürler Volkan Hocam.
Paylaşmayı unuttum,
biraz araştırdıktan sonra Kod olmasada işimi daha hızlı görecek bir program buldum.DelProf 'un GUI'sini hazırlamışlar ben beğendim işine yarayacak arkadaşlarada paylaşmış olalım.
C:\Users içinden kullanıcıları seçerek siliyorsunuz bu esnada sizin seçip sildiğiniz kullanıcıların regedit kayıtlarını ise otomatik olarak program siliyor.
https://sourceforge.net/projects/delprof-gui/
Bilgilerinize,
Iyi Çalışmalar
Geri dönüş için teşekkürler. Güzel öneri.
Danışman - ITSTACK Bilgi Sistemleri
****************************************************************
Probleminiz Çözüldüğünde Sonucu Burada Paylaşırsanız.
Sizde Aynı Problemi Yaşayanlar İçin Yardım Etmiş Olursunuz.
Eğer sorununuz çözüldü ise lütfen "çözüldü" olarak işaretlerseniz diğer üyeler için çok büyük kolaylık sağlayacaktır.
*****************************************************************