Exemplo n.º 1
0
        public IEnumerable <MsSqlServers> GetSqlInstanceNames()
        {
            var machineName = Environment.MachineName;

            using (RegistryKey hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, registryView))
            {
                RegistryKey instanceKey = hklm.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL", false);
                if (instanceKey != null)
                {
                    foreach (var instanceName in instanceKey.GetValueNames())
                    {
                        var value = new MsSqlServers()
                        {
                            Server = machineName,
                            Name   = $@"{machineName}\{instanceName}"
                        };
                        yield return(value);  // (machineName + @"\" + instanceName);
                    }
                }
            }
        }
Exemplo n.º 2
0
        //public string Get

        // https://stackoverflow.com/questions/1054984/how-can-i-get-column-names-from-a-table-in-sql-server


        public void Inventory(string saveToFolder)
        {
            var InventoryFolder = saveToFolder;

            Console.WriteLine($"{Utilities.LogTime()} Begin MsSqlInventory::...");

            sqlinstances = MsSqlServers.GetSqlInstanceNames().ToList <MsSqlServers>();
            MsSqlServers.ToJsonFile(sqlinstances, InventoryTime, InventoryFolder);
            Console.WriteLine($"{Utilities.LogTime()} Completed MsSqlInventory::..:[GetSqlInstanceNames]");

            sqlinstances.ForEach(d => { dblist
                                        .AddRange(MsSqlDatabases.GetSqlDatabases(d.Server, d.Name)
                                                  .ToList <MsSqlDatabases>()); });
            MsSqlDatabases.ToJsonFile(dblist, InventoryTime, InventoryFolder);
            Console.WriteLine($"{Utilities.LogTime()} Completed MsSqlInventory::..:[GetSqlDatabases]");

            //dblist.ForEach(d => { tblist.AddRange(GetSqlDatabaseTables(d.Server, d.Instance, d.Database).ToList<MsSqlTables>()); });
            dblist.ForEach(d => { tblist
                                  .AddRange(MsSqlTables.GetSqlDatabaseTables(d.Server, d.Instance, d.Name)); });
            MsSqlTables.ToJsonFile(tblist, InventoryTime, InventoryFolder);
            Console.WriteLine($"{Utilities.LogTime()} Completed MsSqlInventory::..:[GetSqlDatabaseTables]");

            dblist.ForEach(d => { columns
                                  .AddRange(MsSqlTableColumns.GetSqlTableColumns(d.Server, d.Instance, d.Name)
                                            .ToList <MsSqlTableColumns>()); });
            MsSqlTableColumns.ToJsonFile(columns, InventoryTime, InventoryFolder);
            Console.WriteLine($"{Utilities.LogTime()} Completed MsSqlInventory::..:[GetSqlTableColumns]");

            dblist.ForEach(d => { procedures
                                  .AddRange(MsSqlStoredProcedure.GetSqlStoredProcedures(d.Server, d.Instance, d.Name)
                                            .ToList <MsSqlStoredProcedure>()); });
            MsSqlStoredProcedure.ToJsonFile(procedures, InventoryTime, InventoryFolder);
            Console.WriteLine($"{Utilities.LogTime()} Completed MsSqlInventory::..:[GetSqlStoredProcedures({procedures.Count()})]");

            //Console.WriteLine($"{Utilities.LogTime()} Completed MsSqlInventory::..:[ToJsonFile]");

            //var ix = 0;
        }