タスクスケジューラがバッチファイルを正しく実行しない

PowerShellプログラムを実行するためのバッチファイルがあります。バッチファイルをダブルクリックすると、PowerShellコードが実行されます。

  1. EXCELスプレッドシートを生成する
  2. このEXCELスプレッドシートをメールで送信

私もこの行動が起こっているのを見ます。

ただし、タスクスケジューラを使用してバッチファイルを実行すると、実行されますが、EXCELスプレッドシートは生成されず、EXCELスプレッドシートに電子メールが送信されません。

他のバッチプログラムを実行してPowerShellプログラムを実行する他のタスクを作成しましたが、この問題は発生しませんでした。

タスクスケジューラで使用されているのと同じ権限でバッチファイルを手動で実行しましたが、問題はありません。

タスクスケジューラでバッチファイルの完全なパスを指定しました。

これのトラブルシューティングを開始するにはどうすればよいですか?

詳しくは

スクリプト全体は、generate_GUPs_report.ps1です。

$DSN = 'Schools SQL Server ODBC'
$DirectoryToSave='D:\Script\'
$Filename='Daily_GUP_Report' 
$password = $NULL
$credentials = $NULL
$password = $NULL
$conn = $NULL
$cmd = $NULL
$k = $NULL

# constants

$xlCenter=-4108 
$xlTop=-4160 
$xlOpenXMLWorkbook=[int]51 


<#Previously created password file in D:\Script\central_cred.txt, read-host -assecurestring | convertfrom-securestring | out-file D:\Script\central_cred.txt#>
$password = get-content D:\Script\central_cred.txt | convertto-securestring
$credentials = new-object -typename System.Management.Automation.PSCredential -argumentlist "sem5",$password

$username = $credentials.UserName
$password = $credentials.GetNetworkCredential().Password


# SQL Query

$SQL1 = "SELECT
    dbo.V_SEM_COMPUTER.COMPUTER_NAME, dbo.V_SEM_COMPUTER.IP_ADDR1_TEXT as IP_Address, EVENT_DESC as Successful_GUP_Download
FROM
    dbo.V_AGENT_SYSTEM_LOG,  dbo.V_SEM_COMPUTER
WHERE
    EVENT_SOURCE = 'sylink'
    and (EVENT_DESC LIKE '%Downloaded new content update from Group Update Provider successfully.%'
        or EVENT_DESC LIKE '%Downloaded content from GUP%')
    and dbo.V_AGENT_SYSTEM_LOG.TIME_STAMP > DATEDIFF(second, '19700101', DATEADD(day, -1, GETDATE()))  * CAST(1000 as bigint)
    and dbo.V_SEM_COMPUTER.COMPUTER_ID = dbo.V_AGENT_SYSTEM_LOG.COMPUTER_ID
ORDER BY
    dbo.V_AGENT_SYSTEM_LOG.TIME_STAMP DESC"


$SQL2 = "SELECT
    COUNT(DISTINCT EVENT_DESC) AS Number_of_distinct_GUP_downloads_past_24hrs,COUNT(DISTINCT dbo.V_SEM_COMPUTER.COMPUTER_NAME) AS Number_of_Computer_successfully_downloaded_from_GUP_past_24hrs
FROM
    dbo.V_AGENT_SYSTEM_LOG,  dbo.V_SEM_COMPUTER
WHERE
    EVENT_SOURCE = 'sylink'
    and (EVENT_DESC LIKE '%Downloaded new content update from Group Update Provider successfully.%'
        or EVENT_DESC LIKE '%Downloaded content from GUP%')
    and dbo.V_AGENT_SYSTEM_LOG.TIME_STAMP > DATEDIFF(second, '19700101', DATEADD(day, -1, GETDATE()))  * CAST(1000 as bigint)
    and dbo.V_SEM_COMPUTER.COMPUTER_ID = dbo.V_AGENT_SYSTEM_LOG.COMPUTER_ID"

$SQL3 = "SELECT 
    dbo.V_SEM_COMPUTER.COMPUTER_NAME, dbo.V_SEM_COMPUTER.IP_ADDR1_TEXT as IP_Address, COUNT(*) as Number_of_Occurrences_in_Successful_GUP_Downloads_Log
FROM 
    dbo.V_AGENT_SYSTEM_LOG, dbo.V_SEM_COMPUTER
WHERE
    EVENT_SOURCE = 'sylink'
    and (EVENT_DESC LIKE '%Downloaded new content update from Group Update Provider successfully.%'
        or EVENT_DESC LIKE '%Downloaded content from GUP%')
    and dbo.V_AGENT_SYSTEM_LOG.TIME_STAMP > DATEDIFF(second, '19700101', DATEADD(day, -1, GETDATE()))  * CAST(1000 as bigint)
    and dbo.V_SEM_COMPUTER.COMPUTER_ID = dbo.V_AGENT_SYSTEM_LOG.COMPUTER_ID
GROUP BY
    dbo.V_SEM_COMPUTER.COMPUTER_NAME, dbo.V_SEM_COMPUTER.IP_ADDR1_TEXT
ORDER BY
    Number_of_Occurrences_in_Successful_GUP_Downloads_Log DESC" 



# Create Excel file to save the data

if (!(Test-Path -path "$DirectoryToSave")) #create it if not existing 
  { 
  New-Item "$DirectoryToSave" -type directory | out-null 
  } 

$excel = New-Object -Com Excel.Application
$excel.Visible = $True
$wb = $Excel.Workbooks.Add()
$currentWorksheet=1

$ws = $wb.Worksheets.Item(1)
$ws.name = "GUP Download Activity"


$qt = $ws.QueryTables.Add("ODBC;DSN=$DSN;UID=$username;PWD=$password", $ws.Range("A1"), $SQL1)

if ($qt.Refresh()){
    $ws.Activate()
    $ws.Select()
    $excel.Rows.Item(1).HorizontalAlignment = $xlCenter
    $excel.Rows.Item(1).VerticalAlignment = $xlTop
    $excel.Rows.Item("1:1").Font.Name = "Calibri" 
    $excel.Rows.Item("1:1").Font.Size = 11 
    $excel.Rows.Item("1:1").Font.Bold = $true 
}

$ws = $wb.Worksheets.Item(2)
$ws.name = "Totals"


$qt = $ws.QueryTables.Add("ODBC;DSN=$DSN;UID=$username;PWD=$password", $ws.Range("A1"), $SQL2)

if ($qt.Refresh()){
    $ws.Activate()
    $ws.Select()
    $excel.Rows.Item(1).HorizontalAlignment = $xlCenter
    $excel.Rows.Item(1).VerticalAlignment = $xlTop
    $excel.Rows.Item("1:1").Font.Name = "Calibri" 
    $excel.Rows.Item("1:1").Font.Size = 11 
    $excel.Rows.Item("1:1").Font.Bold = $true 
 }


$ws = $wb.Worksheets.Item(3)
$ws.name = "GUP Downloads per Computer"


$qt = $ws.QueryTables.Add("ODBC;DSN=$DSN;UID=$username;PWD=$password", $ws.Range("A1"), $SQL3)

if ($qt.Refresh()){
    $ws.Activate()
    $ws.Select()
    $excel.Rows.Item(1).HorizontalAlignment = $xlCenter
    $excel.Rows.Item(1).VerticalAlignment = $xlTop
    $excel.Rows.Item("1:1").Font.Name = "Calibri" 
    $excel.Rows.Item("1:1").Font.Size = 11 
    $excel.Rows.Item("1:1").Font.Bold = $true 
 }

$filename = "D:\Script\Daily_GUP_Report.xlsx"
if (test-path $filename ) { rm $filename } 
$wb.SaveAs($filename,  $xlOpenXMLWorkbook) #save as an XML Workbook (xslx) 
$wb.Saved = $True #flag it as being saved 
$wb.Close() #close the document 
$Excel.Quit() #and the instance of Excel 
$wb = $Null #set all variables that point to Excel objects to null 
$ws = $Null #makes sure Excel deflates 
$Excel=$Null #let the air out 

Start-Process "D:\Script\send_GUP_report_schools.bat"

また、ダブルクリックすると実行されるバッチファイルの内容は次のとおりですが、タスクスケジューラを使用してスケジュールした場合は実行されません。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe D:\Script\generate_GUPs_report.ps1

そして、これがタスクスケジューラのアクションです

ここに画像の説明を入力してください

briantist

MicrosoftWordを自動化するスクリプトをスケジュールしようとしても同様の問題が発生しました。私の場合、最終的にはDCOMIDを設定することで回避できました。

ステップ

  1. 開始>実行: dcomcnfg
    • 64ビットOSで32ビットOfficeを実行している場合は、 mmc comexp.msc /32
  2. 展開Component Services> Computers> My Computer>DCOM Config
  3. 検索 Microsoft Excel Application
  4. 右クリックしPropertiesIdentityタブを。
  5. に設定This userし、スケジュールされたタスクに入力したのと同じ資格情報を入力します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

タスクスケジューラでPythonスクリプトを実行していないバッチファイル

分類Dev

Windowsタスクスケジューラでcronjobとしてバッチファイルを実行中にエラーが発生しました

分類Dev

Windows 10 のタスク スケジューラが Octave ファイルを実行しない

分類Dev

タスクスケジューラを介したバッチファイル-メッセージボックスが表示されない

分類Dev

バッチ ファイルは、タスク スケジューラが停止した後もコマンドを実行し続けます。

分類Dev

タスクスケジューラでバッチファイルを最小化して実行するにはどうすればよいですか

分類Dev

ユーザーがログオンしているかどうかに関係なく、実行するように設定されている場合、タスクスケジューラはバッチファイルを開くことができません

分類Dev

SSISがWindowsスケジューラタスクを正しく実行しない

分類Dev

タスクスケジューラを介して実行したときにPythonスクリプトがファイルを作成しない

分類Dev

タスクスケジューラからバッチファイルを実行できません

分類Dev

バックグラウンドW7ではなくタスクスケジューラから実行可能ファイルを実行する

分類Dev

タスクスケジューラとbatファイルを使用したPythonスクリプトの実行が機能しない

分類Dev

スケジュールされたタスクがバッチファイルを開かない

分類Dev

バッチファイルから実行されたPowerShellスクリプトのスペースバーが正しく解析されていないパラメーター

分類Dev

スケジュールされたタスクとしてバッチファイルを実行すると、正常に動作しませんか?

分類Dev

タスク スケジューラを介してスケジュールに基づいて SQL クエリを実行する Bat ファイル

分類Dev

スケジュールされたタスクとして実行されたバッチ ファイルで %date% が異なる結果を生成するのはなぜですか?

分類Dev

サブプロセスの実行、check_output、バッチファイルおよびタスクスケジューラからスクリプトを実行すると、Popenは空の文字列を返します

分類Dev

スケジュールされたタスクとして実行されたバッチファイルを使用して、共有フォルダーにsqliteデータベースをバックアップする方法は?

分類Dev

タスクスケジューラから実行したときにExcelでファイルを開くことができないのはなぜですか?

分類Dev

バッチファイルは、タスクスケジューラを使用して実行した場合にのみ、「ゼロ除算エラー」を返します。

分類Dev

タスクスケジューラを介してWindowsでbashファイルを実行する

分類Dev

Windowsタスクスケジューラを使用してWARファイルの実行を自動化する

分類Dev

