【问题标题】:Script to check Workstation Details and Software Components检查工作站详细信息和软件组件的脚本
【发布时间】:2013-12-15 19:49:27
【问题描述】:

你好 StackOverflow 社区

我想创建某种脚本,在执行时在 PC 上收集信息。

我目前正在推出新版本的资产管理工具“PAS”。该流程包括许多可能由脚本执行的任务。

在开始安装之前我想检查的详细信息是: - 域名 - PC的用户域名 - Windows 版本和位版本(32 与 64) - 是否安装了 .NET Framework 4 或更高版本? (哪个版本) - 使用哪个 MS Office 版本? - 我们的程序由许多 .dll 组成 -> 我想将我们最新的软件包与已安装的软件包进行比较,并收到一个“过时”列表。

脚本会为我节​​省很多时间,因为我需要在数百台 PC 上执行上述操作...

不幸的是,我没有太多的编程知识,但绝对愿意阅读/学习需要。我需要知道的是它是否可以实现,以及创建这样一个脚本(.bat?)的好媒介是什么。我真的不知道从哪里开始。

也许有人可以提示我从哪里开始? :)

非常感谢!

干杯, 格雷格

【问题讨论】:

    标签: windows components settings


    【解决方案1】:

    更新域名: 错误是,我忘了把 echo 放在 %userdomain% 前面,批处理文件也“吃掉”了第一个 % 符号(为什么?)所以我总是必须放两个。批处理文件中正确的工作字符串是:

    echo %%userdomain%%>>Version.txt
    

    ...在文本文件中显示如下:

    BRNS
    

    ...这是我们的域

    【讨论】:

      【解决方案2】:

      好的,我更进一步,发现如何在 cmd 中检查软件的版本并对其进行测试,它工作正常:

      wmic product where "Name like 'Microsoft .Net%'" get Name, Version
      

      (在这里找到答案: Is there a command line command for verifying what version of .NET is installed)

      因此,由于不知道其他任何内容,我将尝试在批处理 (.bat) 文件中完成此操作。如果您知道比批处理文件更好的选择方法,请留下您的 cmets!

      所以经过大量谷歌搜索后,我收集了一些命令包,这将帮助我进行必要的系统查询。

      目前脚本如下所示:

      @ECHO OFF
      CD..
      DEL Version.txt
      wmic os get name, OSArchitecture>Version.txt
      wmic cpu get Name>>Version.txt
      wmic netuse get Name>>Version.txt
      %userdomain%>>Version.txt
      wmic product where "Name like 'Microsoft .Net Framework 4%%'" get Name, Version>>Version.txt
      wmic product where "Name like 'Microsoft SQL Server 2008%%'" get Name, Version>>Version.txt
      "sqlcmd -L">>Version.txt
      wmic product where "Name like 'Micro Focus Server 5%%'" get Name, Version>>Version.txt
      if exist C:\PAS2\local goto end else mkdir C:\PAS2\local
      end:
      

      ...输出(Version.txt)如下所示:


      Name                                                                       OSArchitecture  
      Microsoft Windows 7 Professional |C:\windows|\Device\Harddisk0\Partition2  64-Bit          
      Name                                      
      Intel(R) Core(TM) i7-2620M CPU @ 2.70GHz  
      Name                    
      \\brns01\PUBLIC (M:)    
      \\brns01\DISTRIBU (N:)  
      \\brns01\DOCUMENT (O:)  
      \\brns01\PROJECTS (P:)  
      \\BRNS01\PRITRANS (U:)  
      \\Brns01\USERS\GN (L:)  
      Name                                                 Version    
      Microsoft .NET Framework 4.5.1 Multi-Targeting Pack  4.5.50932  
      Microsoft .NET Framework 4.5 Multi-Targeting Pack    4.5.50710  
      Microsoft .NET Framework 4.5 SDK - DEU Lang Pack     4.5.50710  
      Microsoft .NET Framework 4.5 SDK                     4.5.50710  
      Microsoft .NET Framework 4 Multi-Targeting Pack      4.0.30319  
      Microsoft .NET Framework 4.5.1 RC                    4.5.50861  
      Microsoft .NET Framework 4.5.1 RC (DEU)              4.5.50861  
      Microsoft .NET Framework 4.5.1 SDK                   4.5.51641  
      Microsoft .NET Framework 4.5.1 SDK (Deutsch)         4.5.51641  
      Name                                          Version       
      Microsoft SQL Server 2008 R2-Setup (Deutsch)  10.52.4000.0  
      Microsoft SQL Server 2008 R2 RsFx Driver      10.52.4000.0  
      Microsoft SQL Server 2008 R2-Richtlinien      10.50.1600.1  
      Microsoft SQL Server 2008 R2 Native Client    10.52.4000.0  
      Name                    Version     
      Micro Focus Server 5.1  5.107.0047  
      

      当前状态

      版本检查 .NetFramework:完成!

      版本检查 MS SQL Server:完成!

      版本检查 Micro Focus 5:完成!

      版本和位检查窗口:完成!

      检查域名:打开! (%userdomain% 在 cmd 中有效,但在我的脚本中无效)

      检查当前用户域名:打开! (现在还不知道)

      检查正在运行的 SQL 实例:已打开! (“sqlcmd -L”在 cmd 中有效,但在我的脚本中无效。我在这里有一个非常奇怪的行为。在 CMD 中:当我使用语法 sqlcmd -l 它不起作用,使用 sqlcmd -L [captial Letter] 它按预期工作。奇怪的是,我的印象是语法不区分大小写。当我在批处理文件中使用命令 sqlcmd -L 时,它会生成一长串中文符号,并且所有后续任务都没有被执行,当我在上面列出的代码中使用“sqlcmd -L”时,它不会在我的文件中生成输出)

      检查 c:\pas2\local 是否存在,如果不存在则创建目录:我认为它有效 :)

      当我解决了上述一些问题后,我会重新评论。如果你们有改进我的脚本的提示,请不要犹豫,发表评论!谢谢!

      干杯 格雷格

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-24
        • 2015-05-30
        • 2015-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多