检测由GPO配置的屏幕保护程序是否在远程PC

时间:2015-12-18 11:32:56

标签: c# windows wmi screensaver gpo

我正在尝试使用WMI检测屏幕保护程序是否在远程PC上运行。远程PC是Windows 7,但它也适用于W8 / W10。

到目前为止,我正在测试在远程PC上手动设置屏幕保护程序(通过控制面板)并依赖包含 SCREEN_SAVER_NAME.SCR 的WMI Win32_Process

ConnectionOptions options = new ConnectionOptions();
options.Username = "Username";
options.Password = "password";

ManagementScope scope =
    new ManagementScope(
    "\\\\10.1.1.1\\root\\cimv2", options);
 scope.Connect();

while (true)
{
    ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Process");
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query);
    ManagementObjectCollection queryCollection = searcher.Get();

    foreach (var item in queryCollection)
    {
        if ((string)item["Description"] == "PhotoScreensaver.scr")
        {
            Console.WriteLine("screensaver running");
        }
    }
}

通过远程PC上的控制面板设置屏幕保护程序时,此功能正常。

但是,在通过组策略设置屏幕保护程序时,WMI Win32_Process不再列出.SCR文件,我的软件显然无法按预期工作。

知道如何检测使用GPO设置的运行屏幕保护程序吗?

0 个答案:

没有答案