Меню Рубрики

Windows powershell best practices

Category Archives: Best Practices

Powershell Best Practice #17: Use the same parameter name than the native one

Best Practice: It is recommended to use the same name for your parameter (for your functions) than the native one parameter of the builtin Powershell cmdlets. Explanation: If you create a function which takes as a parameter a computerName, you should use the name : ComputerName Why “ComputerName”? Because many builtin cmdlets use this parameter… Read More »

Powershell Best Practice #16: Update the help

Best Practice: It is recommended to update the help on a regular basis. Explanation: You have to run Powershell as an administrator to update the help : Update-Help -Force You have different ways to automate the update of the help: PowerShell profile Scheduled Job GPO (in case you work in a domain) Profile

Powershell Best Practice #15: Execute scripts with -NoProfile parameter

Best Practice: It is recommended to use -NoProfile parameter when executing scripts. powershell . exe -NoProfile – File «C:\scripts\Get-DiskSpace.ps1» Explanation: When you run a script via scheduled task or via a shortcut, PowerShell will first load profiles and then run the script. You never know what contains these profiles, so it can be dangerous and you can have unexpected behaviors. NoProfile… Read More »

Powershell Best Practice #13: Avoid double quotes in strings if not necessary

Best Practice: It is recommended to use single quotes if there are no variables or escape sequences in strings, otherwise, you should use double quotes. Single quotes

Explanation: Single quotes disable the expansion of variables and should be preferred if there is no variable or escape sequence inside strings to reduce unexpected results (ex: if the… Read More »

Powershell Best Practice #12: Avoid Out-Null cmdlet

Best Practice: It is recommended to avoid Out-Null when you need to suppress the output of some commands inside large loops (for, foreach, etc.) for example.

Explanation: It is recommended to assign to $null or [void] casting for better performance.

When you want to suppress the output of a command (example: when adding items to a… Read More »

Powershell Best Practice #11: Use Set-StrictMode in your dev scripts

Best Practice: It is recommended to use Set-StrictMode for your development scripts to identify code issues. Explanation: It is the equivalent of the well known “Option Explicit” in VBS and useful to avoid to enforce coding rules (undeclared variables, etc.) and prevent some common scripting errors.

Here we can see we get an error as… Read More »

Powershell Best Practice #10: Avoid empty Catch block

Best Practice: It is recommended to avoid empty empty Catch block in a try-catch-(finally) statement.

Explanation: Leaving an empty catch block is not considered a good practice because when an error occcurs in the try block, no action is performed on the error.

Powershell Best Practice #7: Use approved verb (not unapproved verb)

Best Practice: It is recommended to use approved verb for cmdlet, do not use unapproved verb. Explanation: PowerShell cmdlets use the syntax Verb-Noun. Example: Get–Service (“Get” is the verb, “Service” is the noun). By following the syntax convention Verb-Noun we can immediately know what is the purpose of the cmdlet. Get = Reads something Set = Writes something… Read More »

Powershell Best Practice #9: Use custom folding regions

Best Practice: It is recommended to use region statement to split your code into logical parts in your scripts. Explanation: Since PowerShell v3, ISE supports code folding (feature of some editors/IDEs that allows the user to hide/display some “fold” sections). In English, the verb “fold” means: So, you can fold/unfold by clicking the + / – sign on… Read More »

Powershell Best Practice #8: Use WhatIf and Confirm parameters

Best Practice: It is recommended to use the WhatIf and Confirm switch parameters when working with commands modifying the system state (Stop-Process, Set-ADUser, …). Explanation: The WhatIf and Confirm parameters are useful when you use them with commands that modify something. WhatIf : Only displays the objects that would be affected and what changes would be made to those… Read More »

Источник

ИТ База знаний

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Популярное и похожее

Пошаговый ввод в домен Windows 10

Поднимаем контроллер домена на Windows 2008 R2

Основные команды cmd в Windows

Основные команды cmd в Windows

Поднимаем контроллер домена на Windows 2008 R2

Windows Server 2016: создаем пользователя и даем RDP права

Пошаговый ввод в домен Windows 10

Panasonic KX-HDV100RU

Еженедельный дайджест

10 крутых вещей, которые можно сделать с помощью Windows PowerShell

Трюки с Windows PowerShell

Если PowerShell кажется вам сложным для использования его для повседневных задач, «круто» может быть не тем словом, которое у вас ассоциируете с ним. Но PowerShell является основной частью Exchange, Windows Server и SQL Server, и он обладает огромными возможностями, которые мы все должны понять, принять и использовать, чтобы облегчить и автоматизировать наши текущие дела.

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

Будьте очень осторожны так как это инструмент достойный своего названия (Power – Сила, Shell – Оболочка). PowerShell может легко вызвать массовые изменения конфигурации, как положительные, так и отрицательные, поэтому для безопасности создайте тестовую или лучше всего виртуальную среду для вашего обучения и тестирования. Если вы будете тестировать у себя на компьютере, то создайте точку восстановления системы. Чтобы во время выполнения одной из следующих команд что-то пойдет не так, вы всегда могли восстановить свой компьютер.

10 крутых вещей, которые можно сделать с помощью Windows PowerShell

1: Отчёты о подключённых USB оборудованиях

PowerShell даёт возможность работать с Windows Management Instrumentation (WMI). С помощью PowerShell, вы можете сделать WMI — запрос для получения информации о USB — устройствах, которые установлены как на локальной, так и на удаленных системах.

В данной команде будет применен фильтр возврата предшествующих и зависимых полей с компьютера DBSERVER1 . Если вы хотите получить полную информацию о USB-устройствах в системе, вы можете убрать оператор | и fl . Это весьма удобный способ для ведения отчётов по серверам, к которым подключены USB — устройства с лицензией.

2: Выполнение ваших любимых задач CMD в PowerShell

Да, вы можете перестать использовать командную строку (CMD) и начать выполнять все те же задачи в PowerShell. Это поможет сделать процесс обучение немного проще и помочь вам лучше ознакомиться с интерфейсом. К сожалению, PowerShell невозможно вызвать через окно «выполнить» с помощью трёх букв, подобно CMD. Но вы можете назначить сочетание клавиш для быстрого запуска PowerShell, например, Ctrl + Shift + P .

3: Принудительное завершение процесса в PowerShell

Если зависла какая-то служба Windows, вы можете использовать PowerShell для завершения процесса так же, как и через Диспетчер Задач. Например, для закрытия BadThread.exe , вы делаете следующее:

После того, как мы идентифицируем Process ID , вы можете принудительно закрыть зависший процесс введя команду:

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

4: Используйте PSDrive для большего, чем просто просмотр дисков

Команда PSDrive позволяет просматривать объекты Windows за пределами традиционных сетей, а также локальных или съемных дисков. Например, чтобы посмотреть диски в разделе верхнего уровня реестра HKEY_LOCAL_MACHINE , вы можете использовать HKLM PSDrive . Чтобы войти в реестр, введите следующую команду:

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

5: Экспорт NTFS разрешений папки – как обычно, так и рекурсивно

Управление разрешениями NTFS — это отдельный вопрос, но с помощью PowerShell можно экспортировать список разрешений для аудита доступов или для быстрого анализа списка ACLs для настройки политик безопасности. Это лучший вариант для создания отчётности в формате периодически запускаемого скрипта, или вы можете запускать его по требованию, например, для диагностики конкретной проблемы, связанной с доступами. Например, используя следующую команду:

Это даст вам быстрый ответ с результатами ваших прав безопасности по указанному пути N:Data (обратите внимание, что команда не даёт доступ к ресурсу). Данная команда не даст нам общую картину всех доступов всего пути, а только отчёт только об указанном пути. Но если вы хотите включить рекурсию для всего пути, вы можете использовать другую команду. Для того же пути N:Data вы должны использовать командлет Get-ChildItem (cmdlet) в PowerShell в сочетании с командлетом Get-Acl . Рассмотрим следующий пример:

Данная команда будет отображать списки ACL для содержимого всего пути N:Data . Разберём как это работает: командлет Get-ChildItem показывает нам все объекты файловой системы по указанному пути N:Data , а дальше весь список объектов передаётся командлету Get-Acl который предоставляет результаты (списки ACL) для каждого объекта.

Если вы хотите заархивировать данные в документ (CSV), вам нужно добавить | export-csv c:\filename.csv в конце команды. Кроме этого вы можете извлечь в обычный текстовый файл с помощью добавления командлета > C:\filename.txt . Обратите внимание что, когда вы используете параметр -recurse, он будет применяться во всех вложенных файлах и папках. Поэтому будьте внимательны, когда используете его для инвентаризации объёмных томов или же по сети.

6: Отличия PowerShell 2.0

PowerShell 2.0 включает в себя графический интерфейс что является удобной особенностью данной системы. Скрипты PowerShell сохраняются как файлы .ps1 , что позволяет нам легко изменять, импортировать и мигрировать сценарии в различные системы. На скриншоте ниже показан пример списка разрешений NTFS в графическом режиме.

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

При этом не забудьте, что для PowerShell 2.0 требуется пакет WS-MAN v1.1 и Microsoft.NET Framework 3.0 для графического интерфейса.

7: Горячие клавиши в графическом интерфейсе PowerShell

Если вы знакомы со средой Microsoft SQL Query Analyzer, вы по достоинству оцените некоторые из этих сочетаний клавиш. В PowerShell GUI вы можете выбрать одну или несколько строк и выполнить их разом одним нажатием клавиши F5 . Кроме того, если вы изменили скрипт, то для экономии времени при редактировании и тестировании доступны привычные Ctrl + S для сохранения, Ctrl + Z для отмены, Ctrl + C для копирования и Ctrl + V для вставки.

8: Фоновый режим для длительных задачи

Если вы собираетесь использовать команду, выполнение которого займёт некоторое время, вы можете запустить PowerShell в фоновом режиме до её завершения. Таким образом, можно отправить серию команд на автоматическое выполнение по своему собственному расписанию. Чтобы запустить команду в фоновом режиме необходимо добавить в начало параметр –psjob . А ещё можно узнать о состоянии любого из заданий с помощью следующей команды:

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

С помощью следующей команды вы можете удалить неудачную задачу, указав ID Session в конце команды:

9: Вставка временных рамок для вывода команд PowerShell

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

Команды Вывод
«$(Get-Date -format g) Start logging» 20/4/2020 7:45 AM
«$(Get-Date -format F) Start logging» Friday, December 23, 2019 8:26:24 AM
“$(Get-Date -format o) Start logging» 2019-11-17T19:26:24.0479860-06:00

Существует много различных форматов команды Get-Date , но обычно эти три параметра подходят для большинства целей с временными метками.

10: Вывод результатов с задержкой

В PowerShell некоторые команды выводят информацию на экран быстрым прокручиванием. Если вы не экспортируете данные в файл, будет невозможно просмотреть их на экране. Давайте ещё раз воспользуемся командлетом Get-ChildItem из предыдущих примеров. Эта команда может выводить множество результатов в зависимости от указанного пути. Для упрощения просмотра выводимых данных на экране мы воспользуемся функцией, которая называется EasyView . Данная функция позволяет нам просмотреть результаты на экране путем отображения одной строки каждые полсекунды. Функция EasyView создаётся следующим образом:

Чтобы выполнить команду PowerShell с помощью функции EasyView добавьте в конце команды оператор | и название самой функции, как показано ниже:

Функция EasyView настроена на отображение строк с интервалом в полсекунды. Вы также можете настроить интервал в миллисекундах.

Итоги

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

Было полезно?

Почему?

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

😍 Полезные IT – статьи от экспертов раз в неделю у вас в почте. Укажите свою дату рождения и мы не забудем поздравить вас.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Windows powered для навигатора
  • Windows post install wizard что это
  • Windows post install wizard wpi мануал
  • Windows posready 2009 product key
  • Windows portable devices как удалить