gpt4 book ai didi

Powershell 2.0 脚本在 cmd.exe 中运行,但不在任务计划程序中

转载 作者:行者123 更新时间:2023-12-04 02:23:42 25 4
gpt4 key购买 nike

我最近在我的 SBS 2008 SP2 服务器上安装了 Powershell 2.0,并且相信它运行良好。登录服务器后, Windows Powershell (x86) Windows Powershell 程序有 获取执行策略 设置为 远程签名 . 获取主机两个 Poweshell 的版本显示为 2.0 .

脚本保存在Server的C:\Script\Powershell\,名为TaskScheduler_Get_SFTP_Files.ps1

如果我从 运行cmd.exe 在 C:\命令 Powershell C:\Script\Powershell\TaskScheduler_Get_SFTP_Files.ps1 , 然后 Powershell 使用从 下载的各种命令连接到 FTP 帐户腻子 , 重命名下载的文件,然后将它们保存到它们的位置。在我的 scipt 中,我有各种 写输出这样的命令,当我手动运行脚本时,我可以在 cmd shell 中看到发生了什么。从 cmd.exe 调用它可以正常工作,我可以看到包含下载文件的最终目录。

任务计划另一方面,完成这项工作似乎需要甜言蜜语(目前超出我的词汇量)。在任务计划程序中,我设置了一个具有以下规范的作业(从 XML 导出中复制)并提请您注意我如何使用参数调用 Powershell:

    <Principal id="Author">
<UserId>WOODBRIDGE\ADMIN</UserId>
<LogonType>Password</LogonType>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
<Settings>
<IdleSettings>
<Duration>PT10M</Duration>
<WaitTimeout>PT1H</WaitTimeout>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>false</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<WakeToRun>true</WakeToRun>
<ExecutionTimeLimit>PT4H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>Powershell</Command>
<Arguments>-NoProfile -File C:\Script\Powershell\TaskScheduler_Get_SFTP_Files.ps1</Arguments>
</Exec>
</Actions>

查看任务的历史记录时,其中一项是 事件 ID 201 一般评论是“任务计划程序成功完成任务”\XXX\YYYYYYYYYYYYYYYYYYYYY”,实例“{23dee164-ea4b-4ed5-ba48-19f07bb83f3e}”,操作“C:\Windows\System32\WindowsPowerShell\v1.0\Powershell.带有 返回代码 0 的 EXE”。

任何帮助,将不胜感激?

最佳答案

@nimizen 解决方案将起作用,但在 PowerShell 2.0 中有一种更简单的方法来启动脚本文件:

-NoLogo -File C:\Script\Powershell\TaskScheduler_Get_SFTP_Files.ps1

无论您是否也使用 -NoProfile选项取决于您的配置文件是否加载脚本所需的模块或管理单元。

关于Powershell 2.0 脚本在 cmd.exe 中运行,但不在任务计划程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com