«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28

테스트 환경 : Windows 10


윈도우에서 프로그램을 관리하다보면 특정 프로그램을 삭제 시 같이 설치된 애드온이 삭제가 안되거나 다른 프로그램의 간섭 혹은 사용자 과실로 인해 레지스트리, 파일 누락 등으로 삭제가 안되는 경우가 있다.


이는 삭제 과정이 단순히 해당 파일을 제거하는 것 뿐만 아니라 해당 프로그램이 시스템에 끼친 영향을 분석하고, 그 영향을 되돌리는 작업이 필요하기 때문에 언인스톨러를 사용하는 것인데, 관련 파일이 누락되거나 문제가 발생하기 때문에 나타나는 현상이다.


이러한 문제를 해결하기 위해 MS는 다음의 삭제 도구를 제공하고 있으니 참고하기 바란다.

다운로드 받은 프로그램을 실행하고 안내되는 절차를 따른 뒤 제거하고자 하는 프로그램을 선택 후 기다리면 강제로 프로그램을 찾아 삭제해준다.


https://support.microsoft.com/ko-kr/help/17588/fix-problems-that-block-programs-from-being-installed-or-removed

,

사실 이 포스팅을 하게 된 계기는 오늘 새벽 내 하드디스크 한 장이 보드가 나가버리는 일이 발생했습니다.

그런데 예전에


하드디스크에서 윈도우 설치, 2012/11/07 - [Windows/VHD] - VHD를 사용하는데 복구시 마다 명령어 입력이 귀찮을때


 등 실험하느라 부트로더를 HDD로 옮기고 SSD는 여러번 포멧을 거치며 기존 부트로더는 삭제되었는데, 하필 보드가 나간 하드가 부트로더가 들어있는 하드였...네요..



운명하신.... 시게이트 바라쿠다 2테라..


내 포트폴리오가 들은 하드인데.. 그건 업체 맡기면 된다지만 당장 부팅을 해야 과제도 외주도 작업할 거 아닌가...??


문제는 USB가 없었습니다.


평소에 시놀로지 만만세를 외치고 HDD에 윈도우 이미지 올려놓아서 usb의 필요성을 느끼지 못했던 것에 대해 후회가 밀려오지만 뭐... 이제와서 땅 파면 안나오잖아요..?


이 때 예전에 Windows Server 2012 R2 운용 당시 윈도우 배포 서버를 만졌던 기억이 나서 일반 데스크톱도 PXE 서버 구성이 되지 않을까 하고 찾아봤습니다.


마침 저는 같은 네트워크 안에 다른 pc가 무려 두 대! 나 있기 때문에 네트워크로 윈도우 복구를 해봤습니다.


TFTPd32 / 64(바이러스 사이트라 나오나 문제 없습니다.)


Tiny PXE Server ( 추천)


사실 저는 둘 다 실험해봤고 아랫것이 더 좋다고 판단하여 추천 드렸습니다.


TFTPd32는 부트 이미지들을 커널레벨부터 손수 찾아서 넣어주고 설정해야하는 반면에 Tiny PXE Server(이하 tps)는 커널 파일들이 패키지로 종류별로 전부 들어있습니다.



또 부팅시에 사용한 이미지가 있는데 윈도우 10 은 어째서인지 WinPe로 100% 복구가 불가능하거나, WinRe iso 파일이 없습니다.


대부분의 포스팅을 보면 WinRe를 직접 USB에 굽는 방법만 나와있을 뿐 그 iso 파일은 없었습니다.


그런데 Kyhi 라는 유저가 Windows 10 용 Recovery Tool Image 파일을 제공해주셨습니다. 박수 짝




Windows 10 Recovery Tools - Bootable Rescue Disk


자세한 파일 구성은 위 링크를 통해서 확인하시고 저는 바로 설명하겠습니다.


먼저 주의 사항은 두 프로그램 모두 iso 파일이 3기가 정도를 넘어가면 안됩니다.


TFTPd의 경우는 아예 파일을 보내주지 않고, tps는 일정 용량(3기가 추정)이 넘어가면 메모리 에러가 발생합니다.


제 생각엔 둘 다 iso를 위해서는 memtest를 커널로 사용하는데, 이 커널이 읽을 수 있는 최대 메모리가 3.x 기가로 제한되는 것같습니다.


바로 32비트 윈도우의 메모리 제한량과 같죠..


그래서 윈도우를 새로 설치하거나 복구할 때 윈도우 이미지를 직접 불러올 수가 없었습니다.


방법은 두 가지 있는데, 


1. PXE 서버에서 네트워크 공유(SMB)를 통해 파일을 당겨오는 방법.

2. 우선 부팅 후 브라우저를 통해 새로 내려받아 설치하는 법.


애초에 1번의 경우 PXE 자체가 같은 서브넷 안에서 동작하기 때문에 (ip 할당 및 PXE 요청을 브로드캐스트로 요청함) 언제나 가능한 기능이고, 2번의 경우는 pxe 서버로 쓰는 컴퓨터에 비밀번호가 없거나 걸기 싫은 경우, SMB가 차단된 경우 사용할 수 있는 방법입니다.


1번은 그저 아무 iso 마운트 프로그램이나 (윈10은 기본 내장) 가져다가 iso를 시디롬으로 마운트하고, 그 시디롬을 통째로 공유하면 됩니다.


2번은 뭐 알아서.. 내려받으시면...




TFTPd 설정


압축을 풀면 아래와 같이 파일이 있습니다.


여기서 각 값을 아래와 같이 수정합니다.

IP Pool start address : 본인 dhcp 대역 내에서 알아서.. 대게 iptime은 192.168.0.2 zio나 신형 kt허브는 172.30.1.1, 구형 kt허브나 기타 브랜드는 10.0.0.2로 입력하면 됩니다.

Size of pool : 10보다만 크게 해주세요.

Boot File : pxelinux.0 (추후 설명)

Def. router : 공유기

Mask : 본인 아이피 시작 192.168 -> 255.255.255.0, 172.30 -> 255.255.255.0 또는 255.255.0.0, 10.0 -> 255.255.255.0 인데 가끔 진짜 이상하게 이것을 255.0.0.0 하는 공유기가 있음.. 공유기가...


그리고 TFTP 탭에서 PXE Compatibility 체크하시면 됩니다.

체크하는 이유는 일부 iso 부팅이 이 옵션 없이는 부팅이 안됩니다.


pxelinux.0은 Kernel.org 의 syslinux에 있습니다.


Syslinux


4.04 버전이나 3.86버전을 내려받아 압축을 풀고(제가 테스트해본건 저 두버전)

3.86기준

core -> pxelinux.0

com32 -> menu -> menu.c32


그리고 pxelinux.cfg 폴더를 만들고 그 아래에 Default 파일을 만들고 아래 내용과 같이 본인 파일에 맞춰 적습니다.


DEFAULT menu.c32

PROMPT 0

ALLOWOPTIONS 0

TIMEOUT 100


MENU TITLE PXE Boot Menu


LABEL local

MENU LABEL Local Boot

MENU DEFAULT

localboot -1


LABEL winpe_iso1

MENU LABEL WinPE (Memdisk)

KERNEL memdisk

append iso raw initrd=iso/winpe10.iso




TPS 설정


tps는.. 애초에 다 준비가 되어 있습니다.

여러분들이 해야 할 것은 뭐다..? iso 구해넣고 메뉴 추가하고 설정하고 끝..



좀전에 tftpd에서 본 모양이죠? 척척 넣습니다.


Boot File의 Filename은 설치 폴더 아래에 files 안에 있으니 찾아보시면 됩니다.


다른 커널을 쓰더라도 이 폴더를 잘 보시면 이미 다 들어 있습니다.. 네..


이제 files/iso에 파일을 넣습니다.

