
일부 화면의 메모리 누수로 인해 사용자가 종료할 때 완전히 종료되지 않는 프로그램이 있습니다. 문제는 이로 인해 일반적인 로그오프 절차가 차단된다는 것입니다. 로그아웃을 선택하면 몇 가지 프로세스가 사라지지만 사용자는 실제로 로그오프하지 않습니다.
프로그램을 고칠 수 없기 때문에 로그오프 시 실행되는 스크립트를 사용하여 프로세스를 종료해야겠다고 생각했습니다. 두 번 클릭하여 스크립트를 실행하고 gpedit에서 내 컴퓨터의 Windows 설정 -> 스크립트 -> 로그오프에 스크립트를 추가하면 스크립트가 프로세스를 종료하는지 확인했습니다.
불행하게도 로그오프 스크립트는 모든 프로세스가 종료될 때까지 실행되지 않는 것으로 보이므로 실행되지 않습니다.
프로세스의 이전 지점에서 로그오프 스크립트를 실행하는 방법이 있습니까? 아니면 문제에 대한 더 나은 접근 방식이 있습니까?
답변1
HKEY_CURRENT_USER\Control Panel\Desktop AutoEndTasks에서 레지스트리 설정을 1로 설정해 보셨나요? 작동한다면 스크립트가 필요하지 않습니다.
답변2
다음과 같은 프로그램을 사용하여 로그오프할 수 있습니다.http://www.karenware.com/powertools/ptstopper.asp로그오프하기 전에 스크립트를 실행합니다.
답변3
이것을 스크립트 끝에 추가하십시오
Set strComputer = "."
Set OpSysSet = GetObject("winmgmts:{(Shutdown)}//" & strComputer & "/root/cimv2").ExecQuery("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Win32Shutdown 0
next
WScript.Quit(0)
일반 로그오프 대신 이 스크립트를 사용하도록 하세요.
현재 프로세스가 종료되기 전에 스크립트를 실행하는 방법을 잘 모르겠지만 이것이 작동하지 않는지 계속 살펴볼 수 있습니다. 또한 테스트할 기회는 없었지만 이것이 명령에 대한 올바른 구문이어야 합니다. 약간의 조정이 필요하면 알려주세요.
답변4
제 생각에는 당신이 가진 문제는 사용자가 로그아웃할 때 완전히 로그아웃하지 않는다는 것입니다. 그래서 "로그아웃 시 이 프로세스를 종료합니다"라는 스크립트를 작성했지만 스크립트가 실행될 수 없다는 것입니다. 사용자는 절대 로그아웃하지 않습니다. 사용자가 로그오프를 완료한 때가 아니라 사용자가 "로그오프"를 누를 때 스크립트가 시작되기를 원합니다.
저는 VBScript나 로그아웃 뒤의 Windows API에 대해 잘 알지 못하지만 다음 중 하나를 제안하고 싶습니다.
사용자가 "로그오프"를 선택하고 해당 시점에서 스크립트가 실행될 때 발생하는 별도의 이벤트/트리거가 있는지 알아보세요. 이것이 말보다 쉽다면 사과드립니다. 그러나 실제로 염두에 두고 있던 것을 얻는 가장 확실한 방법인 것 같습니다.
사용자가 로그오프를 선택한 후 확실히 종료되는 프로세스가 있는지 알아보세요(
explorer.exe
아마도?). 이는 종료하려는 프로세스가 시스템에 중요하지 않거나 세션에 중요하지 않은 경우(또는 종료 스크립트를 IS 시스템에 중요한 프로세스에 묶은 경우)에만 좋은 생각입니다. 스크립트가 종료되는 것을 원하지 않기 때문입니다. 사용자가 트레이에서 무언가를 닫았기 때문에 발생하는 프로세스입니다.로그오프 스크립트를 갖는 아이디어는 꽤 좋다고 생각하지만 실제로 시작 메뉴의 "로그오프" 버튼을 이 스크립트를 실행하는 버튼으로 대체할 수 있는지 알아보는 것이 좋습니다. 나는 컴퓨터실에서 비슷한 것을 본 적이 있다는 것을 알고 있습니다. 그러나 사용자가 데스크탑에서 사용자 정의 "로그오프" 버튼을 클릭하는 것을 기억하도록 하고 그들이 여전히 정상적인 로그오프에 도달할 수 있다면, 그 근육 기억은 모든 사람을 좌절시킬 뿐입니다.