아무도 로그온하지 않은 경우 컴퓨터 시작시 프로그램을 시작하고 누군가 로그온 할 때 창을 표시합니다 (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.