2009-06-10 2 views
0

클라이언트 컴퓨터에 Windows Forms 응용 프로그램이 있습니다. 텔넷을 통해 로그인하고, 시스템을 종료하고, 일부 파일을 업데이트하고 다시 시작하려고합니다.텔넷을 통해 내 winforms 앱을 시작하는 방법은 무엇입니까?

클라이언트 컴퓨터에서 cmd를 사용하고 MyApp.exe를 입력하면 시작할 수 있습니다. 그러나 텔넷 창에서 이렇게하면 이상한 일이 발생합니다. 응용 프로그램이 현재 프로세스 목록에 있지만 지금까지 열어 본 형태도 아니며 log4net 로깅도 수행되지 않습니다.

어떻게 될까요? 어떻게 해결할 수 있습니까?

편집 : 이것은 모든 양식 기반 Windows 응용 프로그램의 경우 인 것으로 보입니다. 직접 시도해보십시오 : telnet localhost => 메모장. UI 인터페이스는 팝업하지만 사용자 인터페이스는 팝업하지 않습니다!

또한이 컴퓨터에는 모두 RAdmin이 설치되어 있습니까? 내가 본 적이 있지만 존재하지 않는 자동화 설비가 있지만 어쩌면 저를 도와 줄 수있는 무언가가있을 것입니다.

+0

무슨 일이 벌어지는지는 앱이 연결된 사용자 바탕 화면없이 실행되고 있다는 것입니다. 현재 로그인 한 사용자 계정을 찾아 해당 사용자 권한으로 실행해야합니다. 텔넷 사용자로 실행하면 헤드리스 디스플레이가됩니다. 대부분의 경우 데스크톱과 상호 작용할 수 없습니다. –

+0

Jason, 텔넷에서 사용자로 응용 프로그램을 실행하는 방법을 설명해 주시겠습니까? 컴퓨터에는 관리자 권한이 있으므로 관리자 권한으로 데스크톱을 telnet으로 실행하고 있습니다. –

+0

호기심에서 벗어나 원격 데스크톱을 사용할 수없는 이유가 있습니까? –

답변

1

편집 : 내 원래 대답에서, 나는 당신의 질문을 오해했습니다, 당신은 당신이 컴퓨터를 다시 시작했다고 생각.

이렇게 말하면 여전히 다른 접근 방식을 시도하려고합니다. 자동 업데이트 서비스의 일부 유형을 MyApp.exe로 설정할 수 있습니까? 쉬운 방법은 MyApp.exe가 새 버전을 사용할 수 있는지 폴링 할 수있는 웹 서비스를 설정하는 것입니다. 그런 다음 업데이트 작업을 수행하려면 업데이터 응용 프로그램을 시작해야합니다.

+0

왜 사용자 컨텍스트가 없습니까? 나는 사용자로서 텔넷에 로그인한다.나는 컴퓨터를 재시작하고 싶지 않고 단지 프로그램의 dll과 같은 시스템 파일을 업데이트하기를 원한다. –

+0

좋아, 우리는 잘못된 모드에서 시작하는 응용 프로그램의 문제를 해결하기 위해 꽤 복잡한 아키텍처 아키텍처를 사용하고 있습니다. 최악의 상황이 최악의 경우 Process.Start 또는 다른 것을 사용하는 2 행 부트 스트랩 애플 리케이션을 수행 할 수 있습니다. 그러나 이것은 또 다른 움직이는 부분 일뿐입니다. –

1

내 생각 엔 응용 프로그램이 개인용 데스크톱에서 시작한 다음 텔넷 세션을 닫으면 즉시 종료하는 것입니다. "현재/활성"데스크톱 창에서 시작하는 방법을 모르겠지만 텔넷에서 로그 아웃 한 후에도 계속 실행하려면 "start"명령을 실행하십시오.

+0

아, 감사합니다. 조엘, 재미있는 단서. –

+0

실제로 개인용 데스크톱에서 시작한 경우 log4net에 아무것도 기록하지 않는 이유는 무엇입니까? –

+0

즉시 로그 아웃하면 아무 것도 할 시간이 없기 전에 종료 될 수 있습니다. 하지만 권한 문제가 더 많이 발생한다고 생각합니다. –

1

텔넷을 사용하는 대신 VNCRobot을 사용해 볼 수 있습니다. VNCRobot은 사용자로 실행되며 동일한 데스크톱을 공유해야한다고 생각합니다.

면책 조항 : 나는 VNCRobot을 한번도 사용하지 않았으며 언급할만한 가치가 있다고 생각했습니다.

+0

고마워요, 재미 있겠지만, 우리가 이미 거기에 실행중인 원격 관리자가있을 때 - 심지어 자동화가 sh * t 경우에도 더 많은 타사 VNC 소프트웨어를 설치하는 것을 정당화 할 수 없습니다. –

+0

http://www.radmin.com/products/radmin/이 설치되어 있습니까? 나는 그 질문에서 그것을 알아 차리지 못했다. 이 문제를 일으키는 도구를 통해 telnetting에 대한 특별한 것이있을 수 있으므로 질문을 편집 할 수 있습니다. 또는 그렇지 않을 수도 있습니다 ... 다만 그럴 경우 언급할만한 가치가 있습니다. – dss539

+0

글쎄 그 도구를 통해 텔넷으로 연결되지는 않습니다. 실제로 루비 스크립트를 통해이 작업을 수행하고 있습니다. 또는 cmd 또는 powershell - 특별히 신경 쓰지 마십시오. 나는이 사실을 편집했다. 어쩌면 내가 사용할 수있는 일종의 유틸리티 나 확장 기능이있을 수 있습니다. –

0

이러한 컴퓨터에서 PowerShell을 실행할 수 있으면이 컴퓨터를 사용하여 실행중인 프로세스를 찾고이를 종료 할 수 있습니다. 에 ..

Get-Process 

..Cmdlet는이 목록을 foreach는 직접 PowerShell의 정규식 사용하여 응용 프로그램에 맞게 논리를 쓸 수, 당신에게 실행중인 프로세스를 표시합니다, 나는 루비 모르지만 이론적으로 당신은 할 수 프로세스의 죽이는

powershell.exe -command Get-Process 

:로 파워 쉘 명령을 호출 동일한 작업을 수행하는 데 사용할

Stop-Process <processId> 
Stop-Process -processname <processName> 

하지 텔넷을 통해 GUI 프로세스를 시작하는 방법에 확신을, 나는하지 않습니다 장비에 텔넷을 설정하십시오.그러나 나는, 나는 새로운 프로세스를 종료 할 수 없습니다 이렇게, http://www.peterprovost.org/blog/post/Powershell-Sudo-(sort-of)-for-Vista-UAC.aspx

설정 해당 주소의 예처럼 "에서 runas"는 UAC를 호출 할 수있는 동사 :

아마도이 비슷한 작업을 수행 할 수 있습니다 그것을 죽이고 내가 설정 한 경우 :

$psi.Verb = "open" 

는 또한 당신은뿐만 아니라 이러한 속성을 설정할 수 있습니다 :

윈도우 XP에서
Verb     : open 
Arguments    : 
CreateNoWindow   : False 
EnvironmentVariables : {processor_revision, processor_level, logonserver, systemroot...} 
RedirectStandardInput : False 
RedirectStandardOutput : False 
RedirectStandardError : False 
StandardErrorEncoding : 
StandardOutputEncoding : 
UseShellExecute   : True 
Verbs     : {open, runas, runasuser} 
UserName    : 
Password    : 
Domain     : 
LoadUserProfile   : False 
FileName    : notepad.exe 
WorkingDirectory  : 
ErrorDialog    : False 
ErrorDialogParentHandle : 0 
WindowStyle    : Normal 
+0

유일한 문제는 프로세스를 시작하는 것입니다. 작업 중지는 쉽습니다. 또한 파워 쉘도없고, 터치 스크린 멍청 터미널이기 때문에 승인을받을 가능성도 희박합니다. –

1

, 나는이 limita 주위에 방법을 발견 Windows 작업 스케줄러를 사용하여 Windows 7의 경우 텔넷은 기본적으로 설치되지 않습니다.

내가 먼저 네트워크 액세스 변경했다 : -하는 로컬 계정에 대한 공유 및 보안 모델을 다음 레지스트리 설정을 병합하여 "클래식 로컬 사용자를 그대로 인증"버전 5.00

Windows 레지스트리 편집기를 [HKEY_LOCAL_MACHINE의 \ SYSTEM \ CurrentControlSet \ Control \ Lsa] "forceguest"= dword : 00000000

원격 FTP 서버의 파일에 배치하고 FTP 명령을 사용하여 가져 왔습니다.

것은 내가 한 번 실행 작업 만든 다음

을 regedit/s의 file.reg로 병합 : Schtasks는/만들기/SC ONCE/RU "사용자"/ RP 패스/TN "의 startApp"/ TR "을 \ "C : \ WINDOWS \ NOTEPAD.EXE \" "/ ST 0시 0분 0초

수동으로 일정 시작 : Schtasks는/실행/TN"의 startApp "

삭제 된 일정 : 합니다 schtasks/삭제/F/tn "StartAPP"

그리고 그것은 효과가있었습니다. 미쳤어! 얼마나 고통스러워!

+0

Yikes! 윈도우 XP에서 일해야만한다는 것에 대해 유감스럽게 생각합니다. 고객에게 업그레이드를 알리십시오. –

관련 문제