in cli_tools/import_precheck/precheck/check_sha2.go [41:71]
func (s *SHA2DriverSigningCheck) Run() (*Report, error) {
r := &Report{name: s.GetName()}
if runtime.GOOS != "windows" || !strings.Contains(s.OSInfo.Version, "6.1") {
r.result = Skipped
r.Info("Only applicable on Windows 2008 systems.")
return r, nil
}
ctx := context.Background()
pkgs, err := packages.GetInstalledPackages(ctx)
if err != nil {
return nil, fmt.Errorf("GetInstalledPackages error: %s", err)
}
for _, pkg := range pkgs.WUA {
for _, id := range pkg.KBArticleIDs {
if id == sha2Windows2008R2KB {
r.Info(fmt.Sprintf("Windows Update containing SHA2 driver signing support found: %v", pkg))
return r, nil
}
}
}
for _, pkg := range pkgs.QFE {
if pkg.HotFixID == sha2Windows2008R2KB {
r.Info(fmt.Sprintf("Windows Update containing SHA2 driver signing support found: %v", pkg))
return r, nil
}
}
r.Fatal(fmt.Sprintf("%s is required to support SHA2-signed drivers.", sha2Windows2008R2KB))
return r, nil
}