Меня просят закодировать приложение, которое выполняет следующие действия:
- Разобрать файл CSV, разделить его на путь файловой системы и домен \ пользователь на несколько сотен строк и сохранить его в двух строковых массивах
- Преобразование унаследованных разрешений ntfs в явные для каждого отдельного пути
- Изменить разрешения (добавить нашего (администратора) пользователя, удалить всех остальных пользователей, добавить группу генеральных директоров + начальник отдела (пользователь, который хранится в PermissionHolder [k] в формате домен \ пользователь)
Моя проблема в том, что я никогда не делал вторую часть с изменением разрешений NTFS с унаследованных на явные и изменением ACL ранее в программе.
Я работаю в качестве ИТ-администратора и время от времени пишу только код.
Мой код в настоящее время выглядит следующим образом (для первой части он является частью очень простого графического приложения на C #):
private void Button1_Click(object sender, EventArgs e)
{
CSVSpeicherort.ShowDialog();
string PathToCSV = CSVSpeicherort.FileName;
txtBox_CSVPath.Text = PathToCSV;
StreamReader sr = new StreamReader(PathToCSV, Encoding.GetEncoding(1252));
string[] Lines = new string[TotalLines(PathToCSV)];
string[] PathsToChangeACLs = new string[TotalLines(PathToCSV)];
string[] PermissionHolder = new string[TotalLines(PathToCSV)];
string temp1, temp2 = "";
for(int j = 0;j<Lines.Length;j++)
{
Lines[j] = sr.ReadLine();
}
for (int k = 0; k < Lines.Length; k++)
{
PathsToChangeACLs[k] = Lines[k].Substring(0, returndelimiterposition(Lines[k]));
int z = Convert.ToInt32(returndelimiterposition(Lines[k])) + Convert.ToInt32(1);
PermissionHolder[k] = Lines[k].Substring(z, ((Lines[k].Length-1)-returndelimiterposition(Lines[k])));
}
}
int TotalLines(string filepath)
{
using (StreamReader r = new StreamReader(filepath))
{
int i = 0;
while (r.ReadLine() != null) { i++; }
return i;
}
}
int returndelimiterposition(string Line)
{
for (int l = 0; l < Line.Length; l++)
{
if (Line[l].Equals(';'))
{
return l;
}
else
{
}
}
return 0;
Как мне достичь второй части?