Полезные команды powershell для windows 10

PowerShell is a useful Windows command-line language version that helps you seamlessly perform and automate critical tasks on your systems. But how can you perform these tasks and make the most of PowerShell on your Windows system?

Don’t worry — we’ve compiled a PowerShell cheat sheet documenting PowerShell syntax and all the PowerShell commands to help you optimize PowerShell and even prepare for job interviews.

Download Our PowerShell Cheat Sheet PDF Here.

PowerShell Cheat Sheet

Let’s start with a quick introduction to Windows 10 PowerShell commands.

PowerShell Basics

PowerShell is a cross-platform and a commonly used task automation solution combining the power of the command-line shell, a scripting language, and a configuration management framework. You can run PowerShell on Windows, Linux, and macOS operating systems. Unlike other available shells that only accept and return data, PowerShell accepts and returns .NET objects.

This shell comes with the following features.

  • Robust command-line history
  • Extensive features, like tab completion and command prediction
  • Command and parameter aliases
  • Pipeline for changing commands
  • In-console help system, like Unix man pages

Considering the features of any scripting language, you can use PowerShell to automate the system management process and task. It lets you build, test, and deploy solutions in CI/CD environments.

PowerShell is built on the .NET Common Language Runtime (CLR), which means all the inputs and outputs are .NET objects. You do not have to parse text output to retrieve information from it.

The PowerShell scripting language comes with the following features.

  • Functions, classes, objects, and modules
  • Easy formatting system for providing clear output for enhanced readability
  • Built-in support for different data formats, such as CSV, JSON, and XML
  • Type system for creating dynamic types

Now, let’s get into some useful PowerShell commands.

Introduction to Windows PowerShell 5.1

PowerShell Commands Cheat Sheet

cmdlets

Cmdlets are PowerShell’s internal commands. These cmdlets will return one or more objects to the pipeline where at the end of that pipeline, we mention some properties of the objects in the following table to see their values displayed on the screen.

Command

Description

Get-Help

This command allows you to get support with PowerShell.

Get-PSdrive

This command offers you a list of available PSDrives, such as c, env, hklm, hkcu, alias, etc.

Get-ChildItem

In any registry, children are the subkeys of the current key. To get the required details, you can use the following command.

Get-ChildItem -recurse

Run this command to list all the children recursively of the current PSdrive, folder, or registry key.

Get-ChildItem -rec -force

Use this command To include the hidden folders (directories).

(Get-ChildItem).name or Get-ChildItem -name

Run any of these commands to get the list file and directory names in the current folder.

(Get-ChildItem).count 

Use this command to get the number of entries in the collection of objects returned by the Get-Children.

PSdrives

PSdrives are the collection of entities grouped together so they can be accessed as a filesystem drive. The “PSprovider” does this grouping.

By default, a PS session can access several PSdrives including c:, env:, alias:, and HKLM:, where c: refers to the usual Windows c-drive; env: is the space of Windows environmental variables; alias: is the collection of cmdlet aliases; and HKLM is a hive in the registry.

Any PS session will enter the user’s home folder. If you want to switch from a PS session to another PSdrive and retrieve the information from that drive, consider the following commands:

Commands

Description

Switching to env-

The prompt character will change to the “ENV:\>”. Set-Location env by running the following command:

Set-Location env-
Env:\> Get-Childitem

This command will get you all the environment variables.

Env:\> Get-Childitem userprofile

Use this command to get the environment variables of “userprofile.”

Env:\> Set-Location alias:

Run the following command to change the prompt character to “Alias.”

Alias:\> Get-Childitem

Run this command to get all the children of all aliases.

Alias:\> Set-Location C:\

Use this command to get the “C:/>” prompt again, back to the default drive.

C:\Users\user_name>$alias:ls

Run this command to find what alias “ls” stands for.

Pipelines

Cmdlets uses the pipelines to pass the objects but not the character streams like Unix. The pipeline character is | (ASCII 124), followed by a command that handles the output passed through the pipeline. The pipeline consists of the following three stages.

Get-ChildItem *.txt | Where-Object length -lt 1000 | Sort-Object length

The following table highlights some of the basic pipeline commands:

Command

Description

(Get-Item /Users/praashibansal/Desktop).lastwritetime.year

Easily sets the value of the ‘lastwritetime.year’ property to the present date and time without affecting the file’s content.

(Get-ChildItem data.txt.rtf -name).name # -> null

Provides an empty result

"data.txt.rtf" | Rename-Item -NewName "data_new.txt.rtf"

Changes the old file names and file extensions to the new ones

Get-ChildItem data.txt | Rename-Item -new {$_.name}

A trivial renaming command that invokes an automatic variable

Get-ChildItem data.txt.rtf -name | Rename-Item -new {$_.name}

If the piped object $_ doesn’t have the member property (name), you will receive an error, as parameter $_.name is null

Get-ChildItem | Select-Object basename | Sort-Object *

Displays the list of the names of all the files that are present in the current folder sorted in alphabetical order.

Move-Item *.txt subdirectory

Moves all the files to the folder subdirectory

Get-ChildItem *.txt | Move-Item ..\

Gives the error message that Move-Item lacks input

Alias

Cmdlets come with several aliases. The following table highlights a few of aliases, along with their descriptions:

Command

Description

Add-Content

Appends value to a file

Get-Content

Finds file content in an array

Set-Location

Changes folder, key, or PS drive

Clear-Host

Clears console

Remove-Item

Delete files

Get-ChildItem -Path .\

Lists Folder, Key, or PSDrive Children

Write-Output

Sends the array to the console, pipeline, or redirect it to the file

Foreach-Object

Traverses each object in a pipeline

Format-Table

Formats the table with selected properties for each object in each column

Format-List

Formats the process properties by name

Get-Alias

Provides Cmdlet Alias

Get-Command

Provides you with commands from the current session only

Get-Member

Retrieves all the object members

Get-ItemProperty .\data.txt | Format-List

Provides the specified item’s properties

Get-ItemPropertyValue -Path '.\data.txt' -Name LastWriteTime

Gives the current value for a specified property while using the name parameter

Get-Variable m*

Finds session variable names and sessions

New-Item -Path .\ -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."

Creates a new file, directory, symbolic link, registry key, or registry entry

Get-Process

Gives the entire list of all the running processes

Get-Location

Provides the current directory’s or registry key’s location

Rename-Item -Path “old_name” -NewName “new_name”

Renames the old item name with the new name

Remove-Item .\testfile1.txt

Removes the specified directory, files, or registry keys

Remove-Variable 

Removes the specified variable

Start-Sleep

Suspends an activity for a specified period of time

Operators

  • Arithmetic Operators

Operator

Description

Example

+

Adds integers; concatenates

6 + 2

 

strings, arrays, and hash tables.

«file» + «name»

@(1, «one») + @(2.0, «two»)

@{«one» = 1} + @{«two» = 2}

+

Makes a number out of an object

123

Subtracts one value from another

6 — 2

Calculates the opposite number

— -6

   

(Get-Date).AddDays(-1)

*

Multiply numbers or copy strings and arrays for a specified number of times

6 * 2

   

@(«!») * 4

   

«!» * 3

/

Divides two values

6 / 2

%

Modulus — returns the remainder of a division operation

7 % 2

-band

Bitwise AND

5 -band 3

-bnot

Bitwise NOT

-bnot 5

-bor

Bitwise OR

5 -bor 0x03

-bxor

Bitwise XOR

5 -bxor 3

-shl

Shifts bits to the left

102 -shl 2

-shr

Shifts bits to the right

102 -shr 2

  • Operator Precedence

Precedence

Operator

Description

1

()

Parentheses

2

For a negative number or unary operator

3

*, /, %

For multiplication and division

4

+,-

For addition and subtraction

5

-band, -bnot, -bor, -bxor, -shr, and -shl

For bitwise operations

  • Assignment Operators

Operator

Description

=

Sets a variable’s value to the specified value

+=

Increases a variable’s value by the specified value or appends the specified value to the existing value

-=

Decreases a variable’s value by a specified value

*=

Multiplies a variable’s value by a specified value, or appends the specified value to the existing value

/=

Divides a variable’s value by a specified value

%=

Divides the variable’s value by a specified value and then assigns the remainder (modulus) to the variable.

#ERROR!

Increases a variable’s value, assignable property, or array element by 1.

Decreases the variable’s value, assignable property, or array element by 1.

  • Comparison Operators

Type

Operator

Comparison test

Equality

-eq

equals

 

-ne

not equals

 

-gt

greater than

 

-ge

greater than or equal

 

-lt

less than

 

-le

less than or equal

Matching

-like

string matches wildcard pattern

 

-notlike

string doesn’t match wildcard pattern

 

-match

string matches regex pattern

 

-notmatch

string doesn’t match regex pattern

Replacement

-replace

replaces strings matching a regex pattern

Containment

-contains

collection contains a value

 

-notcontains

collection doesn’t contain a value

 

-in

value is in a collection

 

-notin

value is not in a collection

Type

-is

both objects are the same type

 

-isnot

objects are not the same type

  • Logical Operators

Operator

Description

Example

-and

Logical AND. TRUE when both statements are true.

(1 -eq 1) -and (1 -eq 2)

FALSE

-or

Logical OR. TRUE when either of the statements is TRUE.

(1 -eq 1) -or (1 -eq 2)

TRUE

-xor

Logical EXCLUSIVE OR. TRUE when only one statement is TRUE.

(1 -eq 1) -xor (2 -eq 2)

FALSE

-not

Logical not. Negates the statement that follows.

-not (1 -eq 1)

FLASE

!

Same as -not

!(1 -eq 1)

FALSE

  • Redirection Operator

Operator

Description

Syntax

>

Send specified stream to a file

n>

>>

Append specified stream to a file

n>>

>&1

Redirects the specified stream to the Success stream

n>&1

  • Type Operators

Operator

Description

Example

-isNot

Returns TRUE when the input not an instance of the

specified.NET type.

(get-date) -isNot [DateTime]

FALSE

-as

Converts the input to the specified .NET type.

«5/7/07» -as [DateTime]

Monday, May 7, 2007 00:00:00

Some Other Operators

Operator

Description

() Grouping Operator

Allows you to override operator precedence in expressions

&() Subexpression Operator

Gives you the result of one or more statements

@( ) Array Subexpression Operator

Returns the results of one or more statements in the form of arrays.

& Background Operator

The pipeline before & is executed by this command in a Powershell job.

[] Cast Operator

Converts objects to the specific type.

Regular Expressions

A regular expression is a pattern that is used to match text that includes literal characters, operators, and other constructs. PowerShell regular expressions are case-insensitive by default.

Method

Case Sensitivity

Select-String

use -CaseSensitive switch

switch statement

use the -casesensitive option

operators

prefix with ‘c’ (-cmatch, -csplit, or -creplace)

  • Character Literals

A regular expression can be a literal character or a string.

  • Character Groups

These allow you to match any number of characters one time, while [^character group] only matches characters NOT in the group.

  • Character Range

A pattern can also be a range of characters. The characters can be alphabetic [A-Z], numeric [0-9], or even ASCII-based [ -~] (all printable characters).

  • Numbers

The \d character class will match any decimal digit. Conversely, \D will match any non-decimal digit.

  • Word Character

The \w character class will match any word character [a-zA-Z_0-9]. To match any non-word character, use \W.

  • Wildcard

The period (.) is a wildcard character in regular expressions. It will match any character except a newline (\n).

  • Whitespace

Whitespace is matched using the \s character class. Any non-whitespace character is matched using \S. Literal space characters ‘ ‘ can also be used.

  • Escaping Characters

The backslash (\) is used to escape characters so the regular expression engine doesn’t parse them.

The following characters are reserved: []().\^$|?*+{}.

  • Substitution in Regular Expression.

The regular expressions with the -replace operator allows you to dynamically replace text using captured text.

<input> -replace <original>, <substitute>

Flow Control

  • ForEach-Object

ForEach-Object is a cmdlet that allows you to iterate through items in a pipeline, such as with PowerShell one-liners. ForEach-Object will stream the objects through the pipeline.

Although the Module parameter of Get-Command accepts multiple values that are strings, it will only accept them via pipeline input using the property name, or parameter input.

If you want to pipe two strings by value to Get-Command for use with the Module parameter, use the ForEach-Objectcmdlet:

$ComputerName = 'DC01', 'WEB01'

foreach ($Computer in $ComputerName) {

Get-ADComputer -Identity $Computer

}
  • For

A “for” loop iterates while a specified condition is true.

For example:

for ($i = 1; $i -lt 5; $i++) {

Write-Output "Sleeping for $i seconds"

Start-Sleep -Seconds $i

}

  • Do

There are two different “do” loops in PowerShell. Do Until runs while the specified condition is false.

Example 1:

$number = Get-Random -Minimum 1 -Maximum 10

do {

$guess = Read-Host -Prompt "What's your guess?"

if ($guess -lt $number) {

Write-Output 'Too low!'

}

elseif ($guess -gt $number) {

Write-Output 'Too high!'

}

}

until ($guess -eq $number)

Example 2:

$number = Get-Random -Minimum 1 -Maximum 10

do {

$guess = Read-Host -Prompt "What's your guess?"

if ($guess -lt $number) {

Write-Output 'Too low!'

} elseif ($guess -gt $number) {

Write-Output 'Too high!'

}

}

while ($guess -ne $number)

  • While

Similar to the Do While loop, a While loop runs as long as the specified condition is true. The difference however, is that a While loop evaluates the condition at the top of the loop before any code is run. So, it doesn’t run if the condition evaluates to false.

For example:

$date = Get-Date -Date 'November 22'

while ($date.DayOfWeek -ne 'Thursday') {

$date = $date.AddDays(1)

}

Write-Output $date

Variables

PowerShell allows you to store all types of values. For example, it can store command results and command expression elements like names, paths, and settings. Here are some of PowerShell’s different variables.

  • User-created variables: These are created and maintained by the user. The variables you create at the PowerShell command line will only exist until the PowerShell window is open. When you close the PowerShell window, these variables are deleted. If you want to save a variable, you need to add it to your PowerShell profile. You can create variables and declare them with three different scopes: global, script, or local.
  • Automatic variables: These variables store the state of PowerShell and are created by PowerShell. Only PowerShell can change their values as required to maintain accuracy. Users can’t change these variables’ value. For example, the $PSHOME variable will store the path to the PowerShell installation directory.
  • Preference variables: These variables store user preferences for PowerShell and are created by PowerShell. These variables are populated with default values and can be changed by the users. For example, the $MaximumHistoryCount variable specifies the maximum number of entries in the session history.

To create a new variable, you need to use an assignment statement and assign a value to the variable. There is no need to declare the variable before using it. The default value of all variables is $null.

For example:

$MyVariable = 1, 2, 3

$MyVariable

Function

  • Naming Your Function

Use a Pascal case name with an approved verb and a singular noun to name a function. You can get a list of approved verbs by running Get-Verb:

Get-Verb | Sort-Object -Property Verb

  • Creating a Simple Function

Use a function keyword followed by the function name to create a simple function. Then, use an open and closing curly brace. The function will execute code contained within those curly braces.

For example:

function Get-Version {

$PSVersionTable.PSVersion

}

Working with Modules

A module is a package containing PowerShell members, such as cmdlets, providers, functions, workflows, variables, and aliases. You can implement package members in a PowerShell script, a compiled DLL, or both. PowerShell automatically imports the modules the first time you run any command in an installed module. You can use the commands in a module without setting up or profile configuration.

  • How to Use a Module

To use any module, you need to first install them. Then, find the command that comes with the module and use them.

  • Installing a Module

If you get a module as a folder, install it before you use it on the PowerShell command line. Some modules are preinstalled. You can use the following command to create a Modules directory for the current user:

New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules

Copy the entire module folder into the Modules directory. You can use any method to copy the folder, including Windows Explorer, Cmd.exe, and PowerShell.

  • Finding the Installed Modules

Run the following to find the modules installed in a default module location (not imported).

Get-Module -ListAvailable

  • Finding Commands in a Module

Run the following command to find a module’s commands:

Get-Command -Module <module-name>

Get-Command -Module Microsoft.PowerShell.Archive

  • Importing a Module

Run the following command with the proper module name:

Import-Module <module-name>
  • Removing a Module Name

You can run the following command with the proper module name:

Remove-Module <module-name>
  • View Default Module Locations

Use the following command to view default module locations:

$Env:PSModulePath
  • Add a Default Module Location

You can use the following command format:

$Env:PSModulePath = $Env:PSModulePath + ";<path>"
  • Add a Default Module Location on Linux or MacOS

Use the following to execute the same command as above, only with Linux or macOS:

$Env:PSModulePath += ":<path>"

Hash Tables

A hash table is a complex data structure to store data in the form of key-value pairs. We also refer to a hash table as a dictionary or associative array. To understand a hash table, consider a series of IP addresses and the respective computer names. A hash stores this data in the form of key-value pairs, where IP addresses refer to keys and computer names to their corresponding values.

The hash table syntax is as follows:

@{ <name> = <value>; [<name> = <value> ] ...}

An ordered dictionary’s syntax is as follows:

[ordered]@{ <name> = <value>; [<name> = <value> ] ...}
  • Creating Hash Tables

If you want to create a hash table, follow these steps:

  • Start the hash table with an at sign (@) and enclose it in curly braces ({}).
  • A hash table should contain at least one key-value pair, and hence, enter the data after creating a hash table.
  • Separate key from its value using an equal sign (=).
  • Separate the key/value pairs in a hash table with a semicolon (;).
  • Enclose the space between the keys in quotation marks. Values must be valid PowerShell expressions. Also, enclose strings in quotation marks, even if there are no spaces between them.
  • Save a hash table as a variable to manage it efficiently.
  • When assigning an ordered hash table to a variable, place the [ordered] attribute before the @ symbol. If you place it before the variable name, the command fails.

For example:

$hash = @{}

$hash = @{ Number = 1; Shape = "Square"; Color = "Blue"}

[hashtable]$hash = [ordered]@{

Number = 1; Shape = "Square"; Color = "Blue"}

$hash

  • Adding and Removing Keys and Values

To add keys and values to a hash table, use the following command format:

$hash[«<key>»] = «<value>»

For example, you can add a «Time» key with a value of «Now» to the hash table with the following statement format:

$hash["Time"] = "Now"

Or

$hash.Add("Time", "Now")

Or, you can remove the key with this statement format:

$hash.Remove("Time")

Asynchronous Event Handling

These cmdlets allow you to register and unregister event subscriptions and list the existing subscriptions. You can also list pending events and handle or remove them as desired.

PowerShell eventing cmdlets

Eventing Cmdlet name

Description

Register-ObjectEvent

This cmdlet registers an event subscription for events generated by .NET objects

Register-WmiEvent

Registers an event subscription for events generated by WMI objects

Register-EngineEvent

Registers an event subscription for events generated by PowerShell itself

Get-EventSubscriber

Gets a list of the registered event subscriptions in the session

Unregister-Event

Removes one or more of the registered event subscriptions

Wait-Event

Waits for an event to occur. This cmdlet can wait for a specific event or any event. It also allows a timeout to be specified, limiting how long it will wait for the event. The default is to wait forever.

Get-Event

Gets pending unhandled events from the event queue

Remove-Event

Removes a pending event from the event queue

New-Event

This cmdlet is called in a script to allow the script to add its own events to the event queue

Conclusion

