아래의 powershell
스크립트를 사용하여 여러 단어 문서를 열고 양식 필드를 업데이트 한 다음 닫습니다. 먼저이 스크립트가 명령 줄에서 실행되거나 파일을 마우스 오른쪽 버튼으로 클릭하고 어떤 식 으로든 수동으로 수행하여 Run with Powershell
을 선택하면 정상적으로 실행됩니다. 그러나이 작업을 예약 된 작업으로 실행하려고하면 두 가지 중 하나가 발생합니다.Powershell 스크립트를 예약 된 작업으로 실행
나는 이것을 위해 여러 가지 다른 형식의 구문을 시도했지만 모두 동일한 두 결과 중 하나를 생성합니다. 어느 쪽이든 A) 스크립트는 시작하지 않고 약 3 초 만에 시작하거나 끝나거나, B) 스크립트가 시작되어 작업 관리자에서 Word가 열리는 것을 볼 수 있지만 정상적으로 그리고 Word처럼 진행 상황을 보여주는 명령 창이 없습니다. 약 2 분 후에 끊어진다. 실제로 B 옵션을 사용하는 유일한 구문은 액션으로 .B Script1ps1을, 인수로는 폴더 powershell
을 넣고 폴더는 시작 위치로 사용합니다. 이 구문의 약간의 변형, 예를 들어 powershell
등의 전체 경로를 사용하여 시도했습니다. 작업 관리자가 중단 될 때 Word를 종료하면 예약 된 작업에서 성공적으로 완료되었다고 말합니다. 누구든지 아이디어가 있습니까? 스크립트는 다음과 같습니다 :
$filearray = 1..12
$filename="E:\Form0801"
$word=new-object -com Word.Application
$word.Visible=$False #Making this true
#does not show word if run from scheduled task
Write-Host "DO NOT CLOSE THIS WINDOW!"
try
{
foreach ($i in $filearray)
{
if($i -lt 10){$filename="E:\Form080" + $i + ".dot"}
else{$filename="E:\Form08" + $i + ".dot"}
$doc=$word.Documents.Open($filename)
$word.ActiveDocument.Fields.Update()
$doc.SaveAs([REF]$filename)
$doc.Close()
Write-Host "File " $filename " has been updated successfully"
}
}
catch [System.Management.Automation.ActionPreferenceStopException]
{
"A problem occurred while opening one of the files."
$error[0]
}
$word.Quit()
# End Word Application
내 첫 번째 추측은 일부 특권의 문제라고 생각합니다. 예약 된 작업을 실행하기 위해 어떤 사용자를 사용합니까? 해당 사용자가 파일을 읽고 쓸 수있는 권한을 갖고 있습니까? – Gisli
"hello"로 일부 test.ps1을 예약하십시오. out-file. \ test.txt를 작성하고 [this Scripting Guys post]를 확인하십시오. (http://blogs.technet.com/b/heyscriptingguy/archive/2011/01/12/use-scheduled-tasks-to-run- powershell-commands-on-windows.aspx) 및 [this serverfault thread] (http://serverfault.com/questions/101671/scheduled-tasks-w-gui-issue) – noam