ОС

Как изменить стандартную папку запуска PowerShell в Windows

Пошаговое руководство по изменению стандартной папки запуска PowerShell в Windows. Настройка профиля PowerShell для автоматического открытия в папке пользователя вместо System32.

5 ответов 1 просмотр

Как изменить стандартную папку запуска для PowerShell в Windows? Как настроить PowerShell так, чтобы при запуске из меню Пуск или поиска он автоматически открывался в папке пользователя, а не в C:\WINDOWS\System32?

Чтобы изменить стандартную папку запуска PowerShell в Windows и настроить его автоматический запуск в папке пользователя вместо C:\WINDOWS\System32, необходимо создать и настроить профиль PowerShell с командой Set-Location. Также можно использовать параметры командной строки для временного изменения директории или изменить свойства ярлыков PowerShell.


Скриншот PowerShell с текущим каталогом в System32

Содержание


Как изменить стандартную папку запуска PowerShell

Проблема запуска PowerShell в C:\WINDOWS\System32 знакома многим пользователям Windows. Почему это происходит? Потому что по умолчанию PowerShell запускается из системной папки, что может быть неудобно для повседневной работы.

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

Для этого откройте PowerShell и выполните команду:

powershell
$PROFILE

Эта команда покажет путь к файлу профиля. Если профиль еще не существует, создайте его:

powershell
New-Item -ItemType File -Path $PROFILE -Force

После создания профиля откройте его в текстовом редакторе и добавьте строку:

powershell
Set-Location -Path $env:USERPROFILE

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

Профиль PowerShell

Настройка профиля PowerShell для автоматического перехода

Создание базового профиля

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

Сначала проверьте, существует ли профиль:

powershell
Test-Path $PROFILE

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

powershell
New-Item -ItemType File -Path $PROFILE -Force

Теперь откройте профиль в вашем любимом редакторе:

powershell
notepad $PROFILE

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

  1. Переход в домашнюю папку пользователя:
powershell
Set-Location -Path $env:USERPROFILE
  1. Переход в конкретную папку:
powershell
Set-Location -Path "C:\Users\ВашеИмя\Documents\Scripts"
  1. Переход в папку загрузок:
powershell
Set-Location -Path $env:USERPROFILE + "\Downloads"

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

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

powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Эта политика позволяет запускать локальные скрипты, включая ваш профиль, но требует цифровую подпись для удаленных скриптов.

Настройка дополнительных параметров профиля

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

powershell
# Смена директории
Set-Location -Path $env:USERPROFILE

# Настройка цвета консоли
$Host.UI.RawUI.WindowTitle = "PowerShell - " + $env:USERNAME

# Импорт модулей
Import-Module posh-git
Import-Module oh-my-posh

# Настройка псевдонимов
Set-Alias -Name ll -Value Get-ChildItem
Set-Alias -Name .. -Value Set-Location..
Новые настройки автоматически применяются к консоли PowerShell

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

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

Если вы не хотите настраивать профиль, можно использовать параметры командной строки для временного изменения директории при запуске PowerShell:

  1. Запуск в домашней папке пользователя:
cmd
powershell -cd ~
  1. Запуск в конкретной папке:
cmd
powershell -cd "C:\Путь\К\Папке"
  1. Запуск с выполнением команды:
cmd
powershell -NoExit -Command "& {Set-Location 'C:\Users\ВашеИмя\Documents'}"

Изменение свойств ярлыка

Еще один способ - изменить свойства ярлыка PowerShell на рабочем столе или в меню Пуск:

  1. Найдите ярлык PowerShell
  2. Кликните правой кнопкой мыши и выберите “Свойства”
  3. В поле “Начальная папка” (Start in) укажите нужный путь
  4. Нажмите “Применить” и “ОК”

Для PowerShell Core путь к ярлыку может отличаться. Обычно он находится в меню “Пуск” → “Windows PowerShell” → “PowerShell 7”.