Bottom line? A PowerShell cheat sheet is your one-stop-shop for everything related to PowerShell syntax and commands. In this Windows PowerShell commands cheat sheet, we’ve discussed all the basics to help even beginners navigate PowerShell.

Like any other programming language, you can use variables, and operators, create aliases and functions and even maintain flow control.

If you’re preparing for your upcoming interviews, keep this PowerShell 5.0 cheat sheet handy for quick reference with easy examples.

Interested in expanding your knowledge with Windows Command Line?

Check Out Our Windows Command Line Cheat Sheet

Frequently Asked Questions

1. How Do I Get a List of PowerShell Commands?

You can use the get-command.

2. How Many PowerShell Commands Are There?

There are over 200 commands in PowerShell.

3. How Do I Learn PowerShell for Beginners?

You might consider using Microsoft’s introductory guide to PowerShell. It includes easy language and simple examples to enhance your understanding.

4. Is Windows PowerShell the Same as Command Prompt?

The following table highlights the major differences between PowerShell and command prompt:

PowerShell

Command Prompt

Introduced in 2006

Introduced in 1981

Works with both batch commands and PowerShell cmdlets

Works only with Batch commands

Allows you to create aliases for cmdlets or scripts

Doesn’t support creating command aliases

Allows you to pass the output from a cmdlet to other cmdlets

doesn’t allow you to pass the output from a command to other commands

Output is in the form of an object

Output is just text

Can execute a sequence of cmdlets within a script

Requires one command to finish before another

Has programming libraries, as it’s built on .net framework.

No programming libraries

Seamless integration with WMI

Requires external plugin for WMI interaction

Supports Linux systems

Doesn’t support Linux systems

Runs all program types

Only runs console type programs

5. How Can I Make Command Prompt Default Instead of PowerShell?

Open Settings > Personalization > Taskbar. Now, turn the “Replace Command Prompt with Windows PowerShell» in the menu when I right-click the Start button, or press Windows key+X” option to “Off”.

People are also reading:

  • Best Python Courses
  • Best Python Certifications
  • Best Python Books
  • Top Python Projects
  • Top Python Interview Questions
  • Best Python Interpreters
  • Best way to learn python
  • How to Run a Python Script?
  • Difference between C# vs C++
  • Difference between Java vs C#
  • Python or Java
  • Ruby vs Python

Windows PowerShell является мощным средством и может выполнять практически все, что хочет человек на своем компьютере. Но единственная проблема заключается в том, что это инструмент командной строки и не имеет графического интерфейса. Тем не менее, это может быть полезно, когда интерфейс на основе графического интерфейса не работает или перестает отвечать. К сожалению, главным является тот факт, что обычному пользователю не хватает знаний об использовании PowerShell в полной мере. Но сегодня мы попытаемся обсудить 10 лучших команд PowerShell, которые могут помочь пользователю сделать больше в Windows 10.

Команды PowerShell, которые помогут пользователю сделать больше

Прежде чем мы начнем, необходимо подчеркнуть, что некоторые из этих командлетов могут переключать определенные параметры или конфигурацию на вашем компьютере. Командлет – это сценарий PowerShell, который выполняет одну функцию. Поэтому, чтобы быть в безопасности, сначала создайте точку восстановления системы. Если во время выполнения одного из следующих командлетов что-то пойдет не так, вы всегда сможете восстановить свой компьютер.

Мы рассмотрим командлеты , которые могут выполнять следующие действия:

  1. Запустите приложение UWP.
  2. Получить справку о любом командлете.
  3. Получите похожие команды.
  4. Найти определенный файл.
  5. Прочитайте содержимое файла.
  6. Найти информацию обо всех услугах на компьютере.
  7. Найти информацию обо всех процессах на компьютере.
  8. Установка политики выполнения.
  9. Скопируйте файл или каталог.
  10. Удалить файл или каталог.

1] Запустите приложение UWP

PowerShell – отличный инструмент, который можно использовать для запуска приложений UWP за считанные секунды. Но главное заключается в правильном выполнении команды. Ты можешь использовать

 Start-Process "ms-settings:" 

Команда просто для запуска приложения Windows Настройки UWP. Вы можете узнать больше о других URI для других приложений UWP здесь на microsoft.com.

2] Получите справку о любом командлете

Если вы когда-либо не понимаете, какую команду вы должны использовать для выполнения определенной задачи. Или то, что делает конкретный командлет, вам не нужно беспокоиться. Вы можете просто использовать командлет Get-Help, чтобы сделать это. Вы можете использовать его следующими способами:

 Get-Help
Получить помощь
Get-Help -Full
Get-Help -Example
Get-Help * 

Здесь первая запись расскажет вам, как использовать этот командлет. Вторая запись даст вам простое резюме конкретного командлета. Третья запись даст подробную информацию о соответствующем командлете. Четвертая запись будет содержать все, что показывает третий командлет, но добавит пример того, как использовать этот командлет. И, наконец, пятый командлет перечислит каждую команду, которая доступна для вашего использования.

3] Получить похожие команды

Чтобы найти команды аналогичного типа или содержащие в себе определенную фразу, вы можете использовать командлет Get-Command . Однако в нем не перечислен каждый командлет в PowerShell, поэтому вы используете некоторые конкретные фильтры. Вы можете использовать следующие команды:

 Get-Command -Name
Get-Command -CommandType 

Первый командлет поможет вам найти командлет с определенной фразой, а второй – отфильтровать командлеты, выполняющие определенную функцию.

4] Поиск определенного файла

Если вам нужно найти определенный файл или каталог в определенном месте, вы можете использовать командлет Get-Item . Вы можете использовать его как

 Get-Item 

перечислить содержимое конкретного пути.

5] Прочитайте содержимое файла

Если вам нужно прочитать содержимое файла, вы можете использовать команду Get-Content как

 Get-Content 

6] Прочтите информацию обо всех службах на компьютере .

Вы можете использовать командлет Get-Service , чтобы перечислить все службы, запущенные или остановленные на вашем компьютере. Кроме того, вы можете использовать следующие связанные командлеты для выполнения их соответствующих функций:

 Start-Service
Стоп-Service
Suspend-Service
Resume-Service
Рестарт-Сервис 

7] Читайте информацию обо всех процессах на компьютере

Подобно командлету Get-Service, вы можете использовать командлет Get-Process , чтобы вывести список всех процессов, запущенных на вашем компьютере.В качестве альтернативы вы можете использовать следующие связанные командлеты для выполнения соответствующих функций:

 Запуск процесса
Stop-Process
Служба ожидания 

8] Настройка политики выполнения

Хотя в PowerShell поддерживается создание и выполнение сценариев, существуют ограничения для каждого из них в рамках некоторых мер безопасности. Вы можете переключить уровень безопасности на любой из 4 уровней. Вы можете использовать командлет Set-ExecutionPolicy , а затем любой из уровней безопасности, указанных в

 Set-ExecutionPolicy Неограниченный
Set-ExecutionPolicy Все подписано
Set-ExecutionPolicy Удаленная подпись
Set-ExecutionPolicy Restricted 

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

9] Скопируйте файл или каталог

Пользователь может использовать командлет Copy-Item для копирования одного файла или каталога в другое место назначения. Синтаксис этого командлета

 Copy-Item "E: \ TWCTest.txt" -Destination "D: \" 

10] Удалить файл или каталог

Подобно командлету Copy-Item, пользователь может использовать командлет Copy-Item для копирования одного файла или каталога в другое место назначения. Синтаксис этого командлета

 Remove-Item "E: \ TWCTest.txt" 

У вас есть другие полезные командлеты, которыми вы можете поделиться со всеми нами? Не стесняйтесь записывать их в поле для комментариев ниже.

Командлетов в Windows PowerShell много поэтому сегодня я предлагаю рассмотреть небольшой список наиболее полезных и часто используемых командлетов с кратким описанием того, что они умеют. Данный справочник поможет Вам быстрей найти интересующую Вас команду Windows PowerShell и ориентирован он на начинающих системных администраторов.

Справочник командлетов Windows PowerShell

Ранее в материале «Основы Windows PowerShell» мы с Вами узнали, что вообще такое PowerShell, а также рассмотрели основные его возможности. Поэтому данная статья подразумевает, что Вы уже имеете представление о том, что такое Windows PowerShell и сейчас мы не будем заострять на этом внимание, а сразу перейдем к рассмотрению командлетов.

Конечно же, ниже представлен неполный перечень командлетов, так как их на самом деле очень много, полный список командлетов в системе Вы можете получить, выполнив следующую команду в оболочке PowerShell.

  
  Get-Command -CommandType cmdlet

Если Вы, выполнив вышеуказанную команду у себя на компьютере, не нашли командлет из представленного ниже списка (или тот который Вам нужен), то скорей всего у Вас не установлен необходимый модуль. Модули PowerShell для соответствующих ролей и компонентов сервера устанавливаются автоматически одновременно с ними. В случае если Вы хотите воспользоваться данными модулями на системе без установленных ролей и компонентов, то Вы всегда можете установить соответствующие «Средства удаленного администрирования сервера», которые добавляют не только оснастки управления, но и необходимые командлеты. Например, для того чтобы администрировать Active Directory с помощью Windows PowerShell на компьютере, который не является контроллером домена, необходимо установить модуль Active Directory для Windows PowerShell (RSAT-AD-PowerShell).

Примечание! Данный справочник составлен на основе командлетов версии PowerShell 5.0 в операционной системе Windows Server 2016.

Содержание

  1. Полезные командлеты Windows PowerShell
  2. Работа с переменными
  3. Форматирование в Windows PowerShell
  4. Импорт и экспорт
  5. Работа с сетью в Windows PowerShell
  6. Работа с элементами
  7. Командлеты для работы с Active Directory (AD)
  8. Работа с Hyper-V
  9. Работа с фоновыми заданиями
  10. Работа с объектами
  11. Командлеты PowerShell для удаленного управления
  12. Работа со службами и процессами
  13. Работа с компьютером
  14. Работа с контентом
  15. Другие командлеты Windows PowerShell

В данном разделе я перечислю командлеты PowerShell, которые Вы точно будете использовать.

  • Get-Help – показывает справку по командлету, функции и общую справку по Windows PowerShell. Справка бывает нескольких типов: краткая, детальная, полная и вывод только примеров;
  • Update-Help — загружает и устанавливает новые файлы справки, т.е. обновление справки;
  • Get-Command – командлет поиска нужной команды, можно искать как по глаголу, так и по существительному, также возможно использование маски, если Вы не знаете точное наименование глагола или существительного;
  • Get-Alias – показывает псевдонимы, все или конкретной команды;
  • Get-PSDrive – показывает подключенные диски;
  • Get-Member – выводит свойства и методы, которые есть у объекта;
  • Get-WindowsFeature – выводит сведения о доступных ролях и компонентах сервера;
  • Install-WindowsFeature (эквивалентен Add-WindowsFeature) — устанавливает роли или компоненты на указанный сервер;
  • Uninstall-WindowsFeature (эквивалентен Remove-WindowsFeature) – удаляет роли или компонента сервера;
  • Get-History — возвращает список команд, введенных в ходе текущей сессии.

Работа с переменными

В PowerShell для того чтобы создать переменную, задать ей значение или получить это значение обычно используют знак доллар $ (коротко и удобно), но для этих целей существуют специальные командлеты.

  • Get-Variable – выводит список переменных и их значения (или одну указанную переменную);
  • New-Variable – создает новую переменную;
  • Set-Variable – задает значение переменной. Если переменная с указанным именем не существует, то она будет создана;
  • Clear-Variable — удаляет значение переменной;
  • Remove-Variable — удаляет переменную и ее значение.

Заметка! Программирование на языке PowerShell.

Форматирование в Windows PowerShell

В Windows PowerShell существует набор командлетов, которые предназначены для форматирования вывода результата работы командлета. Они позволяют пользователю отобразить результат в том виде, в котором ему удобно просматривать данный результат.

  • Format-List – вывод результата команды в формате списка свойств, где на каждой новой строке отдельное свойство;
  • Format-Table — вывод результата команды в виде таблицы;
  • Format-Wide — вывод результата команды в виде широкой таблицы, в которой отображается только одно свойство каждого объекта;
  • Format-Custom – в данном случае форматирование вывода происходит с использованием пользовательского представления.

Импорт и экспорт

PowerShell позволяет импортировать и экспортировать данные в разных распространенных форматах, например, CSV или XML, а также перенаправлять вывод результата работы команды во внешний файл или на принтер.

  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импортирует данные из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;
  • Import-Clixml — импортирует файл CLIXML и создает соответствующие объекты в оболочке Windows PowerShell;
  • Out-File — посылает вывод результата работы командлета во внешний файл (например, в TXT);
  • Out-Printer — вывод результата работы команды на принтер;
  • Import-Module — добавляет модули в текущей сессии.

Работа с сетью в Windows PowerShell

Для администрирования сети в Windows PowerShell существуют такие командлеты как:

  • Disable-NetAdapter – командлет отключает сетевой адаптер;
  • Enable-NetAdapter – данный командлет включает сетевой адаптер;
  • Rename-NetAdapter — переименовывает сетевой адаптер;
  • Restart-NetAdapter — перезапускает сетевой адаптер;
  • Get-NetIPAddress – выводит информацию о конфигурации IP-адреса;
  • Set-NetIPAddress — изменяет конфигурацию IP-адреса;
  • New-NetIPAddress — создает и настраивает IP-адрес;
  • Remove-NetIPAddress — удаляет IP-адрес и его конфигурацию;
  • Get-NetRoute — выводит таблицу маршрутизации IP;
  • Set-NetRoute — изменяет таблицу маршрутизации IP;
  • New-NetRoute — создает запись в таблице маршрутизации IP;
  • Remove-NetRoute — удаляет одну или несколько записей (IP маршрутов) из таблицы маршрутизации IP;
  • Get-NetIPv4Protocol — выводит информацию о конфигурации протокола IPv4;
  • Get-NetIPv6Protocol — выводит информацию о конфигурации протокола IPv6;
  • Get-NetIPInterface — выводит информацию о свойствах интерфейса IP;
  • Get-NetTCPSetting — показывает информацию о настройках и конфигурации TCP;
  • Test-Connection – командлет посылает ICMP пакеты к одному или нескольким компьютерам, т.е. «пингует» компьютеры.

Заметка! Описание и назначение ролей сервера в Windows Server 2016.

Работа с элементами

В Windows PowerShell есть командлеты, которые умеют работать с элементами, под элементами здесь можно понимать: файлы, папки, ключи реестра и так далее.

  • Clear-Item — очищает содержимое элемента, но не удаляет сам элемент;
  • Copy-Item – копирует элемент;
  • Get-Item — получает элемент в указанном месте;
  • Invoke-Item — выполняет действие по умолчанию над указанным элементом;
  • Move-Item – перемещает элемент;
  • New-Item – создает новый элемент;
  • Remove-Item – удаляет указанные элементы;
  • Rename-Item — переименовывает элемент в пространстве имен поставщика Windows PowerShell;
  • Set-Item — изменяет элемент;
  • Get-ChildItem — возвращает элементы и дочерние элементы в одном или нескольких определенных местах;
  • Get-Location – выводит информацию о текущем местонахождении.

Командлеты для работы с Active Directory (AD)

Windows PowerShell, конечно же, позволяет работать со службой каталогов Active Directory. Для этих целей существует немало командлетов, вот некоторые из них:

  • New-ADUser – создание нового пользователя в Active Directory;
  • Get-ADUser – выводит информацию о пользователях Active Directory;
  • Set-ADUser — изменяет пользователя Active Directory;
  • Remove-ADUser — удаляет пользователя Active Directory;
  • New-ADGroup – командлет создает группу в Active Directory;
  • Get-ADGroup – выводит информацию о группе или выполняет поиск, чтобы получить несколько групп из Active Directory;
  • Set-ADGroup – командлет изменяет группу в Active Directory;
  • Remove-ADGroup — удаление группы в Active Directory;
  • Add-ADGroupMember — командлет добавляет учетные записи пользователей, компьютеров или групп в качестве новых членов группы Active Directory;
  • Get-ADGroupMember — выводит информацию о членах группы Active Directory;
  • Remove-ADGroupMember — удаление элементов из группы Active Directory;
  • Set-ADAccountPassword — сброс пароля учетной записи Active Directory;
  • Disable-ADAccount — отключает учетную запись Active Directory.
  • Enable-ADAccount — включает учетную запись Active Directory;
  • Unlock-ADAccoun — разблокирует учетную запись Active Directory;
  • New-ADComputer — создание новой учетной записи компьютера в Active Directory;
  • Get-ADComputer — выводит информацию об одном или нескольких компьютерах в Active Directory;
  • Set-ADComputer — изменение учетной записи компьютера в Active Directory;
  • Remove-ADComputer — удаление компьютера из Active Directory.

Работа с Hyper-V

Для работы с Hyper-V в Windows PowerShell существует много командлетов, вот небольшой перечень:

  • New-VM — создание новой виртуальной машины;
  • Set-VM — настройка виртуальной машины;
  • Start-VM — запуск виртуальной машины;
  • Stop-VM — закрытие, выключение или сохранение виртуальной машины;
  • Import-VM — импорт виртуальной машины из файла;
  • Move-VM — перемещение виртуальной машины на новый Hyper-V хост;
  • Remove-VM — удаление виртуальной машины;
  • Rename-VM — переименование виртуальной машины;
  • New-VHD — создание одного или нескольких новых виртуальных жестких дисков;
  • Set-VHD – настройка виртуального жесткого диска;
  • Test-VHD — тестирование виртуального жесткого диска на предмет обнаружения проблем, которые сделали бы его непригодным для использования;
  • Add-VMDvdDrive — добавляет DVD диск к виртуальной машине;
  • Remove-VMDvdDrive — удаляет DVD-диск из виртуальной машины;
  • Add-VMHardDiskDrive — добавляет жесткий диск к виртуальной машине;
  • Remove-VMHardDiskDrive — удаляет один или несколько виртуальных жестких дисков (VHD) из виртуальной машины;
  • Add-VMNetworkAdapter — добавляет виртуальный сетевой адаптер на виртуальной машине;
  • Remove-VMNetworkAdapter — удаляет один или несколько виртуальных сетевых адаптеров из виртуальной машины;
  • Copy-VMFile — копирование файлов на виртуальную машину;
  • Get-VMVideo – выводит информацию о настройках видео для виртуальных машин;
  • Move-VMStorage — перемещение хранилища виртуальной машины.

Заметка! Описание компонентов сервера в Windows Server 2016.

Работа с фоновыми заданиями

В Windows PowerShell есть возможность запускать задачи в фоновом режиме, для того чтобы, не дожидаясь окончания работы команды (для случаев, когда задача выполняется долго), продолжать работать в текущей сессии. Для работы с фоновыми заданиями в PowerShell есть следующие командлеты:

  • Start-Job – запустить фоновую задачу;
  • Stop-Job – остановить фоновую задачу
  • Get-Job – посмотреть список фоновых задач;
  • Receive-Job – посмотреть результат выполнения фоновой задачи;
  • Remove-Job – удалить фоновую задачу;
  • Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.

Работа с объектами

Так как PowerShell работает с объектами, он позволяет выполнять некие действия над этими объектами, например:

  • Measure-Object – командлет позволяет рассчитывать на основе свойств объектов такие числовые агрегирующие параметры как: минимальное, максимальное, среднее значение, сумму и количество. Например, Вы хотите узнать максимальный или средний размер файла в определенном каталоге, или просто узнать количество файлов (запущенных процессов, служб и так далее);
  • Select-Object – с помощью данного командлета можно выбрать определенные объекты или свойства этих объектов, например Вы хотите выводить только название файла и его размер;
  • Sort-Object — сортирует объекты по значениям свойств;
  • Where-Object – командлет для того чтобы ставить условие для выборки объектов на основе значений их свойств;
  • Group-Object – группирует объекты, которые содержат одинаковое значение для заданных свойств;
  • ForEach-Object – перебор объектов с целью выполнения определенной операции над каждым из этих объектов.

Командлеты PowerShell для удаленного управления

С помощью Windows PowerShell можно выполнять команды не только на локальном компьютере, но и на одном или даже на нескольких удаленных компьютерах.

  • Enter-PSSession — запускает интерактивный сеанс с удаленным компьютером;
  • Exit-PSSession — завершает интерактивный сеанс с удаленным компьютером;
  • New-PSSession — создает постоянное подключение к локальному или удаленному компьютеру;
  • Remove-PSSession — закрывает один или несколько сеансов Windows PowerShell;
  • Disconnect-PSSession — отсоединяется от сеанса;
  • Connect-PSSession — подключается к отключенным сеансам;
  • Get-PSSession — получает сеансы Windows PowerShell на локальных и удаленных компьютерах;
  • Invoke-Command — выполняет команды на локальном и удаленных компьютерах.

Работа со службами и процессами

PowerShell, конечно же, умеет управлять службами и процессами в Windows, для этого существуют такие командлеты как:

  • Get-Process – выводит информацию о запущенных процессах на компьютере;
  • Start-Process – запускает один или несколько процессов на компьютере;
  • Stop-Process — останавливает один или несколько запущенных процессов;
  • Get-Service – выводит информацию о службах;
  • Restart-Service – перезапускает службу;
  • Start-Service – запускает службу;
  • Stop-Service — останавливает службу;
  • Suspend-Service – приостанавливает работу службы;
  • Set-Service – с помощью данного командлета можно изменить свойства службы, например, описание, отображаемое имя и режим запуска. Также его можно использовать для запуска, остановки или приостановки службы.

Заметка! Установка файлового сервера (File Server) на Windows Server 2016.

Работа с компьютером

Windows PowerShell позволяет выполнять административные задачи для операционной системы и компьютера в целом, например, перезапустить операционную систему или переименовать компьютер.

  • Restart-Computer – командлет перезапускает операционную систему (перезагружает компьютер);
  • Stop-Computer – выключает компьютер;
  • Rename-Computer – переименовывает компьютер;
  • Checkpoint-Computer — создает точку восстановления системы на локальном компьютере;
  • Restore-Computer — запускает восстановление системы на локальном компьютере;
  • Disable-ComputerRestore — отключает функцию восстановления системы на указанном диске файловой системы;
  • Enable-ComputerRestore — включает функцию восстановления системы на указанном диске файловой системы;
  • Remove-Computer — удаляет локальный компьютер из домена;
  • Get-EventLog – выводит информацию о событиях в журнале событий, или список журналов событий на локальном или удаленном компьютере;
  • Clear-EventLog — удаляет записи из указанных журналов событий.

Работа с контентом

Для управления контентом, например, текстом в файле в Windows PowerShell существуют специальные командлеты, такие как:

  • Get-Content – получает содержимое элемента (например, считывает файл);
  • Add-Content – добавляет содержимое в заданные элементы, например, текст в файл;
  • Clear-Content — удаляет содержимое элемента, но не удаляет сам элемент;
  • Set-Content — записывает или заменяет содержимое в элемент с новым содержанием.

Другие командлеты Windows PowerShell

Также хотелось бы выделить следующие командлеты Windows PowerShell, которые наверняка Вам понадобятся и будут полезны.

  • Get-ExecutionPolicy – с помощью данного командлета можно узнать действующую политику выполнения Windows PowerShell для текущего сеанса;
  • Set-ExecutionPolicy – командлет изменяет политику выполнения Windows PowerShell;
  • Write-Host – выводит информацию на экран (пишет текст);
  • Read-Host – считывает строку ввода из консоли;
  • Write-Warning – выводит предупреждающее сообщение;
  • Write-Error – командлет объявляет ошибку и выводит ее в поток ошибок;
  • Get-Date – возвращает текущую дату и время;
  • Set-Date – командлет изменяет системную дату и время на компьютере.

Заметка! Курсы по SQL для начинающих на примере Microsoft SQL Server.

Вот мы с Вами и рассмотрели полезные и часто используемые командлеты Windows PowerShell, надеюсь, этот справочник будет Вам полезен, удачи!

Шпаргалка по PowerShell Команды операторы и многое другое
Шпаргалка по PowerShell Команды операторы и многое другое

Шпаргалка по PowerShell — это версия языка командной строки Windows, которая помогает вам легко выполнять и автоматизировать критически важные задачи в ваших системах. Но как выполнять эти задачи и максимально использовать PowerShell в своей системе Windows?

Системный администратор

Мы составили шпаргалку по PowerShell, в которой описаны синтаксис PowerShell и все команды PowerShell, чтобы помочь вам оптимизировать PowerShell и даже подготовиться к собеседованиям.

Начнем с краткого введения в команды Windows 10 PowerShell.

Основы PowerShell

PowerShell — это кроссплатформенное и широко используемое решение для автоматизации задач, сочетающее в себе возможности оболочки командной строки, языка сценариев и структуры управления конфигурацией. PowerShell можно запускать на операционных системах Windows, Linux и macOS. В отличие от других доступных оболочек, которые только принимают и возвращают данные, PowerShell принимает и возвращает объекты .NET.

Эта оболочка имеет следующие возможности.

  • Удобная история командной строки
  • Широкие возможности, такие как завершение табуляции и предсказание команд
  • Псевдонимы команд и параметров
  • Система изменения команд
  • Встроенная справочная система, подобная Unix man pages

Учитывая возможности любого языка сценариев, вы можете использовать PowerShell для автоматизации процессов и задач управления системой. Он позволяет создавать, тестировать и развертывать решения в средах CI/CD.

PowerShell построен на базе .NET Common Language Runtime (CLR), что означает, что все входные и выходные данные являются объектами .NET. Вам не придется разбирать текстовый вывод, чтобы получить из него информацию.

Язык сценариев PowerShell обладает следующими возможностями.

  • Функции, классы, объекты и модули
  • Простая система форматирования для обеспечения четкого вывода данных для повышения удобочитаемости
  • Встроенная поддержка различных форматов данных, таких как CSV, JSON и XML
  • Система типов для создания динамических типов

Теперь перейдем к некоторым полезным командам PowerShell.

Шпаргалка PowerShell по командам

Командлеты
Cmdlets — это внутренние команды PowerShell. Эти команды возвращают один или несколько объектов в конвейер, в конце которого мы упоминаем некоторые свойства объектов в следующей таблице, чтобы увидеть их значения, отображаемые на экране.

Команда Описание
Get-Help
Эта команда позволяет получить поддержку с помощью PowerShell.
Get-PSdrive
Эта команда предлагает вам список доступных PSDrives, таких как c, env, hklm, hkcu, alias и т.д.
Get-ChildItem
В любом реестре дочерние ключи — это подключи текущего ключа. Чтобы получить необходимые сведения, можно воспользоваться следующей командой.
Get-ChildItem -recurse
Выполните эту команду, чтобы рекурсивно перечислить все дочерние элементы текущего PSdrive, папки или ключа реестра.
Get-ChildItem -rec -force
Используйте эту команду для включения скрытых папок (каталогов).
(Get-ChildItem).name or Get-ChildItem -name
Выполните любую из этих команд, чтобы получить список имен файлов и каталогов в текущей папке.
(Get-ChildItem).count 
Используйте эту команду, чтобы получить количество записей в коллекции объектов, возвращенных командой Get-Children.

PSdrives

PSdrives — это коллекция объектов, сгруппированных вместе, чтобы к ним можно было получить доступ как к диску файловой системы. PSprovider» выполняет эту группировку.

По умолчанию сеанс PS может обращаться к нескольким PSdrives, включая c:, env:, alias: и HKLM:, где c: означает обычный диск c Windows; env: — это пространство переменных среды Windows; alias: — это коллекция псевдонимов команд; а HKLM — это ветка в реестре.

При любом сеансе PS пользователь попадает в свою домашнюю папку. Если вы хотите перейти из сеанса PS на другой диск PSdrive и получить информацию с этого диска, воспользуйтесь следующими командами:

Команды Описание
Switching to env-
Символ подсказки изменится на «ENV:\>». Установите env, выполнив следующую команду:

Set-Location env-
Env:\> Get-Childitem
Эта команда предоставит вам все переменные окружения.
Env:\> Get-Childitem userprofile
Используйте эту команду, чтобы получить переменные окружения «userprofile».
Env:\> Set-Location alias:
Выполните следующую команду, чтобы изменить символ подсказки на » Alias».
Alias:\> Get-Childitem
Выполните эту команду, чтобы получить все дочерние элементы всех псевдонимов.
Alias:\> Set-Location C:\
Используйте эту команду, чтобы снова получить приглашение «C:/>», вернувшись к диску по умолчанию.
C:\Users\user_name>$alias:ls
Выполните эту команду, чтобы узнать, что означает псевдоним «ls».

Конвейеры

Cmdlets использует конвейеры для передачи объектов, но не потоков символов, как Unix. Символ конвейера — | (ASCII 124), за которым следует команда, обрабатывающая вывод, проходящий через конвейер. Конвейер состоит из следующих трех этапов.

Get-ChildItem *.txt | Where-Object length -lt 1000 | Sort-Object length

В следующей таблице приведены некоторые из основных команд конвейеров:

Команда Описание
(Get-Item /Users/praashibansal/Desktop).lastwritetime.year
Легко устанавливает значение свойства ‘lastwritetime.year’ на текущую дату и время, не влияя на содержимое файла.
(Get-ChildItem data.txt.rtf -name).name # -> null
Предоставляет пустой результат
"data.txt.rtf" | Rename-Item -NewName "data_new.txt.rtf"
Изменяет старые имена файлов и расширения файлов на новые
Get-ChildItem data.txt | Rename-Item -new {$_.name}
Тривиальная команда переименования, вызывающая автоматическую переменную
Get-ChildItem data.txt.rtf -name | Rename-Item -new {$_.name}
Если у передаваемого объекта $_ нет свойства (name), вы получите ошибку, так как параметр $_.name является null
Get-ChildItem | Select-Object basename | Sort-Object *
Отображает список имен всех файлов, присутствующих в текущей папке, отсортированных в алфавитном порядке.
Move-Item *.txt subdirectory
Перемещает все файлы в подкаталог папки
Get-ChildItem *.txt | Move-Item ..\
Выдает сообщение об ошибке, что Move-Item не имеет входа

Alias (Алиас)

Cmdlets поддерживают несколько псевдонимов. В следующей таблице приведены некоторые псевдонимы и их описания:

Команда Описание
Add-Content
Добавляет значение к файлу
Get-Content
Поиск содержимого файла в массиве
Set-Location
Изменение папки, ключа или диска PS
Clear-Host
Очищает консоль
Remove-Item
Удаление файлов
Get-ChildItem -Path .\
Списки папок, ключей или дочерних элементов PSDrive
Write-Output
Отправляет массив в консоль, конвейер или перенаправляет его в файл
Foreach-Object
Обход каждого объекта в конвейере
Format-Table
Форматирует таблицу с выбранными свойствами для каждого объекта в каждом столбце
Format-List
Форматирует свойства процесса по имени
Get-Alias
Обеспечивает псевдоним командлета
Get-Command
Предоставляет вам команды только из текущей сессии
Get-Member
Извлечение всех членов объекта
Get-ItemProperty .\data.txt | Format-List
Предоставляет свойства указанного элемента
Get-ItemPropertyValue -Path '.\data.txt'
 -Name LastWriteTime
Получает текущее значение для указанного свойства при использовании параметра name
Get-Variable m*
Находит имена переменных сеансов
New-Item -Path .\ -Name "testfile1.txt" -ItemType
 "file" -Value "This is a text string."
Создает новый файл, каталог, символическую ссылку, ключ реестра или запись реестра.
Get-Process
Выдает полный список всех запущенных процессов
Get-Location
Предоставляет местоположение текущего каталога или ключа реестра
Rename-Item -Path “old_name” -NewName “new_name”
Переименовывает старое имя элемента в новое имя
Remove-Item .\testfile1.txt
Удаляет указанный каталог, файлы или ключи реестра
Remove-Variable 
Удаляет указанную переменную
Start-Sleep
Приостанавливает деятельность на определенный период времени

Операторы

Арифметические операторы

Оператор Описание Пример
+ Складывает целые числа; объединяет 6 + 2
строки, массивы и хэш-таблицы. «file» + «name»

@(1, «one») + @(2.0, «two»)

@{«one» = 1} + @{«two» = 2}

+ Делает число из объекта 123
Вычитание одного значения из другого 6 — 2
Вычисляет противоположное число — -6
(Get-Date).AddDays(-1)
* Умножение чисел или копирование строк и массивов заданное количество раз 6 * 2
@(«!») * 4
«!» * 3
/ Делит два значения 6 / 2
% Modulus — возвращает остаток от операции деления 7 % 2
-band Побитовое И 5 -band 3
-bnot Побитовое НЕ -bnot 5
-bor Побитовое ИЛИ 5 -bor 0x03
-bxor Побитовое XOR 5 -bxor 3
-shl Сдвигает биты влево 102 -shl 2
-shr Сдвигает биты вправо 102 -shr 2

Приоритет оператора

Приоритет Оператор Описание
1 () Круглые скобки
2 Для отрицательного числа или унарного оператора
3 *, /, % Для умножения и деления
4 +,- Для сложения и вычитания
5 -band, -bnot, -bor, -bxor, -shr, and -shl Для побитовых операций

Операторы присваивания

Оператор Описание
= Устанавливает значение переменной на указанное значение
+= Увеличивает значение переменной на указанное значение или добавляет указанное значение к существующему значению
-= Уменьшает значение переменной на заданную величину
*= Умножает значение переменной на указанное значение или добавляет указанное значение к существующему значению
/= Делит значение переменной на заданное значение
%= Делит значение переменной на заданное значение, а затем присваивает переменной остаток (модуль).
++ Увеличивает значение переменной, присваиваемого свойства или элемента массива на 1.
Уменьшает значение переменной, присваиваемого свойства или элемента массива на 1.

Операторы сравнения

Тип Оператор Сравнительный тест
Равенство -eq равно
-ne не равно
-gt больше, чем
-ge больше или равно
-lt меньше чем
-le меньше чем или равно
Соответствие -like строка соответствует шаблону подстановки
-notlike строка не соответствует шаблону
-match строка соответствует regex-шаблону
-notmatch строка не соответствует regex-шаблону
Замена -replace заменяет строки, соответствующие шаблону regex
Сдерживание -contains коллекция содержит значение
-notcontains коллекция не содержит значения
-in значение находится в коллекции
-notin значение отсутствует в коллекции
Тип -is оба объекта имеют одинаковый тип
-isnot объекты разного типа

Логические операторы

Оператор Описание Пример
-and Логическое И. TRUE, когда оба утверждения истинны. (1 -eq 1) -and (1 -eq 2)

FALSE

-or Логическое ИЛИ. TRUE, когда любое из утверждений TRUE. (1 -eq 1) -or (1 -eq 2)

TRUE

-xor Логическое ИСКЛЮЧАЮЩЕЕ ИЛИ. ИСТИНА, когда только одно утверждение является ИСТИНОЙ. (1 -eq 1) -xor (2 -eq 2)

FALSE

-not Логическое не. Отрицает утверждение, которое следует за ним. -not (1 -eq 1)

FLASE

! То же, что и -нет !(1 -eq 1)

FALSE

Оператор перенаправления

Оператор Описание Синтаксис
> Отправить указанный поток в файл n>
>> Добавить указанный поток в файл n>>
>&1 Перенаправляет указанный поток на поток Success n>&1

Операторы типа

Оператор Описание Пример
-isNot Возвращает TRUE, если входные данные не являются экземпляром указанного.NET типа. (get-date) -isNot [DateTime]

FALSE

-as Преобразует входные данные в указанный тип .NET. «5/7/07» -as [DateTime]

Monday, May 7, 2007 00:00:00

Другие операторы

Оператор Описание
() Оператор группировки Позволяет переопределить старшинство операторов в выражениях
&() Оператор подвыражения Выдает результат одного или нескольких утверждений
@( ) Оператор подвыражения массива Возвращает результаты одного или нескольких операторов в виде массивов.
& Фоновый оператор Конвейер перед & выполняется этой командой в задании Powershell.
[] Cast оператор Преобразует объекты к определенному типу.

Регулярные выражения

Регулярное выражение — это шаблон, который используется для сопоставления текста, включающего литеральные символы, операторы и другие конструкции. Регулярные выражения PowerShell по умолчанию не чувствительны к регистру.

Метод Чувствительность к случаю
Select-String use -CaseSensitive switch
switch statement use the -casesensitive option
operators prefix with ‘c’ (-cmatch, -csplit, or -creplace)

Литералы символов

Регулярное выражение может быть литеральным символом или строкой.

Группы символов

Они позволяют сопоставить любое количество символов за один раз, в то время как [^character group] сопоставляет только символы, не входящие в группу.

Диапазон символов

Шаблон также может быть диапазоном символов. Символы могут быть алфавитными [A-Z], цифровыми [0-9] или даже [ -~] (все печатаемые символы) в формате ASCII.

Числа

Класс символов \d будет соответствовать любой десятичной цифре. И наоборот, \D будет соответствовать любой недесятичной цифре.

Словесный символ

Класс символов \w будет соответствовать любому символу слова [a-zA-Z_0-9]. Чтобы подобрать любой несловосочетаемый символ, используйте \W.

Подстановочный знак

Точка (.) является символом подстановки в регулярных выражениях. Он будет соответствовать любому символу, кроме новой строки (\n).

Пробел

Пробельные символы сопоставляются с помощью класса символов \s. Любой не пробельный символ сопоставляется с помощью \S. Буквальные символы пробела ‘ ‘ также могут быть использованы.

Экранирование символов

Обратная косая черта (\) используется для экранирования символов, чтобы механизм регулярных выражений не разбирал их.

Следующие символы зарезервированы: []().\^$|?*+{}.

Подстановка в регулярном выражении.

Регулярные выражения с оператором -replace позволяют динамически заменять текст с помощью захваченного текста.

<input> -replace <original>, <substitute>

Управление потоком

ForEach-Object
ForEach-Object — это командлет, который позволяет выполнять итерации по элементам в конвейере, например, с помощью однострочных команд PowerShell. ForEach-Object будет передавать объекты по конвейеру.

Хотя параметр Module команды Get-Command принимает несколько значений, которые являются строками, он будет принимать их только через конвейерный ввод с помощью имени свойства или ввода параметра.

Если вы хотите передать две строки по значению в Get-Command для использования с параметром Module, используйте команду ForEach-Object:

$ComputerName = 'DC01', 'WEB01'

foreach ($Computer in $ComputerName) {

Get-ADComputer -Identity $Computer

}

For

Цикл «for» выполняет итерации, пока заданное условие истинно.

Например:

for ($i = 1; $i -lt 5; $i++) {

Write-Output "Sleeping for $i seconds"

Start-Sleep -Seconds $i

}

Do

В PowerShell существует два различных цикла «do». Do Until выполняется, пока заданное условие ложно.

Пример 1:

$number = Get-Random -Minimum 1 -Maximum 10

do {

$guess = Read-Host -Prompt "What's your guess?"

if ($guess -lt $number) {

Write-Output 'Too low!'

}

elseif ($guess -gt $number) {

Write-Output 'Too high!'

}

}

until ($guess -eq $number)

Пример 2:

$number = Get-Random -Minimum 1 -Maximum 10

do {

$guess = Read-Host -Prompt "What's your guess?"

if ($guess -lt $number) {

Write-Output 'Too low!'

} elseif ($guess -gt $number) {

Write-Output 'Too high!'

}

}

while ($guess -ne $number)

While

Подобно циклу Do While, цикл While выполняется до тех пор, пока заданное условие истинно. Однако разница заключается в том, что цикл While оценивает условие в верхней части цикла перед выполнением любого кода. Таким образом, он не выполняется, если условие оценивается как ложное.

Например:

$date = Get-Date -Date 'November 22'

while ($date.DayOfWeek -ne 'Thursday') {

$date = $date.AddDays(1)

}

Write-Output $date

Переменные

PowerShell позволяет хранить все типы значений. Например, он может хранить результаты команд и элементы командных выражений, такие как имена, пути и параметры. Вот некоторые из различных переменных PowerShell.

Переменные, созданные пользователем: Они создаются и поддерживаются пользователем. Переменные, которые вы создаете в командной строке PowerShell, будут существовать только до тех пор, пока открыто окно PowerShell. Когда вы закрываете окно PowerShell, эти переменные удаляются. Если вы хотите сохранить переменную, вам необходимо добавить ее в свой профиль PowerShell. Вы можете создавать переменные и объявлять их с тремя различными диапазонами: глобальным, скриптовым или локальным.

Автоматические переменные: Эти переменные хранят состояние PowerShell и создаются PowerShell. Только PowerShell может изменять их значения по мере необходимости для поддержания точности. Пользователи не могут изменять значение этих переменных. Например, переменная $PSHOME будет хранить путь к директории установки PowerShell.

Переменные предпочтений: Эти переменные хранят предпочтения пользователя для PowerShell и создаются PowerShell. Эти переменные заполнены значениями по умолчанию и могут быть изменены пользователями. Например, переменная $MaximumHistoryCount задает максимальное количество записей в истории сеансов.

Чтобы создать новую переменную, необходимо использовать оператор присваивания и присвоить переменной значение. Объявлять переменную перед ее использованием не нужно. Значение по умолчанию для всех переменных — $null.

Например:

$MyVariable = 1, 2, 3

$MyVariable

Шпаргалка по PowerShell

Функция

Именование функции
Для именования функции используйте имя регистра Паскаля с утвержденным глаголом и существительным в единственном числе. Список утвержденных глаголов можно получить, выполнив Get-Verb:

Get-Verb | Sort-Object -Property Verb

Шпаргалка по PowerShell

Создание простой функции

Для создания простой функции используйте ключевое слово function, за которым следует имя функции. Затем используйте открытую и закрывающую фигурные скобки. Функция будет выполнять код, содержащийся в этих фигурных скобках.

Например:

function Get-Version {

$PSVersionTable.PSVersion

}

Шпаргалка по PowerShell

Работа с модулями

Модуль — это пакет, содержащий объекты PowerShell, такие как команды, провайдеры, функции, рабочие процессы, значения переменных и псевдонимы. Элементы пакета можно реализовать в сценарии PowerShell, скомпилированной библиотеке DLL или и в том, и в другом. PowerShell автоматически импортирует модули при первом запуске любой команды в установленном модуле. Вы можете использовать команды в модуле без настройки или конфигурации профиля.

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

Установка модуля
Если вы получили модуль в виде папки, установите его перед использованием в командной строке PowerShell. Некоторые модули являются предустановленными. Вы можете использовать следующую команду для создания каталога Modules для текущего пользователя:

New-Item -Type Directory -Path $HOME\Documents\PowerShell\Modules

Шпаргалка по PowerShell

Скопируйте всю папку модуля в каталог Modules. Для копирования папки можно использовать любой метод, включая проводник Windows, Cmd.exe и PowerShell.

Поиск установленных модулей
Выполните следующие действия, чтобы найти модули, установленные в местоположении модулей по умолчанию (не импортированные).

Get-Module -ListAvailable

Шпаргалка по PowerShell

Поиск команд в модуле

Выполните следующую команду, чтобы найти команды модуля:

Get-Command -Module <module-name>

Get-Command -Module Microsoft.PowerShell.Archive

Шпаргалка по PowerShell

Импортирование модуля

Выполните следующую команду с нужным именем модуля:

Import-Module <module-name>

Удаление имени модуля

Вы можете выполнить следующую команду с нужным именем модуля:

Remove-Module <module-name>

Просмотр расположения модулей по умолчанию

Используйте следующую команду для просмотра расположения модулей по умолчанию:

$Env:PSModulePath

Добавление местоположения модуля по умолчанию

Вы можете использовать следующий формат команды:

$Env:PSModulePath = $Env:PSModulePath + ";<path>"

Добавление местоположения модуля по умолчанию в Linux или macOS

Используйте следующее, чтобы выполнить ту же команду, что и выше, только в Linux или macOS:

$Env:PSModulePath += ":<path>"

Хеш-таблицы

Хеш-таблица — это сложная структура данных для хранения данных в виде пар ключ-значение. Мы также называем хэш-таблицу словарем или ассоциативным массивом. Чтобы понять, что такое хэш-таблица, рассмотрим серию IP-адресов и соответствующие имена компьютеров. В хэш-таблице эти данные хранятся в виде пар ключ-значение, где IP-адреса обозначают ключи, а имена компьютеров — соответствующие им значения.

Синтаксис хэш-таблицы выглядит следующим образом:

@{ <name> = <value>; [<name> = <value> ] ...}

Синтаксис упорядоченного словаря выглядит следующим образом:

[ordered]@{ <name> = <value>; [<name> = <value> ] ...}

Создание хэш-таблиц

Если вы хотите создать хэш-таблицу, выполните следующие действия:

  • Начните хэш-таблицу со знака at (@) и заключите ее в фигурные скобки ({}).
  • Хэш-таблица должна содержать хотя бы одну пару ключ-значение, поэтому вводите данные после создания хэш-таблицы.
  • Отделите ключ от его значения с помощью знака равенства (=).
  • Разделяйте пары ключ/значение в хэш-таблице точкой с запятой (;).
  • Заключите пробел между ключами в кавычки. Значения должны быть допустимыми выражениями PowerShell. Также заключайте строки в кавычки, даже если между ними нет пробелов.
  • Сохраните хэш-таблицу как переменную, чтобы эффективно управлять ею.
  • При назначении упорядоченной хэш-таблицы переменной поместите атрибут [ordered] перед символом @. Если поместить его перед именем переменной, команда не выполнится.

Например:

$hash = @{}

$hash = @{ Number = 1; Shape = "Square"; Color = "Blue"}

[hashtable]$hash = [ordered]@{

Number = 1; Shape = "Square"; Color = "Blue"}

$hash

Добавление и удаление ключей и значений

Чтобы добавить ключи и значения в хэш-таблицу, используйте следующий формат команды:

$hash[«<key>»] = «<value>»

Например, вы можете добавить ключ «Time» со значением «Now» в хэш-таблицу с помощью следующего формата оператора:

$hash["Time"] = "Now"

или

$hash.Add("Time", "Now")

Или вы можете удалить ключ с помощью этого выражения:

$hash.Remove("Time")

Асинхронная обработка событий

Эти команды позволяют регистрировать и отменять подписки на события и выводить список существующих подписок. Вы также можете перечислить ожидающие события и обработать или удалить их по желанию.

Команды PowerShell для обработки событий

Имя командлета обработки событий Описание
Register-ObjectEvent Этот командлет регистрирует подписку на события для событий, генерируемых объектами .NET
Register-WmiEvent Регистрирует подписку на события для событий, генерируемых объектами WMI
Register-EngineEvent Регистрирует подписку на события для событий, генерируемых самим PowerShell
Get-EventSubscriber Получает список зарегистрированных подписок на события в сессии
Unregister-Event Удаляет одну или несколько зарегистрированных подписок на события
Wait-Event Ожидает наступления события. Эта команда может ждать определенного события или любого события. Она также позволяет указать тайм-аут, ограничивающий время ожидания события. По умолчанию ожидание длится вечно.
Get-Event Получает ожидающие необработанные события из очереди событий
Remove-Event Удаляет ожидающее событие из очереди событий
New-Event Эта команда вызывается в сценарии, чтобы позволить сценарию добавлять свои собственные события в очередь событий

Шпаргалка по PowerShell: заключение

В итоге? Шпаргалка по PowerShell — это универсальный справочник по синтаксису и командам PowerShell. В этой шпаргалке по командам Windows PowerShell мы рассмотрели все основы, чтобы помочь даже новичкам сориентироваться в PowerShell.

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

Если вы готовитесь к предстоящему собеседованию, держите эту шпаргалку по PowerShell 5.0 под рукой для быстрого ознакомления с простыми примерами.

Хотите расширить свои знания о командной строке Windows?

Часто задаваемые вопросы

1. Как получить список команд PowerShell?
Вы можете использовать команду get-command.

2. Сколько существует команд PowerShell?
В PowerShell существует более 200 команд.

3. Как изучить PowerShell для начинающих?
Вы можете воспользоваться вводным руководством Microsoft по PowerShell. Оно содержит простой язык и простые примеры для лучшего понимания.

4. Является ли Windows PowerShell тем же самым, что и командная строка?
В следующей таблице приведены основные различия между PowerShell и командной строкой:

PowerShell Командная строка
Введен в 2006 году Введен в 1981 году
Работает как с пакетными командами, так и с командами PowerShell Работает только с пакетными командами
Позволяет создавать псевдонимы для команд или сценариев Не поддерживает создание псевдонимов команд
Позволяет передавать вывод команды другим командам. не позволяет передавать вывод команды другим командам.
Вывод осуществляется в виде объекта Вывод — просто текст
Можно выполнять последовательность команд в рамках сценария Требуется, чтобы одна команда завершилась раньше другой
Имеет библиотеки для программирования, так как построен на .net framework. Отсутствие библиотек программирования
Бесшовная интеграция с WMI Требуется внешний плагин для взаимодействия с WMI
Поддерживает системы Linux Не поддерживает системы Linux
Выполняет все типы программ Запускает только программы консольного типа

5. Как сделать командную строку по умолчанию вместо PowerShell?

Откройте Настройки > Персонализация > Панель задач. Теперь установите опцию «Заменить Command Prompt на Windows PowerShell» в меню, когда я нажимаю правой кнопкой мыши на кнопку «Пуск» или нажимаю клавиши Windows + X» в положение «Выкл».

Возможно вам так же будет интересно:

Скрипты Windows PowerShell для работы с Active Directory

Most of us prefer PowerShell due to its automation capabilities. It’s a command-line shell with a fully developed scripting language. You can use the built-in cmdlets or write your own script to automate the administrative tasks of Windows and other compatible operating systems. It allows you to do everything that you can do with the GUI apps and more.

However, mastering the functionality and flexibility of PowerShell involves a steep learning curve. If you are just getting started with PowerShell, here are the essential commands you can learn to master this scripting language in the long run.

1. Get-Help

get help get process powershell command

Get-Help, as the name suggests, is part of PowerShell’s integrated help system. It helps you find necessary information for the command, concepts, and functions, identify alias, scripts, and more.

To get help for a PowerShell cmdlet, you need to use the Get-help cmdlet followed by a cmdlet name. For example, to view the synopsis and syntaxes associated with the get-process cmdlet, type:

 Get-Help Get-Process 

This command can read both comment-based and XML-based help provided by the function author.

Alternatively, you can use the Get-Help -online command to get help for a PowerShell cmdlet online. For example, to view Microsoft’s online documentation for the Get-Content cmdlet, type:

 Get-Help Get-Content -online 

2. Get-Process

get process powershell command

The Get-Process command helps you retrieve and show a list of all the active system processes with their identifiers (IDs). You can use it as an efficient alternative to Windows Task Manager to view, stop and restart system processes.

For example, if you need to stop the GameBar process, first you need to find the process ID associated with it. So, type:

 Get-Process 

This command will show all the running system processes. Next, find the ID associated with the process you want to stop. To stop the process, type:

 Get-Process -ID 20496 | Stop-Process 

Here -ID 20496 is the ID of the process (GameBar) you want to stop.

3. Start-Process

start process notepad

You can use the Start-Process cmdlet in PowerShell to start one or more processes on a local computer. To use the cmdlet, type Start-Process followed by the process name. For example, if you want to start a new notepad process, type:

 Start-Process notepad  

Additionally, you can use the parameters of Start-Process to specify options. For example, if you need to launch a process as administrator, type:

 Start-Process -FilePath "notepad" -Verb runAs 

4. Get-Command

get process powershell command 1

The Get-Command lets you view all the PowerShell commands installed on your computer. Similar to Get-Help, you can use the Get-Command followed by a search query to find commands for a specific feature.

Since the Get-Command displays all the commands, you can specify parameters to find features with a specific name and CommandType. For example, to find cmdlets (CommandTypes) that start with A (Name), type:

 Get-Command -Name A* -CommandType cmdlet 

Alternatively, type Get-Help Get-Command -Examples to view more examples.

5. Get-Service

get service command powershell

The Get-Service cmdlet lets you view your computer’s status and list of services. By default, the Get-Service command returns all the (stopped and running) services.

You can use the parameters to specify and find services depending on their status, name, and dependent services. For example, to view all the services starting with the name Win, type:

 Get-Service -Name "Win*" 

6. Get-ChildItem

get childitem powershell command 1

You can use PowerShell to search through directories. The Get-ChildItem command is a handy cmdlet to look for folders and files and quickly perform content-based searches without using File Explorer.

To view all the top-level folders in the C:\ directory, type:

 Get-ChildItem "C:\" 

Additionally, use the -Path parameter to view a particular folder, sub-folders, and content. For example, to view all the sub-folders and files in the Programs Files folder, type:

 Get-ChildItem -Path "C:\Program Files" 

Additionally, use the —Recurse parameter to view all the files in the specified folder and the -Name parameter to view item names in a directory.

 Get-ChildItem -Path "C:\Program Files\Fodler_Name" -Recurse | Select FullName 

In the above command, replace sub-folder with the folder name to view its content.

7. Copy-Item

copy item powershell command

The Copy-Item cmdlet lets you copy-paste files and folders and their contents to a different directory. To copy files and folders, type Copy-Item followed by the source —Path, -Destination parameter, and destination address. For example, to copy E:\Folder1 and its contents to E:\Folder2, type:

 Copy-Item "E:\Folder1" -Destination "E:\Folder2" -Recurse 

Note that the -Recurse parameter in the above command is responsible for moving all the folder contents. Without it, PowerShell will only copy the top-level folder (Folder1) and files specified in the command.

8. Move-Item

move item powershell command

Similarly, to move an item, you can use the Move-Item cmdlet. For example, to move the folder, files, sub-folders, and all its contents to your specified destination, type:

 Move-Item -Path "E:\Folder1" -Destination "E:\Folder2"  

9. Remove-Item

remove item powershell command

The Remove-Item cmdlet lets you delete files, folders, functions, and other data types from the specified directory. For example, to delete the Test.txt file in the E:\Folder1 folder, type:

 Remove-Item E:\Folder1\Test.txt 

10. Get-Content

get content powershell command

The Get-Content cmdlet lets you view the content of an item item without using a text editor. For example, to retrieve the contents of the Test.txt file, type:

 Get-Content "E:\Folder1\Test.txt" 

You can further specify the content length to view using the -TotalCount parameter.

11. Clear-Content

clear content powershell command

You can use the Clear-Content cmdlet to delete the contents of a specified file without deleting the file itself. Useful for task automation where you have a hard-coded file name but want to have a clean file each time the script runs.

To test the command, create a text file with some content in it. Next, type:

 Clear-Content -Path "E:\Folder1\Test1.txt" 

This will delete the contents of the file without deleting the file.

12. Set-ExecutionPolicy

get execution policy powershell command

The default execution policy in PowerShell is set to Restricted. This prevents the execution of malicious scripts in the PowerShell environment. However, when you execute a local PowerShell script, you may encounter the execution script is disabled on this system error.

The Set-ExecutionPolicy cmdlets let you change the security levels for script execution. To know your current execution policy, type:

 Get-ExecutionPolicy 

If you need to execute an unsigned script, in an elevated PowerShell prompt, type:

  Set-ExecutionPolicy RemoteSigned 

Other valid Set-ExecutionPolicy values include Restricted, AllSigned, and Unrestricted.

13. Set-Location

set location powershell command

By default, PowerShell uses C:\Users\Username as the default working directory. The Set-Location cmdlet lets you set the current working directory to a specified location. Useful if you want to run a script or command from a specific location without having to specify the path each time.

For example, to set C:\Users\Username\Documents as the current working directory, type:

 Set-Location "C:\Users\usrename\Documents" 

This is a temporary measure as PowerShell will reset the working directory back to its default directory after the restart.

14. Export-CSV

export csv powershell command

If you want to export and present PowerShell output in a more organized way, you can use the Export-CSV cmdlet. It takes the output file for the specified command and converts it to a CSV file.

To test the command, try the following command:

 Get-Process | Export-CSV PSprocess.csv 

The above command will create a psporcess.csv file with all the active processes’ data.

15. ConvertTo-HTML

convertto html powershell command

If you would rather create an HTML report, you can use the ConvertTo-HTML Cmdlet. To create an HTML report for all the running process on your PC, type :

 Get-Process | ConvertTo-HTML > PSprocess.html 

In the above command, psprocess is the name of the export file, and HTML is the extension. You can access the exported HTML file in the current working directory located at C:\Users\username.

16. Get-History

get history powershell command

You can use the Up-Down arrow key to scroll through the recently executed commands in PowerShell. However, to view a list of all the recently executed commands in your current session at once, you can use the Get-History cmdlet.

It will display a list of all the recently executed commands with their ID. Useful if you want to view the complete context of the previously executed commands. To do this, type:

 Get-History Id | fl 

For example, to view the execution details such as status, start and end time, and duration for the third command, type:

 get-history 3 | fl,  

To rerun any command from the list, type:

 Invoke-History followed by the command id 

For example, type Invoke-History 3 to rerun a previously executed command without typing it again.

Additionally, use Clear-History to clear history for the current session.

Now that you have a basic idea of PowerShell commands, go ahead and explore our guide on best PowerShell Cmdlets to improve your Windows admin skills. Here, you can learn to work with data using cmdlets, format tables and list, and a quick overview of the Get-Member command.

PowerShell Commands to Streamline Your Tasks

PowerShell is known for its automation capabilities. This can help you automate hundreds of activities in your development work to save time and improve productivity.

While we have only covered the basic commands, try to explore the syntax, alias, and variables, functions available on many of these commands to master this highly efficient scripting language.

  • Полезные программы для windows 10 для игр
  • Полки для рабочего стола windows 10
  • Полезные команды для командной строки windows 10
  • Политики настроенные на вашем устройстве windows 10 отключить автоматическое обновление
  • Полезные программы для windows 10 x64