Перейти к содержимому

powershell

Как сбросить терминальные сессии на терминальной ферме RDS windows 2012-2016 без прав администратора

Задача дать поддержке права для сброса сессии с фермы терминалов RDS.

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

Назавём её Terminal Servers Administrators

Теперь делаем скрипт и добавляем в него наши хосты фермы и группу которую сделали

$Group = "domen\Terminal Servers Administrators"
$Servers = @(
   "Host-RDSH1", 
"Host-RDSH2",
"Host-RDSH3",
"Host-RDSH4",
"Host-RDSH5"
)
ForEach ($Server in $Servers) {
    #Делегируем право на теневые сессии
    $WMIHandles = Get-WmiObject `
        -Class "Win32_TSPermissionsSetting" `
        -Namespace "root\CIMV2\terminalservices" `
        -ComputerName $Server `
        -Authentication PacketPrivacy `
        -Impersonation Impersonate
    ForEach($WMIHandle in $WMIHandles)
    {
        If ($WMIHandle.TerminalName -eq "RDP-Tcp")
        {
        $retVal = $WMIHandle.AddAccount($Group, 2)
        
Читать далее

Как сбросить завсшию службу или когда она в состоянии стоп(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"
}

 

Как установить 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 
Читать далее

Как отправлять оповещения в telegram из mssql

Задача отправлять оповещение из mssql в телеграмм для быстрого реагирования.

https://www.rootusers.com/install-powershell-5-windows-server-2008-r2/

Решил сделать  через powershell. но так как windows 2008 то версия powershell 2.0. Установил 5 версию powersheell. Так как из-за старой версии слались вопросы в телеграмм когда по русски писал.

Скрипт который будет на диске С хранится tel.ps1

param(
[string]$chat_id = $(Throw "'-chat_id' argument is mandatory"),
[string]$text = $(Throw "'-text' argument is mandatory"),
[switch]$markdown,
[switch]$nopreview
)
$token = "Ваш токен"
if($nopreview) { $preview_mode = "True" }
if($markdown) { $markdown_mode = "Markdown" } else {$markdown_mode = ""}

$payload = @{
    "chat_id" = $chat_id;
    "text" = $text
    "parse_mode" = $markdown_mode;
    "disable_web_page_preview" 
Читать далее

PRTG TELEGRAM BOT ALERT

Создать скрипт который будет слать алерты в TELEGRAM.

  1.  Создаём бота https://tlgrm.ru/docs/bots/api
  2. создаем скрипт на powershel который будет слать сообщения от бота в групповой чат что бы все видели алерты
    #param ($text) - думал как перенапривть сюда значения с prtg
    
    $secPasswd=ConvertTo-SecureString "password" -AsPlainText -Force
    $myCreds=New-Object System.Management.Automation.PSCredential -ArgumentList "head_office\k.moskvichev"
    #$Site="http://www.computerperformance.co.uk"
    
    $botkey = "bot244166770:**********************FoB5rvY"
    $chat = "-172891647"
    $text = "любой текс"
    $sendText = "https://api.telegram.org/$botkey/sendMessage" 
    Invoke-WebRequest -Uri $sendText  -Proxy 'http://192.168.0.97:8080' -ProxyUseDefaultCredentials -Method Post  -ContentType "application/json;charset=utf-8" -Body (ConvertTo-Json -Compress -InputObject @{chat_id=$chat; text=$text})
  3. нужно узнать ид группы. Для этого создаем группу и пишем в нее. потом запускаем скрипт
    (Invoke-WebRequest -Uri 'https://api.telegram.org/Заменить на своё из первого пункта/getUpdates').Content
Читать далее
Яндекс.Метрика