我正在尝试编写一个简单的 Bash 脚本来帮助我验证一些 Windows 注册表设置。所有数据都在文件夹(这是计算机的主机名)中,并且位于脚本中指定的路径中。最终目标是根据行尾的注册表项值来验证值设置不正确的主机。
作为脚本的参考,参数一是我要查找的注册表项,参数二是它应该是的值。如果$control
匹配$value
's 字符串末尾的内容,则应输出作为变量的机器名称$FOLDER
list=$(ls)
regkey=$1
control=$2
for FOLDER in $list
do
value=$($FOLDER/policies/Effective-Security-policy.txt | grep "$regkey")
if [[ "$value" =~ $control ]] ;
then
echo $FOLDER
else
continue
fi
done
但是,我无法对其进行严格比较,因为还有一个名为的注册表项RestrictAnonymousSAM
,它会列出不正确的值。
以下是文本文件中的一些行,我需要能够区分两者,因此返回的值是针对该特定注册表项的:
MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymous=4,0
MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymousSAM=4,1