2013-02-06 2 views
1

내가 다음 명령을 사용하여 schtasks.exe을 사용하여 다른 PowerShell 스크립트를 예약하려고 인식되지 않는 반환파워 쉘의 예약 작업 오류 성공

$Command = cmd /c "$Env:WinDir/system32/schtasks.exe /create /s $ComputerName /tn $TaskName /tr $TaskRun /sc $Schedule /d $Days /st $StartTime /RU system" 

Invoke-Expression $Command 

이 일정 원격 서버에서 작업을하지만 오류가 발생합니다 :

"The term 'SUCCESS:' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

정확한 시간에 작업을 예약했지만이 오류가 발생합니다.
누구든지이 오류를 해결하는 방법을 알고 있습니까?

+0

Erwin에게 감사의 말씀을 전하고 쉽게 읽을 수있게 해주셔서 감사합니다. – user984201

답변

1

$command 변수를 만들 때 식의 RESULT 값이 SUCCESS이므로 오류가 표시됩니다. 이 명령은 실행하기 전에 실행 완료됩니다 Invoke-Expression. 따라서 Invoke-Expression은 실제로 스크립트 블록으로 결과 (SUCCESS)를 실행하고 있으며 오류가 발생합니다. 증명 : 당신은 당신이 당신의 $command 변수를 만들거나 문자열로 표현 (cmd /c ...)을 절약 할 수 있습니다 때 두 단지 당신이 직접 같이 명령 호출 한 다음 호출 할 수 있습니다

PS > $command = whoami 

PS > $command 
computer\user 

PS > $command = 'whoami' 

PS > $command 
whoami 

. 예 :

+0

진행 상황에 대해 자세히 설명해 주셔서 감사합니다. 그것은 완벽하게 작동했습니다. – user984201