PowerShell позволяет выполнять команды DOS, знакомые вам по командной строке «cmd.exe«. Это реализовано с помощью псевдонимов (alias).
Режимы доступа к процессору
Чтобы приложения не могли прочитать или изменить данные операционной системы, были предусмотрены разные режимы доступа к процессору.
Страницы памяти
В этом уроке я вам расскажу про страницы памяти. Вся память используемая процессами для работы делится на маленькие кусочки — страницы (page).
Диспетчер памяти и его функции
В этом уроке узнаем про диспетчер памяти Windows. Это важный модуль в системе, которые решает множество задач связанных с работой виртуальной памяти.
Изучение команд PowerShell
Научимся изучать команды PowerShell. Узнаем какие они бывают, как получить их список, как получить справку по каждой команде. И как эту справку обновить.
Команды PowerShell и их типы
В PowerShell есть 3 типа команд:
- Alias — у команды PowerShell может быть псевдоним, выполняя который вы на самом деле выполните эту команду. Про псевдонимы у меня есть другая статья, которую вы можете найти тут.
- Function — функции написаны на PowerShell, есть встроенные функции, но вы можете создавать и свои;
- Cmdlet — командлеты написаны на C# разработчиками MicroSoft.
Получить список команд можно с помощью командлета Get-Command:
PS C:WINDOWSsystem32> Get-Command CommandType Name Version Source ----------- ---- ------- ------ Alias Add-AppPackage 2.0.1.0 Appx Alias Add-AppPackageVolume 2.0.1.0 Appx Alias Add-AppProvisionedPackage 3.0 Dism Alias Add-ProvisionedAppPackage 3.0 Dism Alias Add-ProvisionedAppxPackage 3.0 Dism Alias Add-ProvisioningPackage 3.0 Provisioning Alias Add-TrustedProvisioningCertificate 3.0 Provisioning Alias Apply-WindowsUnattend 3.0 Dism *** вывод сократил ***
Вы можете заметить, что команды состоят из глагола и существительного. Например Get — это глагол, а Command — существительное.
У команды Get-Command есть опции:
- -Noun <существительное> — показать команды только с этим существительным;
- -Verb <глагол> — показать команды только с этим глаголом;
- -Name <команда> — вывести определённую команду.
Например:
PS C:WINDOWSsystem32> Get-Command -Noun Command CommandType Name Version Source ----------- ---- ------- ------ Function Find-Command 1.0.0.1 PowerShellGet Cmdlet Get-Command 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Invoke-Command 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Measure-Command 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Show-Command 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Trace-Command 3.1.0.0 Microsoft.PowerShell.Utility PS C:WINDOWSsystem32> Get-Command -Verb Get CommandType Name Version Source ----------- ---- ------- ------ Alias Get-AppPackage 2.0.1.0 Appx Alias Get-AppPackageDefaultVolume 2.0.1.0 Appx Alias Get-AppPackageLastError 2.0.1.0 Appx Alias Get-AppPackageLog 2.0.1.0 Appx Alias Get-AppPackageManifest 2.0.1.0 Appx Alias Get-AppPackageVolume 2.0.1.0 Appx Alias Get-AppProvisionedPackage 3.0 Dism Alias Get-DiskSNV 2.0.0.0 Storage *** вывод сократил ***
Обновление справки
У PowerShell есть встроенная справка, но так как Windows периодически обновляется, то и справку нужно обновлять. Справка автоматически сама не обновляется, а для её обновления нужно использовать командлет Update-Help. Но запускать эту команду нужно в окне PowerShell запущенном от имени администратора.
Когда вы запустите эту команду в верху терминала появится такая запись, при этом эта запись будет расположена поверх уже введённых команд:

После этого, ваша справочная информация будет обновлена. Но возможно некоторые справки на русском языке не будут присутствовать, тогда вы увидите об этом информацию.
Получение справки по командам
Получить справку по какой-то команде можно с помощью командлета Get-Help, например:
PS C:WINDOWSsystem32> Get-Help Get-Command
ИМЯ
Get-Command
ОПИСАНИЕ
Gets all commands.
СИНТАКСИС
Get-Command [[-Name] <System.String[]>] [[-ArgumentList] <System.Object[]>] [-All] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript | Application | Script
| Workflow | Configuration | All}] [-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported] [-Module <System.String[]>] [-ParameterName
<System.String[]>] [-ParameterType <System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>] [<CommonParameters>]
Get-Command [[-ArgumentList] <System.Object[]>] [-All] [-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported] [-Module <System.String[
]>] [-Noun <System.String[]>] [-ParameterName <System.String[]>] [-ParameterType <System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo] [-Syntax] [-TotalCount <Syst
em.Int32>] [-Verb <System.String[]>] [<CommonParameters>]
*** вывод сократил ***
Этот командлет тоже имеет дополнительные опции для расширения справки:
- get-help <Команда> -examples — примеры;
- get-help <Команда> -detailed — дополнительные сведения;
- get-help <Команда> -full — технические сведения;
- get-help <Команда> -online — получение справки в интернете (при этом у вас откроется веб-браузер).
Вот, например, online справка по команде Update-Help.
Состояния страниц виртуальной памяти
В этом уроке я расскажу вам про различные состояния страниц памяти. И про то, как эти страницы переходят из одного состояния в другое.