iso는 WinPe, Re, 뭐 기타 3기가 정도만 안넘으면 다 가능합니다.


다 넣으셨으면 files/pxelinux.cfg/default 열고 아래와 같이 수정합니다. 위에거와 방법이 같죠? 같은 커널이니까요..


LABEL winpe_iso1

MENU LABEL WinPE (Memdisk)

KERNEL memdisk

append iso raw initrd=iso/winpe10.iso


다 하셨으면 위에 online을 한번 offline으로 껐다 다시 켜주시구요.


이제 메인보드에서 PXE 설정만 하면 됩니다.


PXE 설정은 다음 글에서 다루겠습니다. 


별다른 내용은 없고 메인보드에서 PXE 를 찾아 on 시키고 부팅 순서에 넣어주시면 서버에서 찾아서 알아서 부팅합니다.

,

본인은 얼마 전 윈도우의 환경 변수를 알아보아야 할 일이 있어 몇가지 정보를 찾아 다녔고 그 정보에 많은 도움이 되어 혹시나 이 블로그를 읽고 있을 다른 분들에게도 도움을 주기 위해 이 포스팅을 작성합니다.


순수 본인의 경험에 따라 최선의 방법이라 생각하여 이 방법을 기술했고 몇가지 특별한 경우는 다른 글을 찾아보시기 바랍니다.

ex) AD DS 이용 환경에서 관리자 권한 승격 시 관리자 계정 명의로 아래 경로가 구해지는 경우 -> 이 경우는 저도 현재 MS에 문의하고 있습니다.


=================================================


본문만 보기


본인은 얼마 전 프로그램의 사용자 개인 파일을 출력해야 할 일이 있었다.

그런데 처음에 개발할 당시에는 문제가 없었는데, 지인끼리 공유하던 도중 이런 문제가 생겼다.


지인 : "네가 말한대로 내 문서로 이동했는데 설정파일이나 작업 파일이 전혀 없는데?"


이 무슨 귀신 씨나락 까먹는 소린가 싶어 팀퓨어를 통하여 원격으로 직접 살펴보니 실제로 의도한 장소에 파일이 출력되어 있지 않았다.

당시 나는 %USERPROFILE% 이라는 환경 변수를 통하여 파일을 출력하도록 경로를 지정했기 때문에 알아서 사용자의 홈 디렉토리로 경로가 치환될 것이라고 생각했다.


%USERPROFILE%가 무엇인가 한다면 이곳을 참고하자.


하지만 프로그램 출력 시 에러는 발생하지 않았기 때문에(사실 이 때 디버깅 시 전용이라도 좋으니 상세한 로그 출력의 중요성을 깨달았다..orz) 분명 어딘가에 파일이 기록되어 있을 것이라 판단하고 C드라이브 전체를 파일명을 가지고 최근 24시간 이내 파일에 한정하여 검색을 수행했다.


그랬더니 파일이 확실히 기록이 되어 있긴 있었고 내가 의도한 위치에 확실히 기록이 되어 있었으나, 파일 탐색기 상에서는 보이질 않았다.

이상하다 싶어 파일의 경로를 직접 입력해보니 잘 실행이 된다.

하지만 탐색기에서는 숨김 파일 보기를 해도 보이지 않았다.

가끔 이유는 모르겠지만 탐색기 상에서는 숨김 및 시스템 파일 보기를 허용하여도 파일이 보이지 않고 cmd 프롬프트 상에서는 보이는 경우가 있어 이런 경운가 싶어 cmd를 실행하여 아래와 같이 입력하였다.


cd %USERPROFILE%\Document


그랬더니 확실히 내가 출력한 파일이 존재했다.

아니, 파일 존재하였다.


어째서?

나는 그 원인을 찾기 위해 구글링을 수행하였고 아래의 글을 발견하였다.

참고한 출처 : 캐플 블로그 :: 배치 파일에서 바탕 화면, 내 문서, 다운로드와 같은 사용자 폴더의 경로를 정확하게 구하기


확실히 %%로 치환된 경로(Path)를 이용하는건 편리한 방법이나, 이처럼 불특정 다수에게 실행될 프로그램에는 맞지 않는 방법임을 알 수 있었다.


이 글에 따르면 환경 변수의 값과 실제 경로가 사용자 임의 변경으로 다를 수 있음을 알려주었다.

사용자가 임의로 경로를 이동한 경우 환경 변수의 값은 다르게 나올 수도(초기 값대로) 있다는 것이다.

실제 파일 탐색기 상에서는 경로가 문서 라고만 나타났기 때문에 몰랐는데 임의의 파일을 우클릭하여 경로를 확인하니 내가 예상한 경로와 전혀 다른 곳에 존재하였다.


이런 예외사항도 있다는 것을 깨닫고 나는 재빨리 프로그램을 수정해 지금은 잘 작동하고 있다.

방법은 간단한데, 레지스트리에서 위 글에 안내된 경로를 싹 긁어오면 된다.

나의 경우는 문서 에 기록할 것이기 때문에 위 경로에서 Personal 키 값만 긁어오면 되었다.

키를 긁어 가져오도록 프로그램을 변경하여 해당 컴퓨터에서 수행하니 내가 원하는 대로 문서 폴더에 잘 출력이 되어 주었다.


아래는 레지스트리에서 직접 확인이 가능한 유저의 실제 환경 변수의 목록이다.



HKCU\Software\Microsoft\Wiondows\CurrentVersion\Explorer\Shell Folders 에는 실제 시스템이 계정에서 사용하는 경로가 나타나 있다.


우리는 이제 여기서 My Pictures, Personal, AppData, Desktop 등 우리가 원하는 걸 찾아 사용하면 되겠다.

레지스트리에서 값을 가져오는 방법은 개발 환경마다 다르니 별도로 찾아보도록 하자.


PS. 별도의 문제로 위 스크린샷은 현재 관리자 권한으로 레지스트리 편집기가 실행되어 Root 계정으로 실행이 되었다.

이처럼 관리자 권한 행세에 따른 문제가 야기되는 경우도 있는데(서두에서 언급한 대로) 이 부분은 아직 나 또한 이번 해결책을 찾던 도중 발견하여 예외 처리를 위해 문의중이기에 이렇다 할 답은 낼 수 없었다.

,

메인보드 모델은 봐야겠고 본체는 열어보기 귀찮고

프로그램도 다운받기 귀찮을 때 우리의 윈도우는 기본적으로 이것을 확인할 수 있는 방법을 제공하고 있다.


XP부터 그 이후라면 어느 버전이든 가능하며 방법은 세가지인데


다이렉트X 진단 도구를 이용하는 방법

WMI(Windows Management Instrumentation)를 이용하는 방법

AIDA64나 CPU-Z같은 유틸을 사용하는 방법


사실 유틸을 사용하는 방법이 제일 간편하고 편하다.

다른 정보를 조회하기 위해 매번 명령을 입력하거나 찾아 헤멜 필요도 없고.

이미 위의 유틸이 있다면 그것을 사용하는 것을 추천하고 싶지만 유틸이 없다고 알아보지 않으면 어떻게 하려구?

언제까지나 유틸에만 의존해서는 정작 필요할 때 쓸모가 없는 지식이 되어버리는 것이다.


우선 첫번째로 언급한 방법인데 이건 별로 추천하고 싶지는 않다.

다이렉트X 진단 도구를 이용하는 방법은 우리가 흔히 아는 dxdiag명령어를 통한 방법이다.

Win + R -> dxdiag



이 명령어를 사용하면 비록 다이렉트X 진단 도구지만 어느정도의 컴퓨터 시스템 전반적인 구성을 한번에 조회가 가능하다.



하지만 이놈의 도구가 약간 부실하게 생겨서 저렇게 시스템 모델을 제대로 출력하는 경우가 거의 없다는 것이 문제다.

