【实例简介】
C#实现获取并操作某台电脑 的所有Windows 服务,
实现的功能有:选中某一个服务,然后对其进行 启动服务、暂停服务、停止服务、重启服务等操作
【实例截图】
文件:590m.com/f/25127180-493828251-00f338(访问密码:551685)
【核心代码】
获取服务代码:
private void GetServices_Button_Click(object sender, System.EventArgs e)
{
this.listBox1.Items.Clear();
if ( this.textBox1.Text.Equals("") )
{
svcs=ServiceController.GetServices();
this.label2.Text=“Services on then local machine”;
}
else
{
try
{
svcs=ServiceController.GetServices(this.textBox1.Text);
this.textBox1.Text="";
return;
}
catch
{
MessageBox.Show(“Unable to fine the computer!”);
this.textBox1.Text="";
return;
}
}
svcs_enum=svcs.GetEnumerator();
System.ServiceProcess.ServiceController sc;
while(svcs_enum.MoveNext())
{
sc=(ServiceController)svcs_enum.Current;
this.listBox1.Items.Add(sc.ServiceName);
}
}
服务操作代码:
ServiceController sc;
sc=(ServiceController)svcs.GetValue(this.listBox1.SelectedIndex);
enable_disable_MenuItems(sc);
try
{
sc.Stop();
sc.WaitForStatus(ServiceControllerStatus.Stopped);
MessageBox.Show(“Service " sc.ServiceName " stopped on " sc.MachineName " !”);
}
catch
{
MessageBox.Show(“Unable to stop " sc.ServiceName " service!”);
}
ServiceController sc;
sc=(ServiceController)svcs.GetValue(this.listBox1.SelectedIndex);
enable_disable_MenuItems(sc);
try
{
sc.Pause();
sc.WaitForStatus(ServiceControllerStatus.Paused);
MessageBox.Show(“Service " sc.ServiceName " paused on " sc.MachineName " !”);
}
catch
{
MessageBox.Show(“Unable to pause " sc.ServiceName " service!”);
}
以下内容无关:
-------------------------------------------分割线---------------------------------------------
审计(Audit)用于追踪和记录SQL Server实例,或者单个数据库中发生的事件(Event),审计运作的机制是通过捕获事件(Event),把事件包含的信息写入到事件日志(Event Log)或审计文件(Audit File)中,为review提供最真实详细的数据。
审计主要包含服务器审计对象(Server Audit,简称审计对象)、服务器级别的审计规范(Server Audit Specification)、数据库级别的审计规范(Database Audit Specification)和目标(Target)。
审计对象是在服务器级别上创建的对象,必须启用,用于指定审计数据的存储方式和存储路径,并提供工具查看审计数据。
服务器级别的审计规范用于记录服务器级别的事件(Event),
数据库级别的审计规范用于记录数据库级别的事件,
Target是指用于存储Audit数据的媒介,可以是File、Windows Security Event Log 或 Windows Application Event Log,常用的Target是File。
SQL Server使用 Extended Events来帮助创建审计,也就是说,审计是在扩展事件的基础上设计的功能,专门用于审核数据库的安全。为了启用审计,首先需要创建一个SQL Server 实例级的审计对象,然后创建从属于它的“服务器审计规范”或“数据库审计规范”,审计输出的结果数据可以存储到审计文件(File)、安全日志(Security Log)和应用程序日志(Application Log)中。
一,审计对象的构成
构成审计的成分主要有4大类:审计对象、服务器级别的审计规范、数据库级别的审计规范和目标(Target)。
审计对象可以包含一个或多个审计规范,用于指定输出结果存储的路径。审计对象创建时默认的状态是disable。
服务器级别的审计规范,从属于审计对象,它包含服务器级别的审计动作组(Audit Action Group)或单个Audit Action,这些动作组或动作由Extended Events触发。
数据库级别的审计规范,也从属于审计对象,它包含数据库级别的审计动作组(Audit Action Group)或单个Audit Action,这些动作组或动作由Extended Events触发。
Target(也称作Audit Destination)用于存储审计的结果,Target可以是一个file,Windows Security Event log 或者Windows application event log.
Action Group 是预定义的一组Action,每一个Action(也称作Action Event)都是一个原子事件,因此,Action Group也是由Action Event构成的组合。当Event(也称作Action)发生时,Event被发送到审计对象(audit)中,SQL Server把数据记录到Target中。关于审计的动作组和动作的详细信息,请阅读官方文档:SQL Server Audit Action Groups and Actions
二,审计对象
审计监控SQL Server实例,从服务器级别或数据库级别的Action或Action Group中收集这些Action发生时产生的数据。
当定义一个审计对象时,需要指定保存审计输出结果的路径,即audit的Target(审计的目的,audit destination)。新建的Audit默认处于disable状态,不能自动追踪和记录(审计)任何audit action。当Audit启用后,audit destination会接收从审计输出的数据。