Secedit 不接受更新安全设置

问题描述 投票:0回答:1

我有一个包含此代码的 powershell 脚本,用于更改帐户策略中的一些参数:

secedit /export /cfg "$env:TEMP\security.cfg"
(Get-Content "$env:TEMP\security.cfg" -Raw) -replace 'PasswordComplexity = 1', 'PasswordComplexity = 0' | Set-Content "$env:TEMP\security.cfg"
# Set minimum password length (e.g., 0 characters)
$minPasswordLength = 0
(Get-Content "$env:TEMP\security.cfg" -Raw) -replace 'MinimumPasswordLength = \d+', "MinimumPasswordLength = $minPasswordLength" | Set-Content "$env:TEMP\security.cfg"
# Set maximum & minimum password age (e.g., 0 days)
$maxPasswordAge = 0
(Get-Content "$env:TEMP\security.cfg" -Raw) -replace 'MaximumPasswordAge = \d+', "MaximumPasswordAge = $maxPasswordAge" | Set-Content "$env:TEMP\security.cfg"
$minPasswordAge = 0
(Get-Content "$env:TEMP\security.cfg" -Raw) -replace 'MinimumPasswordAge = \d+', "MinimumPasswordAge = $minPasswordAge" | Set-Content "$env:TEMP\security.cfg"

secedit /configure /db "$env:windir\security\database\secedit.sdb" /cfg "$env:TEMP\security.cfg" /areas SECURITYPOLICY

但是当我运行它时: 我唯一的结果是:

任务已成功完成。 有关详细信息,请参阅日志 %windir%\security\logs\scesrv.log。 允许您使用数据库中存储的安全设置来配置系统。 该命令的语法是: secedit /configure /db 文件名 [/cfg 文件名] [/overwrite][/areas area1 area2...] [/log 文件名] [/quiet] /db 文件名 - 指定用于执行安全配置的数据库。

这是该命令的语法。 安全设置没有任何改变。

知道出了什么问题吗?

感谢您的帮助 BR 杰罗尼莫

powershell security scripting
1个回答
0
投票

我知道这是一个老问题,但谷歌引导我来到这里!

我相信您必须首先将 ini 文件导入到临时数据库文件中,然后在该数据库文件上启动配置命令。

所以,像这样:

secedit /export /cfg "$env:TEMP\security.cfg"
<make your changes to the cfg file>
secedit /import /db "$env:TEMP\security.sdb" /cfg "$env:TEMP\security.cfg
secedit /configure /db "$env:TEMP\security.sdb"
© www.soinside.com 2019 - 2024. All rights reserved.