Аналогичный предыдущему слайд скиллов для сдачи экзамена 70-462 Administering Microsoft SQL Server 2012 Databases.
среда, 6 марта 2013 г.
Необходимые знания и навыки для сдачи экзамена MS 70-496
Составил и отобразил в наглядной форме все скиллы, необходимые для сдачи экзамена 70-496 Administering Visual Studio Team Foundation Server 2012. Делал для себя, для сдачи экзамена, но возможно кому-то ещё пригодится.
суббота, 26 января 2013 г.
T-SQL Информация о резервных копиях для баз
Информация по резервированию для указанной базы за последние n-дней
-- Имя базы данных
DECLARE @database_name char(100) ='NameDatabase'
-- Сколько дней от текущей даты нужно анализировать
DECLARE @day int = 1
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name as 'Database name',
CASE msdb..backupset.type
WHEN 'D' THEN 'Database'
WHEN 'L' THEN 'Log'
END AS backup_type,
msdb.dbo.backupset.backup_size,
convert(varchar, dateadd(s, datediff (s, msdb.dbo.backupset.backup_start_date, msdb.dbo.backupset.backup_finish_date), convert(datetime2, '0001-01-01')), 108) as backup_duration,
msdb.dbo.backupset.backup_start_date AS Start_backup,
msdb.dbo.backupset.backup_finish_date AS Finish_backup,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description,
msdb.dbo.backupset.expiration_date AS Expiration_backup
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - @day) and msdb.dbo.backupset.database_name = @database_name
ORDER BY
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_finish_date desc
Информация о последней сделанной резервной копии для всех баз данных на SQL-сервере
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
INNER JOIN sys.sysdatabases ON sys.sysdatabases.name = msdb.dbo.backupset.database_name
WHERE msdb..backupset.type = 'D'
GROUP BY
msdb.dbo.backupset.database_name
ORDER BY
last_db_backup_date
Список баз данных с количеством часов, которое прошло с последней сделанной резервной копии (базы, которые резервировались за последние 24 часа, в список не попадают)
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date,
DATEDIFF(hh, MAX(msdb.dbo.backupset.backup_finish_date), GETDATE()) AS [Backup Age (Hours)]
FROM master.dbo.sysdatabases AS M LEFT JOIN msdb.dbo.backupset ON M.Name = msdb.dbo.backupset.database_name
WHERE msdb.dbo.backupset.type = 'D'
GROUP BY msdb.dbo.backupset.database_name
HAVING (MAX(msdb.dbo.backupset.backup_finish_date) < DATEADD(hh, - 24, GETDATE()))
UNION
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
M.NAME AS database_name,
NULL AS [Last Data Backup Date],
9999 AS [Backup Age (Hours)]
FROM
master.dbo.sysdatabases AS M LEFT JOIN msdb.dbo.backupset
ON M.name = msdb.dbo.backupset.database_name
WHERE msdb.dbo.backupset.database_name IS NULL AND M.name <> 'tempdb'
ORDER BY
msdb.dbo.backupset.database_name
Источник: http://www.mssqltips.com/sqlservertip/1601/script-to-retrieve-sql-server-database-backup-history-and-no-backups/
-- Имя базы данных
DECLARE @database_name char(100) ='NameDatabase'
-- Сколько дней от текущей даты нужно анализировать
DECLARE @day int = 1
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name as 'Database name',
CASE msdb..backupset.type
WHEN 'D' THEN 'Database'
WHEN 'L' THEN 'Log'
END AS backup_type,
msdb.dbo.backupset.backup_size,
convert(varchar, dateadd(s, datediff (s, msdb.dbo.backupset.backup_start_date, msdb.dbo.backupset.backup_finish_date), convert(datetime2, '0001-01-01')), 108) as backup_duration,
msdb.dbo.backupset.backup_start_date AS Start_backup,
msdb.dbo.backupset.backup_finish_date AS Finish_backup,
msdb.dbo.backupmediafamily.physical_device_name,
msdb.dbo.backupmediafamily.logical_device_name,
msdb.dbo.backupset.name AS backupset_name,
msdb.dbo.backupset.description,
msdb.dbo.backupset.expiration_date AS Expiration_backup
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
WHERE (CONVERT(datetime, msdb.dbo.backupset.backup_start_date, 102) >= GETDATE() - @day) and msdb.dbo.backupset.database_name = @database_name
ORDER BY
msdb.dbo.backupset.database_name,
msdb.dbo.backupset.backup_finish_date desc
Информация о последней сделанной резервной копии для всех баз данных на SQL-сервере
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date
FROM msdb.dbo.backupmediafamily
INNER JOIN msdb.dbo.backupset ON msdb.dbo.backupmediafamily.media_set_id = msdb.dbo.backupset.media_set_id
INNER JOIN sys.sysdatabases ON sys.sysdatabases.name = msdb.dbo.backupset.database_name
WHERE msdb..backupset.type = 'D'
GROUP BY
msdb.dbo.backupset.database_name
ORDER BY
last_db_backup_date
Список баз данных с количеством часов, которое прошло с последней сделанной резервной копии (базы, которые резервировались за последние 24 часа, в список не попадают)
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
msdb.dbo.backupset.database_name,
MAX(msdb.dbo.backupset.backup_finish_date) AS last_db_backup_date,
DATEDIFF(hh, MAX(msdb.dbo.backupset.backup_finish_date), GETDATE()) AS [Backup Age (Hours)]
FROM master.dbo.sysdatabases AS M LEFT JOIN msdb.dbo.backupset ON M.Name = msdb.dbo.backupset.database_name
WHERE msdb.dbo.backupset.type = 'D'
GROUP BY msdb.dbo.backupset.database_name
HAVING (MAX(msdb.dbo.backupset.backup_finish_date) < DATEADD(hh, - 24, GETDATE()))
UNION
SELECT
CONVERT(CHAR(100), SERVERPROPERTY('Servername')) AS Server,
M.NAME AS database_name,
NULL AS [Last Data Backup Date],
9999 AS [Backup Age (Hours)]
FROM
master.dbo.sysdatabases AS M LEFT JOIN msdb.dbo.backupset
ON M.name = msdb.dbo.backupset.database_name
WHERE msdb.dbo.backupset.database_name IS NULL AND M.name <> 'tempdb'
ORDER BY
msdb.dbo.backupset.database_name
Источник: http://www.mssqltips.com/sqlservertip/1601/script-to-retrieve-sql-server-database-backup-history-and-no-backups/
четверг, 17 января 2013 г.
Настройка прогнозирования (Forecasting) в бэклоге TFS 2012
Настройка прогнозирования в бэклоге настраивается в конфиге CommonConfiguration.xml. В разделе TypeFields задаётся поле с типом "Effort".
<TypeFields>
...
<TypeField refname="Microsoft.VSTS.Scheduling.Size" type="Effort" />
<TypeField refname="Microsoft.VSTS.Common.Discipline" type="Activity" />
<TypeField refname="Microsoft.VSTS.Feedback.ApplicationStartInformation" type="ApplicationStartInformation" />
...
</TypeFields>
Вы можете указать здесь другое поле для Forecasting.
понедельник, 14 января 2013 г.
Выгрузка конфигов (Categories, AgileProcessConfig, CommonConfiguration) с помощью PowerShell
cls
cd 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE'
# Указать путь к папке, куда будут выгружаться и откуда загружаться конфиги
$fld='C:\Temp'
# Указать Uri TFS коллекции
$srv='http://tfs:8080/tfs/CollectionName'
# Указать имена проектов (может быть один)
$projects=@('TFSProject1','TFSProject2')
if (!(Test-Path $fld)){
new-item -type directory -path $fld
}
write-host '[0] - Выгрузка всех конфигов (Categories, AgileProcessConfig, CommonConfiguration)'
write-host '-------------------------'
write-host '[1] - Выгрузка Categories'
write-host '[2] - Выгрузка AgileProcessConfig'
write-host '[3] - Выгрузка CommonConfiguration'
write-host '-------------------------'
write-host '[5] - Загрузка всех конфигов (Categories, AgileProcessConfig, CommonConfiguration)'
write-host '-------------------------'
write-host '[6] - Загрузка Categories'
write-host '[7] - Загрузка AgileProcessConfig'
write-host '[8] - Загрузка CommonConfiguration'
$action = read-host "Выберите действие: "
# Выгрузка шаблонов
foreach ($p in $projects)
{
write-host ' '
write-host '---------- '
write-host 'Проект ' -nonewline
write-host $p -nonewline -foregroundcolor Red
write-host '... '
write-host ' '
if ($action -eq '0')
{
write-host 'Выгрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcategories /collection:$srv /p:$p /f:$fld"\["$p"]_categories.xml"
write-host 'Выгрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportagileprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_AgileConfiguration.xml"
write-host 'Выгрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcommonprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_CommonConfiguration.xml"
}
elseif ($action -eq '1')
{
write-host 'Выгрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcategories /collection:$srv /p:$p /f:$fld"\["$p"]_categories.xml"
}
elseif ($action -eq '2')
{
write-host 'Выгрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportagileprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_AgileConfiguration.xml"
}
elseif ($action -eq '3')
{
write-host 'Выгрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcommonprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_CommonConfiguration.xml"
}
elseif ($action -eq '5')
{
write-host 'Загрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcategories /collection:$srv /p:$p /f:$fld"\categories.xml"
write-host 'Загрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importagileprocessconfig /collection:$srv /p:$p /f:$fld"\AgileConfiguration.xml"
write-host 'Загрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcommonprocessconfig /collection:$srv /p:$p /f:$fld"\CommonConfiguration.xml"
}
elseif ($action -eq '6')
{
write-host 'Загрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcategories /collection:$srv /p:$p /f:$fld"\categories.xml"
}
elseif ($action -eq '7')
{
write-host 'Загрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importagileprocessconfig /collection:$srv /p:$p /f:$fld"\AgileConfiguration.xml"
}
elseif ($action -eq '8')
{
write-host 'Загрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcommonprocessconfig /collection:$srv /p:$p /f:$fld"\CommonConfiguration.xml"
}
}
cd 'C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE'
# Указать путь к папке, куда будут выгружаться и откуда загружаться конфиги
$fld='C:\Temp'
# Указать Uri TFS коллекции
$srv='http://tfs:8080/tfs/CollectionName'
# Указать имена проектов (может быть один)
$projects=@('TFSProject1','TFSProject2')
if (!(Test-Path $fld)){
new-item -type directory -path $fld
}
write-host '[0] - Выгрузка всех конфигов (Categories, AgileProcessConfig, CommonConfiguration)'
write-host '-------------------------'
write-host '[1] - Выгрузка Categories'
write-host '[2] - Выгрузка AgileProcessConfig'
write-host '[3] - Выгрузка CommonConfiguration'
write-host '-------------------------'
write-host '[5] - Загрузка всех конфигов (Categories, AgileProcessConfig, CommonConfiguration)'
write-host '-------------------------'
write-host '[6] - Загрузка Categories'
write-host '[7] - Загрузка AgileProcessConfig'
write-host '[8] - Загрузка CommonConfiguration'
$action = read-host "Выберите действие: "
# Выгрузка шаблонов
foreach ($p in $projects)
{
write-host ' '
write-host '---------- '
write-host 'Проект ' -nonewline
write-host $p -nonewline -foregroundcolor Red
write-host '... '
write-host ' '
if ($action -eq '0')
{
write-host 'Выгрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcategories /collection:$srv /p:$p /f:$fld"\["$p"]_categories.xml"
write-host 'Выгрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportagileprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_AgileConfiguration.xml"
write-host 'Выгрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcommonprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_CommonConfiguration.xml"
}
elseif ($action -eq '1')
{
write-host 'Выгрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcategories /collection:$srv /p:$p /f:$fld"\["$p"]_categories.xml"
}
elseif ($action -eq '2')
{
write-host 'Выгрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportagileprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_AgileConfiguration.xml"
}
elseif ($action -eq '3')
{
write-host 'Выгрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin exportcommonprocessconfig /collection:$srv /p:$p /f:$fld"\["$p"]_CommonConfiguration.xml"
}
elseif ($action -eq '5')
{
write-host 'Загрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcategories /collection:$srv /p:$p /f:$fld"\categories.xml"
write-host 'Загрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importagileprocessconfig /collection:$srv /p:$p /f:$fld"\AgileConfiguration.xml"
write-host 'Загрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcommonprocessconfig /collection:$srv /p:$p /f:$fld"\CommonConfiguration.xml"
}
elseif ($action -eq '6')
{
write-host 'Загрузка Categories ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcategories /collection:$srv /p:$p /f:$fld"\categories.xml"
}
elseif ($action -eq '7')
{
write-host 'Загрузка AgileProcessConfig ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importagileprocessconfig /collection:$srv /p:$p /f:$fld"\AgileConfiguration.xml"
}
elseif ($action -eq '8')
{
write-host 'Загрузка CommonConfiguration ' -nonewline
write-host ' ' -nonewline -foregroundcolor Red
write-host ': ' -nonewline
.\witadmin importcommonprocessconfig /collection:$srv /p:$p /f:$fld"\CommonConfiguration.xml"
}
}
суббота, 12 января 2013 г.
Просмотр списка проектов в коллекции с помощью PowerShell
Cls
# Здесь указать Uri к TFS коллекции
$srv='http://tfs:8080/tfs/CollectionName'
$Assem = (
"Microsoft.TeamFoundation.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" ,
"Microsoft.TeamFoundation.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
)
$Source = @"
using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Server;
using Microsoft.TeamFoundation.Common;
using System.Text;
namespace LP
{
public class Program
{
public Program()
{
}
public void Get(string url)
{
TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri (url));
ICommonStructureService css = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService));
List<string> list = new List<string>();
foreach (ProjectInfo projectInfo in css.ListAllProjects())
{
list.Add(projectInfo.Name);
}
list.Sort();
foreach (string value in list)
{
//Console.Write("'");
Console.WriteLine(value);
//Console.Write("',");
}
}
}
}
"@
Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp
$LT = New-Object LP.Program
$LT.Get($srv)
# Здесь указать Uri к TFS коллекции
$srv='http://tfs:8080/tfs/CollectionName'
$Assem = (
"Microsoft.TeamFoundation.Client, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" ,
"Microsoft.TeamFoundation.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
)
$Source = @"
using System;
using System.Collections.Generic;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Server;
using Microsoft.TeamFoundation.Common;
using System.Text;
namespace LP
{
public class Program
{
public Program()
{
}
public void Get(string url)
{
TfsTeamProjectCollection tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri (url));
ICommonStructureService css = (ICommonStructureService)tfs.GetService(typeof(ICommonStructureService));
List<string> list = new List<string>();
foreach (ProjectInfo projectInfo in css.ListAllProjects())
{
list.Add(projectInfo.Name);
}
list.Sort();
foreach (string value in list)
{
//Console.Write("'");
Console.WriteLine(value);
//Console.Write("',");
}
}
}
}
"@
Add-Type -ReferencedAssemblies $Assem -TypeDefinition $Source -Language CSharp
$LT = New-Object LP.Program
$LT.Get($srv)
четверг, 13 сентября 2012 г.
Другие полезные команды PowerShell для Active Directory
cls
Import-Module ActiveDirectory
# Просмотр всех участников определённой доменной группы
GET-ADGROUPMEMBER 'DomainGroup' | SELECT-OBJECT Name, DistinguishedName, SamAccountName
# Найти по вхождение фразы определённых пользователей и показать их данные
Get-ADUser -Filter {name -like "*Petr*"} | FT Name,DisplayName, SamAccountName, ADGroup, EmailAddress, UserPrincipalName, Department, Description -A
Как просмотреть все доменные группы пользователя используя PowerShell
# Список доменных учётных записей, для которых необходимо показать все их доменные группы
$usrs=@('Ivanov','Petrov')
foreach ($usr in $usrs)
{
write-host ' '
write-host '--[' -nonewline
write-host $usr -nonewline -foregroundcolor Red
write-host ']-------- '
#get-aduser $usr | FT Name, SamAccountName,UserPrincipalName,SID,ObjectGUID
write-host 'Доменные группы: '
$query = "ASSOCIATORS OF {Win32_Account.Name='"+$usr+"',Domain='DomainName'} WHERE ResultRole=GroupComponent ResultClass=Win32_Account"
Get-WMIObject -Query $query | Select Name
write-host '-------------------- '
}
среда, 5 сентября 2012 г.
вторник, 28 августа 2012 г.
Подписаться на:
Сообщения (Atom)
.png)
.png)
