Что такое windows powershell и с чем его едят? часть 1: основные возможности

Особенности запуска скриптов в PowerShell

Необходимо упомянуть об особенностях запуска скриптов PowerShell. Данное средство администрирования и автоматизации обладает очень высоким потенциалом и является мощным инструментом, поэтому разработчиками было принято решение ограничить запуск скриптов по умолчанию. Существует 4-е основных политики безопасности, регулирующих запуск скриптов на целевом устройстве. Вы можете ознакомиться с ними на данном слайде. У каждой политики свои особенности, и они применимы для разных сценариев. В нашем случае, для практической работы мы разрешим выполнение неподписанных скриптов используя политику «unrestricted»

Исходный код проекта расширения PowerShell

Исходный код расширения PowerShell доступен на GitHub.

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

В текущей версии Visual Studio Code 1.8.1 в качестве встроенного терминала, при использовании его в Microsoft Windows, по умолчанию используется интерпретатор комманд cmd.exe. Пользователям, знакомым с возможностями PowerShell, скорее всего, будет удобнее использовать в качестве встроенного терминала именно PowerShell, а не cmd.exe.

На этот случай Visual Studio Code не ограничивает пользователя в выборе используемого интерпретатора комманд, поэтому встроенный терминал может быть легко заменён на PowerShell. Для этого необходимо внести изменения в файл пользовательских настроек settings.json или, при желании внести изменения, затрагивающие только выбранную рабочую среду, в файл настроек этой рабочей среды:

Подробнее о настройке встроенного терминала можно прочитать в официальной документации Visual Studio Code здесь.

Скрипты

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

Особенно, когда одни и те же операции следует выполнять постоянно.

Да и без человеческого фактора не обойтись: опечатки, ошибки, случайно задетые клавиши при написании строчек кода, исправление или набор строки заново требуют более дружелюбного отношения к пользователю.

Для выполнения однообразных цепочек действий в PS реализованы сценарии – текстовые файлы с последовательностью понятных для интерпретатора команд внутри.

Скрипты в PowerShell еще больше упростят и автоматизируют работу за ПК и его обслуживание, особенно, если в сценарии присутствуют разветвления, условия, логические операции и циклы.

Но здесь «не всё золото, что блестит»: написать собственный сценарий или загрузить готовый (пускай и немного подогнав его под собственные цели) так просто не получится.

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

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

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

How to use Windows PowerShell ISE

To launch the app, click on the Windows Search box, type PowerShell ISE, and click Windows PowerShell ISE. If you want to launch it with administrative rights, right-click on it and select Run as Administrator.

The PowerShell ISE comes with the following elements:

  1. Menu bar
  2. Toolbar
  3. PowerShell tabs
  4. Script tabs
  5. Console pane
  6. Script pane
  7. Status bar
  8. Text-size slider

These elements make it easy for a user to run, edit, and execute the commands and scripts. Let’s see the function of each of these elements:

1] Menu bar

As the name implies, the menu bar of PowerShell ISE consists of different menus including File, Edit, Tools, View, Debug, Add-ons, and Help. Using these menu buttons, you can perform different tasks, customize the ISE interface, debug commands or scripts, etc.

2] Toolbar

Like other software and apps, Windows PowerShell ISE also features a toolbar that consists of different tools. Some of these tools include:

  • New Script button
  • Open Script button
  • Save Script button
  • Clear Console Pane button
  • Start PowerShell in a separate window button, and more.

3] PowerShell tabs

You can create multiple tabs in Windows PowerShell ISE. This feature lets you run multiple scripts and commands at a time. To open a new tab, go to “File > New PowerShell Tab.” Alternatively, you can also press the Ctrl + T keys on your keyboard.

To close a particular PowerShell tab, select it and click on the small cross icon, or simply press Ctrl + W keys.

4] Script tab

You can create multiple Script tabs in each PowerShell tab. This lets you run and edit more than one script at a time. To open a new Script tab, go to “File > New” or press Ctrl + N keys on your keyboard.