ファイルのパスを指定してオブジェクトストア内のファイルを削除できないなど、ラバのバッチフローの実行中に例外が発生する

分類Dev

スケジュールされたタスクとしてループを使用してバッチファイルを実行するにはどうすればよいですか?

分類Dev

タスクスケジューラは実行されていますが、終了していないか、正しく機能していませんVBscript

分類Dev

タスクの実行をスケジュールしますが、発信者をブロックしないでください

分類Dev

EclipseがJavaファイルをパッケージエクスプローラービューのタブとして開くのはなぜですか?

分類Dev

何らかのビデオファイルを実行すると、正しくインストールできず、Vlcがクラッシュします

Related 関連記事

  1. 1

    タスクスケジューラでPythonスクリプトを実行していないバッチファイル

  2. 2

    Windowsタスクスケジューラでcronjobとしてバッチファイルを実行中にエラーが発生しました

  3. 3

    Windows 10 のタスク スケジューラが Octave ファイルを実行しない

  4. 4

    タスクスケジューラを介したバッチファイル-メッセージボックスが表示されない

  5. 5

    バッチ ファイルは、タスク スケジューラが停止した後もコマンドを実行し続けます。

  6. 6

    タスクスケジューラでバッチファイルを最小化して実行するにはどうすればよいですか

  7. 7

    ユーザーがログオンしているかどうかに関係なく、実行するように設定されている場合、タスクスケジューラはバッチファイルを開くことができません

  8. 8

    SSISがWindowsスケジューラタスクを正しく実行しない

  9. 9

    タスクスケジューラを介して実行したときにPythonスクリプトがファイルを作成しない

  10. 10

    タスクスケジューラからバッチファイルを実行できません

  11. 11

    バックグラウンドW7ではなくタスクスケジューラから実行可能ファイルを実行する

  12. 12

    タスクスケジューラとbatファイルを使用したPythonスクリプトの実行が機能しない

  13. 13

    スケジュールされたタスクがバッチファイルを開かない

  14. 14

    バッチファイルから実行されたPowerShellスクリプトのスペースバーが正しく解析されていないパラメーター

  15. 15

    スケジュールされたタスクとしてバッチファイルを実行すると、正常に動作しませんか?

  16. 16

    タスク スケジューラを介してスケジュールに基づいて SQL クエリを実行する Bat ファイル

  17. 17

    スケジュールされたタスクとして実行されたバッチ ファイルで %date% が異なる結果を生成するのはなぜですか?

  18. 18

    サブプロセスの実行、check_output、バッチファイルおよびタスクスケジューラからスクリプトを実行すると、Popenは空の文字列を返します

  19. 19

    スケジュールされたタスクとして実行されたバッチファイルを使用して、共有フォルダーにsqliteデータベースをバックアップする方法は?

  20. 20

    タスクスケジューラから実行したときにExcelでファイルを開くことができないのはなぜですか?

  21. 21

    バッチファイルは、タスクスケジューラを使用して実行した場合にのみ、「ゼロ除算エラー」を返します。

  22. 22

    タスクスケジューラを介してWindowsでbashファイルを実行する

  23. 23

    Windowsタスクスケジューラを使用してWARファイルの実行を自動化する

  24. 24

    ファイルのパスを指定してオブジェクトストア内のファイルを削除できないなど、ラバのバッチフローの実行中に例外が発生する

  25. 25

    スケジュールされたタスクとしてループを使用してバッチファイルを実行するにはどうすればよいですか?

  26. 26

    タスクスケジューラは実行されていますが、終了していないか、正しく機能していませんVBscript

  27. 27

    タスクの実行をスケジュールしますが、発信者をブロックしないでください

  28. 28

    EclipseがJavaファイルをパッケージエクスプローラービューのタブとして開くのはなぜですか?

  29. 29

    何らかのビデオファイルを実行すると、正しくインストールできず、Vlcがクラッシュします

ホットタグ

アーカイブ