1、创建一个系统用户,并随机设置一个8位的数字+字母大小写密码
2、将指定目录权限设置为nginx及administrators 完全控制权限
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.DirectoryServices; using System.IO; using System.Security.AccessControl; namespace testadduser { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private static char[] constant = { '0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' }; public static string GenerateRandomNumber(int Length) { System.Text.StringBuilder newRandom = new System.Text.StringBuilder(62); Random rd = new Random(); for (int i = 0; i < Length; i++) { newRandom.Append(constant[rd.Next(62)]); } return newRandom.ToString(); } private void AddUser(string Userpassword) { string path = String.Format("WinNT://{0}", System.Environment.MachineName); DirectoryEntry entryPC = new DirectoryEntry(path); DirectoryEntry obUser = entryPC.Children.Add("nginx", "User"); obUser.Properties["Description"].Add("这是一个nginx启动账户,请勿删除"); obUser.Properties["FullName"].Add("nginx"); object obRet = obUser.Invoke("SetPassword", Userpassword); obUser.CommitChanges(); } static void AddSecurityControll2Folder(string dirPath) { //获取文件夹信息 DirectoryInfo dir = new DirectoryInfo(dirPath); //获得该文件夹的所有访问权限 System.Security.AccessControl.DirectorySecurity dirSecurity = dir.GetAccessControl(AccessControlSections.All); //设定文件ACL继承 InheritanceFlags inherits = InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit; //添加administrators用户组的访问权限规则 完全控制权限 FileSystemAccessRule administratorsFileSystemAccessRule = new FileSystemAccessRule("administrators", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow); //添加nginx用户组的访问权限规则 完全控制权限 FileSystemAccessRule nginxFileSystemAccessRule = new FileSystemAccessRule("nginx", FileSystemRights.FullControl, inherits, PropagationFlags.None, AccessControlType.Allow); bool isModified = false; dirSecurity.ModifyAccessRule(AccessControlModification.Add, administratorsFileSystemAccessRule, out isModified); dirSecurity.ModifyAccessRule(AccessControlModification.Add, nginxFileSystemAccessRule, out isModified); //设置访问权限 dir.SetAccessControl(dirSecurity); } private void button1_Click(object sender, EventArgs e) { string dirPath = "C:\\Users\\MaZi\\Desktop\\test"; string Userpassword = GenerateRandomNumber(8); AddUser(Userpassword); MessageBox.Show("用户添加成功,用户名为:\"nginx\" 密码为:" + Userpassword); AddSecurityControll2Folder(dirPath); MessageBox.Show("已添加C:\\Users\\MaZi\\Desktop\\test文件夹添加了administrators及nginx的完全控制权限"); } } }
亲爱的:若该文章解决了您的问题,可否收藏+评论+分享呢?
文章评论 本文章有个评论