To close a specific Script tab, select it and click on the small cross icon. There is no keyboard shortcut to close the Script tabs.

5] Console Pane

It shows the results of the scripts and commands you run. Apart from that, you can also use Console Pane to run PowerShell commands.

7] Status bar

As the name implies, here, you can view the status of the commands and scripts that you have executed. It tells you whether the commands or scripts are completed or not.

8] Text-size Slider

It lets you increase and decrease the text size on the screen. You will find it at the bottom right corner of the PowerShell ISE.

That’s it.

  • How to disable PowerShell in Windows 10.
  • How to uninstall PowerShell in Windows 10.

Visual Studio Code

What is Visual Studio Code

Very special thanks to:

https://twitter.com/daviwil“>@daviwill – PowerShell Team member and Primary author of the PowerShell Editor Services and PowerShell plugin for Visual Studio Code.

Why Visual Studio Code

  • Cross Platform – Runs on Windows, MacOS, and Linux
  • Community Support –
  • Active Development –
  • Not just a PowerShell Editor. Supports many many languages.

Which version of Visual Studio Code is right for you?

  • Stable – Mature version and thoroughly tested. Monthly updates.
  • Insiders – Daily build for early adopters with the latest changes and bug fixes.
  • You can run both versions at the same time.

Navigating the User Interface

” alt=”layout” />

  • Activity Bar – Located on the far left-hand side, this lets you switch between views and gives you additional context-specific indicators, like the number of outgoing changes when Git is enabled.
    • Explorer
    • Search
    • Source Control
    • Debugger
    • Extensions
  • Side Bar- Contains different views like the Explorer to assist you while working on your project.
  • Editor – The main area to edit your files. You can open up to three editors side by side.
  • Panel – You can display different panels below the editor region for output or debug information, errors and warnings, or an integrated terminal.
  • Status Bar – Information about the opened project and the files you edit.

Язык PowerShell

Он используется для написания команд управления всеми компонентами операционной системы Windows в оболочке Windows PowerShell, а также для написания сценариев автоматизации задач администрирования в интегрированной среде сценариев Windows PowerShell (ISE). Язык PowerShell хоть и создан для задач администрирования, он является полноценным скриптовым языком программирования, так как имеет программные конструкции, которые присутствуют в каждом языке программирования, такие как: условия, циклы, обработка ошибок, работа с переменными, объектами, массивами.

Язык PowerShell имеет единый синтаксис написания команд и структуру именования этих команд по принципу «Глагол-Существительное», что делает данный язык интуитивно понятным как для программистов, так и для системных администраторов.

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

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

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

Notepad

The simplest tool one can use to write and edit PowerShell Scripts is Notepad. A PowerShell script is basically a text file that is interpreted when it’s run. If no other tool is available on the machine you’re on, Notepad is almost certainly there. That said, it only allows you to edit a file, you can’t actually execute your file. You have to save it and then execute it using another tool such as the PowerShell shell.

This script is valid PowerShell, and I could edit the file, for example, replace the name of the service if I wanted, but I can’t do more than simple editing. For a quick and dirty edit, this may be all that is needed. In my experience, it is the fastest way to open, edit, and then close a file, but that’s about the only real advantage. If I want to run this script, I still need to have an execution environment.

Как писать и запускать скрипты?

Как создать скрипт PowerShell и запустить его? Это можно попросту сделать в блокноте — используя его, укажите в новом документе необходимые вам команды. После сохраните его, но поменяйте формат на .ps1 — именно такое расширение имеют файлы этой системной утилиты.

Писать скрипты в самом приложении можно так:

  • Запустите его.
  • Нажмите на пункт «Создать».
  • Или кликните на «Файл», и в появившемся списке выберите «Создать».
  • Напишите все команды, которые нужно выполнить, сохраните файл.

Скрипты ещё можно писать и редактировать в FAR Manager, но их нельзя использовать непосредственно в таком приложении, ведь оно отображает файлы этого типа через стандартную строку cmd. Однако прочие действия выполняются таким же образом, как и в «родной» утилите.

Запустить скрипт вы сможете таким образом:

  1. Зайдите в PowerShell от имени администратора.
  2. При помощи команд cd укажите месторасположение требуемого файла. Например, e: cd\ cd work .\ имя_файла. Ps1, или e: \work\ имя_файла.ps1
  3. В этом случае e: — имя жёсткого диска, где находится файл.
  4. Жмите Enter.

https://youtube.com/watch?v=QA2yk5_DywA

Программа обязательно покажет вам сообщение с текстом «Не удаётся загрузить файл ___ .Ps1, так как выполнение скриптов запрещено для этой системы…», когда вы будете первый раз запускать команду. Дело в том, что Windows оснащён защитой от вмешательства благодаря разработчикам, поэтому никто из пользователей по умолчанию не имеет доступа на выполнение таких действий. Но, это ограничение можно очень просто обойти.

Как? В тексте, возникающем вместе с ошибкой, будет рекомендация ввести команду get-help about_signing, чтобы получить больше информации. Вы можете выполнить эти указания, или использовать комбинацию Set-ExecutionPolicy remotesigned — после её ввода потребуется подтверждение, и ограничение будет снято.

Visual Studio Code

Visual Studio Code scores with a very modular approach: Thanks to the numerous extensions, Visual Studio Code can be used for a wide variety of script languages. Visual Studio Code only becomes a real PowerShell editor by installing the PowerShell extension.

Features:

    • Syntax highlighting
    • Code snippets
    • IntelliSense for cmdlets and more
    • Rule-based analysis through PowerShell Script Analyzer
    • Go to: Definition of Cmdlets and Variables
    • Search for references of cmdlets and variables
    • Document and workspace symbol discovery
    • Execute the selected selection of PowerShell code with F8
    • Starting the online help for the symbol under the cursor with Ctrl + F1
    • Local script debugging and basic support for interactive consoles.

Visual Studio Code is available not only for Windows but also for Linux or Mac, is being actively developed further and will certainly get more features and functions in the future.

Download at:  code.visualstudio.com/

PowerShell and GIT

A major advantage over PowerShell ISE is the GIT support built into Visual Studio Code, which not only allows changes to scripts to be tracked and reverted if necessary. GIT takes teamwork to another level. Admittedly, using GIT is not entirely automatic: a prerequisite for use is a certain basic GIT knowledge. 

Создание проектов и решений без Visual Studio

Создание файлов проектов и решений вручную

Файлы проектов (с расширениями .csproj, .vcxproj и другие) и решений (с расширением .sln) — это файлы, которые потребляет программа MSBuild. Это текстовые файлы формата xml. В файле проекта содержится информация о том, как его построить (какие файлы исходного кода принадлежат к проекту, какими инструментами их копилировать, на какие библиотеки ссылается проект и пр.). В файле решения перечисляются все проекты, которые принадлежат решению.В документации к MSBuild приведен простой пример, как создавать файлы проектов вручную. Там же есть хорошее руководство по синтаксису файлов проектов. Прочитав это руководство, я разобрался например в том, как при помощи настроек в файле проекта MSBuild скопировать файлы сборок (*.dll) из папки OutputPath в некую другую папку DistributionFolder, которая задается в свойствах проекта:

<?xml version=»1.0″ encoding=»utf-8″?><Project ToolsVersion=»12.0″ DefaultTargets=»Build» xmlns=»http://schemas.microsoft.com/developer/msbuild/2003″>



  <PropertyGroup>
    <!— Property of the project that can be changed —>
    <DistributionFolder>$(SolutionDir)Distributive\$(ConfigurationName)</DistributionFolder >
  </PropertyGroup>
  <ItemGroup>
    <!— Input to the tasks (see below) —>
    <OutputFiles Include=»$(OutputPath)*.dll» />
  </ItemGroup>
  <!— Target —>
  <Target Name=»PostBuild» AfterTargets=»Build»>
    <!— Task —>
    <Exec Command=»echo POSTBUILD COPYING OUTPUT FILES» />
    <!— Task —>
    <Copy SourceFiles=»@(OutputFiles)»          DestinationFolder=»$(DistributionFolder)» />
  </Target></Project>

Во фрагменте файла проекта (.csproj) даны комментарии по терминологии (в MSBuild ключевую роль играют понятия: Target, Task, Property и Item). По принципам своей работы MSBuild очень похожа на утилиту make.

Небольшое отступление. Если речь не идет о создании нового файла проекта (.csproj), а лишь об изменении имеющегося, то даже необязательно редактировать файл проекта. Те изменения, которые вы планируете внести в файл проекта можно вынести в отдельные два файла Directory.Build.props и Directory.Build.targets, которые утилита MSBuild сама ищет в папке проекта и выше нее и импортирует в проект. Подробнее об этом читайте в статье Customize your build.

Утилита dotnet.exe

Утилита dotnet.exe умеет создавать проекты для .NET Core (и поддерживает ряд соответствующих шаблонов проектов), но не для .NET Framework. Например проект приложения WPF dotnet.exe вам не создаст — утилита не поддерживает такой шаблон проекта. Ну а ради интереса, вот как при помощи dotnet.exe создать решение, создать проект (здесь — шаблон Class Library), добавить проект в решение и построить решение:

dotnet new sln -n MySolution
dotnet new classlib -n MyProject
dotnet sln MySolution.sln add MyProject/MyProject.csproj
dotnet build

Здесь MySolution — имя решения (будет создан файл MySolution.sln), MyProject — имя проекта (в папке решения будет создана папка MyProject и в ней — файл MyProject.csproj).

Утилита CMake

В топике на Stack Overflow — Generate C# project using CMake и на страничке проекта cmake_csharp_example на GitHub объясняется как можно сгенерировать проект csproj при помощи CMake, но… CMake требует наличия на компьютере установленной Visual Studio.

Программная генерация файлов проектов и решений

Вот топике Making a solution file without using visual studio на Stack Overflow рассказывается что можно программно генерировать файлы решений и проектов при помощи MSBuild API, который входит в .NET Framework.

Резюме

Таким образом, я не нашел простого способа генерировать файлы решений и проектов без Visual Studio Если выбирать из того что есть, то я склоняюсь к созданию файлов проектов вручную в текстовом редакторе. При этом создать вручную файл решения (sln) — это уже совсем геморрой, потому что в нем используются GUID’ы, но как раз файл решения, как мне кажется, можно создавать утилитой dotnet.exe.

Сетевые ресурсы

Блог команды разработчиков продукта: http://blogs.msdn.com/PowerShell/ .

Утилиты, редакторы и дополнения: http://www.powershell.com/ .

Блог Дмитрия Сотникова из компании Quest: http://dmitrysotnikov.wordpress.com/ .

PowerGadgets — пример неограниченных возможностей расширения PowerShell:

1. Написание скрипта

Скрипт PowerShell (не важно какой версии) — это текстовый файл с расширением *.ps1. Вот пример простого Power Shell срипта (файл systemInfo.ps1
):

Вот пример простого Power Shell срипта (файл systemInfo.ps1
):

# Retrieve WMI object for the operating system

Get-WmiObject Win32_OperatingSystem

Этот файл можно создавать и редактировать, например, в FAR Manager.

Обратите внимание
, что FAR Manager хоть и может работать в консоли Power Shell, но выполняет из-под себя скрипты в окружении обычной Windows-консоли
cmd. То есть, FAR Manager можно использовать только для создания и редактирования PowerShell скриптов, но не для запуска

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

2. Запуск срипта

Скрипт нужно выполнять из консоли Power Shell, а не из обычной консоли Windows. В консоли Power Shell необходимо перейти в каталог, где лежит скрипт (командами
cd
), и затем запустить сам скрипт, обязательно прописав перед ним символы
«.\»
. Например, имеем путь к файлу скрипта
d:\work\systemInfo.ps1
. Тогда команды запуска будут выглядеть так:

d:

cd \

cd work

.\systemInfo.ps1

или так (просто указывается полный путь к скрипту):

d:\work\systemInfo.ps1

Скорее всего, при запуске скрипта появится следующая ошибка:

Не удается загрузить файл D:\work\systemInfo.ps1, так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.

строка:1 знак: 18

CategoryInfo: NotSpecified: (:) , PSSecurityException

FullyQualifiedErrorId: RuntimeException

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

Чтобы резрешить выполнение PowerShell скриптов, нужно создать *.bat файл, например enableScript.bat
со следующим содержимым:

powershell -Command Set-ExecutionPolicy RemoteSigned

Этот *.bat файл можно выполнить в любой консоли: хоть в PowerShell, хоть в обычной
cmd
. После выполнения этого файла, PowerShell-скрипты станут запускаться в консоли PowerShell.

3. Запуск PowerShell-скрипта из обычной Windows-консоли cmd

Скрипт PowerShell можно выполнить и из обычной консоли Windows. Для этого можно воспользоваться командой:

Powershell -File ./systemInfo.ps1

Таким образом можно выполнять скрипты прямо из FAR Manager, и они будут работать.

Но тут есть небольшая тонкость. Параметр
-File
срабатывает только на локальных путях, даже если путь указан относительный
«./»
. То есть, если
*.ps1
— файл лежит на локальном диске
C:
или
D:
, то такой вызов будет работать. Но если попробовать выполнить скрипт, расположенный на доменном ресурсе, то скрипт не будет найден. Возможно, это исправят в следующих версиях PowerShell.

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

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

Conclusion

Syntax highlighting is an incredibly powerful way to make the elements of your code stand out, and can even help you to avoid mistakes (such as trying to use an auto-variable as a regular variable). Not only that, but it makes your code look nicer, and nice looking code is easier to work with (monkey brains like shiny things; being a bear I wouldn’t know, but the colors are still pretty).

Joking aside, though, it does make it easier to follow as it gives our eyes more to lock onto, more «landmarks» in your code to help you navigate by. You don’t need it, but for myself after using it for so long, I wouldn’t want to code without it, and making it work the way I want just makes it that much better.

Работа с файлами и папками. Получение списка файлов и папок, содержащихся в папке.

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

Get-ChildItem -Path C:\ -Force

Эта команда выводит только элементы, содержащиеся на диске непосредственно, так же как и команда  оболочки  или команда  оболочки UNIX. Для показа вложенных элементов необходимо также указать параметр . (Время выполнения этой операции будет очень велико.) Для вывода всего содержимого диска C введите:

Get-ChildItem -Path C:\ -Force -Recurse

Командлет  позволяет отфильтровать элементы с помощью параметров Path, Filter, Include и Exclude, но обычно осуществляется лишь фильтрация по имени. Сложную фильтрацию на основе других свойств элементов можно выполнить с помощью .

Следующая команда находит все исполняемые файлы в папке Program Files, которые были в последний раз изменены после 1 октября 2005 г. и размер которых не менее одного мегабайта и не более десяти мегабайт:

Get-ChildItem -Path $env:ProgramFiles -Recurse -Include *.exe | Where-Object -FilterScript {($_.LastWriteTime -gt '2005-10-01') -and ($_.Length -ge 1mb) -and ($_.Length -le 10mb)}

Удаление всех файлов и папок, содержащихся в папке

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

Remove-Item -Path C:\temp\DeleteMe

Confirm
The item at C:\temp\DeleteMe has children and the Recurse parameter was not
specified. If you continue, all children will be removed with the item. Are you
sure you want to continue?
 Yes   Yes to All   No   No to All   Suspend   Help
(default is "Y"):

Если подтверждение для каждого вложенного элемента нежелательно, задайте параметр Recurse:

