Set objService = GetObject("winmgmts:\\.")
Set objNewJob = objService.Get("Win32_ScheduledJob")
errJobCreated = objNewJob.Create("Program-to-execute.exe", "ugly-formatted-time-string-per-Microsoft-docs",True ,1 OR 4 OR 16, , ,JobID)
If Err.Number = 0 Then
Wscript.Echo "New Job ID: " & JobID
Else
Wscript.Echo "An error occurred: " & errJobCreated
End If
这一切都取决于你的最终目的是什么。您可以使用仅当用户登录设置为 DISABLED 时才运行的选项来运行计划任务。您可以在远程机器上使用 psexec。更好的可能是将流程作为服务运行。查看此 Google 搜索、此其他 Google 搜索、此线程和此其他线程,以了解您寻找解决方案的一些可能线索。最终,在 Windows 机器上似乎没有与 nohup完全等价的东西。
您可以使用 start 命令在命令窗口的后台运行进程。
command2 等到 command1 完成,但 command4 不等待 command3 完成。
如果您需要独立于登录的用户运行,则需要将进程作为服务启动,并且可以使用anysrv.exe
您可能想查看 Windows 服务。您可以下载一些工具来将任何进程托管为 Windows 服务。这会导致进程在 Windows 启动时在后台加载,因此如果它不需要用户交互,您应该能够像这样托管它。
Windows Server 2003 资源工具包
您使用的工具称为 srvany.exe。
在 Windows 中,让用户启动的进程在注销后继续运行(即“nohup”所做的)的唯一方法是通过“计划任务”或作为 Windows 服务启动它。当用户注销其登录会话中的所有进程时,将被终止。
如果您喜欢尝试“计划任务”方法,您会想知道如何以编程方式创建它们。Win32_ScheduledJob WMI 类可以做到这一点。此处详细提供了文档:http: //www.microsoft.com/technet/scriptcenter/guide/sas_man_rsxs.mspx? mfr= true 基本上,您正在考虑做(从微软无耻地窃取):
要授予“joe 用户”创建计划任务的能力,您必须修改 %SystemRoot%\Tasks 文件夹的权限。有关这方面的一些信息,请参见此处:http ://technet.microsoft.com/en-us/library/cc785125(WS.10).aspx
这一切都取决于你的最终目的是什么。您可以使用仅当用户登录设置为 DISABLED 时才运行的选项来运行计划任务。您可以在远程机器上使用 psexec。更好的可能是将流程作为服务运行。查看此 Google 搜索、此其他 Google 搜索、此线程和此其他线程,以了解您寻找解决方案的一些可能线索。最终,在 Windows 机器上似乎没有与 nohup完全等价的东西。