簡體   English   中英

從任務計划程序運行的Powershell腳本無法打開Word文檔

[英]Powershell script run from task scheduler unable to open word document

我正在嘗試使用Powershell腳本從多個Word文件中獲取單詞計數,然后將其輸出到CSV文件。 從powershell提示符運行時,此方法可以按預期工作,而從cmd提示符直接或從perl腳本中調用時,此方法可以工作,但是當作為計划任務調用時,腳本無法工作。

不是 ExecutionPolicy問題,不會導致腳本完全不運行。 該腳本正在運行並產生一些輸出,但是從任務計划程序啟動時,它無法打開任何Word文檔。

相關的PowerShell代碼如下:

$folderpath = "C:\some\where\*"
$fileTypes = "*.docx"

$word = New-Object -ComObject word.application
$word.visible = $false
Get-ChildItem -path $folderpath -recurse -include $fileTypes |
foreach-object `
{
  $path =  ($_.fullname).substring(0,($_.FullName).lastindexOf("."))

  try {
    $doc = $word.documents.open($_.fullname, $confirmConversion, $readOnly, $addToRecent, $passwordDocument)
  } catch {
    "FROM CATCH UNABLE TO OPEN $($_.fullname)" >> $wordCountFile
  }
  if($doc) {
    $wordCount = $doc.ComputeStatistics("wdStatisticWords")
    "$($_.name), $wordCount"  >> $wordCountFile
    $doc.close([ref]$false)
  } else {
    "UNABLE TO OPEN $($_.fullname)" >> $wordCountFile
  }

} #end Foreach-Object
$word.Quit()

(請注意,人們引用的其他方法從單詞文檔中獲取單詞計數實際上並沒有像此方法工作那樣返回正確的計數。)

當作為計划任務運行(設置為以最高特權並以管理員用戶身份運行)時,請使用:

cmd /c start PowerShell.exe -NoLogo -NonInteractive -ExecutionPolicy Bypass -File "C:\path\to\script\CountsInWords.ps1"

或在計划任務啟動的perl腳本中使用類似命令運行時(我的正常使用情況),並且在兩種情況下,都將任務設置為以最高特權運行時,powershell腳本無法正常工作。

顯然,從來沒有到達catch塊,因為print語句從不進入文件,但是$ doc始終為空。

另外,當作為任務啟動時,腳本將打開單詞處理程序,並為1個線程使用100%cpu,這最終會削弱我的計算機。

總結一下:

以人工方式運行腳本(無論有多少間接級別)->完美運行

從任務運行腳本(以管理員用戶身份)->腳本運行但無法訪問Word文檔,即使總是按$ word.Quit行也無法停止單詞處理。

編輯:使用@TheMadTechnician有關為新用戶首次啟動辦公室的建議時,需要一些詳細信息:在進一步檢查中,查看任務管理器中的流程,除非單擊“顯示所有用戶的流程”,否則我看不到流程一詞。 ,但隨后出現,但列出了該用戶。 如何將一個進程既明確地列為我,又算作另一個用戶?

嘗試在腳本中設置$word.visible = $true時,從任務計划程序啟動時實際上沒有任何顯示,因此,我既不知道如何驗證它正在等待輸入,又不知道如何為它提供輸入作為使它消失的正確用戶...

您也許可以按照問題“ 如何與桌面交互”從計划程序運行Windows 2008任務中命名的解決方案進行操作。

摘要:如果您具有64位Windows:創建%SystemRoot%\\SysWOW64\\config\\systemprofile\\Desktop 如果您使用32位Windows,請創建%SystemRoot%\\system32\\config\\systemprofile\\Desktop

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM