아무도 로그온하지 않은 경우 컴퓨터 시작시 프로그램을 시작하고 누군가 로그온 할 때 창을 표시합니다 (OS : Windows) 데스크톱 연결을 사용하여 관리자로 로그온하면 인터페이스

Windows Server 2012에서 작업 스케줄러를 사용하여 시스템을 시작할 때 시작되는 프로그램이 있습니다. 컴퓨터가 자동으로 재부팅 되더라도 프로그램을 시작해야합니다.

관리자는 프로그램을 시작하는 데 사용되는 계정이며 “사용자의 로그온 여부에 관계없이 실행”옵션이 작업에 대해 선택되어 있습니다.

이 문제는 누군가 원격 데스크톱 연결을 사용하여 관리자로 로그온하면 인터페이스 (프로그램 창)가 숨겨져 있다는 것입니다.

이해하지만 작업 스케줄러를 사용 하여이 문제를 해결할 수있는 방법이 없습니다.

이 문제를 어떻게 해결할 수 있습니까?

상당히 일반적인 문제이지만 그물을 검색하여 아무것도 찾을 수 없습니다. Microsoft가 스케줄러에서 이러한 제한을 허용한다는 사실에 놀랐습니다. VBScript 또는 시작시 실행되는 프로그램을 만들어 프로그램을 시작하면 사용자가 실제로 로그온 할 때 표시 될 수 있습니까?

다른 아이디어?

(원래 프로그램에 연결하는 별도의 GUI 전용 프로그램을 만들고 싶지 않습니다. 사용자 로그온시 이미 실행중인 프로그램을 종료 한 다음 시작할 필요가없는 경우에도 선호합니다. 다시.)



답변

직접하는 방법을 알아 냈습니다. 다소 해결 방법이지만 내가 기대 한 것입니다.

중지! 아직 울지 마십시오. 읽어…

  • 관리자가 자동으로 로그온하도록 실행하십시오.

  • 작업 스케줄러에서 작업을 만듭니다. 사용자 (관리자)가 로그온 한 경우에만 실행되도록 설정하십시오. 트리거는 “로그온 상태”이며 관리자가 로그온 한 경우에만 지정합니다.

  • 두 번째 작업을 만듭니다. 사용자가 로그온 한 경우에만 실행하고 관리자 로그온시 트리거하십시오. 작업은 “프로그램 시작”이어야하고 프로그램은 인수 필드가 “user32.dll, LockWorkStation”으로 설정된 “C : \ Windows \ System32 \ rundll32.exe”입니다.

컴퓨터를 다시 시작하면 이제 관리자가 자동으로 로그온하고 시작하려는 프로그램이 시작되고 워크 스테이션이 잠 깁니다. 원격 데스크톱 연결을 통해 로그인하면 프로그램 창을보고 GUI를 사용할 수 있습니다. 문제없이 컴퓨터를 잠 그거나 잠금을 해제하고 원하는대로 연결을 끊거나 다시 연결할 수 있습니다. 서버로 이동하여 실제 워크 스테이션에 로그인해도 문제가 없습니다. Administrator가 이미 로그인 한 상태이므로 작업이 다시 실행되지 않습니다 (나눌 수없는 무한한 로그인 잠금 루프를 만들지 않습니다).

그렇게 간단합니다. 자동 로그인 후 컴퓨터가 잠기기 전에 1 초의 시간이 주어지면 컴퓨터에 물리적으로 액세스 할 수있는 프로 해커 가이 기간 동안 은밀한 작업을 수행 할 수 있다고 생각하지만 내 경우에는 보안 위험을 간과 할 수 있습니다. 프로 해커가 내 집에 들어 가지 못하게하고 컴퓨터에 시스템이 비교적 안전하다는 것을 보여주지 않는 한. 무엇보다도 슈퍼 볼트 보호가 필요한 컴퓨터에는 그다지 가치가 없으므로이 솔루션에 매우 만족합니다.


답변

Windows Server 2012에서 작업 스케줄러를 사용하여 시스템을 시작할 때 시작되는 프로그램이 있습니다. 컴퓨터가 자동으로 재부팅 되더라도 프로그램을 시작해야합니다.

그렇다면 Windows 사양에서 정의한 것처럼 왜 시스템 서비스로 만들지 않습니까?

이 문제를 어떻게 해결할 수 있습니까?

당신은 할 수 없습니다. 백그라운드 프로그램은 UI와 상호 작용하지 않아야합니다. 또는 : UI는 자체 프로그램을 실행 한 다음 서비스에 연결해야합니다. 로그인 한 사용자의 사용자 공간에서 실행되는 UI는 프리젠 테이션을 수행하고 Windows 서비스는 처리를 수행합니다. 이것은 아마도 15 년 정도 동안 모델이 설계된 방식입니다.

Microsoft가 스케줄러에서 이러한 제한을 허용한다는 사실에 놀랐습니다.

왜 그런지 물어 보지 않은 것에 더 놀랐습니다.

여러 가지 문제가 있습니다.

  • 여러 사람이 로그인하면 누가 UI를 얻습니까?
  • 사용자가 로그 아웃하면 프로그램을 종료합니까? 아야.
  • 보안. 백그라운드 프로그램은 제한된 권한으로 실행될 수 있습니다. UI를 사용자에게 노출하면 사용자가 코드를 실행할 수 있습니다. Windows 메시징 모델에는 문제가 가득합니다.

그런데 원래 프로그램에 연결하는 별도의 GUI 전용 프로그램을 만들고 싶지 않습니다.

이 시점에서 나나 Microsoft 모두 당신이 좋아하는 일을 신경 쓰지 않습니다. 백그라운드 처리를 로그인 한 사용자 UI에 묶는 확립되고 지원되는 모델이 있습니다 (사용 여부). 그러나 그렇지 않은 경우 보안 문제에 대해 불평하지 마십시오.


답변

그것은 Session당신의 프로그램이 실행되는 모든 것에 관한 것 입니다. 아무도 로그인하지 않으면 대화 형 세션이 표시 Session 0되지 않습니다.

이제 프로그램이 explorer.exe시작 (또는 사용자 로그인을 감지하는 다른 방법)을 감지하고 마술로 변형되거나 새 sessionid에서 일부 자식 프로세스를 생성 한 경우, 로그인하는 사람은 누구나 자신이하는 일을 행복하게 볼 수 있습니다.