적어도 내 주변에서 저 부분에 메인보드 모델이 정상적으로 나오는 경우는 단 한번도 없었다.

보아하니 OEM이 별도로 추가를 해줘야하는 필드 즉 메인보드 모델명이라기 보단 제품 모델명을 입력하도록 비워둔 필드같은데

이런 포스팅을 볼 정도의 독자라면 브랜드컴퓨터를 사용하지는 않을거라 생각하고.

이러한 방법이 있다는 것만 알고 다음 방법으로 넘어가자.


WMI를 이용하는 방법인데, 이는 시스템 관리자에게 유용할 기능들이 다수 내장되어 있는 프로그램이다.

필자는 아직 이것을 파헤쳐보지 않았기 때문에 자세한 설명은 다른 블로거분들께서 해주실것이다(?)


먼저 명령 프롬프트를 실행하자.

Win+R -> cmd


명령 프롬프트를 먼저 띄우라는 이유는 이곳에 바로 명령을 입력해도 실행은 해주지만

실행의 결과물을 유지시켜주지는 않는다.

매우 '빠른 인간의 동체시력이 글자의 내용을 인지할 수 없는 짧은 시간에 난 읽을 수 있습니다' 라면 말고.


그러면 이렇게 입력해보자.

wmic baseboard get product





wmic에는 baseboard라는 별칭이 미리 지정되어 있는데 이 안에 기판정보가 쭉 들어있다.

그중에서 우리가 원하는건 product 항목.



메인보드의 제품번호를 얻었다.


별로 어려운 명령은 아니니 잘 기억해뒀다가 급할 때 쓰면 그때그때 유틸을 구하는 것보다 매우 빠르고 편한 방법이 아닐 수 없다.(뭐 모든 명령이 다그렇지만..)

,

지난번 포스팅에서 Ctrl + Alt + Del을 누르지 않아도 로그온이 되게끔 설정했는데

 

[Windows/Windows] - 윈도우 서버 2012에서 로그인 시 Ctrl + Alt + Del 누르지 않아도 되게끔 설정하기

 

이때 그 바로 아래에 이런 문구가 있었다.

 

대화형 로그온: 로그온을 시도하는 사용자에 대한 메시지 제목/텍스트

 

이게 뭔고하니 보통 로그온을 하면 아이디 비밀번호를 바로 물어보고 접속을 시켜주는데 이 기능을 사용하면 접속하기 전 서버의 정책이나 전달사항을 간단히 전해주는 것이 가능하다.

 

요로코롬 우리에게 보여준다.

(이부분은 스크린샷이 안되서.. 갤놋1 카메라로.. 카메라가 너무 구지지만..)

 

 

 

 

그럼 이것을 설정하려면?

 

일단 보안 정책.

 

 

 

 

보안 설정 - > 로컬 정책 -> 보안 옵션 -> 대화형 로그온: 로그온을 시도하는 사용자에 대한 메시지 제목 

보안 설정 - > 로컬 정책 -> 보안 옵션 -> 대화형 로그온: 로그온을 시도하는 사용자에 대한 메시지 텍스트

 

 

이름만 보면 알아서 적용할 수 있을 것이다.

제목이 제목이고 텍스트는 당연히 내용부분이겠지.

문자열 입력하면 편히 입력하면 시스템이 알아서 해준다.

,

이는 서버 OS의 보안상 Ctrl + Alt + Del 을 누르지 않으면 로그온을 할 수 없게끔 설정된 것을 사용하지 않아도 되게끔 설정하는 것이다.

이게 뭔 보안이냐 하지만 사실 원격제어 앱이나 프로그램중에서 Ctrl + Alt + Del << 제대로 지원하는 프로그램 몇없다!!(팀뷰어 같은거나 지원)

심지어 MS에서 배포한 안드로이드버전의 Remote 앱에서도 Ctrl+Alt+Del 누르기조차 힘들다!!

 

커다란 보안만 보안이 아닌것이다. 웬만한 원격제어 가능한 프로그램은 저걸 누르면 자신의 작업 관리자가 뜨는 경우가 태반이라..

(VMWare에서 저 옵션 켜져 있으면 특히 짜증날걸..)

 

각설하고.

 

 

 

 

우리의 친구 다들 알다시피 로컬 '보안' 정책 편집기를 열자!

나의 대부분의 설정 포스팅은 정책 편집기를 통해 이뤄질 것이니..

그런데 이건 보안에 연결된 거잖아?

로그온 정책을 직접 건드는 것이니 보안정책으로 가야한다.

그러니 이번엔 gpedit.msc가 아닌 secpol.msc

 

보안 설정 -> 로컬 정책 -> 보안 옵션 -> 대화형 로그온: [Ctrl + Alt + Del]을 사용할 필요 없음

 

 

 

저걸 사용으로 해주면 더이상 세 키를 누를 필요가 없을 것이다.

,

제목은 윈도우 서버 2012에서 계정별 잠금 화면 고정시키기 라고 했지만 사실 윈도우 서버라는 것이 기존의 어떤 OS에 서버에 특화되게끔 구성되어서 나오는 만큼 윈도우 8이나 8.1에서도 통용될지도 모른다고 생각한다.

다만, 생각에서 멈춤은 나는 윈도우 8보다 서버로써의 기능에 필요한 것이 있어 서버를 사용하는데 굳이 테스트를 위해 8이나 8.1을 설치해야할 필요성을 느끼지 못했다. 그나마 가지고 있던 제품도 아는 지인에게 공짜로 준 마당에..

나의 모든 8이나 8.1 관련 포스팅은 서버 OS에서도 통용됨을 원칙으로 포스팅을 한다. 즉, 나의 포스팅 중에 8이나 8.1에서 안된다는 부분이 있더래도 서버 2012에서 정상적으로 구동된다면 나는 그것을 정정하지 않을 것이다.(그렇기에 제목에서도 8은 제외하였다.)

 

이번 포스팅의 주제는 윈도우는 사용자별로 잠금화면의 지정이 가능한데, 이 잠금화면을 관리자가 지정한 단 하나의 이미지로 통일시킬 수 있다.

다만 관리자가 아니라도 정책 편집 권한이 있으면 누구나 수정이 가능하니 이 부분은 알아서 제한해야겠지만.

 

계정별 잠금 화면 설정 레지스트리

 

잠금 화면으로 사용될 이미지 위치를 기억하는 레지스트리

HKCU\Software\Microsoft\Windows\CurrentVersion\Croup Policy Object\{GUID}Machine\Software\Policies\Microsoft\Windows\Personalization\LockScreenImage

 

잠금 화면을 관리자가 지정한 이미지로 고정할 지 선택하는 레지스트리 

HKCU\Software\Microsoft\Windows\CurrentVersion\Croup Policy Object\{GUID}Machine\Software\Policies\Microsoft\Windows\System\UseOEMBackground

 

우선 관련 설정이 저장되는 레지스트리는 위와 같고, 이 기능을 설정하려면 당연히 관리자는 레지스트리 편집기를 일반 사용자가 접근하지 못하도록 잠궈두어야 할 것이다.

레지스트리는 스크립트로 돌린다면 참고하라고 작성해둔 것이고 레지스트리를 전부 외우지 않아도 수많은 설정들은 간단하게 설정이 가능하도록 우리의 시스템은 설계되어져 있다.

{GUID}라고 명명한 것은 그 자리에 GUID 두개와 마지막 자리가 User, Machine으로 끝나는 레지가 4개가 있어서인데, 이 값이 모두 같을거라고는 생각하지 않아서이다.

이 부분은 자신의 컴퓨터에서 어떻게 할당되어 있는지 알아서 찾아봐야할 과제!

 

우선 우리는 시스템의 정책을 건들지만, 보안과 관련된 정책은 아닌거 같다.

