在Windows中以编程方式禁用密码复杂性
作者:互联网
我整天都在寻找答案,但是没有运气.
我需要能够在独立Windows 7 PC上禁用“本地安全策略”中的“密码复杂性”.
我尝试使用secedit.exe编写脚本.
我也对C#感到困惑.
最终结果将是一个脚本/程序,该脚本/程序将禁用该策略,然后在本地创建一个新的用户帐户.
解决方法:
经过一些深入的研究,我发现了如何做.
在此处发布代码,以防其他人需要使用它.
string tempFile = Path.GetTempFileName();
Process p = new Process();
p.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\secedit.exe");
p.StartInfo.Arguments = String.Format("/export /cfg \"{0}\" /quiet", tempFile);
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = false;
p.Start();
p.WaitForExit();
StringBuilder newCfg = new StringBuilder();
string[] cfg = File.ReadAllLines(tempFile);
foreach (string line in cfg)
{
if (line.Contains("PasswordComplexity"))
{
newCfg.AppendLine(line.Replace("1", "0"));
continue;
}
newCfg.AppendLine(line);
}
File.WriteAllText(tempFile, newCfg.ToString());
Process p2 = new Process();
p2.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\secedit.exe");
p2.StartInfo.Arguments = String.Format("/configure /db secedit.sdb /cfg \"{0}\" /quiet", tempFile);
p2.StartInfo.CreateNoWindow = true;
p2.StartInfo.UseShellExecute = false;
p2.Start();
p2.WaitForExit();
标签:passwords,security,local-security-policy,windows,c 来源: https://codeday.me/bug/20191122/2057434.html