以类似格式从具有不同日期设置的服务器获取计划任务

时间:2013-04-03 08:29:04

标签: windows scheduled-tasks windows-server-2003 windows-server-2008-r2

  • 开始情况:50多种(最糟糕的情况)不同语言的服务器很多。每个服务器可能具有不同的语言/日期设置。操作系统是w2k3和w2k8r2。 我想从所有这些服务器收集计划任务。特别是日期必须是一种文化模式,因为我想将收集的文件上传到数据库中。我更喜欢一种适用于两种操作系统的解决方案,除了其他任何东西都不行。
  • 第一个想法:使用cmd命令“schtasks / query / fo csv / v> file.txt”收集数据。这很好用,我得到了我需要的所有信息。 (在2k3和2k8中列的顺序不同;但这可以在c#中处理)。 问题:在这个解决方案中糟透了日期事物(不同的日期格式导致语言设置) - 我不想手动解析它。
  • 第二个想法:通过wmi获取计划任务。在msdn上轻松找到了一个网站。 问题:“此类只能返回使用脚本或AT.exe创建的作业。它无法返回有关由”计划任务“向导创建或修改的作业的信息。我知道服务器上大约有30-40%的schtasks是手动创建的(所以通过任务向导)。
  • 问题:那么,如何在不手动解析日期信息的情况下获取所有schtasks信息?

2 个答案:

答案 0 :(得分:1)

新想法 - 编写一个脚本,通过服务器的两种方式收集系统信息。首先使用systeminfo wmi,然后使用cmd命令“systeminfo> file.txt”。

systeminfowmi-file包含唯一模式的installdate (例如:20121114094908.000000 + 060)。 cmd-command的文件包含与文化相关的安装日期: (例如:14.11.2012,09:49:08)

通过这些信息,我编写了一个算法,在cmd-commands的文件中搜索wmifile给出的日期和时间部分。有了这个,我知道年/月/日等的顺序,而不知道在这个服务器中使用了哪种语言/日期设置。(当然你可以重新结束这个,但我不关心这个。)

收集脚本(sysinfo wmi和sysinfo cmd)每天运行。之后运行日期识别。因此,将为每个服务器创建一个唯一的日期转换密钥。此信息已加载到数据库中。 另外,您将来通过存储过程获得具有相应日期转换键的所有服务器名称 - 然后您将能够准确地转换每个日期。

再次感谢用户2199816 - 他的解决方案也很有效。

答案 1 :(得分:0)

将命令行任务用于file.txt并将该文件导入Excel。然后使用日期/时间格式来查看它是否会自动正确解析它们。

http://excelsemipro.com/2011/06/regional-date-formats-in-excel/