PSAMSIMethodInvocationLogging
Примечание
Эта функция стала основной в PowerShell 7.3.
Windows Antimalware Scan Interface (AMSI) — это интерфейс API, позволяющий приложениям передавать действия в средство проверки вредоносных программ, например в Защитник Windows, для обнаружения вредоносного кода. Начиная с версии PowerShell 5.1, PowerShell в Windows 10 (и более поздних версиях) передает все блоки скриптов в AMSI.
Эта экспериментальная функция расширяет возможности данных, отправляемых в AMSI для проверки. Если эта функция включена, PowerShell добавляет все вызовы элементов методов .NET.
Эта экспериментальная функция добавлена в PowerShell 7.3.
Дополнительные сведения об AMSI см. в разделе Как AMSI помогает.
Выбираем среду разработки и инструменты
Теперь давай разберемся, где удобнее всего писать код. Можно, конечно, и в «Блокноте», Notepad++ или Sublime. Но это в данном случае не самый грамотный выбор редактора. Лучше всего начинать знакомство с PowerShell, вооружившись идущим в комплекте PowerShell ISE.
PowerShell ISE
Другие статьи в выпуске:
Xakep #214. Приручаем WAF’ы
- Содержание выпуска
- Подписка на «Хакер»-60%
Это даже не редактор, а практически полноценная среда разработки. Здесь есть функция IntelliSense, которая позволяет просматривать перечень командлетов и их параметров, переменных, утилит и прочего. Поддерживаются сниппеты, есть возможность расширения набора функций за счет различных аддонов. Очень полезно и окно Commands. В нем можно составлять команды в визуальном режиме: выбираешь модуль, находишь нужный командлет и задаешь ему необходимые параметры. Получившуюся команду можно скопировать в консоль или сразу запустить на выполнение. В общем, этакий конструктор для админа. Ну и конечно, есть подсветка синтаксиса, дебаггер и многое другое.
Тем не менее у PowerShell ISE есть и достойные конкуренты. Один из них — Dell PowerGUI.
PowerGUI — это визуальное дополнение к PowerShell. Оно упрощает сборку собственных сценариев до выбора необходимых командлетов. Берешь то, что нужно для решения задачи, и перетаскиваешь части кода, пока не получишь скрипт. Одна из главных фишек PowerGUI — это Power Packs, готовые скрипты, опубликованные сообществом пользователей и выложенные в свободный доступ. Тут есть и простенькие команды вроде добавления пользователей, и сложные — к примеру, управление свитчами и виртуальными машинами. Все их легко дополнять и модифицировать в соответствии с нуждами.
powergui
PowerShell Studio 2015 фирмы Sapien — более продвинутая среда, которая рассчитана на совместную разработку одного проекта большим количеством участников. Если ты когда-нибудь имел дело с Visual Studio, то, думаю, заметишь сходство. Среди полезных фишек PowerShell Studio — панель Ribbon, поддержка удаленной отладки, а также функции компилятора, которые позволяют включить скрипты в исполняемые файлы. Есть поддержка разных версий PowerShell.
PowerShell Studio 2015
Стоит упомянуть и Script Browser для Windows PowerShell ISE. Это не среда разработки, но весьма интересный инструмент, разработанный в Microsoft. Script Browser открывает доступ к базе готовых скриптов, которые можно использовать в качестве образцов для написания своего кода. А еще эта штука умеет анализировать код, который ты пишешь, и подсказывает, как его улучшить.
Script Browser для Windows PowerShel
Базовые классы командлетов
Windows PowerShell поддерживает командлеты, которые являются производными от следующих двух базовых классов.
-
Большинство командлетов основаны на классах .NET, производных от базового класса System. Management. Automation. командлет .
наследование от этого класса позволяет командлету использовать минимальный набор зависимостей от Windows PowerShell среды выполнения. Это имеет два преимущества. Первое преимущество заключается в том, что объекты командлетов меньше, и, скорее всего, изменения в среде выполнения PowerShell подвергаются меньшему. Второе преимущество заключается в том, что при необходимости можно напрямую создать экземпляр объекта командлета, а затем вызвать его напрямую, а не вызывать его через среду выполнения PowerShell. -
Более сложные командлеты основаны на классах .NET, производных от базового класса System. Management. Automation. PSCmdlet . Наследование от этого класса обеспечивает гораздо больший доступ к среде выполнения PowerShell. Этот доступ позволяет командлету вызывать скрипты, получать доступ к поставщикам и получать доступ к текущему состоянию сеанса.
(Для доступа к текущему состоянию сеанса вы получаете и устанавливаете переменные сеанса и настройки.) Однако наследование от этого класса увеличивает размер объекта командлета, и это означает, что командлет более тесно связан с текущей версией среды выполнения PowerShell.
Как правило, если вам не нужен расширенный доступ к среде выполнения PowerShell, необходимо создать производный от класса System. Management. Automation. командлет .
Однако среда выполнения PowerShell имеет широкие возможности ведения журнала для выполнения командлетов. Если модель аудита зависит от этого журнала, можно предотвратить выполнение командлета из другого командлета, производя от класса System. Management. Automation. PSCmdlet .
Создание COM-объектов с помощью New-Object
Командлет может использоваться для работы с СОМ-компонентами. Спектр этих компонентов довольно обширен — от различных библиотек, поставляемых с сервером сценариев Windows (WSH), до приложений ActiveX, например Internet Explorer, установленных на большинстве систем.
Командлет создает СОМ-объекты с помощью вызываемых оболочек времени выполнения .NET Framework, поэтому для него действуют те же ограничения, что и для платформы .NET Framework во время вызова СОМ-объектов. Чтобы создать СОМ-объект, необходимо задать параметр ComObject для программного идентификатора ProgId нужного класса СОМ-объекта. Полное обсуждение ограничений использования COM и определение доступных в системе ProgIds выходит за рамки этого руководства пользователя, но большинство известных объектов из таких сред, как WSH, можно использовать в PowerShell.
Объекты сервера сценариев Windows можно создать, задав следующие программные идентификаторы: WScript.Shell, WScript.Network, Scripting.Dictionary и Scripting.FileSystemObject. Эти объекты создаются следующими командами:
Хотя функциональность этих классов в большой степени может быть реализована другими способами в Windows PowerShell, некоторые действия (например создание ярлыков) проще выполнить с помощью классов сервера сценариев Windows.
Сохранение и отзыв последних расположений (Push-Location и Pop-Location)
При изменении расположения полезно отслеживать свое предыдущее расположение и иметь возможность вернуться к нему. Командлет Push-Location в Windows PowerShell создает упорядоченный журнал («стек») путей к каталогам, которые вы открывали, чтобы можно было вернуться по нему на шаг назад, используя дополнительный командлет Pop-Location.
Например, Windows PowerShell обычно запускается в корневом каталоге пользователя.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
Чтобы передать текущее расположение в стек, а затем переместить его в папку локальных параметров, введите:
Push-Location -Path "Local Settings"
После этого можно передать расположение локальных параметров в стек и переместить его в папку Temp, введя следующее:
Push-Location -Path Temp
Чтобы убедиться, что каталоги изменены, введите команду Get-Location.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser\Local Settings\Temp
После этого можно перейти в последний открытый каталог, введя команду Pop-Location, и проверить изменение, введя команду Get-Location.
PS> Pop-Location PS> Get-Location Path ---- C:\Documents and Settings\me\Local Settings
Как и в случае с командлетом Set-Location, можно включить параметр -PassThru при вводе командлета Pop-Location, чтобы открыть указанный каталог.
PS> Pop-Location -PassThru Path ---- C:\Documents and Settings\PowerUser
Кроме того, можно использовать командлеты расположения с сетевыми путями. Если у вас есть сервер FS01 с общей папкой Public, можно изменить расположение, введя
Set-Location \\FS01\Public
или диспетчер конфигурации служб
Push-Location \\FS01\Public
Чтобы изменить расположение на любой доступный диск, можно использовать команды Push-Location и Set-Location. Например, если у вас есть локальный дисковод компакт-дисков с буквой диска D, содержащий компакт-диск с данными, вы можете изменить расположение на него, введя команду Set-Location D: .
Если дисковод пуст, вы получите следующее сообщение об ошибке:
PS> Set-Location D: Set-Location : Cannot find path 'D:\' because it does not exist.
Примеры
Пример 1. Запуск процесса, использующего значения по умолчанию
В этом примере запускается процесс, использующий файл в текущей папке. Команда использует все значения по умолчанию, включая стиль окна по умолчанию, рабочую папку и учетные данные.
Пример 3. Запуск процесса сортировки элементов в новый файл
В этом примере запускается процесс, который сортирует элементы в файле и возвращает отсортированные элементы в файлах . Все ошибки записываются в файл. Параметр UseNewEnvironment указывает, что процесс выполняется с собственными переменными среды.
В этом примере используется сплаттинг для передачи параметров командлету . Дополнительные сведения см. в разделе about_Splatting.
Пример 6. Использование разных команд для запуска процесса
В этом примере показано, как найти команды, которые можно использовать при запуске процесса. Доступные команды определяются расширением имени файла, который запускается в процессе.
В примере используется для создания объекта System.Diagnostics.ProcessStartInfo для , файла, который выполняется в процессе PowerShell. Свойство Verbs объекта ProcessStartInfo показывает, что команды Open и можно использовать с или с любым процессом, выполняющим файл.
Пример 7. Указание аргументов для процесса
Обе команды запускают интерпретатор команд Windows, выдавая команду в папке
Так как это имя папки содержит пробел, значение должно быть заключено в экранированные кавычки.
Обратите внимание, что первая команда указывает строку как ArgumentList. Вторая команда представляет собой массив строк
В Windows можно запустить , чтобы запустить процесс с повышенными разрешениями.
Это повышает уровень контекста текущего пользователя. Параметр Credential позволяет указать альтернативное имя пользователя и пароль, что позволяет запустить процесс в другом пользовательском содержимом.
Однако параметры Credential и Verb нельзя использовать вместе.
Чтобы запустить процесс с повышенными правами, используя альтернативные учетные данные, необходимо сначала запустить PowerShell с помощью альтернативных учетных данных, а затем использовать для запуска процесса с повышенными правами.
Пример начинается с повышенных разрешений из сеанса PowerShell, который выполняется с альтернативными учетными данными.
Пример 9. Создание отсоединяемого процесса в Linux
В Windows создает независимый процесс, который продолжает выполняться независимо от запускаемой оболочки. На платформах, отличных от Windows, только что запущенный процесс присоединяется к запущенной оболочке. Если запущенная оболочка закрыта, дочерний процесс завершается.
Чтобы избежать завершения дочернего процесса на unix-подобных платформах, можно объединить с . В следующем примере запускается фоновый экземпляр PowerShell в Linux, который остается активным даже после закрытия сеанса запуска. Команда собирает выходные данные в файле в текущем каталоге.
В этом примере выполняет команду Linux , которая запускается как отсоединяемый процесс. Дополнительные сведения см. в статье nohup в Википедии.
Подробное описание
Переменные среды хранят данные, используемые операционной системой и другими программами. Например, переменная среды содержит расположение каталога установки Windows. Программы могут запрашивать значение этой переменной, чтобы определить, где находятся файлы операционной системы Windows.
PowerShell может получать доступ к переменным среды и управлять ими на любой из поддерживаемых платформ операционной системы. Поставщик среды PowerShell позволяет получать, добавлять, изменять, очищать и удалять переменные среды в текущей консоли.
Примечание
В отличие от Windows, в именах переменных среды в macOS и Linux учитывается регистр. Например, и — это разные переменные среды на платформах, отличных от Windows.
Переменные среды, в отличие от других типов переменных в PowerShell, всегда хранятся в виде строки и не могут быть пустыми. Кроме того, в отличие от других переменных, они наследуются дочерними процессами, такими как локальные фоновые задания и сеансы, в которых выполняются члены модуля. Благодаря этому переменные среды хорошо подходят для хранения значений, необходимых как в родительских, так и в дочерних процессах.
В Windows переменные среды можно определить в трех областях:
- Область компьютера (или системы)
- Область пользователей
- Область процесса
Область процесса содержит переменные среды, доступные в текущем процессе или сеансе PowerShell. Этот список переменных наследуется от родительского процесса и создается из переменных в областях Компьютер и Пользователь .
Изменение переменных среды в PowerShell влияет только на текущий сеанс. Это поведение похоже на поведение команды в командной оболочке Windows и команды в средах на основе UNIX. Чтобы изменить значения в области Компьютер или Пользователь, необходимо использовать методы класса System.Environment .
Чтобы внести изменения в переменные уровня компьютера, необходимо также иметь разрешение. Если вы попытаетесь изменить значение без достаточных разрешений, команда завершается ошибкой, и PowerShell отобразит ошибку.
PowerShell предоставляет несколько различных методов использования переменных среды и управления ими.
- Синтаксис переменной
- Командлеты поставщика среды и элемента
- Класс .NET System.Environment
Примечания
PowerShell включает следующие псевдонимы для :
- Все платформы
- Windows
Собственные команды — это исполняемые файлы, установленные в операционной системе. Эти исполняемые файлы можно запускать из любой оболочки командной строки, например PowerShell. Обычно команда выполняется точно так же, как в или . Командлет можно использовать для выполнения любых собственных команд, но его следует использовать только в том случае, если необходимо управлять выполнением команды.
полезно для запуска программ графического пользовательского интерфейса на платформах, отличных от Windows. Например, выполните команду , чтобы запустить графический текстовый редактор, распространенный в средах рабочего стола GNOME.
По умолчанию запускает процесс асинхронно. Элемент управления мгновенно возвращается в PowerShell, даже если новый процесс все еще выполняется.
- В локальной системе запущенный процесс находится в независимом от вызывающего процесса.
- В удаленной системе новый процесс завершается после завершения удаленного сеанса сразу после выполнения команды . Таким образом, вы не можете использовать в удаленном сеансе, ожидая, что запущенный процесс выживет сеанс.
Если вам нужно использовать в удаленном сеансе, вызовите его с помощью параметра Wait . Вы также можете использовать другие методы для создания нового процесса в удаленной системе.
При использовании параметра Wait ожидает выхода дерева процесса (процесса и всех его потомков) перед возвратом управления. Это отличается от поведения командлета , который ожидает только завершения указанных процессов.
В Windows наиболее распространенным вариантом использования является использование параметра Wait для блокировки хода выполнения до завершения нового процесса. В системе, отличной от Windows, это редко требуется, так как поведение по умолчанию для приложений командной строки эквивалентно .
Этот командлет реализуется с помощью метода Start класса System.Diagnostics.Process . Дополнительные сведения об этом методе см. в разделе .
Примеры
Пример 1. Отправка выходных данных и создание файла
В этом примере показано, как отправить список процессов локального компьютера в файл. Если файл не существует, создает файл по указанному пути.
Командлет получает список процессов, выполняющихся на локальном компьютере. Объекты Process отправляются по конвейеру в командлет . использует параметр FilePath и создает файл в текущем каталоге с именемProcess.txt. Команда получает содержимое из файла и отображает его в консоли PowerShell.
Пример 2. Предотвращение перезаписи существующего файла
Этот пример предотвращает перезапись существующего файла. По умолчанию перезаписывает существующие файлы.
Командлет получает список процессов, выполняющихся на локальном компьютере. Объекты Process отправляются по конвейеру в командлет . использует параметр FilePath и пытается выполнить запись в файл в текущем каталоге с именемProcess.txt. Параметр NoClobber предотвращает перезапись файла и отображает сообщение о том, что файл уже существует.
Пример 3. Отправка выходных данных в файл в формате ASCII
В этом примере показано, как кодировать выходные данные с помощью определенного типа кодирования.
Командлет получает список процессов, выполняющихся на локальном компьютере. Объекты Process хранятся в переменной . использует параметр FilePath и создает файл в текущем каталоге с именемProcess.txt. Параметр InputObject передает объекты процесса в файл Process.txt. Параметр Encoding преобразует выходные данные в формат ASCII . Параметр Width ограничивает каждую строку файла до 50 символов, поэтому некоторые данные могут быть усечены.
Пример 4. Использование поставщика и отправка выходных данных в файл
В этом примере показано, как использовать командлет, если вы не находитесь на диске поставщика FileSystem . Используйте командлет для просмотра поставщиков на локальном компьютере. Дополнительные сведения см. в разделе about_Providers.
Команда использует параметр Path , чтобы задать текущее расположение для поставщика реестра . Командлет отображает полный путь для .
отправляет объекты вниз по конвейеру в командлет . использует параметр FilePath , чтобы указать полный путь и имя файла для выходных данных ,C:\TestDir\AliasNames.txt. Командлет использует параметр Path и отображает содержимое файла в консоли PowerShell.
Пример 5. Установка ширины выходных данных файла для всей области
В этом примере используется , чтобы задать для параметра для всех вызовов и операрторов перенаправления ( и ) значение 2000. Это гарантирует, что везде в текущей области, в которую вы выводите данные из таблицы в файл, PowerShell использует ширину строки 2000 вместо ширины строк, определяемой шириной консоли узла PowerShell.
Дополнительные сведения о см. в разделе .
PSImplicitRemotingBatching
Примечание
Эта экспериментальная функция была удалена в PowerShell 7.2 и больше не поддерживается.
Эта функция проверяет команду, введенную в оболочке. Если все команды являются командами прокси-сервера неявного удаленного взаимодействия, которые образуют простой конвейер, то эти команды объединяются и вызываются как один удаленный конвейер.
Пример
Как показано выше, при включенной функции пакетирования все три команды прокси-сервера неявного удаленного доступа (, , ) выполняются в удаленном сеансе, а результат из конвейера — это единственные данные, которые возвращаются клиенту. Это приводит к уменьшению объема данных, передаваемых между клиентом и удаленным сеансом. Это также уменьшает количество процессов сериализации и десериализации объекта.
Доступные функции
В этой статье описываются доступные экспериментальные функции и сведения об их использовании.
Условные обозначения
- Значок указывает, что экспериментальная функция доступна в версии PowerShell.
- Значок версии PowerShell, в которой экспериментальная функция стала основной
- Значок » указывает версию PowerShell, в которой была удалена экспериментальная функция.
Имя | 7.0 | 7.1 | 7.2 | 7.3 |
---|---|---|---|---|
PSNullConditionalOperators | ||||
PSUnixFileStat (только не на базе Windows) | ||||
Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace | ||||
PSCultureInvariantReplaceOperator | ||||
PSNotApplyErrorActionToStderr | ||||
PSImplicitRemotingBatching | ||||
PSCommandNotFoundSuggestion | ||||
PSDesiredStateConfiguration.InvokeDscResource (DSC версии 2) | ||||
PSNativePSPathResolution | ||||
PSSubsystemPluginModel | ||||
PSNativeCommandArgumentPassing | ||||
PSAnsiRenderingFileInfo | ||||
PSLoadAssemblyFromNativeCode | ||||
PSCleanBlock | ||||
PSExec | ||||
PSNativeCommandErrorActionPreference | ||||
PSStrictModeAssignment | ||||
PSAMSIMethodInvocationLogging |
Описание
Командлет запускает один или несколько процессов на локальном компьютере. По умолчанию создает новый процесс, который наследует все переменные среды, определенные в текущем процессе.
Чтобы указать программу, которая выполняется в процессе, введите исполняемый файл или файл скрипта или файл, который можно открыть с помощью программы на компьютере. Если указан неисполняемый файл, запускает программу, связанную с файлом, аналогично командлету .
Параметры можно использовать для указания параметров, таких как загрузка профиля пользователя, запуск процесса в новом окне или использование альтернативных учетных данных.
Параметры
-Append
Добавляет выходные данные в конец существующего файла. Если кодировка не указана, командлет использует кодировку по умолчанию. Эта кодировка может не совпадать с кодировкой целевого файла. Это то же поведение, что и оператор перенаправления ().
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Запрос подтверждения перед выполнением командлета.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Encoding
Указывает тип кодировки для целевого файла. Значение по умолчанию — .
Ниже приведены допустимые значения для этого параметра.
- Использует 7-разрядную кодировку ASCII.
- Использует UTF-16 с порядком байтов большого байта.
- Использует кодировку, соответствующую активной кодовой странице системы (обычно ANSI).
- Использует кодировку, соответствующую текущей кодовой странице изготовителя оборудования.
- аналогичен .
- Использует UTF-16 с порядком байтов с маленьким байтом.
- аналогичен .
- Использует UTF-7.
- Использует UTF-8.
- Использует UTF-32 с порядком байтов с маленьким байтом.
Type: | String |
Accepted values: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | 1 |
Default value: | Unicode |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Указывает путь к выходному файлу.
Type: | String |
Position: | |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Force
Переопределяет атрибут только для чтения и перезаписывает существующий файл, доступный только для чтения. Параметр Force не переопределяет ограничения безопасности.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Указывает объекты, которые нужно записать в файл. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты.
Type: | PSObject |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Указывает путь к выходному файлу. Параметр LiteralPath используется точно так же, как он типизированный.
Подстановочные знаки не принимаются. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки позволяют PowerShell не интерпретировать какие-либо символы как escape-последовательности. Дополнительные сведения см. в разделе about_Quoting_Rules.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoClobber
NoClobber предотвращает перезапись существующего файла и отображает сообщение о том, что файл уже существует. По умолчанию, если файл существует по указанному пути, он перезаписывается без предупреждения.
Type: | SwitchParameter |
Aliases: | NoOverwrite |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoNewline
Указывает, что содержимое, записанное в файл, не заканчивается символом новой строки. Строковые представления входных объектов объединяются для формирования выходных данных. Пробелы или новые строки не вставляются между выходными строками. После последней выходной строки новая строка не добавляется.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Width
Указывает количество символов в каждой строке выходных данных. Все остальные знаки отсекаются, а не переносятся на следующую строку. Если этот параметр не используется, ширина определяется характеристиками узла. По умолчанию для консоли PowerShell используется 80 символов. Если вы хотите управлять шириной для всех вызовов , а также операторов перенаправления ( и ), задайте перед использованием .
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Настройка текущего расположения (Set-Location)
Команда Get-Location используется с командой Set-Location. Команда Set-Location позволяет вам указать расположение текущего каталога.
Set-Location -Path C:\Windows
Обратите внимание, что после ввода команды вы не получите прямого отклика о действии команды. Большинство команд Windows PowerShell, выполняющих действия, практически не создают выходных данных, так как выходные данные не всегда полезны. Чтобы проверить успешность внесения изменения в каталог при вводе команды Set-Location, укажите параметр -PassThru при вводе команды Set-Location
PS> Set-Location -Path C:\Windows -PassThru Path ---- C:\WINDOWS
Параметр -PassThru можно использовать с некоторыми командами Set в Windows PowerShell для возврата сведений о результате, когда отсутствуют выходные данные по умолчанию.
Вы можете указать пути относительно текущего расположения так же, как и в большинстве командных оболочек UNIX и Windows. В стандартной нотации для относительных путей точка ( . ) представляет текущую папку, а две точки ( .. ) — родительский каталог текущего расположения.
Например, если вы находитесь в папке C:\Windows, точка ( . ) представляет C:\Windows, а две точки ( .. ) представляют C: . Текущее расположение можно изменить на корень диска C: путем ввода следующей команды:
PS> Set-Location -Path .. -PassThru Path ---- C:\
Тот же метод работает для дисков Windows PowerShell, которые не являются дисками файловой системы, например HKLM: . В реестре в качестве расположения можно задать раздел HKLM\Software путем ввода следующего кода:
PS> Set-Location -Path HKLM:\SOFTWARE -PassThru Path ---- HKLM:\SOFTWARE
После этого можно изменить расположение каталога на родительский каталог, который является корнем диска Windows PowerShell HKLM: с помощью относительного пути:
PS> Set-Location -Path .. -PassThru Path ---- HKLM:\
Вы можете ввести Set-Location или использовать любой из встроенных псевдонимов Windows PowerShell для Set-Location (cd, chdir, sl). Пример:
cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru