Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2012 在哪里可以找到SQL Server 2012 VSS Writer的注册表项_Sql Server 2012 - Fatal编程技术网

Sql server 2012 在哪里可以找到SQL Server 2012 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

我试图检查在SQL Server安装期间安装的所有默认组件(如VSS writer、本机客户端、安装支持文件等)是否都存在于计算机上。我试图在
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
对象,它们对服务做任何事情。