воскресенье, 24 ноября 2019 г.

Скрипт для блокировки перебора паролей RDP | RDP bruteforce block script

Создать задание с интервалом выполнения каждые 5 минут.

Ниже переделанный скрипт для блокировки всех протоколов для указанного адреса (используется порт равный 0), если по случился перебор паролей с этого ip.
В скрипте используется несколько раз (Get-NetFirewallRule | ? DisplayName -eq $firewall_rule_name) для того, чтобы избежать конфликтной ситуации, если вдруг запустится копия скрипта или пока выполняется скрипт, руками кто-то создаст данное правило.

воскресенье, 10 ноября 2019 г.

Скрипт для вычисления размера профилей локальных пользователей Windows | How to calculate Windows local user profile's size

#Requires -Version 5
if ($PSVersionTable.PSVersion.Major -ge 6) {Import-Module Microsoft.Powershell.LocalAccounts -SkipEditionCheck}
$OutTable=@()
get-localuser | sort LastLogon,Name | select Name,Enabled,LastLogon,PasswordLastSet,SID | % {
    $RegPath='"'+'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\'+$_.SID+'"'
    $ProfilePath='C:\Users\'+$_.Name
    if (Test-Path $RegPath) {$ProfileImagePath=(Get-ItemProperty -Path $RegPath).ProfileImagePath
    } elseif (Test-Path ($ProfilePath)) {$ProfileImagePath=$ProfilePath
    } else {$ProfileImagePath=$null}
    $Size='0 GB'
    if (!($ProfileImagePath -eq $null)) {
         $Size='{0:N2} GB' -f ((ls $ProfileImagePath -Recurse -force -ErrorAction SilentlyContinue | `
          Measure-Object -Property Length -Sum -ErrorAction SilentlyContinue).Sum/1gb)    
    }
    $TableRow=New-Object psobject -Property @{
        "Login"=$_.Name
        "Enabled"=$_.Enabled
        "LastLogon"=$_.LastLogon
        "PasswordLastSet"=$_.PasswordLastSet
        "SID"=$_.SID
        "Size"=$Size
    }
    $OutTable+=$TableRow
}
$OutTable | Sort Login | ft Login,Size,Enabled,LastLogon,SID,PasswordLastSet

среда, 25 сентября 2019 г.

Скрипт для получения сертификата Let's Encrypt для Exchange Server

Скачать и установить .Net FrameWork 4.7.2 и выше
Скачать WinAcme и распаковать в C:\LetsEncrypt.
Сохранить скрипт в папку C:\LetsEncrypt с расширением ps1 и запустить его от имени администратора. Пример: powershell.exe -File C:\LetsEncrypt\MyScript.ps1

#Requires -RunAsAdministrator
#Requires -Version 5

$WinACMEFile="C:\LetsEncrypt\wacs.exe"

$DefaulServerName='mail.example.com'
$DomainList="$DefaulServerName,autodiscover.example.com,"
$DomainList+=($env:COMPUTERNAME).ToLower()+'.'+($env:USERDNSDOMAIN).ToLower()

$param='--target manual '
$param+="--host $DomainList "
$param+="--certificatestore My "
$param+='--installation iis,script '
$param+='--installationsiteid 1 '
$param+='--script "./Scripts/ImportExchange.ps1" '
$param+="--scriptparameters `"'{CertThumbprint}' 'IIS,SMTP,IMAP' 1 '{CacheFile}' '{CachePassword}' '{CertFriendlyName}'`""

cd $LetsEncryptFolder
Start-Process -FilePath $WinACMEFile -ArgumentList $param -NoNewWindow -Wait

среда, 21 августа 2019 г.

Полезные скрипты для Hyper-v

Добавить место на SCSI диск на Hyper-V 2012
Import-Module Hyper-V
$AdditionalSize=10gb
$vm=get-vm rdh-01
$sql_vhd=$vm | stop-vm -Passthru | Get-VMHardDiskDrive | ? Path -like "*SQL*"
$sql_vhd_size=(Get-VHD $sql_vhd.Path).Size
Start-Sleep -Seconds 60
Resize-VHD -Path $sql_vhd.Path -SizeBytes ($sql_vhd_size+$AdditionalSize)
Start-Sleep -Seconds 60
$vm | Start-VM

воскресенье, 4 августа 2019 г.

Скрипты по поиску компьютеров в AD

Найти компьютеры по шаблону и вывести имя, активность, путь в AD и последний вход
Import-Module ActiveDirectory
$list="20","24","27","33","44","-vip3"
$AdComputerList=Get-ADComputer -Filter {Name -like "HP*"} -Properties LastLogon
$ResultTable=@()
foreach ($l in $list) {
 $FindPcName="HP"+$l
 foreach ($pc in $AdComputerList) {
  if ($pc.Name -eq $FindPcName) {
   $ResultTable+=$pc | select Name,Enabled,DistinguishedName,@{name='lastLogon'; expression={[datetime]::fromFileTime($_.lastLogon)}}}
 }
}
$ResultTable | ft

понедельник, 29 июля 2019 г.

Переименовать хост ESXi

1. Зайти в vSphere
2. Нажать ПКМ на хост и зайти в Maintance Mode.
3. Нажать ПКМ на хост и сделать Disconnect
4. Зайти на хост через vSphere (Web)
5. Нажать Action -> Enable SSH
6. Зайти через ssh
esxcli system hostname set --host=hostname
esxcli system hostname set --fqdn= fqdn

host и fqdn могут быть равны

вторник, 9 июля 2019 г.

Включить https на Mikrotik

1. С использованием самоподписанного сертификата:

:global CertName "Mikrotik SSC";
:global ipAddr "192.168.55.1";
:global TemplateName "ca-template"
/certificate
add name=$TemplateName common-name=$CertName key-usage=key-cert-sign,crl-sign country=RU state=Mocsow organization="MyCompany";
sign $TemplateName ca-crl-host=$ipAddr name=$CertName;
set $CertName trusted=yes;
/ip service 
set www-ssl certificate=$CertName disabled=no
set www disabled=yes