Класс WpcUserSettings
wmi, существующий в пространстве имен root\CIMV2\Applications\WindowsParentalControls
, не предоставляет какого-либо метода для обновления данных пользователем, но все доступные свойства доступны для чтения / записи, за исключением, очевидно, свойства SID
. Вы можете перебирать свойства для конкретного пользователя и изменять значения.
Таким образом, вы можете сделать запрос Wmi, используя предложение, подобное, чтобы получить всех пользователей
SELECT * FROM WpcUserSettings
или это предложение, чтобы изменить свойства конкретного пользователя
SELECT * FROM WpcUserSettings Where SID="the SID of the user to modify"
затем обновите значения свойств, которые вы хотите изменить, и, наконец, вызовите метод Put
, чтобы установить новые значения.
проверьте этот пример приложения.
using System;
using System.Collections.Generic;
using System.Management;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2\\Applications\\WindowsParentalControls", "SELECT * FROM WpcUserSettings");
foreach (ManagementObject queryObj in searcher.Get())
{
if (queryObj["SID"] == "The user SID to modify")
{
//set the properties here
queryObj["AppRestrictions"] = true;
queryObj["HourlyRestrictions"] = true;
queryObj["LoggingRequired"] = false;
//queryObj["LogonHours"] = ;
//queryObj["OverrideRequests"] = ;
queryObj["WpcEnabled"] = true;
queryObj.Put();
}
}
}
catch (ManagementException e)
{
Console.WriteLine("An error occurred setting the WMI data: " + e.Message);
}
Console.ReadKey();
}
}
}