Add (DeviceName:String): IMetabaseDeviceDescriptor;
Add (DeviceName:string): Prognoz.Platform.Interop.Metabase.IMetabaseDeviceDescriptor;
DeviceName. Наименование устройства.
Метод Add добавляет описание принтера в список доступных для печати принтеров по указанному наименованию.
Для выполнения примера добавьте ссылку на системную сборку Metabase.
Sub macro;
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
DP: IMetabaseDevicePolicy;
DevDess: IMetabaseDeviceDescriptors;
Users: IMetabaseUsers;
User: IMetabaseUser;
printers: IMetabaseDeviceDescriptors;
DevDes: IMetabaseDeviceDescriptor;
category: ISecurityCategory;
Desc: ISecurityDescriptor;
Begin
MB := MetabaseClass.Active;
MS := MB.Security;
MP := Ms.Policy;
DP := MP.PrintersPolicy;
DevDess := DP.Enumerate;
users := MS.Users;
user := users.Administrator;
printers := user.Printers;
Try
DevDess.Add("printserver1\Microsoft Office Document Image Writer");
DevDes := DevDess.Add("printserver2\snagit 8");
Except On e: Exception Do
WinApplication.InformationBox(e.Message);
End Try;
desc := DevDes.SecurityDescriptor;
desc.Edit;
category := MP.MandatoryAccess.Category(0);
desc.AccessToken.ClassificationLabel(category) := category.Level(1);
desc.Apply(False);
Printers.Add(DevDes.DeviceName);
Ms.Apply;
End Sub macro;
После выполнения примера в политику безопасности будет добавлено два принтера, один из которых будет добавлен в список доступных для печати принтеров администратора, для него также будет установлена метка безопасности.
Для выполнения примера добавьте ссылку на системную сборку Forms.NET.
Imports Prognoz.Platform.Interop.Metabase;
...
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
MS: IMetabaseSecurity;
MP: IMetabasePolicy;
DP: IMetabaseDevicePolicy;
DevDess: IMetabaseDeviceDescriptors;
Users: IMetabaseUsers;
User: IMetabaseUser;
printers: IMetabaseDeviceDescriptors;
DevDes: IMetabaseDeviceDescriptor;
category: ISecurityCategory;
Desc: ISecurityDescriptor;
Begin
MB := Params.Metabase;
MS := MB.Security;
MP := Ms.Policy;
DP := MP.PrintersPolicy;
DevDess := DP.Enumerate();
users := MS.Users;
user := users.Administrator;
printers := user.Printers;
Try
DevDess.Add("printserver1\Microsoft Office Document Image Writer");
DevDes := DevDess.Add("printserver2\snagit 8");
Except On e: Exception Do
MessageBox.Show(e.Message);
End Try;
desc := DevDes.SecurityDescriptor;
desc.Edit();
category := MP.MandatoryAccess.Category[0];
desc.AccessToken.ClassificationLabel[category] := category.Level[1];
desc.Apply(False);
Printers.Add(DevDes.DeviceName);
Ms.Apply();
End Sub;
После выполнения примера в политику безопасности будет добавлено два принтера, один из которых будет добавлен в список доступных для печати принтеров администратора, для него также будет установлена метка безопасности.
См. также: