Telegram Web Link
Подборка скриптов PowerShell для работы с Azure, Active Directory, SCCM, SCSM, Exchange, O365 и тд

Примеры скриптов

Новый пароль


function New-Password {
<#
.SYNOPSIS
Function to Generate a new password.

.DESCRIPTION
Function to Generate a new password.
By default it will generate a 12 characters length password, you can change this using the parameter Length.
I excluded the following characters: ",',.,/,1,<,>,`,O,0,l,|
Some of those are ambiguous characters like 1 or l or |
You can add exclusion by checking the following ASCII Table http://www.asciitable.com/

If the length requested is less or equal to 4, it will generate a random password.
If the length requested is greater than 4, it will make sure the password contains an Upper and Lower case letter, a Number and a special character

.PARAMETER Length
Specifies the length of the password.
Default is 12 characters

.PARAMETER Count
Specifies how many password you want to output.
Default is 1 password.

.EXAMPLE
PS C:\> New-Password -Length 30

=E)(72&:f\W6:VRGE(,t1x6sZi-346

.EXAMPLE
PS C:\> New-Password 3

!}R

.NOTES
See ASCII Table http://www.asciitable.com/
Code based on a blog post of https://mjolinor.wordpress.com/2014/01/31/random-password-generator/

.LINK
https://github.com/lazywinadmin/PowerShell
#>
[CmdletBinding()]
PARAM
(
[ValidateNotNull()]
[int]$Length = 12,
[ValidateRange(1, 256)]
[Int]$Count = 1
)#PARAM

BEGIN {
# Create ScriptBlock with the ASCII Char Codes
$PasswordCharCodes = { 33..126 }.invoke()


# Exclude some ASCII Char Codes from the ScriptBlock
# Excluded characters are ",',.,/,1,<,>,`,O,0,l,|
# See http://www.asciitable.com/ for mapping
34, 39, 46, 47, 49, 60, 62, 96, 48, 79, 108, 124 | ForEach-Object -Process { [void]$PasswordCharCodes.Remove($_) }
$PasswordChars = [char[]]$PasswordCharCodes
}#BEGIN

PROCESS {
1..$count | ForEach-Object -Process {
# Password of 4 characters or longer
IF ($Length -gt 4) {

DO {
# Generate a Password of the length requested
$NewPassWord = $(foreach ($i in 1..$length) { Get-Random -InputObject $PassWordChars }) -join ''
}#Do
UNTIL (
# Make sure it contains an Upercase and Lowercase letter, a number and another special character
($NewPassword -cmatch '[A-Z]') -and
($NewPassWord -cmatch '[a-z]') -and
($NewPassWord -imatch '[0-9]') -and
($NewPassWord -imatch '[^A-Z0-9]')
)#Until
}#IF
# Password Smaller than 4 characters
ELSE {
$NewPassWord = $(foreach ($i in 1..$length) { Get-Random -InputObject $PassWordChars }) -join ''
}#ELSE

# Output a new password
Write-Output $NewPassword
}
} #PROCESS
END {
# Cleanup
Remove-Variable -Name NewPassWord -ErrorAction 'SilentlyContinue'
} #END
} #Function


https://github.com/lazywinadmin/PowerShell

👉 @sysadminof
⚠️ До старта курса «Administrator Linux. Basic» осталось совсем немного. Набор закрывается 27 июня.

👉 Успейте пройти вступительный тест и получить запись двух вебинаров бесплатно:
— «Что нужно знать, когда переходишь с Windows на Linux. Базовые понятия Linux, работа в консоли с базовыми командами»
— «Вся правда о рынке труда или как быть востребованным в современных реалиях»

💪 Курс построен так, чтобы даже без опыта в Linux вы быстро вошли в профессию. В программе только актуальное: Bash, сети, логика работы ОС, файловые системы и автоматизация.

👉 Пройдите бесплатное вступительное тестирование сегодня и получите запись двух вебинаров: https://vk.cc/cNd9tB

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
This media is not supported in your browser
VIEW IN TELEGRAM
🐧Linux Kernel Manager and Activity Monitor

Утилита отображает информацию о текущем состоянии ядра, выводит данные о загруженных в ядро модулях и позволяет работать с ними.

https://github.com/orhun/kmon

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
Powershell суточный отчет по пользователям из ActiveDirectory

Раз в сутки (через планировщик задач) скрипт опрашивает

🔘ActiveDirectory на предмет:
🔘Всего пользователей
🔘Сколько активных
🔘Сколько служебных
🔘Сколько заблокированных
🔘Сколько новых


$Date = Get-Date -Format "dd MMMM yyyy HH:mm"
$AllUsers = (Get-AdUser -Filter * | ?{$_.name -notmatch 'Healthmailbox'}).count
$ActiveUsers = (Get-ADUser -Filter {Enabled -eq $true} | ?{$_.name -notmatch 'Healthmailbox'}).count
$DisabledUsers = (Get-ADUser -Filter {Enabled -eq $false} | ?{$_.name -notmatch 'Healthmailbox'}).count

$StartDate = (Get-Date).AddDays(-1)
$EndDate = (Get-Date).AddDays(+1)
$Zapros = Get-ADUser -Filter * -Properties Created | Where-Object {$_.Created -gt $StartDate -and $_.Created -le $EndDate}
$NewUsers = ($Zapros).count
$OFS = "`r`n" #`r`n`r`n
"$($WhoUsers = $Zapros | foreach {$_.Name })"

$NotSurname = Get-ADUser -filter "Enabled -eq '$true' -and Surname -notlike '*' -and Name -ne 'Healthmailbox'"
$NotFIO = ($NotSurname).count

$Message = "На $Date в ActiveDirectory всего пользователей $AllUsers из них: `nАктивных: $ActiveUsers из них служебные: $NotFIO. `nЗаблокированных: $DisabledUsers. `nНовых пользователей: $NewUsers `r`n`r`n$WhoUsers"
$Message | Out-File -FilePath "C:\temp\$(Get-Date -Format "dd MMMM yyyy")-UsersAD.txt"


После выполнения получаем файлик с текущей датой в папке temp.

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
Создание SSH ключа, настройка SSH-сервера, клиента, проброс портов

⏱️ Таймкоды:
0:00 Вступление
0:28 Теория про SSH
1:32 Создание ключей
3:48 Подключение
4:43 Добавление ключа
9:42 Настройка сервера
12:19 Настройка клиента
14:00 Проброс порта

источник

👉 @sysadminof
👋 Привет, админы!

Недавно на одном из серверов столкнулся с проблемой: служба Windows Update зависала в статусе "Ожидание другого установщика". Перезапуск сервиса не помогал, обновления не ставились, а WSUS-задание висело вечно.

💡 Решение оказалось простым, но неочевидным — кто-то (привет, SCCM или ручной запуск MSI) заблокировал установщик Windows Installer.

📌 Что делать:

1. Проверяем, нет ли зависших процессов установщика:


Get-Process -Name msiexec


2. Если что-то висит — снимаем задачу:


Stop-Process -Name msiexec -Force


3. Чистим временные каталоги обновлений:


net stop wuauserv
Remove-Item -Path "C:\Windows\SoftwareDistribution\Download\*" -Recurse -Force
net start wuauserv


4. И главное — проверяем, не заблокирована ли установка:


Get-WmiObject -Class Win32_Process | Where-Object { $_.Name -like "*msi*" }


Если ничего подозрительного нет — можно запускать установку обновлений повторно.

🧩 В моем случае зависший msiexec.exe не давал поставить ни одно обновление — после его убийства всё пошло как по маслу.

💬 А у вас бывали подобные подвисания с Windows Update? Как решаете — через PowerShell, скрипты или руками? Делитесь!

👉 @win_sysadmin
📕 Практикум по построению карты сети из базы данных маршрутизаторов для сетевых инженеров, архитекторов и администраторов сетей, а также технических руководителей

На открытом уроке 3 июля в 20:00 мск мы погрузимся в тонкости работы с OSPF Deep Dive:  

📗 На вебинаре разберём:

1. Как устроена база данных OSPF (LSDB) и чем она отличается от итоговой таблицы маршрутизации;
2. Как интерпретировать LSA-сообщения для построения полной топологии сети;

📘 В результате на практике разберетесь в построении карты сети из LSDB на примере реального дампа и освоите навыки анализа LSDB.

👉 Регистрация и подробности о курсе Дизайн сетей ЦОД: https://vk.cc/cNjLmK

Все участники открытого урока получат скидку на курс "Дизайн сетей ЦОД"

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Media is too big
VIEW IN TELEGRAM
ТРАБЛШУТИНГ LINUX // Основные команды, примеры

⏱️ Таймкоды:
0:00 Вступление
0:08 Мониторинг
0:43 Место на дисках
2:39 Состояние дисков
5:15 Нагрузка на диски
5:55 Процессор
8:17 Оперативная память
9:17 Процессы
10:46 Сеть
17:30 Логи

источник

👉 @sysadminof
DevOps и SRE: конкуренты или союзники в борьбе за надёжность?
Где заканчивается зона ответственности DevOps-инженера и начинается область контроля SRE?

Приглашаем на открытый урок, где разберём разницу между подходами DevOps и SRE, особенно — в контексте Service Level Indicators (SLI), Service Level Objectives (SLO) и Service Level Agreements (SLA).

Вы узнаете, как эти практики помогают создавать надёжную платформу и кто за что отвечает в команде.

📌 Обсудим как DevOps и SRE трактуют «качество платформы». И кто за какими метриками следит: производительность, аптайм, алерты, ошибки

⬆️ Протестируй курс «SRE практики и инструменты» на открытом уроке: https://vk.cc/cNl1Tu

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
20 команд мониторинга Linux, которые вы должны знать

Если вы работаете системным администратором / администратором Linux / DevOps / SRE, то, скорее всего, вам придется решать проблемы, связанные с производительностью, в среде Linux.

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

1. Top
2. vmstat
3. iostat
4. iostat-d
5. lsof
6. tcpdump
8. netstat-s
9. ps -ef |grep PID
10. nethogs
11. mpstat
12. free-m
13. uptime
14. ps -e
15. ac
16. ac-d
17. ac -p
18. vmstat-m
19. vmstat–d
20. pstree

➡️ https://telegra.ph/20-komand-monitoringa-Linux-kotorye-vy-dolzhny-znat-07-02

👉 @sysadminof
Please open Telegram to view this post
VIEW IN TELEGRAM
Полезные команды Linux. Атрибуты файлов

# chattr +a file
Разрешает только добавление данных в файл

# chattr +d file
Игнорировать данный файл при создании резервной копии с помощью программы dump

# chattr +c file
Разрешить ядру автоматически сжимать/разжимать содержимое файла

# chattr +i file1
Защита файла от каких либо изменений или манипуляций: редактирование, перемещение, удаление, создание ссылок на него

# chattr +S file1
Определяет, будет-ли при сохранении изменений, произведена синхронизация, как при использовании команды sync

# chattr +u file1
При удалении файла с данным атрибутом, его будет сохранено, что-бы оставить пользователю возможность восстановить данные в случае необходимости

# chattr +s file1
Позволяет безвозвратное удаление данного файла. При удалении файла с этим атрибутом, место на диске, занимаемое файлом, перезаписывается нулями, после чего файл уже не подлежит восстановлению

# lsattr
Листинг файлов с атрибутами

👉 @sysadminof
2025/07/06 19:32:43
Back to Top
HTML Embed Code: