我有一个服务器,当用户登录时,会执行一个登录脚本来加载用户有权使用的打印机。这是使用 GPO 完成的。所以当用户登录时,他可以看到他被允许使用的打印机。
我需要做的是在 C# 应用程序中加载这些打印机。我一直在尝试使用 (objectClass=groupPolicyContainer) 过滤器枚举组策略容器的属性,但我无法找到我(当前用户)可以访问的打印机。
我有一个服务器,当用户登录时,会执行一个登录脚本来加载用户有权使用的打印机。这是使用 GPO 完成的。所以当用户登录时,他可以看到他被允许使用的打印机。
我需要做的是在 C# 应用程序中加载这些打印机。我一直在尝试使用 (objectClass=groupPolicyContainer) 过滤器枚举组策略容器的属性,但我无法找到我(当前用户)可以访问的打印机。
您可以为此使用 WMI,尤其是WIN32_Printer类:
using System.Management;
namespace WMIQuery
{
class WmiQuery
{
static void Main(string[] args)
{
/* On the local computer loged as current user
*/
ObjectQuery oQuery0 = new ObjectQuery(@"select * from Win32_printer where shared=true");
ManagementObjectSearcher searcher0 = new ManagementObjectSearcher(oQuery0);
foreach (ManagementObject queryObj in searcher0.Get())
{
Console.WriteLine(String.Format("--> {0} ({1})", queryObj["Name"], queryObj["ShareName"]));
}
}
}
}