Sql server 2012 在哪里可以找到SQL Server 2012 VSS Writer的注册表项
我试图检查在SQL Server安装期间安装的所有默认组件(如VSS writer、本机客户端、安装支持文件等)是否都存在于计算机上。我试图在Sql server 2012 在哪里可以找到SQL Server 2012 VSS Writer的注册表项,sql-server-2012,Sql Server 2012,我试图检查在SQL Server安装期间安装的所有默认组件(如VSS writer、本机客户端、安装支持文件等)是否都存在于计算机上。我试图在SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\中查找,找到了除VSS writer之外的每个组件的条目。 所以我的问题是:在哪里可以找到SQL Server 2012 VSS writer的注册表项?或者是否有其他方法可以使用C#&SQL/T-SQL检测它 使用Service
SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
中查找,找到了除VSS writer之外的每个组件的条目。所以我的问题是:在哪里可以找到SQL Server 2012 VSS writer的注册表项?或者是否有其他方法可以使用C#&SQL/T-SQL检测它 使用
ServiceProcess
命名空间和ServiceController
对象,您可以找到此计算机上是否存在VSS Writer(或您有权访问的任何其他计算机)。下面是一个非常粗糙的方法:
using System;
using System.ServiceProcess;
namespace GetService
{
class Program
{
static void Main(string[] args)
{
var services = ServiceController.GetServices();
bool vssExists = false;
foreach (ServiceController sc in services)
{
Console.WriteLine("Name: {0} is {1}", sc.DisplayName, sc.Status);
if (sc.DisplayName.Equals("SQL Server VSS Writer"))
vssExists = true;
}
Console.WriteLine(vssExists);
Console.ReadLine();
}
}
}
检查服务是否足够?如果它在那里并且正在运行(这是默认设置),你可以假设它正在工作;手动检查的情况并非如此;不过,注册表在默认情况下也不会返回true/false,所以我看不出有什么区别。如果您的
是“VSSWriter服务是否正在运行=是/否”,那么我们如何找到它??还可以停止VSS写入;因此,即使在这种情况下,它存在的结果应该是积极的;使用System.ServiceProcess
和ServiceController
对象,它们对服务做任何事情。