[정보] IT

[C#] Windows 로그온 시 보안 경고메시지 없애기

Ashuro 2022. 1. 13. 15:13
반응형

회사에서 관리하는 Windows를 쓰다보면 로그인하기 전에 각종 경고글로 도배된 무서운 법적 안내(Legal Notice)가 뜨는 경우가 있다.

 

로그온하면서 마우스 클릭 한 번이면 없어지긴 하지만 자동 로그온을 사용하는 사용자에게는 열받는 일이다.

 

업무시간 시작 시 자동으로 켜지는 모니터 등의 PC에도 이런 정책이 걸려 있으면

PC하나 키자고 매일 PC를 키러 가던가 아니면 원격으로 조치를 해줘야 한다. 고작 클릭 한 번 때문에.

 

그래서 이런 보안 경고 메시지를 없앨 수 없을까 하고 구글링을 해봤지만 원하는 정답은 없었지만

해당 메시지 들이 legalnoticecaption, legalnoticetext라는 레지스트리를 통해 관리된다는 것을 알게 되었다.

 

레지스트리를 만져서 해당 키 값을 삭제해줬지만 보안 정책이 업데이트 될 때마다 또는 주기적으로? 이 값이 새로 써져서 매번 번거로움이 있어서 C#을 이용해 이 번거로움을 없애주고자 프로그램을 짰다.

 

프로그램은 간단하게 로그온하면 10분에 한 번 씩 레지스트리의 legalnotice 부분의 값을 날려주는 것인데, 키 값을 삭제해도 결과는 같은 것 같았다.

 

RegistryKey rkey, rkey2;

 

//운영체제가 32비트냐 64비트냐에 따라 위치가 달라진다.
if (Environment.Is64BitOperatingSystem == true)
{
    rkey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true);
    rkey2 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", true);
}
else
{
    rkey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", true);
    rkey2 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon", true);
}

rkey.SetValue("legalnoticecaption", string.Empty);
rkey.SetValue("legalnoticetext", string.Empty);
rkey.Dispose();

rkey2.SetValue("legalnoticecaption", string.Empty);
rkey2.SetValue("legalnoticetext", string.Empty);

 

//여기서부터는 자동 로그온 부분

rkey2.SetValue("AutoAdminLogon", "1");
rkey2.SetValue("DefaultUserName", "로그인 아이디를 넣어주세요.");
rkey2.SetValue("DefaultPassword", "로그인 패스워드를 넣어주세요.");
rkey2.SetValue("DefaultDomainName", "전사 디렉토리를 넣어주세요. 없으면 skip");
rkey2.Dispose();

반응형