그러니 우리의 관리 친구 gpedit.msc를 실행해보자.

 

 

실행은 Win+R하면 바로 띄울 수 있다.

 

토막상식.

 

윈도우에서 관리 작업을 하면서 가장 많이 사용하는 기능들은 전부 Win+X에 모여있다.

관리 작업을 해야하는데 콘솔 명령이라던지 관리자 실행을 위해 일일히 찾거나 시작표시줄에 넣어둘 필요 없이 Win+X만 기억하면 쉽게 찾아갈 수 있다.

 

 

 

로컬 정책 편집기가 실행되었다면 아래와 같이 찾아가자.

 

컴퓨터 구성 -> 관리 템플릿 -> 제어판 -> 개인 설정 -> 특정 기본 잠금 화면 이미지 적용

 

찾아가면 딱봐도 나 여깄소 하는 놈이 보이지 않는가!

 

 

 

여러분은 상태가 구성되지 않음 으로 되어 있을텐데 저것을 더블 클릭해 이런식으로 수정해주자.

사진은 공용 폴더에 넣어두고 일반 유저는 수정하지 못하도록 권한을 넣어주면 되겠지?

 

 

 

 

이제 재부팅을 해보면 ( 나는 로그아웃만 했지만 ) 적용되어 있음을 알 수 있는데, 여기서 이 작업보다 우선하는 설정이 있으니 반드시 확인하고 넘어가자.

 

컴퓨터 구성 -> 관리 템플릿 -> 시스템 -> 로그온 -> 항상 사용자 지정 로그온 배경 사용.

 

 

이 옵션이 문제인데, 보다시피 이 옵션은 위에서 설명한 옵션보다 우선하게 된다.

위에서 암만 적용해도 이게 걸려있으면 도로묵인 것이여.

 

이 설정이 구성되지 않음 이거나 사용하지 않음 이 맞는지 확인을 해야할 것이다.

 

토막상식

 

이것이 꼭 사용하지 않음이어야 하는건 아니고 기본 배경으로 어떤 배경을 지정하되, 사용자가 원하면 그 사용자는 사용자의 의견을 먼저 존중하여 해당 사용자만 자신의 잠금 화면을 갖게 한다.. 와 같은 경우라면 오히려 이 기능이 더 유용하게 쓰이겠죠?

 

,

어베스트에서 사회 공헌 이벤트 명목으로 초저가 할인 행사중입니다.

현재 1pc당 1년 라이센스 3만원 하는 프로버전의 경우 3천원으로 90% DC 중이네요.

평소에 무료백신만 써보셨던 분들 이참에 한번 쯤 유료 백신도 써보는건 어떨까요?

 

자세히 알아보기 : http://www.avastkorea.com/event/

 


,

윈도우8 및 여타 스타일 UI 사용 시스템에서 안전모드로 진입하지 못해서 쩔쩔매는 경우가 아직 많다. 
그 이유는 윈8 이후 bcd라는 부팅 정보를 담고있는 레코드에 아래 bootmenupolicy legacy 옵션이 기본값에서 빠져있기 때문.
먼저 윈8 및 차후 시스템에서 안전모드에 접근하려면 

시작 -> 실행 -> msconfig 엔터
안전 실행에 체크한 뒤 다시시작하면 안전모드로 부팅된다.
but, 안전모드 사용 안할시 다시 체크를 풀지 않으면 계속 안전모드로만 부팅

시작 -> 실행 -> cmd
bcdedit /set {default} bootmenupolicy legacy
기존의 부팅시 F8 누름을 통해서 안전모드 접근 가능.
{defalut}대신 {current}나 bcdedit 실행시 나오는 본인 시스템의 identifier 를 입력해도 무관

최신 시스템에서 F8이 안된다고 당황하지 말자.

,

c 프로그래밍 연습용으로 만들어보던 프로그램 중 하나입니다.

프로그램과 동일 경로에 폴더를 만들고 비밀번호를 걸어 숨기고 보이고 하게끔 하는 기능입니다.

라곤 하나 아직 배울게 많아 파일 구조나 그런 난이도 있는 쪽으로 접근한건 아니고 임시용으로 디렉토리에 속성만 가했습니다.

아주 기본적인 방법으로 만들었을 뿐이고 때문에 보호된 운영체제 파일 보기에 체크가 되어 있으면 보이긴 하며 정확한 경로명을 알아내면 패스워드 없이도 접근은 됩니다.

알고리즘을 적용하는 방법을 몰라 비밀번호는 소스 내에 포함하도록 하였습니다.


예시 프로그램 : 

secfol1.exe

#일부 환경에서 MSVCR110.dll 누락으로 프로그램이 실행되지 않는 문제가 있습니다.(XP에서는 넣어줘도 실행이 안됩니다)

#해당 환경 이용자는 직접 컴파일 하시는걸 추천드립니다.


코드 :

#include <stdio.h>

#include <Windows.h>

#include <direct.h>

#include <io.h>

#define SECDIR "Control Panel.{21EC2020-3AEA-1069-A2DD-08002B30309D}"

#define DIR "locked"

#define PASSWORD "123456789"

#define PASS_SIZE 16

#define LOCK 1

#define UNLOCK 0

#define CMD_LEN 256

void lock();

void unlock();

void md_dir();


int status;

char dir[CMD_LEN];

char secdir[CMD_LEN];

char password[PASS_SIZE]=PASSWORD;


void main(){

char pass[CMD_LEN],cho;

if(_access(SECDIR,00)==-1)

if(_access(DIR,00)==-1)

{md_dir();status=UNLOCK;}

else status=UNLOCK;

else status=LOCK;


if(status==UNLOCK){

printf("Are you sure you want to lock the folder(Y/N)\ncho=>");

scanf_s("%c",&cho,2);

if(cho=='Y'||cho=='y')

lock();

else exit(1);

}else{

printf("Enter password to unlock folder : ");

scanf_s("%s",pass,PASS_SIZE);

if(strcmp(pass,password)==0) unlock();

else printf("Invalid password\n");

}

//printf("password = %s\n",PASSWORD);

system("pause");

}


void md_dir(){

_mkdir(DIR);

printf(DIR);printf(" created successfully\n");

}


void lock(){

char cmd[CMD_LEN];

strcpy_s(cmd,CMD_LEN,"ren ");

strcat_s(cmd,CMD_LEN,DIR);

strcat_s(cmd,CMD_LEN," \"");

strcat_s(cmd,CMD_LEN,SECDIR);

strcat_s(cmd,CMD_LEN,"\"");

//system(cmd);

system(cmd);

strcpy_s(cmd,CMD_LEN,"attrib +h +s \"");

strcat_s(cmd,CMD_LEN,SECDIR);

strcat_s(cmd,CMD_LEN,"\"");

system(cmd);

printf("Folder Unlocked successfully\n");

}


void unlock(){

char cmd[CMD_LEN];

strcpy_s(cmd,CMD_LEN,"attrib -h -s \"");

strcat_s(cmd,CMD_LEN,SECDIR);

strcat_s(cmd,CMD_LEN,"\"");

system(cmd);

strcpy_s(cmd,CMD_LEN,"ren \"");

strcat_s(cmd,CMD_LEN,SECDIR);

strcat_s(cmd,CMD_LEN,"\" ");

strcat_s(cmd,CMD_LEN,DIR);

system(cmd);

printf("Folder Unlocked successfully\n");

}


,
1 2
프로필 이미지
It's the Only NEET Thing to do. written by 나즈나
분류 전체보기 (256)
포트폴리오 (2)
여러가지 (160)
Windows (26)
Linux (1)
Server (5)
컴퓨터 (48)
전자기기 (3)
자격증 (3)
모바일 (1)
공유기 (4)
초소형컴퓨터 (3)