Создание специального ярлыка для запуска

Создайте новый ярлык с целевым путем:

%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command "& {Set-Location 'C:\UsersашеИмя\Documents'}"

Назовите ярлык как “PowerShell в папке документов” и поместите его в удобное место.


Решение проблем при настройке профиля

Проблема с политикой выполнения

Если профиль не выполняется, скорее всего, политика выполнения скриптов слишком строгая. Проверьте текущую политику:

powershell
Get-ExecutionPolicy

Если политика установлена как “Restricted”, измените ее на “RemoteSigned” или “Unrestricted”:

powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

Проблема с правами доступа

Если у вас нет прав на запись в папку профиля, запустите PowerShell от имени администратора и попробуйте создать профиль заново:

powershell
New-Item -ItemType File -Path $PROFILE -Force

Проблема с переменной $HOME

При запуске PowerShell от имени администратора переменная $HOME может указывать на системную папку вместо пользовательской. В этом случае используйте явный путь:

powershell
Set-Location -Path "C:\Users\ВашеИмя"

Отладка профиля

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

powershell
Write-Host "Профиль загружен" -ForegroundColor Green
Write-Host "Текущая директория: " + (Get-Location)

Это поможет понять, выполняется ли профиль и какие изменения он вносит.


Продвинутые настройки PowerShell для системных администраторов

Создание условной логики в профиле

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

powershell
# Проверка имени пользователя
if ($env:USERNAME -eq "admin") {
 Set-Location -Path "C:\Admin\Scripts"
} else {
 Set-Location -Path $env:USERPROFILE
}

# Проверка операционной системы
if ([Environment]::OSVersion.Version.Major -ge 10) {
 Write-Host "Windows 10 или выше"
}

Импорт модулей и функций

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

powershell
# Импорт модуля для работы с Active Directory
if (Get-Module -ListAvailable -Name ActiveDirectory) {
 Import-Module ActiveDirectory
}

# Импорт пользовательских функций
. "$PSScriptRoot\MyFunctions.ps1"

Настройка темы и внешнего вида

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

powershell
# Настройка темы Oh My Posh
oh-my-posh init --shell pwsh --config "$env:POSHthemes\jandedobbeleer.omp.json" | Invoke-Expression

Автоматическое создание папок

Если целевая папка не существует, профиль может создать ее автоматически:

powershell
$targetPath = "$env:USERPROFILE\MyScripts"
if (-not (Test-Path $targetPath)) {
 New-Item -ItemType Directory -Path $targetPath
}
Set-Location -Path $targetPath

Обработка ошибок

Добавьте обработку ошибок для более стабильной работы профиля:

powershell
try {
 Set-Location -Path $env:USERPROFILE
 Write-Host "Успешно перешли в папку: " + (Get-Location)
}
catch {
 Write-Warning "Не удалось изменить директорию: $_"
 Set-Location -Path $env:TEMP
}

Заключение и лучшие практики

Изменение стандартной папки запуска PowerShell - простая задача, которая значительно улучшит ваш рабочий процесс. Мы рассмотрели несколько методов: настройка профиля, использование параметров командной строки и изменение свойств ярлюков.

Основные рекомендации:

  1. Используйте профиль PowerShell для постоянных изменений. Это самый надежный и гибкий метод.
  2. Проверяйте политику выполнения скриптов перед настройкой профиля.
  3. Добавляйте обработку ошибок в профиль для повышения стабильности.
  4. Регулярно делайте резервные копии профиля перед внесением изменений.
  5. Тестируйте настройки в безопасной среде перед применением в рабочей системе.

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


Источники

  1. Хабр Q&A — Как изменить стандартную папку запуска PowerShell для запуска в папке пользователя: https://qna.habr.com/q/1409004
  2. WinITPro — Использование файлов профилей PowerShell для автоматической смены директории при запуске: https://winitpro.ru/index.php/2021/09/29/ispolzovanie-fajlov-profilej-powershell/
  3. Stack Overflow на русском — Изменение директории по умолчанию в PowerShell для запуска в папке пользователя: https://ru.stackoverflow.com/questions/615102/Сменить-директорию-по-умолнию-в-powershell
  4. Stack Overflow — How do you set PowerShell’s default directory for startup location: https://stackoverflow.com/questions/32069265/how-do-you-set-powershells-default-directory
  5. Microsoft Learn — About PowerShell Profiles: https://learn.microsoft.com/ru-ru/powershell/module/microsoft.powershell.core/about/about_profiles?view=powershell-7.4
Д

Для изменения стандартной папки запуска PowerShell в Windows используется файл профиля. В PowerShell откройте файл $PROFILE (если его нет, создайте его командой New-Item -ItemType File -Path $PROFILE -Force). Добавьте в него строку Set-Location "$env:USERPROFILE" для перехода в домашнюю папку пользователя или конкретную папку, например D:\Admin\Scripts.

Скриншот PowerShell с текущим каталогом в System32

Также можно использовать параметры командной строки: powershell -cd ~ для запуска в домашней папке или powershell -Set-Location "путь_к_папке" для указания конкретной директории. Эти методы позволяют настроить powershell так, чтобы при запуске из меню Пуск или поиска он автоматически открывался в нужной папке, а не в C:\WINDOWS\System32.

S

Для изменения директории запуска PowerShell необходимо создать и настроить профиль. Создайте папку в папке “Мои документы” под названием “WindowsPowerShell”, затем создайте в ней файл с именем “profile.ps1”. Добавьте в этот файл команду для перехода в нужную директорию. Каждый раз при запуске PowerShell этот сценарий будет выполняться автоматически. Подробнее о профилях можно узнать в документации командой Get-Help about_profiles. Этот метод позволяет настроить powershell так, чтобы он открывался в папке пользователя вместо system32.

I

Чтобы PowerShell при запуске из меню Пуск или поиска открывался в каталоге пользователя, а не в C:\WINDOWS\System32, добавьте в профиль команду Set-Location с указанием нужного пути. Откройте файл профиля, который находится по пути, получаемому командой $PROFILE (обычно C:\Users\<имя>\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1), и вставьте туда строку: Set-Location -Path $HOME или Set-Location -Path C:\Users\<имя>.

Профиль PowerShell

Убедитесь, что политика выполнения скриптов позволяет запускать профили (Set-ExecutionPolicy Remotesigned).

Новые настройки автоматически применяются к консоли PowerShell

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

J

Существует несколько способов изменить директорию запуска PowerShell. Первый - создать профиль: запустите PowerShell от имени администратора и выполните Set-ExecutionPolicy -ExecutionPolicy RemoteSigned, затем создайте файл profile.ps1 в папке WindowsPowerShell в Documents и добавьте команду Set-Location C:\my\default\working\directory. Второй способ - использовать параметры командной строки: powershell.exe -NoExit -command "& {Set-Location $env:systemroot}". Третий способ - изменить свойство “Start in” в свойствах ярлыка PowerShell. Для PowerShell Core используйте параметр -WorkingDirectory. При запуске от имени администратора переменная $HOME может указывать на системную папку, поэтому лучше использовать явный путь.

Авторы
Д
Олдскул - Фигурнов форева
Z
Администрирование MS Windows Server
S
12.8k золотых знаков 23 серебряных знака 43 бронзовых знака
I
Системный администратор
J
26.6k золотых знаков 92 серебряных знака 138 бронзовых знаков
Источники
Хабр Q&A / Платформа вопросов и ответов
Платформа вопросов и ответов
Stack Overflow на русском / Платформа вопросов и ответов
Платформа вопросов и ответов
Платформа документации
Stack Overflow / Платформа вопросов и ответов
Платформа вопросов и ответов
Проверено модерацией
Модерация