Windows Server 2008 R2 PowerShell脚本手动运行,但不作为计划任务运行

我有一个使用PowerShell ISE手动运行的PowerShell脚本。 但是,使用pipe理员凭据作为计划任务运行时,任务不会以预期的结果运行。

剧本:

$request=new-object System.Net.WebClient $request.DownloadFile("...url...", "C:\path\to\file.csv") 

pipe理员用户对脚本和正在写入的文件夹都具有完全控制权。 该URL存在并在合理的时间内(不到一秒)作出响应。

如果我手动运行任务的状态是0x41301(“当前正在运行”),直到我最终结束它。 我已经使用这两种方法设置了任务:

  1. 启动一个程序: C:\path\to\PS.PS1
  2. 使用其他选项启动程序: C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe -noninteractive -command "C:\path\to\PS.PS1"

使用选项1,任务历史logging显示它已经打开notepad.exe的一个实例,但它永远不会终止它。 使用选项2完成任务,但不会下载/创build文件。

我已经使用Set-ExecutionPolicy Unrestricted因为这不是一个签名的脚本。

我该如何解决这个问题?

当您运行脚本文件而不是脚本块时,您应该使用的参数是-File。

另外,使用Set-ExecutionPolicy cmdlet设置执行策略并不能保证在该上下文中执行脚本。 有效的执行策略可能会被组策略(GPO)覆盖。 要强制执行该文件,请使用-ExecutionPolicy参数

您正在查找的命令如下

 powershell.exe -ExecutionPolicy Unrestricted -NonInteractive -NoProfile -File c:\path\ps.ps1 

这些参数的更多信息可以在这里find。

你能否通过以下方式确认所有范围的执行策略:

 Get-ExecutionPolicy -List 

如果将LocalMachine策略设置为RemoteSigned ,则应该能够具有如下的任务定义:

开始: C:\ Windows \ System32 \ WindowsPowerShell \ v1.0

运行: C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -NoLogo -File c:\ path \ to \ ps.ps1

您尝试运行的脚本文件不是本机信任的文件。 在文件path之前使用&符号运行命令:

 Powershell.exe -ExecutionPolicy Unrestricted -Command { & 'C:\path\to\PS.PS1' } 

其他PowerShell启动参数可以在PowerShell.exe命令行帮助中find

虽然你可能已经find了解决你的问题的办法,但是我仍然会发布这个笔记来让别人受益。 我遇到了类似的问题。 我基本上使用不同的域帐户来testing和比较。 任务运行得很好,选中“运行用户是否login”。

有几件事要牢记,并确保:

  1. 用于执行任务的帐户必须具有服务器本地安全策略下的“作为批处理作业login”权限(或者是本地pipe理员组的成员)。 您必须指定运行脚本/ bat文件所需的帐户。
  2. 确保你input了正确的密码字符
  3. 如果您以“运行用户是否已login”的方式运行,则2008 R2中的任务不会特别交互式运行。 这可能会失败,特别是如果在脚本上查找任何对象/资源特定于用户configuration文件时创build任务,因为PowerShell会话将需要该信息启动,否则将启动并立即结束。 以“运行用户是否login”的方式运行脚本时定义$ Path的例子,我指定了映射的驱动器。 当任务启动时,它会查找该驱动器,但是由于validation用于运行任务的用户帐户没有login,并且在脚本中,您将引用回源\对象,它需要对付它不存在任务将只是终止。 映射驱动器(\服务器\共享)x:\与实际的UNCpath\服务器\共享
  4. 审查你的步骤,脚本,参数。 有时候,即使你多次完成了这个过程,最小的一块也能产生很大的影响。 有时在input密码或分号时有时候错过了一个字符,有时候在编写脚本或任务时。

检查提供的链接,希望你或其他人可以从这个信息中受益。 注意安全。

 https://technet.microsoft.com/en-us/library/cc722152.aspx