Использование команд format для изменения представления вывода

Работа с сетью в 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 пакеты к одному или нескольким компьютерам, т.е. «пингует» компьютеры.

Написание сценария

Скрипт может содержать любые допустимые команды PowerShell, в том числе отдельные команды, команды, использующие конвейер, функции и управляющие структуры, такие как операторы If и циклы for.

Чтобы написать сценарий, откройте новый файл в текстовом редакторе, введите команды и сохраните их в файле с допустимым именем файла с расширением.

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

Чтобы создать этот скрипт, откройте текстовый редактор или редактор скриптов, введите следующие команды, а затем сохраните их в файле с именем .

Параметры в скриптах

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

Параметры сценария работают как параметры функции. Значения параметров доступны для всех команд в скрипте. Все функции параметров функций, включая атрибут Parameter и его именованные аргументы, также допустимы в скриптах.

При выполнении скрипта пользователи заменяют параметры после имени скрипта.

В следующем примере показан скрипт с параметром ComputerName . Обе функции сценария могут обращаться к значению параметра ComputerName .

Чтобы выполнить этот скрипт, введите имя параметра после имени скрипта. Пример:

Дополнительные сведения о инструкции Param и параметрах функции см. в разделе about_Functions и about_Functions_Advanced_Parameters.

Написание справки для сценариев

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

  • Comment-Based справки по сценариям

  • XML-Based справки по сценариям

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

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

Возврат значения выхода

По умолчанию скрипты не возвращают состояние выхода при завершении сценария. Для возврата кода выхода из скрипта необходимо использовать инструкцию. По умолчанию инструкция возвращает . Можно указать числовое значение, чтобы вернуть другое состояние выхода. Ненулевое значение кода выхода обычно сигнализирует об ошибке.

в Windows допускается любое число между и .

В UNIX разрешены только положительные числа в диапазоне от (0) до (255). Отрицательное число в диапазоне от до автоматически преобразуется в положительное число путем добавления
256. Например, преобразуется в .

В PowerShell инструкция задает значение переменной. в Windows командной оболочке (cmd.exe) оператор exit задает значение переменной среды.

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

Наиболее популярные команды PowerShell

Самые востребованные в Windows PowerShell команды связаны с использованием самой утилиты:

  • Get-Help – выведение на экран справки, если вместо первого слова использовать Update, то вы обновите информацию;
  • Get-Command – поиск доступных команд;
  • Get-History – просмотр списка команд, которые выи вводили в этой сессии;
  • Format-List – выведение на экран результата выполнения команд в виде списка свойств;
  • Export-Clixml – экспорт данных в таблицу в формате xml, для ее просмотра нужно будет поставить офисную утилиту Excel или ей аналогичную.

Большинство пользователей работает с компьютером без утилиты PowerShell. Если вы хотите освоить ее, то с полным списком команд можно ознакомиться при помощи команды: Get-Command -CommandType cmdlet .

Подробное описание

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

Переменная — это единица памяти, в которой хранятся значения. В PowerShell переменные представлены текстовыми строками, которые начинаются со знака доллара ( ), например , или .

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

В PowerShell существует несколько различных типов переменных.

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

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

    Дополнительные сведения, список и описание автоматических переменных см. в разделе about_Automatic_Variables.

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

    Дополнительные сведения, список и описание переменных предпочтений см. в разделе about_Preference_Variables.

Написание сценария

Скрипт может содержать любые допустимые команды PowerShell, в том числе отдельные команды, команды, использующие конвейер, функции и управляющие структуры, такие как операторы If и циклы for.

Чтобы написать сценарий, откройте новый файл в текстовом редакторе, введите команды и сохраните их в файле с допустимым именем файла с расширением.

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

Чтобы создать этот скрипт, откройте текстовый редактор или редактор скриптов, введите следующие команды, а затем сохраните их в файле с именем .

Параметры в скриптах

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

Параметры сценария работают как параметры функции. Значения параметров доступны для всех команд в скрипте. Все функции параметров функций, включая атрибут Parameter и его именованные аргументы, также допустимы в скриптах.

При выполнении скрипта пользователи заменяют параметры после имени скрипта.

В следующем примере показан скрипт с параметром ComputerName . Обе функции сценария могут обращаться к значению параметра ComputerName .

Чтобы выполнить этот скрипт, введите имя параметра после имени скрипта. Пример.

Дополнительные сведения о инструкции Param и параметрах функции см. в разделе about_Functions и about_Functions_Advanced_Parameters.

Написание справки для сценариев

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

  • Comment-Based справки по сценариям

  • XML-Based справки по сценариям

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

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

Возврат значения выхода

По умолчанию скрипты не возвращают состояние выхода при завершении сценария. Для возврата кода выхода из скрипта необходимо использовать инструкцию. По умолчанию инструкция возвращает . Можно указать числовое значение, чтобы вернуть другое состояние выхода. Ненулевое значение кода выхода обычно сигнализирует об ошибке.

В Windows допускается любое число между и .

В UNIX разрешены только положительные числа в диапазоне от (0) до (255). Отрицательное число в диапазоне от до автоматически преобразуется в положительное число путем добавления
256. Например, преобразуется в .

В PowerShell инструкция задает значение переменной. В командной оболочке Windows (cmd.exe) оператор Exit задает значение переменной среды.

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

Получение данных

Для открытия файла ‘C:\text.txt’ можно использовать следующую команду:

Get-Content -Path ‘C:\Windows\System32\drivers\etc\hosts’

1 Get-Content-Path’C:\Windows\System32\drivers\etc\hosts’

Если у вас множество файлов или вы не уверены в назывании, то вы можете использовать подстановку. Символы подстановок бывают следующих типов:

  • ‘*’ — говорит об неизвестном количестве символов;
  • — говорит, что в этом месте может быть буква ‘a’ или ‘b’;
  • ? — обозначает один неизвестный символ.

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

В этом примере я открою сразу два файла: lmhosts и hosts:

Get-Content -Path ‘C:\Windows\System32\drivers\etc\*st*’

1 Get-Content-Path’C:\Windows\System32\drivers\etc\*st*’

Следующие примеры вернут аналогичный результат:

Get-Content -Path ‘C:\Windows\System32\drivers\etc\*ost*’
Get-Content -Path ‘C:\Windows\System32\drivers\etc\*h?st*’

1
2

Get-Content-Path’C:\Windows\System32\drivers\etc\*ost*’

Get-Content-Path’C:\Windows\System32\drivers\etc\*h?st*’

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

  • Include — в этом параметре мы добавляем шаблон, по которому будем включать файл;
  • Exclude — с помощью этого параметра исключает файлы;
  • Filter — исключает результаты.

Для каждого из этих параметров есть обязательно условие — использовать знак ‘*’ в конце пути.

Так мы вернем все файлы с расширением ‘.txt’:

Get-Content -Path ‘C:\*’ -Filter ‘*.txt’

1 Get-Content-Path’C:\*’-Filter’*.txt’

В отличие от Filter, в Include и Exclude мы можем использовать несколько значений. В этом примере мы откроем файлы формата ‘.txt’ и ‘.ini’:

Get-Content -Path ‘C:\*’ -Include ‘*.txt’,’*.ini’

1 Get-Content-Path’C:\*’-Include’*.txt’,’*.ini’

Полное и построчное чтение с поиском

По умолчанию, если мы будем передавать результат команды через конвейер Powershell вывод будет построчный. Это может составить проблему, так как при дополнительных условиях у нас будет возвращаться одна строка, а не весь текст:

Get-Content -Path ‘C:\file*.txt’ | Select-String -Pattern ‘Line 8’

1 Get-Content-Path’C:\file*.txt’|Select-String-Pattern’Line 8′

Что бы текст передавался полностью, а не построчно — используйте параметр Raw:

Get-Content -Path ‘C:\file*.txt’ -Raw | Select-String -Pattern ‘Line 8’

1 Get-Content-Path’C:\file*.txt’-Raw|Select-String-Pattern’Line 8′

Если вам вдруг понадобится выводить по 2 или более строк за раз, можно указать их количество через ReadCount:

Get-Content -Path ‘C:\file*.txt’ -ReadCount 2 | Select-String -Pattern ‘Line 8’

1 Get-Content-Path’C:\file*.txt’-ReadCount2|Select-String-Pattern’Line 8′

Разделение файла

Файл выводится построчно из-за делиметра (разделителя), который по умолчанию равен ‘\n’ (идентификатор новой строки). Мы можем разделить файл иначе, например, использовав точку с запятой:

Get-Content -Path ‘C:\delimiter.txt’ -Delimiter ‘;’

1 Get-Content-Path’C:\delimiter.txt’-Delimiter’;’

То есть результат выше — это массив. В массивах Powershell мы можем получать содержимое по индексам. В следующем примере я просто уберу точку с запятой:

$content = Get-Content -Path ‘C:\delimiter.txt’ -Delimiter ‘;’
# Выведем первый элемент
$content
# Уберем разделитель во всех адресах
foreach ($c in $content){
$c -replace ‘;’,»
}

1
2
3
4
5
6
7

$content=Get-Content-Path’C:\delimiter.txt’-Delimiter’;’

# Выведем первый элемент

$content

# Уберем разделитель во всех адресах

foreach($cin$content){

$c-replace’;’,»

}

Подсчет количества строк

Построчный вывод с командой Powershell позволяет посчитать количество строк во всем файле. Для подсчета используется команда Measure-Object:

Get-Content -Path ‘C:\file.txt’ | measure

1 Get-Content-Path’C:\file.txt’|measure

Если нужна только цифра, а не объект, можно сделать так:

(Get-Content -Path ‘C:\file.txt’ | measure).Count

1 (Get-Content-Path’C:\file.txt’|measure).Count

Кодировки

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

  • ASCII
  • BigEndianUnicode
  • BigEndianUTF32
  • Byte
  • Default
  • OEM
  • Unicode
  • UTF7
  • UTF8
  • UTF32

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

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

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

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

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

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

Имена переменных, содержащие специальные символы

Имена переменных начинаются с символа доллара ( ) и могут содержать буквенно-цифровые символы и специальные символы. Длина имени переменной ограничена только доступной памятью.

Рекомендуется, чтобы имена переменных включали только буквенно-цифровые символы и символ подчеркивания ( ). Имена переменных, содержащие пробелы и другие специальные символы, трудно использовать, поэтому их следует избегать.

Буквенно-цифровые имена переменных могут содержать следующие символы:

  • Символы Юникода из следующих категорий: Lu, LL, lt, LM, with или ND.
  • Символ подчеркивания ( ).
  • Символ вопросительного знака ().

В следующем списке содержатся описания категорий Юникода. Дополнительные сведения см. в разделе UnicodeCategory.

  • Lu — упперкаселеттер
  • LL -ловеркаселеттер
  • Lt — титлекаселеттер
  • LM -модифиерлеттер
  • Осерлеттер
  • ND -деЦималдигитнумбер

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

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

  • Любой символ Юникода со следующими исключениями:
    • Символ закрывающей фигурной скобки ( ) (U + 007D).
    • Символ обратной кавычки ( ) (U + 0060). Обратная шкала используется для экранирования символов Юникода, чтобы они обрабатывались как литералы.

PowerShell содержит зарезервированные переменные , такие как, , и , которые содержат буквенно-цифровые и специальные символы. Дополнительные сведения см. в разделе about_Automatic_Variables.

Например, следующая команда создает переменную с именем . Фигурные скобки ( ) необходимы, так как имя переменной включает Специальный символ дефис ().

Следующая команда возвращает дочерние элементы в каталоге, представленном переменной среды.

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

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

В 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 – выводит информацию о текущем местонахождении.

PowerShell переменные и их особенности

Переменные в PowerSHell, как и всё остальное – это объекты. Эту особенность тоже разберём в этой статье, но чуть ниже. Другой особенностью переменных PowerShell является то, что тип переменной зависит от её значения, например:

  • – число;
  • – строка;
  • – логическая переменная.

Стоит усвоить что типы переменных в PowerShell – динамические, то есть зависят от значения переменной.

Все переменные начинаются со знака доллара ($). Если не указать знак доллара, то PowerShell подумает что вы вызываете Командлет а не Переменную. Чтобы вывести значение переменной нужно просто написать её название, а чтобы присвоить ей значение нужно использовать знак равно (=). Вот пример:

> $a = 5
> $a
5

В PowerSHell есть пользовательские и встроенные переменные. Выше в примере мы создали пользовательскую переменную a и присвоили ей значение 5. Встроенные переменные обычно настраивают работу самого PowerShell или показывают какую-то информацию. Некоторые встроенные переменные можно изменять, но есть те, которые изменять нельзя.

Рекомендации по именованию команд

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

  • Используйте одно из стандартных имен команд, предоставленных PowerShell.
  • Используйте команду, чтобы описать общую область действия, и параметры для уточнения действия командлета.
  • Не используйте синоним утвержденной команды. Например, всегда используйте , а не или .
  • Используйте команду только в той форме, которая указана в этом разделе. Например, используйте , но не или .
  • Не используйте следующие зарезервированные команды или псевдонимы. Язык PowerShell и лишь некоторые из его командлетов используют эти команды в исключительных обстоятельствах.
    • ForEach (foreach)
    • Format (f): упорядочивает объекты в указанной форме или макете
    • Group (gp): упорядочивает или связывает один или несколько ресурсов
    • Ping (pi)
    • Sort (sr)
    • Tee (te)
    • Where (wh)

Полный список команд можно получить с помощью командлета .

Работа с сетью в 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 PowerShell

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

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

Как удалить файлы в Microsoft Windows

Пользователи Microsoft Windows могут удалить файл или папку (каталог) разными способами. Ниже приведены наиболее распространенные способы удаления файла или папки.

Пользователи, не знакомые с Windows, должны понимать, что если вы удаляете папку, она удаляет все файлы и папки в этой папке.

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

Удалить файл или папку

Найдите элемент, который вы хотите удалить, выделите его, нажав один раз на файл или папку, и нажмите клавишу удаления на клавиатуре. Вы можете найти местоположение файла или папки, используя Мой компьютер или Проводник Windows.

Вы можете удалить несколько файлов или папок, удерживая клавишу Ctrl и щелкая каждый из них перед нажатием «Удалить».

Вы можете удерживать клавишу Shift, одновременно нажимая клавишу удаления, чтобы предотвратить удаление удаляемых файлов в корзину.

Удалить файл или папку, щелкнув правой кнопкой мыши

Откройте Мой компьютер или Проводник Windows. Найдите файл или папку, которую вы хотите удалить, и щелкните по ней правой кнопкой мыши. Выберите опцию удаления из всплывающего меню.

Удалить из меню файла

Откройте Мой компьютер или Проводник Windows, найдите и выберите файл или папку, которую вы хотите удалить, нажмите файл в верхней строке меню и выберите удалять,

Если файл меню не отображается в «Моем компьютере» или в проводнике Windows, нажмите клавишу «Alt», чтобы отобразить строку меню, включая меню «Файл».

Проблемы при удалении

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

Файл может быть установлен как файл только для чтения, то есть он может быть открыт только для просмотра, но его нельзя изменить или удалить. При попытке удалить файл только для чтения вы получите сообщение о том, что файл защищен от записи и не может быть удален. Вам потребуется изменить или написать разрешения, которые будут предоставлены вашей учетной записи пользователя для удаления файла.

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

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

Как восстановить удаленный файл или папку

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

Как узнать, сколько строк было прочитано

Командлет Get-Content возвращает массив строк, поэтому вы можете использовать методы для массивов, например, следующие команды покажут количество строк в файле current_dir.txt:

(Get-Content current_dir.txt).Count
(Get-Content current_dir.txt).Length

Для подсчёта количества строк вы также можете использовать командлет Measure-Object:

Get-Content current_dir.txt | Measure-Object -Line | select Lines

Обратите внимание, что эти команды вернули разное количество строк. Первая команда вернула общее количество строк вместе с пустыми, а вторая посчитала только непустые строки

Скрипты в модулях

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

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

Дополнительные сведения о модулях см. в разделе about_Modules.

Выполнение сценария

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

Политика выполнения по умолчанию предотвращает выполнение всех скриптов, включая скрипты, которые вы пишете на локальном компьютере. Подробнее см. в разделе about_Execution_Policies.

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

Чтобы изменить политику выполнения, используйте следующую процедуру.

В командной строке введите:

или

Изменение вступает в силу немедленно.

Чтобы выполнить сценарий, введите полное имя файла скрипта и полный путь к нему.

Например, чтобы запустить сценарий Get-ServiceLog.ps1 в каталоге C:\Scripts, введите:

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

Например, чтобы запустить сценарий ServicesLog.ps1 в локальном каталоге, введите:

Если у скрипта есть параметры, введите параметры и значения параметров после имени файла скрипта.

Например, следующая команда использует параметр ServiceName скрипта Get-ServiceLog, чтобы запросить журнал действия службы удаленного управления Windows.

В качестве функции безопасности PowerShell не выполняет сценарии при двойном щелчке значка скрипта в проводнике или при вводе имени сценария без полного пути, даже если сценарий находится в текущем каталоге. Дополнительные сведения о выполнении команд и сценариев в PowerShell см. в разделе about_Command_Precedence.

Запуск с помощью PowerShell

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

Чтобы использовать функцию «Запуск с помощью PowerShell», сделайте следующее:

Запустите проводник, щелкните правой кнопкой мыши имя файла скрипта и выберите команду «запустить с помощью PowerShell».

Функция «запустить с помощью PowerShell» предназначена для выполнения скриптов, которые не имеют обязательных параметров и не возвращают выходные данные в командную строку.

Дополнительные сведения см. в разделе about_Run_With_PowerShell.

Выполнение сценариев на других компьютерах

Чтобы запустить сценарий на одном или нескольких удаленных компьютерах, используйте параметр FilePath командлета.

Введите путь и имя файла скрипта в качестве значения параметра FilePath . Скрипт должен находиться на локальном компьютере или в каталоге, к которому локальный компьютер может получить доступ.

Следующая команда запускает сценарий на удаленных компьютерах с именем Server01 и Server02.

Область скрипта и источники с точкой

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

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

Функция «с точкой» позволяет запускать скрипт в текущей области, а не в области скрипта. При запуске скрипта, который имеет точку с точкой, команды в скрипте выполняются так, будто были введены в командной строке. Функции, переменные, псевдонимы и диски, создаваемые сценарием, создаются в области, в которой выполняется работа. После выполнения скрипта можно использовать созданные элементы и получить доступ к их значениям в сеансе.

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

Пример:

или диспетчер конфигурации служб

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

Например, Скрипт создает функцию и переменную.

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

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

Дополнительные сведения об области действия см. в разделе about_Scopes.

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

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

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

Вывод уведомлений пользователям с помощью PowerShell

Несмотря на то, что PowerShell консольный язык, иногда необходимо из скрипта PowerShell оповестить пользователя об определенном событии или необходимости выполнить определенное действие

Например, вывести уведомление о завершении какого-либо длительного PoSh скрипта, или об наступлении какого-то важного события

Самый простой способ вывести окошко с произвольным тестом через подсистему сценариев Windows – Wscript.

Следующий код выведет обычное текстовое окно с необходимым текстом и кнопкой OK.

$wshell = New-Object -ComObject Wscript.Shell $Output = $wshell.Popup(«Скрипт формирования отчета выполнен»)

С помощью различных свойств метода Popup вы можете настроить вид модального окна сообщения. В том числе можно вернуть в скрипт результаты ответа пользователя на вопрос (Да / Нет).

$Output = $wshell.Popup(«Скрипт формирования отчета завершен! Хотите вывести его на экран?»,0,»Отчет готов»,4+32)

Общий синтаксис и параметры метода Popup:

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

Описание: возвращает целое значение, с помощью которого можно узнать, какая кнопка была нажата пользователем. Возможные значения:

  • -1 — таймаут.
  • 1 — кнопка ОК.
  • 2 — кнопка Отмена.
  • 3 — кнопка Стоп.
  • 4 — кнопка Повтор.
  • 5 — кнопка Пропустить.
  • 6 — кнопка Да.
  • 7 — кнопка Нет.

Более привлекательные и приятные взгляду всплывающие сообщения (ballons) можно вывести в Windows 7, 8.1 и 10 через API Windows Forms. Следующий PowerShell код выведет всплывающее сообщение рядом с панелью уведомлений Windows 10, которое автоматически исчезнет через 10 секунд.

Add-Type -AssemblyName System.Windows.Forms$global:balmsg = New-Object System.Windows.Forms.NotifyIcon$path = (Get-Process -id $pid).Path$balmsg.Icon = ::ExtractAssociatedIcon($path)$balmsg.BalloonTipIcon = ::Warning$balmsg.BalloonTipText = ‘Это текст всплывающего сообщения для пользователя Windows 10’$balmsg.BalloonTipTitle = «Внимание $Env:USERNAME»$balmsg.Visible = $true$balmsg.ShowBalloonTip(10000)

Кроме того для создания красочных всплывающих сообщений в Windows 10 (PowerShell 5.0+)можно использовать отдельный PowerShell модуль BurntToast из галереи PowerShell.

Модуль устанавливается из онлайн репозитория с помощью менеджера пакетов Windows 10: Install-Module -Name BurntToast

Теперь, например, в ранее рассматриваемый скрипт автоматического отключение от Wi-FI сети при подключении к Ethernet можно добавить красочное уведомление:

New-BurntToastNotification -Text «Отключение от Wi-Fi сети», «Вы были отключены от Wi-Fi сети, т.к. Вше устройство было подключено к скоростному Ethernet подключению.» -AppLogo C:\PS\changenetwork.png

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

Источник

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

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