Remove-Item -Path C:\temp\DeleteMe -Recurse

Making a GUI in Visual Studio

The center area now holds our form.  You’re looking at what the GUI will be for your script or tool. You can resize the window, or drag and drop items into our form.

Two Tool making tips to remember

Before we dig in deeper, you should remember these tennants:

  • Give it a name — Every good tool needs a name, without a name, it’s harder to understand what something is for non-enthusiasts and you might end up with something being called ‘the Dan Script’ or ‘The Stephen Tool’
  • Wait till its ready — Always add an image and put a small amount of polish on your tools before you release them, or you’ll never get over that first bad impression

Let’s name this bad boy: click the title bar of your GUI, then hit F4 to show Properties

You could also just click the text and hit F2

Let’s start with our GUI by adding an image first, then some text. The elements we want to grab from the tool box are Image, and a TextBlock object.

In the Toolbox, click Image, then draw the area you want the image to take on your form.

Now’s a good time to hit F4 to bring back some of the stuff we hid earlier, because we want to add some properties to this image (namely, the file source).

Go to explorer, find an image you like, and then copy its path and paste it here (pro-tip, don’t use quotes).

Put the file path in the Source field. Pro-tip: no quotes

Now we’ll do the same again for a TextBlock.

I created mine right next to my MS-DOS FoxDeploy icon, and just added a bit of flavor text.

If you’re feeling really uninspired and just want to copy my text, then go ahead and enter the following:

“Use this tool to find out all sorts of useful disk information, and also to get rich input from your scripts and tools “

If you really want to, you change the Font as well, by clicking in the Properties box on the right, and look towards the bottom for the Text area

Provided you’ve accomplished the above, you should now be looking at a pretty sweet field like this guy.

But it doesn’t do anything yet…

One thing every good tool should have is a button!  Let’s add an OK button.  Go back to the toolbox, find the Button Control and drag and drop it.  I’ll put mine in the lower right hand corner.

A button shouldn’t say ‘Button’.  When you’ve clicked on the button, you can Hit F2 to quickly type in some new text for the face of the button, or edit this value in the properties as well.

I wasn’t satisfied with the miniscule font VS likes to use, so I decided to change it; you can change the size or font of pretty much anything by clicking it in the drafting pane, and then using the Properties window on the right (or Hit F4 to show it if properties is hiding) to change the Font Size.  I pumped the font up to 12 or 14.

