Windows 7 작업 스케줄러 숨김 설정이 작동하지 않습니다


37

매시간 내 컴퓨터에서 실행되는 데몬 프로세스가 있으며 Hidden상자를 선택했지만 작동하지 않습니다.작업 속성

1 시간마다 작업이 실행되지만 내 .NET 콘솔 앱이 실행중인 검은 색 명령 창이 표시됩니다. 작업이 완료 될 때까지 계속 표시된 다음 사라집니다. 이것은 내가하는 일을 팝업하고 중단하기 때문에 매우 성가시다.

여기에 이미지 설명을 입력하십시오

나는 그것을 숨기고 싶기 때문에 어떻게 해결할 수 있습니까?



2
링크 된 질문에는 숨겨진 설정이 언급되어 있지 않습니다 .
bwDraco

@DragonLord 당신은 맞지만,이 질문이 "왜 숨겨지지 않는가?"인지 아니면 실제로 "이 상자가 보이지 않게하려면 어떻게해야합니까?"인지 말하기 어렵습니다.
Ƭᴇcʜιᴇ007

@ techie007 : 질문 창을 숨기는 방법 입니다. 숨겨진 확인란이 생각 합니다. 그러나 링크 된 기사는 내 게시물에 표시된 작업 스케줄러 GUI가 아니라 스크립트와 명령 줄 작업 스케줄러 및 셸 스크립트를 다룹니다. GUI를 사용하여이를 수행하는 방법을 알고 있습니까?
Joshua Frank

대부분의 경우 작업 스케줄러 GUI에서만 수행 할 수 없습니다. 일반적으로 팝업의 하위 창을 숨기려면 작업의 작업 (예 : 배치 파일 또는 스크립트)에서 실행중인 내용을 수정해야합니다. 그것이 다른 질문에서 다루는 것이므로 가능한 속임수로 표시 한 것입니다. :)
Ƭᴇcʜιᴇ007

답변:


45

"사용자 로그온 여부 실행"확인란을 선택하면 실행 파일이 백그라운드에서 실행됩니다.


4
저것과 같이 쉬운. 이 답변은 받아 들여 져야합니다.
rolve December

고맙습니다. 나는 반대의 문제가 있었다. 내가 원했던 화면에 콘솔을, 그러나 그것은 아니었다!
랜디 Stegbauer

12
이 작업을 수행하면 암호를 저장해야하며 다음에 암호를 변경할 때 (일반적으로 엔터프라이즈 환경의 도메인 정책에 의해 시행되는) 숨겨집니다.
Philipp Munin

@PhilippMunin 특정 사용 사례의 경우 '비밀번호를 저장하지 마십시오'확인란을 선택하여 벗어날 수 있습니다. 이 작업은 로컬 컴퓨터 리소스에만 액세스 할 수 있습니다. '이므로 암호를 입력하지 않아도됩니다.
지마 딘

20

Windows 7 예약 된 작업이 숨겨진 이유는 무엇입니까? 왜 이런 일이 발생했는지 설명해야합니다.

또한 일반 작업 속성에 대한 TechNet 설명은 다음 과 같습니다.

작업의 일반 속성은 작업 속성 또는 작업 만들기 대화 상자의 일반 탭에 표시됩니다. 작업의 일반 속성에는 작업 이름, 작성자, 설명, 보안 옵션, 작업이 구성된 운영 체제 및 작업을 숨길 지 여부를 제어하는 ​​속성이 포함 됩니다.

작업 폴더에서 작업을 만들 때는 작업 이름을 지정해야합니다. 두 개의 작업이 동일한 작업 폴더에있는 경우 같은 이름을 가질 수 없습니다. 작업 설명은 선택 사항입니다.

작업 보안 옵션은 작업이 실행되는 보안 컨텍스트를 지정합니다. 자세한 내용은 작업 보안 컨텍스트를 참조하십시오.

기본적으로 숨겨진 작업은 작업 스케줄러 사용자 인터페이스에 표시되지 않습니다. 보기 메뉴에서 숨겨진 작업 표시를 선택하면 숨겨진 작업을 볼 수 있습니다. 작업 속성 또는 작업 만들기 대화 상자의 일반 탭에서 숨겨진 확인란을 클릭하면 작업이 숨겨집니다.

이것은 확인란 이 예약 된 실제 프로그램이 아니라 스케줄러의 UI 에서만 작업 자체 를 숨기고 있음을 의미 하지 않습니까?


그렇게 들리지만 그렇게하지는 않습니다. 스케줄러에서 작업을 볼 수 있습니다. 보이지 않는 객체로 작동하는 이상한 UI 일 것입니다.
Joshua Frank

2
당신은 마 숨겨진 작업은 보기 메뉴에서 선택?
Karan

1
아, 그렇게 했어요. 감사. 물론 "숨겨진"은 내가 생각한대로하지 않기 때문에 숨겨진 작업이 필요 없습니다. 이 도구는 관리자 전용 도구이므로 관리자는 일반적으로 도구를 숨기는 것을 좋아하지 않기 때문에 숨겨진 작업은 어떤 용도로 사용됩니까?
Joshua Frank

2
누가 알 겠어, 확실히 나는 이 옵션을 사용 적이 없다. 당신의 질문은 내가 뭘했는지보기 위해 처음 찾은 것이 었습니다. :) BTW는 사용자를 SYSTEM으로 변경하는 대신 "로그온 여부에 관계없이 실행"을 선택하면 문제가 해결됩니까?
카란

18

좋아, 더 많은 연구를 한 결과 StackOverflow 에서이 답변 을 찾았습니다 .

백그라운드에서 실행되도록 예약 된 작업을 설정하려면 작업을 실행하는 사용자를 SYSTEM으로 변경하면 화면에 아무것도 나타나지 않습니다.

한 의견 은 이것이 작업에 대한 모든 권리를 부여한다고 말하며, 이는 성가신 일이 될 수 있지만이 경우 수용 가능합니다.

그러나 여전히 Hidden그렇게하지 않으면 어떻게해야합니까? 그리고 왜 프로그램을 실행하는 사용자 계정이 보이는지 여부와 관련이 있습니까?


위의 답변을 읽고 해당 기능을 설명 할 수 있습니다.
Karan

2
이 SU 답변 은 출력을 보지 않기 위해 다른 사용자로 실행한다는 아이디어에 중점을 둡니다. "시스템"으로 실행해야 할 특별한 이유가 없다고 생각합니다. 사용자가 부여한 권한으로 해당 작업을 실행하기 위해 사용자를 만들 수 있습니다.
Ƭᴇcʜιᴇ007

그러나 구성된 사용자가 왜 창의 가시성에 영향을 미칩니 까?
Joshua Frank

1
것을 명심 SYSTEM계정이 파일을 암호화 다른 사용자의 EFS에 액세스 할 수 없습니다.
Zero3

11

최고의 솔루션

  • 작업을 실행하는 사용자를 SYSTEM으로 변경-사용자가 아닌 명령을 실행합니다
  • "사용자 로그온 여부 실행"확인-작업과 함께 비밀번호를 저장해야하며 다음 번 비밀번호 변경 (일반적으로 엔터프라이즈 환경의 도메인 정책에 의해 시행됨)을 숨길 수 있습니다.

그것들이 당신을위한 거래 차단기 인 경우, 궁극적 인 해결책은 아래의 것과 같은 JS 스크립트 파일을 생성하는 것입니다.이 스크립트는 숨겨진 창에서 명령을 실행하고 명령이 종료 될 때까지 기다렸다가 오류 코드를 반환합니다.

WScript.CreateObject("WScript.Shell")
.Run('powershell -File C:\\Path\\To\\MyScript.ps1', 0,true);

이것을 js 파일 (myjob.js)로 저장하고 이것을 작업 스케줄러에 추가하십시오 : 여기에 이미지 설명을 입력하십시오 Enjoy


또한 Cscript가 아닌 Wscript.exe를 사용하여 스크립트를 실행해야합니다. 그렇지 않으면 검은 색 콘솔 창이 잠시 나타납니다.
BBK

나를 위해 일하고있는 VBScript의 또 다른 예는 다음과 같습니다. faqforge.com/windows/…
BBK

2

"사용자의 로그온 여부에 관계없이 실행"을 사용하면 숨겨진 옵션이 작동합니다. 이것을 선택한 후에 자격 증명을 제공해야합니다.


1

둘 다 :

  • "작업을 실행하는 사용자를 SYSTEM으로 변경"
  • "사용자 로그온 여부 실행"확인

검은 명령 창을 막을 수 있지만 단점을 알고 있어야합니다 .Windows가 헤드리스 스타일 환경에서 작업을 시작하므로 PowerShell의 'AutoIt'또는 SendKeys와 같은 일부 GUI 자동화 도구로는 작업을 수행 할 수 없습니다.


1

기본 설정을 그대로두고 창을 표시하지 않고 실행을 생성하는 짧은 사용자 정의 프로그램을 작성합니다. 예를 들어 명령 프롬프트 창을 표시하지 않고 배치 파일을 실행하려면 아래 코드를 사용하십시오. "RunBatchFile.exe (path_to_batch_file)"를 생성하도록 작업을 설정하십시오.

class Program
{
    static void Main(string[] args)
    {
        try
        {
            if (args.Length < 1)
            {
                Console.WriteLine("No batch file");
                Console.WriteLine("Usage: RunBatchFile (path)");
                Environment.Exit(1);
            }

            if (!File.Exists(args[0]))
            {
                Console.WriteLine("Batch file {0} not found", args[0]);
                Console.WriteLine("Usage: RunBatchFile (path)");
                Environment.Exit(1);
            }

            // Set to batch file's folder
            string startIn = Path.GetDirectoryName(args[0]);
            if (!string.IsNullOrEmpty(startIn) && Directory.Exists(startIn))
                Directory.SetCurrentDirectory(startIn);

            // Start
            ProcessStartInfo pi = new ProcessStartInfo()
            {
                FileName = args[0],
                UseShellExecute = true,
                WindowStyle = ProcessWindowStyle.Hidden
            };
            Process.Start(pi);
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception: " + ex.ToString());
        }
    }
}

1
그리고 나는 구체적으로 숨겨지는 마술이 그 ProcessWindowStyle.Hidden부분에 의한 것이라고 생각합니다 . 나는 여기에 대해 뭔가를 참조하십시오 msdn.microsoft.com/en-us/library/...
포주 주스 IT

예, 이것이 창을 숨 깁니다. 그렇지 않으면 창이 나타납니다.
AresAvatar

1
작성된이 코드는 ShellExecute로 실행되는 모든 항목에서 작동합니다.
AresAvatar

0

Powershell 예약 작업 (GPO를 통해 배포 중) 에서이 문제가 발생했습니다. 명령 창에 배치했습니다.

CMD
/Q /D /C "powershell.exe -Command "& '\\MYDOMAIN\netlogon\MyPowerShellScript.ps1'""

이것이 질문에 대한 답변이 될 수 있지만 그 이유를 설명 할 수 있다면 더 나은 답변이 될 것 입니다.
DavidPostill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.