Как сбросить завсшию службу или когда она в состоянии стоп(stoped)

Проверим какие службы имеют статус stoped.

Get-WmiObject -Class win32_service | Where-Object {$_.state -eq 'stop pending'}

Теперь выполним скрипт. Он выяснит какой процесс блокирует и убьёт его. После этого служба остановится.

$Services = Get-WmiObject -Class win32_service -Filter "state = 'stop pending'"
if ($Services) {
foreach ($service in $Services) {
try {
Stop-Process -Id $service.processid -Force -PassThru -ErrorAction Stop
}
catch {
Write-Warning -Message " Error. Error details: $_.Exception.Message"
}
}
}
else {
Write-Output "No services with 'Stopping'.status"
}

 

Как найти в таблице sp_whoisactive по времени выполнения запроса.

SELECT [dd hh:mm:ss.mss]
,[start_time]
 ,[collection_time]
      ,[session_id]
      ,[sql_text]
      ,[sql_command]
      ,[login_name]
      ,[wait_info]
      ,[tran_log_writes]
      ,[CPU]
      ,[tempdb_allocations]
      ,[tempdb_current]
      ,[blocking_session_id]
      ,[reads]
      ,[writes]
      ,[physical_reads]
      ,[query_plan]
      ,[used_memory]
      ,[status]
      ,[tran_start_time]
      ,[open_tran_count]
      ,[percent_complete]
      ,[host_name]
      ,[database_name]
      ,[program_name]
      
      ,[login_time]
      ,[request_id]
      ,[collection_time]
  FROM [DBAtools].[dbo].[WhoIsActive]
  WHERE 
 CONVERT(CHAR(8),COLLECTION_time,8) BETWEEN '00:00:00' AND '23:00:00' AND
       datepart(YEAR,start_time) BETWEEN 2020 AND 2020 and
       datepart(month,start_time) BETWEEN 04 AND 04 and
       datepart(day,start_time) BETWEEN 22 AND 23
     and  [dd hh:mm:ss.mss]  > '00 01:00:00.0000'

 

Как снимать нагрузку c дисков с помощью zabbix. Iops. Windows Disk performance.

Задача снимать нагрузку на дисках на серверах.

У нас используется zabbix 4.2

Есть готовые шаблоны

https://share.zabbix.com/operating-systems/windows/windows-physical-drive-iops но проблема что этот шаблон не подходит под windows 2016. И править его сложно так как команды зашифрованы.

За основу взял https://share.zabbix.com/operating-systems/windows/windows-disk-performance. Но шаблон для 4.4.

Я взял шаблон windows-physical-drive-iops и его исправил для использования скрипта  из windows-disk-performance

Выкладываю сюда шаблон и скрипт

Windows iops 2016

Как снимать нагрузку c дисков с помощью zabbix. Iops. Windows Disk performance.

Как снимать нагрузку c дисков с помощью zabbix. Iops. Windows Disk performance.

Как делегировать права управления терминальных сессий не давая полные права на сервер в windows 2012/16

Задача дать поддержки права для сбрасывание . подключения к сессиям пользователя на ферме rdp . ферма развернута на базе windows 2016.

Создаём группу в АД Terminal Servers Administrators . Помещаем пользователей поддержки в эту группу.

Создаём группу MSK-HW-RDCB1 Users и добавляем в неё Terminal Servers Administrators.

После этого группу MSK-HW-RDCB1 добавляем на Remote Desktop Users (Пользователи удаленного рабочего стола ) на каждом сервере фермы и в колекцию

Как делегировать права управления терминальных сессий не давая полные права на сервер в windows 2012/16

Теперь выполним скрипт на каждом сервере в cmd от администратора

wmic /namespace:\\root\CIMV2\TerminalServices PATH Win32_TSPermissionsSetting WHERE (TerminalName ='RDP-Tcp')CALL AddAccount 'domen\Terminal Servers Administrators',2

или

$Group = "RDP_Operators"
$Servers = @(
    "RDSHost01",
    "RDSHost02",
    "RDSHost03"
)
ForEach 
Читать далее

Как узнать кто больше всего использует tempdb и сколько места занимает запрос в tempdb. полезные скрипты

запрос кто в данный момент использует tempdb