I’d say if we add a text box (place where users can enter stuff) and a label (non-editable, it’s where we add a description to a field, we’ll have enough for now.  For both of these, go back to the toolbox and then grab one of each and draw them on your form.  I went agead and changed Label to say ‘UserName’, because I’ve started thinking about how to make this useful.

Параметры конфигурации для Visual Studio Code

Прежде всего, если вы не знаете, как изменить параметры в VS Code, мы рекомендуем ознакомиться с документацией по параметрам Visual Studio Code.

После этого вы сможете добавить параметры конфигурации в settings.json .

Если вы не хотите, чтобы эти параметры влияли на все типы файлов, в VS Code можно задавать конфигурации для каждого языка отдельно. Создать параметр для конкретного языка можно, поместив параметры в поле . Пример:

Дополнительные сведения о кодировке файлов в VS Code см. в этой статье. Также ознакомьтесь со статьей Репликация функций интегрированной среды скриптов в VS Code, в которой даны рекомендации по настройке VS Code для редактирования в PowerShell.

Добавление собственных путей PowerShell в меню сеансов

В меню сеанса можно добавить другие пути к исполнимому файлу PowerShell с помощью параметра Visual Studio Code: powershell.powerShellAdditionalExePaths .

Добавьте элемент в список powershell.powerShellAdditionalExePaths или создайте список, если его нет в settings.json :

Каждый элемент должен иметь следующее:

  • exePath : Путь к исполняемому файлу pwsh или powershell .
  • versionName : Текст, который будет отображаться в меню сеансов.

Вы можете задать используемую версию PowerShell по умолчанию, задав параметр powershell.powerShellDefaultVersion для текста, отображаемого в меню сеансов ( versionName в последнем параметре):

Задав этот параметр, перезапустите VSCode или перезагрузите текущее окно VSCode с помощью действия Developer: Reload Window палитры команд:

Открыв меню сеансов, вы увидите дополнительные версии PowerShell.

Если вы создаете PowerShell из исходного кода, это отличный способ протестировать локальную сборку PowerShell.

Checkboxes, and Textboxes

I’ll start with the “Select All” checkbox. I’ll find the section of code for the $CBselectall variable, and begin coding beneath that. I do this to keep the buttons functionality close the the rest of its defining properties. Here’s the $CBselectall code, and the code I added below it.

#
# CBselectall
#
$CBselectall.AutoSize = $true
$CBselectall.Location = New-Object System.Drawing.Point(7, 66)
$CBselectall.Name = "CBselectall"
$CBselectall.Size = New-Object System.Drawing.Size(70, 17)
$CBselectall.TabIndex = 2
$CBselectall.Text = "Select All"
$CBselectall.UseVisualStyleBackColor = $true

# I added this:
$CBselectall.add_checkstatechanged({
	if ($CBselectall.Checked -eq $true){
		$CBoption1.Checked = $true
		$CBoption2.Checked = $true
	}
	else{
		$CBoption1.Checked = $false
		$CBoption2.Checked = $false
	}
})

So what this does is add an action when the state of the check box is changed. It says, “When the Select All box changes, see if it is checked or not. If it is checked, check Option 1 and 2. If it has been unchecked, remove checks from Option 1 and 2.”

Next, let’s make the text-box display our selection when we click submit. This is a nice example of how to make various controls interact with each other.

Since the action is going to happen when we click “Submit”, I’m going to add this code beneath the $BTcheckboxsubmit code.

#
# BTcheckboxsubmit
#
$BTcheckboxsubmit.Location = New-Object System.Drawing.Point(259, 70)
$BTcheckboxsubmit.Name = "BTcheckboxsubmit"
$BTcheckboxsubmit.Size = New-Object System.Drawing.Size(75, 23)
$BTcheckboxsubmit.TabIndex = 5
$BTcheckboxsubmit.Text = "Submit"
$BTcheckboxsubmit.UseVisualStyleBackColor = $true

# I added this:
$BTcheckboxsubmit.add_click({
	$SelectedBoxes = @()
	if ($CBoption1.Checked -eq $true){
		$SelectedBoxes += "Option 1"
	}
	if ($CBoption2.Checked -eq $true){
		$SelectedBoxes += "Option 2"
	}
	$TBcheckboxselected.Text = ($SelectedBoxes -join (", "))
})

The code above adds an action whenever this “Submit” button is clicked. When it’s clicked, it creates an array called $SelectedBoxes. If Option 1 is checked, it adds “Option 1” to the $SelectedBoxes array. If Option 2 is selected, its adds “Option 2” to the array. After those checks are completed, the $SelectedBoxes array is joined with a comma, and added to the Text Box ($TBcheckboxselected) as text. This results in “Option 1, Option 2” if both are selected.

PowerShell в сравнении с bat

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

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

На PowerShell это будет выглядеть вот так:

Вот так через bat можно перезагрузить службу dnscache (или любую другую):

В PowerShell это будет так:

Мап диска в bat:

И в PowerShell:

Да, иногда приходится печатать чуть больше букв, но читаются команды PS гораздо лучше. И это не говоря уже про разные новые возможности.

Выводы статьи

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

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

Похожие публикации:

  • Как отключить командную строку — 5 способов
  • Команды командной строки Windows: список
  • Как в командной строке Windows скопировать или вставить текст
  • Диспетчер задач отключен администратором: 7 способов включить
  • Экранный диктор: как включить или отключить чтение вслух в Windows
Понравилась статья? Поделиться с друзьями:
Быть в курсе нового
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: