2012-09-06 3 views
0

Windows 서비스에서 실행되는 posh 스크립트를 작성했습니다. 컴퓨터의 특정 작업에서 사용자에게 경고하는 팝업 창이 표시되어야합니다.powershell 스크립트를 실행하는 Windows 서비스에서 팝업 창을 표시하는 방법

$popupMsg = @" message "@ 
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
[System.Windows.Forms.MessageBox]::Show($user+ $popupMsg,"Remote Connection Information","OK","Warning") 

나는 팝업 표시 미세 PowerGUI를,에서이 스크립트를 실행,하지만 난이 스크립트를 실행하는 Windows 서비스를 실행하면 팝업이 표시되지 않습니다합니다. 무엇이 잘못 되었나요? 고마워요! 서비스 설정에서 "데스크톱과 상호 작용하도록 허용 서비스"

+0

서비스는 정의 상 비 대화식입니다. 대화 상자를 표시하려면 위와 같이 포어 그라운드 스크립트를 호출해야합니다. –

답변

1

시도 설정 :

enter image description here

+0

서비스를 실행할 수있는 응용 프로그램 로그온을 지정하기 위해 '이 계정'옵션을 사용하고 있기 때문에이 작업을 수행 할 수 없습니다 –

1

Windows 버전이 지원하고자합니까? Session 0 Isolation을 사용하면 Vista 이상에서 사용자의 데스크톱에 어떤 종류의 GUI도 표시 할 수 없게됩니다.

+0

불행히도 승 7과 약간의 승리 xp를 사용하고 있습니다 ... 그래서 내게는 해결책이 없다고 생각합니다 ... 타이머 틱 때 .exe 파일을 실행하도록 내 서비스에 요청하는 것은 어떻습니까? 그게 속임수일까요? –

+0

[사용자 세션에서 exe 실행] (http://www.codeproject.com/Articles/36581/Interaction-between-services-and-applications-at-u) 옵션이지만 과도 할 수 있습니다. 사용자 세션의 ID를 알아낼 수 있으면 [WTSSendMessage] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa383842%28v=vs.85%29.aspx)를 사용할 수 있습니다.)를 눌러 메시지 상자를 표시하십시오. – CoreTech

관련 문제