Admin Future
239 subscribers
50 photos
1 video
4 files
87 links
Превращаем эникейщиков в System Architects.
🚀 Твой навигатор в мире IT-инфраструктуры:

▪️ Hard Skills: Linux, Windows, Network, Security
▪️ Tools: Лучший софт и скрытые фишки
▪️ Mindset: Как думать, чтобы платили много


Админ - @maksimshap
Download Telegram
Windows: Хватит кликать! Управляем состоянием сервера с PowerShell DSC

Классический подход к настройке Windows Server — это чек-лист на 20 страниц и часы ручной работы в GUI. Архитектор так не делает. Он описывает желаемое состояние системы в коде.

PowerShell Desired State Configuration (DSC) — это фреймворк Infrastructure as Code (IaC) от Microsoft. Вы не пишете скрипт "как сделать", вы пишете декларативный конфиг "каким должен быть сервер".

Задача: Убедиться, что на всех веб-серверах установлена роль IIS и отключен Telnet-клиент.

1. Создаём конфигурацию (файл IIS_Config.ps1):

PowerShell

# Конфигурация описывает желаемое состояние узла (сервера)
Configuration WebServerState {

# Импортируем необходимые ресурсы DSC
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'

# Применяем конфигурацию к любому узлу с именем 'localhost'
# (в реальной среде здесь будут имена серверов)
Node "localhost" {

# Ресурс WindowsFeature обеспечивает наличие роли или компонента
WindowsFeature "IIS" {
Ensure = "Present" # Убедиться, что он УСТАНОВЛЕН
Name = "Web-Server" # Техническое имя роли IIS
}

WindowsFeature "TelnetClient" {
Ensure = "Absent" # Убедиться, что он ОТСУТСТВУЕТ
Name = "Telnet-Client"
}
}
}

# Вызываем конфигурацию, чтобы сгенерировать MOF-файл
WebServerState

2. Применяем конфигурацию:
Сначала запускаем скрипт выше, он создаст .mof файл в новой папке. Затем выполняем команду:

PowerShell

Start-DscConfiguration -Path ./WebServerState -Wait -Verbose

Что произойдёт?

DSC проверит состояние IIS и Telnet.

Если IIS не установлен — он его установит.

Если Telnet-клиент установлен — он его удалит.

Если всё уже в порядке — ничего не произойдёт.

Почему это взгляд архитектора?
Декларативность: Вы описываете ЧТО, а не КАК. Система сама приходит в нужное состояние.
Идемпотентность: Конфигурацию можно применять сотни раз, результат всегда будет одинаков и предсказуем.
Масштабирование и аудит: Один и тот же MOF-файл можно применить к тысяче машин. А команда Test-DscConfiguration мгновенно покажет, соответствует ли сервер заданной конфигурации (drift detection).

Это первый шаг к таким инструментам, как Ansible и Puppet, но прямо в вашей Windows-среде.

#windows #powershell #dsc #iac #automation #architect
Windows: winget configure. Настройка рабочего места одной командой

Мы уже говорили про winget install. Но Microsoft пошли дальше и представили winget configure — декларативный способ настройки окружения. Это ваш личный ansible-playbook для Windows-машины.
Вы больше не пишете скрипт "как установить". Вы создаете YAML-файл, описывающий, каким должно быть ваше окружение.

Как это работает:
Создаём конфигурационный файл workstation.dsc.yaml:
В нём мы описываем нужные приложения из winget и желаемые настройки PowerShell-модулей DSC.

YAML
# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
resources:
- resource: Microsoft.WinGet.DSC/WinGetPackage
id: install-powertoys
directives:
description: Install Microsoft PowerToys
settings:
id: Microsoft.PowerToys
source: winget

- resource: Microsoft.WinGet.DSC/WinGetPackage
id: install-vscode
directives:
description: Install Visual Studio Code
settings:
id: Microsoft.VisualStudioCode
source: winget

- resource: Microsoft.Windows.Developer/DeveloperMode
id: enable-devmode
directives:
description: Enable Developer Mode
settings:
Ensure: Present

configurationVersion: 0.2.0

Применяем конфигурацию:
Одна команда, которая проверит систему и приведёт её в соответствие с файлом.

PowerShell
# Сначала проверяем, что изменится (dry-run)
winget configure --file workstation.dsc.yaml

# Применяем конфигурацию
winget configure --file workstation.dsc.yaml --accept-configuration-agreements

Взгляд архитектора:
winget configure — это огромный шаг к Infrastructure as Code (IaC) на рабочих станциях. Конфигурационные YAML-файлы можно хранить в Git, версионировать и шарить внутри команды. Это обеспечивает идемпотентность и воспроизводимость окружения, гарантируя, что у каждого разработчика и админа будет одинаковый и предсказуемый набор инструментов.

#windows #winget #powershell #dsc #iac #automation #гайд
Windows & DSC: Аудит и принудительная настройка безопасности
Один из принципов архитектора — не просто настраивать систему, а гарантировать её состояние. PowerShell Desired State Configuration (DSC) позволяет описать, каким должен быть ваш сервер, и автоматически исправлять любые отклонения.

Давайте создадим простую, но мощную DSC-конфигурацию, которая следит за критически важными параметрами безопасности.

Что делает конфигурация:
Убеждается, что служба удаленного реестра (Remote Registry) отключена.
Гарантирует, что PowerShell v2 (старая и небезопасная версия) удален.
Включает WinRM (Windows Remote Management) для централизованного управления.
Код конфигурации (SecurityBaseline.ps1):

PowerShell
Configuration SecurityBaseline
{
Node "localhost"
{
Service "RemoteRegistry"
{
Name = "RemoteRegistry"
StartupType = "Disabled"
State = "Stopped"
Ensure = "Present"
}

WindowsFeature "PowerShell-V2"
{
Name = "PowerShell-V2"
Ensure = "Absent"
}

WindowsFeature "WinRM"
{
Name = "WinRM"
Ensure = "Present"
}
}
}

# Компилируем конфигурацию в MOF-файл
SecurityBaseline

# Применяем конфигурацию
Start-DscConfiguration -Path ./SecurityBaseline -Wait -Verbose -Force

Взгляд архитектора: DSC — это не просто скрипт. Это реализация Infrastructure as Code (IaC) для Windows. Храните такие конфигурации в Git. Запускайте Test-DscConfiguration по расписанию, чтобы обнаруживать дрейф конфигурации (configuration drift) и получать алерты, когда состояние сервера отклоняется от эталона.

#windows #powershell #dsc #iac #security #гайд
🪟 Windows: WinGet Configuration — настраиваем рабочее место через YAML 📝

В 2026 году ручная установка софта в Windows — это моветон. Microsoft активно развивает WinGet Configuration (на базе Desired State Configuration — DSC). Теперь ты можешь описать всё состояние системы в одном YAML-файле и применить его на новом сервере или ноутбуке сотрудника.
Техническая суть:
Ты описываешь не только список программ, но и настройки системы, реестра и функций Windows.

Пример конфигурационного файла (config.yaml):

# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2
properties:
resources:
- resource: Microsoft.WinGet.DSC/WinGetPackage
directives:
description: Install VS Code
settings:
id: Microsoft.VisualStudioCode
source: winget
- resource: Microsoft.Windows.Developer/DeveloperMode
settings:
Enabled: true
configurationVersion: 0.2

Команда для применения:

# Проверить файл и применить настройки
winget configure config.yaml

Зачем это нужно: Это «Terraform для локальной Windows».
Один файл — и через 5 минут у тебя настроенная машина со всеми админскими утилитами.

#windows #automation #winget #dsc #devops #sysadmin #admin_future
🔥3