いくつかの Windows レジストリ設定を確認するのに役立つ単純な Bash スクリプトを作成しようとしています。すべてのデータはフォルダー (コンピューターのホスト名) 内にあり、スクリプトで指定されたパスにあります。最終的な目標は、行末のレジストリ キーの値に基づいて、値が正しく設定されていないホストを確認することです。
スクリプトの参考として、パラメータ 1 は探したいレジストリ キーで、パラメータ 2 は本来あるべき値です。$control
の文字列の末尾にあるものと一致する場合$value
、変数であるマシン名を出力する必要があります$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
正しくない値が一覧表示されるためです。
テキスト ファイル内の行の一部を次に示します。この 2 つを区別できるようにする必要があるため、返される値はその特定のレジストリ キーのものです。
MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymous=4,0
MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymousSAM=4,1