SELECT
st.dbid AS QueryExecutionContextDBID,
DB_NAME(st.dbid) AS QueryExecContextDBNAME,
st.objectid AS ModuleObjectId,
SUBSTRING(st.TEXT,
dmv_er.statement_start_offset/2 + 1,
(CASE WHEN dmv_er.statement_end_offset = -1
THEN LEN(CONVERT(NVARCHAR(MAX),st.TEXT)) * 2
ELSE dmv_er.statement_end_offset
END - dmv_er.statement_start_offset)/2) AS Query_Text,
dmv_tsu.session_id ,
dmv_tsu.request_id,
dmv_tsu.exec_context_id,
(dmv_tsu.user_objects_alloc_page_count - dmv_tsu.user_objects_dealloc_page_count) AS OutStanding_user_objects_page_counts,
(dmv_tsu.internal_objects_alloc_page_count - dmv_tsu.internal_objects_dealloc_page_count) AS OutStanding_internal_objects_page_counts,
dmv_er.start_time,
dmv_er.command,
dmv_er.open_transaction_count,
dmv_er.percent_complete,
dmv_er.estimated_completion_time,
dmv_er.cpu_time,
dmv_er.total_elapsed_time,
dmv_er.reads,dmv_er.writes,
dmv_er.logical_reads,
dmv_er.granted_query_memory,
dmv_es.HOST_NAME,
dmv_es.login_name,
dmv_es.program_name
FROM sys.dm_db_task_space_usage dmv_tsu
INNER JOIN sys.dm_exec_requests dmv_er
ON (dmv_tsu.session_id = dmv_er.session_id AND dmv_tsu.request_id = dmv_er.request_id)
INNER JOIN sys.dm_exec_sessions dmv_es
ON (dmv_tsu.session_id = dmv_es.session_id)
CROSS APPLY sys.dm_exec_sql_text(dmv_er.sql_handle) st
WHERE (dmv_tsu.internal_objects_alloc_page_count + dmv_tsu.user_objects_alloc_page_count) > 0
ORDER BY (dmv_tsu.user_objects_alloc_page_count 
Читать далее

Как сделать групповую (GPO) политику для выключения пк при простои больше двух часов.

Создаём папку где будут лежать скрипты для выключения пк.

Как сделать групповую (GPO) политику для выключения пк при простои больше двух часов.

Содержание скриптов

poweroff.ps1

#
# This background job automatically locks your Workstation after a specified amount of
# time. It will come in handy if you cannot access the screensaver settings due to policy
# restriction but want to lock your screen after a idle timeout. Or you could just
# press [Win]+[L] everytime you leave your desk ;) .
#
# start with
# 	powershell.exe -windowstyle hidden -executionpolicy Unrestricted P:\ATH\TO\logoff.ps1
#
# `-windowstyle hidden` will make your PowerShell disappear/run in background
# `-executionpolicy Unrestricted` will enable this PowerShell process to 
Читать далее

Как установить get-cluster powershell.

Ошибка

The term ‘Get-Cluster’ is not recognized as the name of a cmdlet, function, script file, or operable program. Check
the spelling of the name, or if a path was included, verify that the path is correct and try again.
+ CategoryInfo : ObjectNotFound: (Get-Cluster:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Установить

 Install-WindowsFeature -Name Failover-Clustering -IncludeManagementTools
 Import-Module FailoverClusters

 

 

Миграция пользователя в соседний домен с сохранением почтового адреса

Для миграции пользователя с сохранением его почтового адреса требуется Powershell 2.0 и Commandlet Move-ADObject ( появился в Windows Server 2008 R2 и более поздние редакции ) и контроллеры домена с ролью RID pool manager

Важно! Командлет Move-ADObject не сможет мигрировать учетную запись при наличии дочерних объектов ( объекты Exchange, принтеры и т.д. )

Важно! Если пользователь использует почту на телефоне, то лучше ее удалить с телефона, либо отключить ActiveSync для его почтового ящика ( с отключением не тестировал, но должно работать )

Расмотрим пример миграции учетной записи user.exch из домена домен.RU в домен2.RU

  • Определяем контроллеры домена с ролью RID pool
Читать далее

Как сделать задание в планировщики для выключения windows 10 по простою (бездействие)

Задача выключать пк когда бездействие пк сопоставляет 2 часа.

В windows 10 почему то стандартный планировщики не работает по условию простоя пк. Тестировал по разному но пк выключается по истечению 5 минут простоя. Написал скрипт на powershell и завернул все в vbs что бы не было видно окна.

Скрипт выключения пк при простои больше 2 часов

#
# This background job automatically locks your Workstation after a specified amount of
# time. It will come in handy if you cannot access the screensaver settings due to policy
# restriction but want to lock your screen after a idle timeout. Or 
Читать далее