【问题标题】:I cant get powershell to run in task scheduler我无法让 powershell 在任务调度程序中运行
【发布时间】:2021-02-26 09:42:06
【问题描述】:

我正在尝试通过任务计划程序运行以下 Powershell 脚本,但尽管它让我成功运行 (0x0),但没有任何反应。如果我从与标准用户相同的机器手动运行脚本,则脚本执行没有任何问题。

$folderpath = "\\shared_path\excel.xls"
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$xlFixedFormat = [Microsoft.Office.Interop.Excel.XlFileFormat]::xlOpenXMLWorkbook
write-host $xlFixedFormat
$excel = New-Object -ComObject excel.application
$excel.visible = $false
$filetype ="*xls"
Get-ChildItem -Path $folderpath -Include $filetype -recurse | 
ForEach-Object `
{
    $path = ($_.fullname).substring(0, ($_.FullName).lastindexOf("."))
    
    $workbook = $excel.workbooks.open($_.fullname)
 
    $path += ".xlsx"
    $excel.DisplayAlerts = $false;
    $workbook.saveas($path, $xlFixedFormat)
    $workbook.close()
    
}
$excel.Quit()
$excel = $null
[gc]::collect()
[gc]::WaitForPendingFinalizers()

澄清一下,我在任务调度程序中尝试了不同的选项,例如在“-WindowStyle Hidden -NonInteractive -ExecutionPolicy Bypass -File "C:\Temp\powershell.ps1" 或 SYSTEM 等参数下运行它,并且当前登录用户但没有任何改变。

我的系统是加入了 Windows 10 的域,可以不受限制地访问共享位置(所有人都可以访问)

有什么想法吗?

【问题讨论】:

  • 各种办公应用程序仅通过这些调用运行如果该应用程序已由该系统上的该帐户至少运行一次。所以我会使用目标帐户登录目标系统并运行一次办公应用程序以使它们“初始化”。 ///// 此外,您可以添加日志记录或Start-Transcript cmdlet 以获取有关脚本正在执行的操作的更多信息......以及失败的位置。 ///// 还有,你试过在这个网站上搜索[powershell] run with task scheduler吗?

标签: excel powershell xlsx xls windows-task-scheduler


【解决方案1】:

我通常将任务计划程序配置为运行具有以下设置的 PowerShell 脚本:

新动作

操作:“启动程序”。

程序/脚本:“C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe”

添加参数(可选):.\ScriptName.ps1 -Arg1 Value1

开始于(可选):Path\to\Script\Directory

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-19
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2017-05-28
    • 2019-02-15
    相关资源
    最近更新 更多