Ĺadny brzuch
Witam,
chciałbym napisać program pozwalający wyświetlać mi uprawnienia jakie posiada użytkownik sieci w firmie w danym folderze współużytkowanym.
Nie każdy z użytkowników jest w tej samej domenie. Jest domena główna i ona jest podzielona na mniejsze poddomeny.
Ktoś wie jak coś takiego zrobić? Dodam, że konto na którym jest odpalany program jest kontem administratora.
Mam coś takiego, ale nie wyświetla mi użytkowników z innych domen i nie mogę sprawdzać uprawnień do folderów na serwerze.
public void GetUsers(string domena) { SelectQuery sQuery = new SelectQuery("Win32_UserAccount", "Domain='"+domena+"'"); try { ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery); foreach (ManagementObject mObject in mSearcher.Get()) { if (mObject["Name"].ToString().Contains("Administrator") == true || mObject["Name"].ToString().Contains("ASPNET") == true || mObject["Name"].ToString().Contains("Pomocnik") == true || mObject["Name"].ToString().Contains("Gość") == true || mObject["Name"].ToString().Contains("Test") == true || mObject["Name"].ToString().Contains("SUPPORT") == true) { } else { label2.Text = domena + "\\" + mObject["Name"]; comboBox3.Items.Add(domena + "\\" + mObject["Name"]); listaUzytkownikow.Add(domena + "\\" + mObject["Name"].ToString()); } } } catch (Exception ) { } } //Ta funkcja sprawdza uprawnienia do folderów public FileSystemRights GetDirectoryPermissions(string user, string folderPath) { try { if (!Directory.Exists(folderPath)) { return (0); } string identityReference = ((user) as string).ToLower(); DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath, AccessControlSections.Access); foreach (FileSystemAccessRule fsRule in dirSecurity.GetAccessRules(true, true, typeof(System.Security.Prin[ciach!]l.NTAccount))) { if (fsRule.IdentityReference.Value.ToLower() == identityReference) { int indexSlsh = 0; return (fsRule.FileSystemRights); } } return (0); } catch (UnauthorizedAccessException) { return (0); } }
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
chciałbym napisać program pozwalający wyświetlać mi uprawnienia jakie posiada użytkownik sieci w firmie w danym folderze współużytkowanym.
Nie każdy z użytkowników jest w tej samej domenie. Jest domena główna i ona jest podzielona na mniejsze poddomeny.
Ktoś wie jak coś takiego zrobić? Dodam, że konto na którym jest odpalany program jest kontem administratora.
Mam coś takiego, ale nie wyświetla mi użytkowników z innych domen i nie mogę sprawdzać uprawnień do folderów na serwerze.
public void GetUsers(string domena) { SelectQuery sQuery = new SelectQuery("Win32_UserAccount", "Domain='"+domena+"'"); try { ManagementObjectSearcher mSearcher = new ManagementObjectSearcher(sQuery); foreach (ManagementObject mObject in mSearcher.Get()) { if (mObject["Name"].ToString().Contains("Administrator") == true || mObject["Name"].ToString().Contains("ASPNET") == true || mObject["Name"].ToString().Contains("Pomocnik") == true || mObject["Name"].ToString().Contains("Gość") == true || mObject["Name"].ToString().Contains("Test") == true || mObject["Name"].ToString().Contains("SUPPORT") == true) { } else { label2.Text = domena + "\\" + mObject["Name"]; comboBox3.Items.Add(domena + "\\" + mObject["Name"]); listaUzytkownikow.Add(domena + "\\" + mObject["Name"].ToString()); } } } catch (Exception ) { } } //Ta funkcja sprawdza uprawnienia do folderów public FileSystemRights GetDirectoryPermissions(string user, string folderPath) { try { if (!Directory.Exists(folderPath)) { return (0); } string identityReference = ((user) as string).ToLower(); DirectorySecurity dirSecurity = Directory.GetAccessControl(folderPath, AccessControlSections.Access); foreach (FileSystemAccessRule fsRule in dirSecurity.GetAccessRules(true, true, typeof(System.Security.Prin[ciach!]l.NTAccount))) { if (fsRule.IdentityReference.Value.ToLower() == identityReference) { int indexSlsh = 0; return (fsRule.FileSystemRights); } } return (0); } catch (UnauthorizedAccessException) { return (0); } }