# Windows

Настройки для настольных версий

# Основы работы CMD и Powershell

<div class="section" id="bkmrk-%D0%A4%D0%B0%D0%B9%D0%BB%D1%8B-%D0%B8-%D0%BF%D0%B0%D0%BF%D0%BA%D0%B8-%D0%9F%D1%80%D0%BE%D1%81%D0%BC%D0%BE">#### Файлы и папки

##### Просмотр содержимого каталога

Отображает список файлов и папок. Опции позволяют компактный вывод и включение скрытых файлов.

 ```
dir /b                 # CMD - только имена файлов и папок
dir /a                 # CMD - показать скрытые файлы
Get-ChildItem           # PowerShell - аналог команды dir
Get-ChildItem -Force    # PowerShell - показать скрытые файлы
```

##### Смена каталога

 ```
cd C:\Windows\System32                  # CMD
Set-Location C:\Windows\System32          # PowerShell
```

##### Создание каталога

 ```
md TempFolder                                    # CMD
New-Item -ItemType Directory -Path TempFolder       # PowerShell
```

##### Удаление файла

 ```
del /q old_log.txt                     # CMD - тихо, без подтверждения
Remove-Item old_log.txt -Force          # PowerShell
```

##### Удаление папки и её содержимого

 ```
rd /s /q "C:\Old Project"                # CMD - рекурсивно и тихо
Remove-Item "C:\Old Project" -Recurse -Force  # PowerShell
```

##### Просмотр содержимого файла

 ```
type config.txt              # CMD
Get-Content config.txt         # PowerShell
```

##### Работа с путями с пробелами и кириллицей

 ```
cd "C:\Program Files\My App"  
del "D:\Мои документы\Отчет за год.docx"  
Set-Location "C:\Program Files\My App"   # PowerShell
Remove-Item "D:\Мои документы\Отчет за год.docx" -Force   # PowerShell
```

#### Пользователи

##### Создание пользователя

 ```
net user newuser MyPassword /add               # CMD
New-LocalUser -Name "newuser" -Password (ConvertTo-SecureString "MyPassword" -AsPlainText -Force) # PowerShell
```

##### Удаление пользователя

 ```
net user newuser /delete                      # CMD
Remove-LocalUser -Name "newuser"                # PowerShell
```

##### Изменение группы или параметров пользователя

 ```
net localgroup Administrators newuser /add    # CMD - добавить в группу администраторов
Add-LocalGroupMember -Group "Administrators" -Member "newuser"  # PowerShell
```

#### Права и разрешения

##### Просмотр и изменение атрибутов файлов

 ```
attrib +r file.txt        # CMD - сделать файл только для чтения
attrib -r file.txt        # CMD - снять атрибут только для чтения
Get-Item file.txt | Set-ItemProperty -Name IsReadOnly -Value $true   # PowerShell
Get-Item file.txt | Set-ItemProperty -Name IsReadOnly -Value $false  # PowerShell
```

#### Диски и разделы

##### Проверка диска

 ```
chkdsk C: /f               # CMD - проверить и исправить ошибки
Get-Volume -DriveLetter C | Repair-Volume    # PowerShell
```

##### Свободное место

 ```
wmic logicaldisk get size,freespace,caption   # CMD
Get-Volume | Select-Object DriveLetter, SizeRemaining, Size  # PowerShell
```

#### Сетевые команды

##### Конфигурация интерфейсов

 ```
ipconfig /all                # CMD
Get-NetIPConfiguration        # PowerShell
```

##### Проверка доступности узла

 ```
ping ya.ru                   # CMD и PowerShell
```

##### Трассировка маршрута

 ```
tracert google.com           # CMD и PowerShell
```

##### Активные соединения

 ```
netstat -an                  # CMD
Get-NetTCPConnection          # PowerShell
```

##### Проверка DNS

 ```
nslookup ya.ru              # CMD и PowerShell
```

#### Процессы

##### Список процессов

 ```
tasklist                     # CMD
Get-Process                   # PowerShell
```

##### Завершение процессов

 ```
taskkill /pid 1234 /f         # CMD по PID
taskkill /im notepad.exe /f     # CMD по имени
Stop-Process -Id 1234 -Force    # PowerShell по PID
Stop-Process -Name notepad -Force  # PowerShell по имени
```

#### Система

##### Имя хоста

 ```
hostname                      # CMD
$env:COMPUTERNAME               # PowerShell
```

##### Проверка целостности файлов

 ```
sfc /scannow                  # CMD
Repair-WindowsImage -Online -CheckHealth   # PowerShell
```

##### Выключение и перезагрузка

 ```
shutdown /s /t 0               # CMD - выключение
shutdown /r /t 0               # CMD - перезагрузка
Stop-Computer                  # PowerShell - выключение
Restart-Computer               # PowerShell - перезагрузка
```

#### Поиск файлов

##### По имени

 ```
dir /s /b *.log                  # CMD - поиск файлов .log рекурсивно
Get-ChildItem -Path C:\ -Recurse -Filter *.log  # PowerShell
```

##### По размеру

 ```
# PowerShell пример поиска файлов >100MB
Get-ChildItem -Path C:\ -Recurse | Where-Object {$_.Length -gt 100MB}
<h1 id="bkmrk-powershell-%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D1%84%D0%B0%D0%B9">PowerShell поиск файлов <1KB</h1>
<p>Get-ChildItem -Path C:\Users\ -Recurse | Where-Object {$_.Length -lt 1KB}</p>
```

#### Архивирование и сжатие

 ```
compact /c /s:C:\MyFolder         # CMD - сжать все файлы в папке
Compress-Archive -Path C:\MyFolder\* -DestinationPath C:\MyFolder.zip  # PowerShell
```

#### Логи и системный журнал

##### Просмотр событий через Event Viewer

 ```
eventvwr.msc                # CMD - открыть графический просмотр событий
```

##### Получение журналов через PowerShell

 ```
Get-EventLog -LogName System -Newest 50           # последние 50 записей системного журнала
Get-EventLog -LogName Application -EntryType Error   # ошибки в приложениях
Get-WinEvent -LogName Security | Select-Object -First 50   # новые события безопасности
```

##### Экспорт логов

 ```
wevtutil epl System C:\Logs\System.evtx        # CMD - экспорт журнала в файл
Get-EventLog -LogName System | Export-Csv C:\Logs\System.csv  # PowerShell в CSV
```

#### Полезные советы

- Вывод команд в файл: `dir /b > list.txt` или `Get-ChildItem | Out-File list.txt`
- Работа с длинными путями: PowerShell корректно обрабатывает пути &gt;260 символов
- Массовое удаление по шаблону: `del *.tmp` или `Remove-Item *.tmp -Force`
- Поиск и фильтрация по размеру/дате/типу в PowerShell через `Where-Object`
- Системные журналы можно фильтровать по дате, типу события и источнику
 
</div>