2

我需要通过Windows Server 2008上的Powershell v2来安排任务。我正在使用MS PowershellPack中的TaskScheduler模块。PowerShellPack - TaskScheduler模块 - 没有登录用户的运行任务

调度任务是好的,但我需要任务即使没有人登录也能运行。 我看到在Win8或Win2k12(this QA)上的Powershell v3中这是可能的。但是,这不是我的情况 - 我需要在PowerShell版本2中。

这是可能的模块,我正在使用?或者有一些解决方法?

+0

您是否运行Windows Server 2008或Windows Server 2008 R2?如果您运行的是Windows Server 2008 R2,则可以安装.NET Framework 4.5.1,然后安装Windows Management Framework Core 4.0以获取PowerShell v4.0。 –

+0

Win2k8 R2。不幸的是,v3或v4不是我们的选择,因为我们正在使用Sharepoint 2010,所以我们所有的PowerShell都必须保持v2.0(Powershell ISE不兼容...) – jumbo

回答

3

http://msdn.microsoft.com/en-us/library/windows/desktop/bb736357(v=vs.85).aspx

在V2世界不可能了,但是,这将完成你需要的一切,并可以从PowerShell的

直接调用

编辑:

这个问题让我思考,并且我意识到你的情况与我的情况稍有不同,所以这个应该是可能的。所以我错了。事实证明,Scheduler.service comobject与Powershell 2.0兼容,但也仅适用于Task Scheduler 2.0。我认为这不是因为我在XP上,并且任务计划程序2.0仅在Vista和更高版本中可用。

寻找该MS PowershellPack的源代码,我发现它所做的只是使用Scheduler.service com对象。 https://github.com/sushihangover/SushiHangover-PowerShell/tree/master/modules/TaskScheduler

对于如何处理自己这个COM对象的一个​​很好的教程:https://blogs.technet.microsoft.com/heyscriptingguy/2009/04/01/hey-scripting-guy-how-can-i-best-work-with-task-scheduler/

而且回答你的问题:How to set schedule.service "Run whether user is logged on or not" in Powershell?

很抱歉的误解。我不会让历史重演:D
无论哪种方式,schtasks.exe将涵盖所有的基础和IMO更容易使用,因为它是一个命令,并且当试图在远程服务器上安排任务时不需要调用会话。

+0

当那些正确和被接受的时候,它总是有点难过答案也是那些“不,这不会工作”...... – jumbo

+0

诚然,Windows XP和V2世界的局限性是令人难过的。但它应该很快就会消失 – Cole9350

+0

只需为schtasks.exe解决方案提供“链接的QA”即可 - http://stackoverflow.com/questions/11190405/how-to-schedule-a-task-wether-the-user -is-logged-on-or-in-powers-shell – jumbo

相关问题