如何使用Javascript或Node.js来检查windows操作系统的更新状态?

问题描述 投票:0回答:1

我正在寻找一种方法来检查windows操作系统和安全更新是否是最新的。如果没有,那么我想获取这些信息。除此之外,如果有任何可用的更新,那么我也想获取这些信息。

我阅读了几个博客和StackOverflow的问题,得到了以下答案。

  1. 使用... wmic qfe list 但这给出了已经安装的更新信息,却没有状态(我需要读取状态,如失败、中止或成功)。
  2. 使用下面的Powershell脚本(这给出了关于更新是否可用的信息)。
$u = New-Object -ComObject Microsoft.Update.Session
$u.ClientApplicationID = 'MSDN Sample Script'
$s = $u.CreateUpdateSearcher()
$r = $s.Search('IsInstalled=0')
$r.updates|select -ExpandProperty Title

有没有办法检查 "Windows操作系统和安全更新是否是最新的?如果没有,则获得状态(失败、中止等)。如果有任何更新,那么我想获取有关可用更新的信息"。

我如何使用Javascript或Node.js实现这个功能?

javascript node.js powershell windows-update
1个回答
1
投票

据我所知,对于非企业站来说,没有任何功能可以找出系统是否已经完全更新(仅通过windows更新)。 如果你有完整的更新列表,那么你可以根据列表进行检查。

对于更新管理,你必须配置Windows 10企业版和系统中心,然后你可以检查站是否安装了所需的更新。 有了这个你就可以检查了。

要获得安装的补丁列表与状态,你必须做以下的方式。

$Session = New-Object -ComObject "Microsoft.Update.Session"
$Searcher = $Session.CreateUpdateSearcher()
$historyCount = $Searcher.GetTotalHistoryCount()
$Searcher.QueryHistory(0, $historyCount) | Select-Object Title, Date,
     @{name='ResultCode'; expression={switch($_.ResultCode){ 0 {'Not Started'}; 1 {'In Progress'}; 
          2 {'Success'}; 3 {'Success with Errors'}; 4 {'Failed'}; 5 {'Aborted'}
     }}}

你把它保存为powershell脚本,如. check_updates.ps1.

要从javascript中运行它,你必须生成进程(从脚本保存的dir中运行)。

var spawn = require("child_process").spawn;
spawn("powershell.exe",[".\check_updates.ps1"]);

在这种生成过程中,你必须注意的是安全问题。 不要忘记分配正确的权限。

对于Node.js,请查看这个答案。从Node.js执行Powershell脚本.

对于Node.js,你必须用不同的方式来写,类似于上面发布的链接。

var spawn = require('child_process').spawn,
    updates = spawn("powershell.exe",["C:\\path\\test\\check_updates.ps1"]);

updates.stdout.on('data', function (data) {
  console.log('stdout: ' + data.toString());
});

updates.stderr.on('data', function (data) {
  console.log('stderr: ' + data.toString());
});

updates.on('exit', function (code) {
  console.log('child process exited with code ' + code.toString());
});

updates.stdin.end();

注意: 有时,失败的更新可能包含在一个累积更新中,所以它可以是棘手的,以找到它是否被安装。

© www.soinside.com 2019 - 2024. All rights reserved.