c# – 通过WMI进行自动更新设置
发布时间:2020-12-15 22:32:07 所属栏目:百科 来源:网络整理
导读:尝试从远程服务器的注册表中提取自动更新设置.出于某种原因,即使手动检查密钥是1-4,它也会返回0.我在俯瞰什么?下面的代码段: ManagementScope msAutoUpdateReg = new ManagementScope(@"" + remoteServer + @"rootDEFAULT:StdRegProv",connection);msA
尝试从远程服务器的注册表中提取自动更新设置.出于某种原因,即使手动检查密钥是1-4,它也会返回0.我在俯瞰什么?下面的代码段:
ManagementScope msAutoUpdateReg = new ManagementScope(@"" + remoteServer + @"rootDEFAULT:StdRegProv",connection); msAutoUpdateReg.Connect(); ManagementClass ci = new ManagementClass(msAutoUpdateReg,new ManagementPath(@"DEFAULT:StdRegProv"),new ObjectGetOptions()); ManagementBaSEObject inParams = ci.GetMethodParameters("GetDWORDValue"); inParams["hDefKey"] = 0x80000002; //HKLM inParams["sSubKeyName"] = @"SoftwareMicrosoftWindowsCurrentVersionWindowsUpdateAuto Update"; inParams["sValueName"] = "AUOptions"; ManagementBaSEObject outParams = ci.InvokeMethod("GetDWORDValue",inParams,null); UInt32 auValue = (UInt32)outParams["uValue"]; if (auValue.ToString() != "0") { if (auValue == 1) { string currentSetting = "Keep my computer up to date has been disabled in Automatic Updates."; } if (auValue == 2) { string currentSetting = "Notify of download and installation."; } if (auValue == 3) { string currentSetting = "Automatically download and notify of installation."; } if (auValue == 4) { string currentSetting = "Automatically download and scheduled installation."; } } else { string currentSetting = "Unknown"; } 解决方法
我想消除过程可能对此有所帮助……
1)这是在一台服务器上发生的,还是在所有服务器上都有?在你自己的本地机器上怎么样?它是Windows版本的东西吗?例如,我的Windows 10框似乎没有显示您正在寻找的SubKey名称. 2)如果将sValueName更改为“foo”,您也会得到零吗?值为0表示错误? 3)你可以把手表放在outParams上并查看返回的值是多少? 4)您是否被UAC,防火墙或其他权限问题阻止?你可以毫无问题地对这台服务器执行其他WMI命令吗?您是否需要以管理员身份运行才能使其正常运行? 5)您是否获得其他例外或返回值?我猜你在这里发布了一部分代码,所以这个代码是在try / catch块中吗? 很抱歉,如果这听起来模糊或过于简单,但我认为您可能需要查看哪些有用,哪些无法查看是否可以识别模式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |