윈7로 배치스크립트 짜보는데 진짜 처음해보는거라 븅신같음 ㅋㅋㅋㅋㅋㅋㅋㅋ
secedit /export /cfg localsecuritypolicy.inf
::정책설정 가져오기(내보내기)
icacls c:\windows\system32\localsecuritypolicy.inf /grant users:f
::inf 파일에 대한 user 권한을 허용시키고
set original="ClearTextPassword = 0"
::ClearTextPassword = 0이란 문구를 %original% 변수에 지정하고
set change="ClearTextPassword = 1"
::ClearTextPassword = 1이란 문구를 %change% 변수에 지정하고
if exist "c:\windows\system32\localsecuritypolicy.inf" (
::만약 localsecuritypolicy.inf 파일이 있다면
findstr /c:"ClearTextPassword = 0" localsecuritypolicy.inf > nul
::cleartextpassword = 0의 문구를 찾아봐라
if errorlevel 0 (
::만약 이 문구가 있다면
for %a in (localsecuritypolicy.inf) do (
::localsecuritypolicy.inf의 내용을 %%inf 변수에 넣고 반복을 시작하는데
if exist %original% neq "%a"
::만약 ClearTextPassword = 0라는 문구가 localsecuritypolicy.inf의 내용과 다르면
(echo "%change%" >>"localsecuritypolicy.inf"))
::ClearTextPassword = 1로 바꿔서 localsecuritypolicy.inf에 넣어라
secedit /configure /db c:\windows\system32\localsecuritypolicy.sdb /cfg c:\windows\system32\localsecuritypolicy.inf
::정책 적용하기
심지어 적용도 안됨 ㅋㅋㅋㅋㅋㅋㅋㅋ 뭔지 모르겠음 구글링만으로 해보긴하는데
인터넷말고는 배울 수 있는 곳이 딱히 없어서 삽질 존나하는중
이것 좀 적용되게 고쳐주시면 압도적 감사
티벳여우
한 줄 한 줄 복사해서 cmd에 붙여넣기 하는 방식으로 실행해보고
관리자 권한으로 실행했는지도 체크 해봐야할듯
그리고 if문 '(' 에 대응하는 ')' 가 안보이는데 이 부분 수정해야할 거 같음
errorlevel 체크하는건 아래처럼 고쳐야할듯
if not errorlevel 1 (
errorlevel 0 이건 이전 리턴값이 0 이상이면 참을 반환하는데, findstr이 문자열을 찾으면 0을 리턴하고, 못 찾으면 1 내지 2를 리턴함
즉, if errorlevel 0 이렇게 쓰면 문자열을 찾든 못찾든 항상 다음 내용을 실행함 (항상 참이 되기 때문)
생태계교란종
고마워!
음.. 근데 윈7은 cmd로 파일안의 내용을 문자열 치환할 수 있는 기능은 없나봐. 아니면 내가 방법은 있는데 내가 씹뉴비찐따새끼라 모르고 있는걸지도...
배치스크립트말고 지금이라도 파워셀 하는게 나을까?
쉘스크립트처럼 비슷하게 사용가능한 것도 같아보이는데..