아무도 로그온하지 않은 경우 컴퓨터 시작시 프로그램을 시작하고 누군가 로그온 할 때 창을 표시합니다 (OS : Windows)


19

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

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

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

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

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

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

다른 아이디어?

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


2
Firedaemon을 사용하여 RDP가 "세션 0"으로 전환되면 서비스로 앱을 설치하십시오. 앱을 참조하십시오.
— TheCleaner

자신의 서비스를 개발하는 경우 기술적으로 수행 할 수 있습니다.
— Ryan Ries

1
방금 내 질문에 대답했습니다. 그러나 serverfault.com의 시스템이 매우 나쁘기 때문에 이틀 동안 내 자신의 대답을 수락 할 수 없습니다 (대부분의 사람들은 이틀을 기다리지 않고이 페이지를 버리고 질문을 영원히 해결되지 않은 것으로 표시합니다).
— Marcus

2
@Marcus : 특정 학대를 막기 위해 누가 언제 무엇을 할 수 있는지에 대한 제한. 불행히도 그들은 때때로 올바른 일을 시도하는 데 불편을 겪지 만 때로는 그러한 타협이 이루어져야합니다. 상황을 개선 할 수있는 제안이있는 경우 (적어도 사이트를 보호하지만 실제 사용자에게는 불편 함을 줄임) 관련 "메타"사이트를 통해 생각을 높이는 것이 좋습니다 ( 익숙하지 않음) meta.serverfault.com , meta) . stackoverflow.com )은 사이트 러너가 거의 볼 수 없다는 의견에 불만을 제기하지 않습니다.
— David Spillett

투표에서 볼 수 있듯이, 수락하려는 답변은 사람들이 승인하는 답변이 아닙니다.
— JamesRyan

답변:


28

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

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

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

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

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

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

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


7
무례하지 않아요, 마커스 그러나 이것이 실제로 당신이 찾고있는 답변 유형이라면,이 질문은 SuperUser 에게 더 적합했을 것 입니다.
— Ryan Bolger

2
이것을 게시 할 스택 교환을 결정하는 것은 쉽지 않았습니다.
— Marcus

안녕하세요 마커스, 귀하의 답변을 따랐지만 GUI가 아닌 두 개의 프로그램을 시작하는 데 문제가 있습니다. 에 질문을 게시했습니다 SuperUser. - 당신이 그것을 대답 할 수 있다면 큰 도움이 될 것입니다 superuser.com/questions/902386/...
— user2162550

1
실제로 그 질문에 대한 답이 아니기 때문에 지금도 그 의견을 내리십시오. 이 질문은 정오가 로그인되어 있음을 명시 적으로 정의하며 여기서 "솔루션"은 자동 로그인을합니다 (따라서 누군가가 로그인했습니다). 질문에서 현명한 파울 레이션이 아닐 수도 있지만 질문은 그 자체입니다.
— TomTom

1
@TomTom 최종 사용자에게 "사용자의 로그온 여부에 관계없이 실행"옵션은 "아기 시작해도 확실하지 않습니다"라는 의미 일 수 있습니다.
— Aryeh Leib Taurog

16

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

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

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

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

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

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

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

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

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

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


3
아멘. 더 많은 앱 공급 업체가이 개념을 파악하기를 바랍니다.
— Ryan Bolger 2014 년

15
와우 당신은 당신의 태도에 멍청하지 않습니다. 글쎄, 내가 운이 없다고 생각한다. 정보를 잘못 알고 있고 누군가이 문제를 해결할 방법이 없다면, 모든 사람이 모든 것을 알 수 없으므로 게시물의 절대적인 "너는 할 수 없다"는 잘못된 점이있을 수 있습니다. 누군가 공유 할 공통적 인 해결 방법이있는 경우를 대비하여 더 많은 답변을 위해 질문을 더 오랫동안 열어두고 싶습니다. 그렇지 않으면 나는 당신의 대답을 받아 들일 것입니다.
— Marcus

현재 Windows 버전의 현재 서비스에 UI를 제공하는 것이 점점 어려워지고 있지만 불가능하지는 않습니다.
— MDMoore313

대부분 보안 문제 때문에 적극적으로 원하지 않습니다. 여기서 주요 문제는 UI에 창을 표시하면 프로세스에서 코드를 실행할 수 있다는 것입니다. 그런 다음 Windows 메시지를 보낼 수 있으며 악용 될 수있는 톤이 있습니다. 일반적으로 문제가되지 않습니다. 사용자 앱인 경우 사용자가 할 수있는 것만 할 수 있기 때문에 서비스가 더 높은 권한을 가지면 보안 악몽이납니다. 그렇기 때문에 이것이 수년 전에 문을 닫았으며 프로그래밍을 배우고 문서를 읽는 모든 사람이 이에 대해 읽어보아야합니다.
— TomTom

1
실제로 거기에 가고 싶다면 coretechnologies.com/WindowsServices/FAQ.html#GUIServices 의 단계를 시도해보십시오 -여전히 현재 창에서 작동하는지 확실하지 않지만 UI 액세스를 만들 수있는 방법이 있습니다-모든 보안 문제를여십시오 .
— TomTom

0

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.