Встановлення змінних середовища Windows PowerShell


605

Я з'ясував, що встановлення змінної середовища PATH впливає лише на старий командний рядок. Здається, що PowerShell має різні налаштування середовища. Як змінити змінні середовища для PowerShell (v1)?

Примітка:

Я хочу зробити свої зміни постійними, тому мені не потрібно встановлювати її щоразу, коли я запускаю PowerShell. Чи має PowerShell файл профілю? Щось на зразок профілю Bash в Unix?


1
Я хотів би мати центральний профіль, розміщений на загальному файлі. Синхронізація - це біль. Створення профілю заглушки за допомогою. \\ комп'ютер \ share \ path \ Profile.ps1 здається хиткою (спробуйте Notepad $ Profile). Було б добре, якби був спосіб назавжди змінити автоматичну змінну $ Profile.
Натан Хартлі

5
Жодне середовище PATH також не впливає на командний рядок powershell. Однак, що відрізняється тим, що повноваження не приймає шляхи, закладені в лапки. Рішення: видаліть усі додаючі лапки ( ") у змінній середовища контуру
Nilzor

3
ЯКЩО ВИ ЗЕМЛИ ТУТ ДЛЯ PS> v1 ... Далі до коментаря Nilzor вище: Використовуйте це, щоб видалити всі "зі шляхів у змінній середовища PATH для вашого сеансу:$($Env:PATH).Split(';') | %{ $str += "$($_.Trim('"'));" }; $Env:PATH=$str
d3r3kk

Відповіді:


477

Зміна фактичних змінних середовища може бути здійснена за допомогою env: namespace / driveінформації. Наприклад, цей код оновить змінну середовища середовища:

$env:Path = "SomeRandomPath";             (replaces existing path) 
$env:Path += ";SomeRandomPath"            (appends to existing path)

Існують способи зробити налаштування середовища постійними, але якщо ви використовуєте їх лише з PowerShell, можливо, набагато краще використовувати свій профіль для ініціювання налаштувань. При запуску PowerShell запустить будь- які файли .ps1, які він знайде в WindowsPowerShellкаталозі в папці Мої документи. Зазвичай у вас вже є файл profile.ps1 . Шлях на моєму комп’ютері є

C:\Users\JaredPar\Documents\WindowsPowerShell\profile.ps1

38
$ profile - це автоматична змінна, яка вказує на ваш профіль користувача для всіх хостів PowerShell.
JasonMArcher

16
Зауважте, що (split-path $ profile) (щоб отримати папку, що містить), може містити декілька файлів профілю: profile.ps1 повинен бути завантажений усіма хостами, <ім'я_файла> _profile.ps1 просто вказаним хостом. Для PowerShell.exe (консольний хост) це Microsoft.PowerShell_profile.ps1.
Річард

10
Що робити, якщо у моїх документах немає папки WindowsPowerShell? Чи потрібно створити папку та файл? Що потрібно помістити у файл, якщо я хочу додати C:\path\to\file.extзмінні середовища? РЕДАКТУВАННЯ: знайдено вже. Відповідь "так", створіть її. Файл повинен складатися з 1 рядки: $env:path += ;C:\path\to\file.ext".
Lewistrick

7
@Lewistrick У вас немає профілю за замовчуванням. Я дотримувався цих інструкцій, щоб створити один: howtogeek.com/50236/customizing-your-powershell-profile
MikeB

16
Будьте обережні, роблячи це - це заблокує ваш існуючий шлях. $env:Path = "SomeRandomPath"; Натомість - див. Нижче @mloskot.
Джон Марк

626

Якщо через деякий час сеансу PowerShell вам потрібно тимчасово додати змінну середовища PATH, ви можете це зробити так:

$env:Path += ";C:\Program Files\GnuWin32\bin"

4
+1 :: Цей одноклапник досить ефективний для викликів на основі сеансу, як при mingw ... IE $ env: PATH + = "; c: \ MinGW \ msys \ 1.0 \ bin" ^ {деякий бін mingw ... }
Едді Б

2
і як видалити шлях?
бекко

11
Якщо вам потрібен ваш шлях до $env:Path = "C:\MyPath;$env:Path"
виклику

4
**** Не забудьте крапку з комою на початку додаючого рядка, як це видно в коментарі @Kevin. Це досить очевидно, але його можна пропустити, якщо ви просто скопіювали / вставили код у відповідь і не мали крапки з комою в кінці існуючого шляху. Я спробую надіслати редагування.
Метт Гудріч

1
@MattGoodrich Я відмовився від попередньої редакції
Cœur

278

Ви також можете змінювати змінні користувача / середовища системи постійно (тобто буде стійким через підставних перезавантажується) з наступним:

Змінення змінної системного середовища

[Environment]::SetEnvironmentVariable
     ("Path", $env:Path, [System.EnvironmentVariableTarget]::Machine)

Змінення змінної середовища користувача

[Environment]::SetEnvironmentVariable
     ("INCLUDE", $env:INCLUDE, [System.EnvironmentVariableTarget]::User)

Використання з коментарів - додайте до змінної системного середовища

[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::Machine) + ";C:\bin",
    [EnvironmentVariableTarget]::Machine)

Рішення на основі рядків також можливе, якщо ви не хочете писати типи

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", "Machine")

6
Це дуже корисно для систем з обмеженим доступом.
h0tw1r3

14
@AndresRiofrio, Так, це постійно. Використання: [Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\bin", [EnvironmentVariableTartget::Machine) Ви не побачите результат цієї зміни, поки не почнете новий сеанс оболонки. Тобто, якщо ви оглянете $ env: Path одразу після запуску цієї команди, ви побачите, який $ env: Path був перед командою. Щоб оновити, закрити та відкрити оболонку або розпочати новий сеанс.
FLGMwt

7
@FLGMwt у вас помилка друку, правильно: [Навколишнє середовище] :: SetEnvironmentVariable ("Шлях", $ env: Шлях + "; C: \ bin", [EnvironmentVariableTarget] :: Машина)
navdu1ast

10
Ви можете написати рядок "Машина" або "Користувач" замість цілого переліку .NET. Від Technet .
bouvierr

3
Я думаю, що відповідь також має демонструвати використання для встановлення змінної користувача, як це[Environment]::SetEnvironmentVariable("Path", [Environment]::GetEnvironmentVariable("Path", "User") + ";C:\bin", "User")
Сайто

63

З запиту PowerShell:

setx PATH "$env:path;\the\directory\to\add" -m

Потім слід побачити текст:

SUCCESS: Specified value was saved.

Перезапустіть сеанс, і змінна буде доступна. setxможе також використовуватися для встановлення довільних змінних. Введіть setx /?у запиті документацію.

Перш ніж зіпсувати цей шлях таким чином, переконайтеся, що ви зберегли копію наявного шляху, зробивши $env:path >> a.outв запиті PowerShell.


5
Здається, він працює лише під час "запуску адміністратора", а згодом набуває чинності лише для "запуску в якості адміністратора" консолей PowerShell, а не регулярних.
matanster


12
Ой - щойно потрапила межа 1024 символів setx; з вдячністю я дотримувався поради записати існуюче значення $ end: Шлях. Просто щось, про що слід знати: superuser.com/questions/387619/…
Jonno

3
Чому б не встановити $env:PATHспочатку, потім setx /m PATH "$env:PATH"так, щоб він застосовувався локально та глобально без перезавантаження оболонки?
tresf

1
Приємно! Хоча setx не є рідним командлетом, все-таки набагато кращою та легко забутою альтернативою тим жахливим довговітковим викликам .NET Framework! Дивовижно, що навіть Powershell 7 все ще не має офіційного командлету, щоб зберегти прихильники. Що. Відчуває себе функцією, яка повинна відповідати 'ls'.
Йонас

27

Як і у відповідь JeanT , я хотів абстрагуватись щодо додавання до шляху. На відміну від відповіді JeanT, мені потрібно було, щоб вона працювала без взаємодії з користувачем. Інша поведінка, яку я шукав:

  • Оновлення, $env:Pathтому зміна набуває чинності в поточному сеансі
  • Зберігається зміна змінної середовища для майбутніх сеансів
  • Не додає повторюваний шлях, коли той самий шлях вже існує

У випадку, якщо це корисно, ось це:

function Add-EnvPath {
    param(
        [Parameter(Mandatory=$true)]
        [string] $Path,

        [ValidateSet('Machine', 'User', 'Session')]
        [string] $Container = 'Session'
    )

    if ($Container -ne 'Session') {
        $containerMapping = @{
            Machine = [EnvironmentVariableTarget]::Machine
            User = [EnvironmentVariableTarget]::User
        }
        $containerType = $containerMapping[$Container]

        $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
        if ($persistedPaths -notcontains $Path) {
            $persistedPaths = $persistedPaths + $Path | where { $_ }
            [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
        }
    }

    $envPaths = $env:Path -split ';'
    if ($envPaths -notcontains $Path) {
        $envPaths = $envPaths + $Path | where { $_ }
        $env:Path = $envPaths -join ';'
    }
}

Перевірте мою суть відповідної Remove-EnvPathфункції.


16

Хоча поточна прийнята відповідь працює в тому сенсі, що змінна контура постійно оновлюється з контексту PowerShell, вона фактично не оновлює змінну середовища, що зберігається в реєстрі Windows.

Для цього ви, очевидно, також можете використовувати PowerShell:

$oldPath=(Get-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).Path

$newPath=$oldPath+’;C:\NewFolderToAddToTheList\’

Set-ItemProperty -Path 'Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH Value $newPath

Більше інформації можна знайти у публікації блогу Використовуйте PowerShell для зміни вашого екологічного шляху

Якщо ви використовуєте розширення спільноти PowerShell, правильною командою для додавання шляху до шляху змінної середовища є:

Add-PathVariable "C:\NewFolderToAddToTheList" -Target Machine

12

Усі відповіді, що передбачають постійну зміну, мають однакову проблему: вони порушують значення реєстру шляху.

SetEnvironmentVariableперетворює REG_EXPAND_SZзначення %SystemRoot%\system32 у REG_SZзначення C:\Windows\system32.

Будь-які інші змінні шляху також втрачаються. Додавання нових з використанням %myNewPath%більше не працюватиме.

Ось сценарій, Set-PathVariable.ps1який я використовую для вирішення цієї проблеми:

 [CmdletBinding(SupportsShouldProcess=$true)]
 param(
     [parameter(Mandatory=$true)]
     [string]$NewLocation)

 Begin
 {

 #requires –runasadministrator

     $regPath = "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
     $hklm = [Microsoft.Win32.Registry]::LocalMachine

     Function GetOldPath()
     {
         $regKey = $hklm.OpenSubKey($regPath, $FALSE)
         $envpath = $regKey.GetValue("Path", "", [Microsoft.Win32.RegistryValueOptions]::DoNotExpandEnvironmentNames)
         return $envPath
     }
 }

 Process
 {
     # Win32API error codes
     $ERROR_SUCCESS = 0
     $ERROR_DUP_NAME = 34
     $ERROR_INVALID_DATA = 13

     $NewLocation = $NewLocation.Trim();

     If ($NewLocation -eq "" -or $NewLocation -eq $null)
     {
         Exit $ERROR_INVALID_DATA
     }

     [string]$oldPath = GetOldPath
     Write-Verbose "Old Path: $oldPath"

     # Check whether the new location is already in the path
     $parts = $oldPath.split(";")
     If ($parts -contains $NewLocation)
     {
         Write-Warning "The new location is already in the path"
         Exit $ERROR_DUP_NAME
     }

     # Build the new path, make sure we don't have double semicolons
     $newPath = $oldPath + ";" + $NewLocation
     $newPath = $newPath -replace ";;",""

     if ($pscmdlet.ShouldProcess("%Path%", "Add $NewLocation")){

         # Add to the current session
         $env:path += ";$NewLocation"

         # Save into registry
         $regKey = $hklm.OpenSubKey($regPath, $True)
         $regKey.SetValue("Path", $newPath, [Microsoft.Win32.RegistryValueKind]::ExpandString)
         Write-Output "The operation completed successfully."
     }

     Exit $ERROR_SUCCESS
 }

Я пояснюю проблему більш докладно в публікації в блозі .


Якщо це має бути: $ newPath = $ newPath -replace ";;", ";" ?
Джо Джонстон

8

Це встановлює шлях до поточного сеансу і спонукає користувача до його постійного додавання:

function Set-Path {
    param([string]$x)
    $Env:Path+= ";" +  $x
    Write-Output $Env:Path
    $write = Read-Host 'Set PATH permanently ? (yes|no)'
    if ($write -eq "yes")
    {
        [Environment]::SetEnvironmentVariable("Path",$env:Path, [System.EnvironmentVariableTarget]::User)
        Write-Output 'PATH updated'
    }
}

Ви можете додати цю функцію до профілю за замовчуванням, ( Microsoft.PowerShell_profile.ps1), зазвичай розташованого в %USERPROFILE%\Documents\WindowsPowerShell.


6

Спираючись на відповідь @Michael Kropat, я додав параметр для додавання нового шляху до існуючої PATHзмінної та перевірку, щоб уникнути додавання неіснуючого шляху:

function Add-EnvPath {
    param(
        [Parameter(Mandatory=$true)]
        [string] $Path,

        [ValidateSet('Machine', 'User', 'Session')]
        [string] $Container = 'Session',

        [Parameter(Mandatory=$False)]
        [Switch] $Prepend
    )

    if (Test-Path -path "$Path") {
        if ($Container -ne 'Session') {
            $containerMapping = @{
                Machine = [EnvironmentVariableTarget]::Machine
                User = [EnvironmentVariableTarget]::User
            }
            $containerType = $containerMapping[$Container]

            $persistedPaths = [Environment]::GetEnvironmentVariable('Path', $containerType) -split ';'
            if ($persistedPaths -notcontains $Path) {
                if ($Prepend) {
                    $persistedPaths = ,$Path + $persistedPaths | where { $_ }
                    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
                }
                else {
                    $persistedPaths = $persistedPaths + $Path | where { $_ }
                    [Environment]::SetEnvironmentVariable('Path', $persistedPaths -join ';', $containerType)
                }
            }
        }

        $envPaths = $env:Path -split ';'
        if ($envPaths -notcontains $Path) {
            if ($Prepend) {
                $envPaths = ,$Path + $envPaths | where { $_ }
                $env:Path = $envPaths -join ';'
            }
            else {
                $envPaths = $envPaths + $Path | where { $_ }
                $env:Path = $envPaths -join ';'
            }
        }
    }
}

5

Як згадував тут Джонатан Лідерс , важливо запустити команду / скрипт підвищеними, щоб мати змогу змінювати змінні середовища на "машина" , але запускати деякі підвищені команди не потрібно з розширеннями спільноти, тому я хотів би змінювати і розширювати JeanT в відповідь таким чином, що зміна змінної машини також може бути виконані , навіть якщо сам скрипт не починається підвищений:

function Set-Path ([string]$newPath, [bool]$permanent=$false, [bool]$forMachine=$false )
{
    $Env:Path += ";$newPath"

    $scope = if ($forMachine) { 'Machine' } else { 'User' }

    if ($permanent)
    {
        $command = "[Environment]::SetEnvironmentVariable('PATH', $env:Path, $scope)"
        Start-Process -FilePath powershell.exe -ArgumentList "-noprofile -command $Command" -Verb runas
    }

}

5

Більшість відповідей не стосуються UAC . Це стосується питань UAC.

Спочатку встановіть розширення спільноти PowerShell: choco install pscxчерез http://chocolatey.org/ (можливо, доведеться перезапустити середовище оболонки).

Потім увімкніть pscx

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser #allows scripts to run from the interwebs, such as pcsx

Потім використовуйте Invoke-Elevated

Invoke-Elevated {Add-PathVariable $args[0] -Target Machine} -ArgumentList $MY_NEW_DIR

4

Моя пропозиція така:

Я перевірив це, щоб постійно додавати C:\oracle\x64\binзмінну середовища, Pathі це працює чудово.

$ENV:PATH

Перший спосіб - це просто зробити:

$ENV:PATH=”$ENV:PATH;c:\path\to\folder

Але ця зміна не є постійною. $env:pathза замовчуванням повернеться до того, що було раніше, як тільки ви закриєте термінал PowerShell і знову відкриєте його. Це тому, що ви застосували зміни на рівні сеансу, а не на рівні джерела (який є рівнем реєстру). Щоб переглянути глобальну цінність $env:path, виконайте:

Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment -Name PATH

Або конкретніше:

(Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment -Name PATH).path

Тепер, щоб змінити це, спочатку ми фіксуємо початковий шлях, який потрібно змінити:

$oldpath = (Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment -Name PATH).path

Тепер ми визначимо, як повинен виглядати новий шлях. У цьому випадку ми додаємо нову папку:

$newpath = $oldpath;c:\path\to\folder

Примітка. Переконайтеся, що $newpathвиглядає так, як ви хочете. Якщо ні, то ви можете пошкодити вашу ОС.

Тепер застосуйте нове значення:

Set-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment -Name PATH -Value $newPath

Тепер зробіть останню перевірку, як це виглядає, як ви очікуєте цього:

(Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\Environment -Name PATH).Path

Тепер ви можете перезапустити термінал PowerShell (або навіть перезавантажити машину) і побачити, що він не повертається до старого значення знову.

Зверніть увагу, що впорядкування шляхів може змінюватися так, щоб це було в алфавітному порядку, тому обов'язково перевірте весь рядок. Щоб зробити це простіше, ви можете розділити результат на рядки, використовуючи крапку з двокрапкою як роздільник:

($env:path).split(“;”)

3

Відкрийте PowerShell і запустіть:

[Environment]::SetEnvironmentVariable("PATH", "$ENV:PATH;<path to exe>", "USER")

1

В межах PowerShell можна перейти до каталогу змінних оточуючих, ввівши:

Set-Location Env:

Це перенесе вас до каталогу Env:>. З цього каталогу:

Щоб побачити всі змінні середовища, введіть:

Env:\> Get-ChildItem

Щоб побачити конкретну змінну середовища, введіть:

Env:\> $Env:<variable name>, e.g. $Env:Path

Щоб встановити змінну середовища, введіть:

Env:\> $Env:<variable name> = "<new-value>", e.g. $Env:Path="C:\Users\"

Щоб видалити змінну середовища, введіть:

Env:\> remove-item Env:<variable name>, e.g. remove-item Env:SECRET_KEY

Більше інформації розміщено в розділі Про змінні середовища .


0

Я спробував трохи оптимізувати код SBF та Майкла, щоб зробити його більш компактним.

Я покладаюсь на примус типу PowerShell, де він автоматично перетворює рядки в значення перерахунків, тому я не визначав словник пошуку.

Я також витягнув блок, який додає новий шлях до списку на основі умови, так що робота виконується один раз і зберігається в змінній для повторного використання.

Потім він застосовується постійно або просто до сесії залежно від $PathContainerпараметра.

Ми можемо помістити блок коду у функцію або у файл ps1, який ми викликаємо безпосередньо з командного рядка. Я пішов з DevEnvAddPath.ps1.

param(
    [Parameter(Position=0,Mandatory=$true)][String]$PathChange,

    [ValidateSet('Machine', 'User', 'Session')]
    [Parameter(Position=1,Mandatory=$false)][String]$PathContainer='Session',
    [Parameter(Position=2,Mandatory=$false)][Boolean]$PathPrepend=$false
)

[String]$ConstructedEnvPath = switch ($PathContainer) { "Session"{${env:Path};} default{[Environment]::GetEnvironmentVariable('Path', $containerType);} };
$PathPersisted = $ConstructedEnvPath -split ';';

if ($PathPersisted -notcontains $PathChange) {
    $PathPersisted = $(switch ($PathPrepend) { $true{,$PathChange + $PathPersisted;} default{$PathPersisted + $PathChange;} }) | Where-Object { $_ };

    $ConstructedEnvPath = $PathPersisted -join ";";
}

if ($PathContainer -ne 'Session') 
{
    # Save permanently to Machine, User
    [Environment]::SetEnvironmentVariable("Path", $ConstructedEnvPath, $PathContainer);
}

# Update the current session
${env:Path} = $ConstructedEnvPath;

Я роблю щось подібне для DevEnvRemovePath.ps1.

param(
    [Parameter(Position=0,Mandatory=$true)][String]$PathChange,

    [ValidateSet('Machine', 'User', 'Session')]
    [Parameter(Position=1,Mandatory=$false)][String]$PathContainer='Session'
)

[String]$ConstructedEnvPath = switch ($PathContainer) { "Session"{${env:Path};} default{[Environment]::GetEnvironmentVariable('Path', $containerType);} };
$PathPersisted = $ConstructedEnvPath -split ';';

if ($PathPersisted -contains $PathChange) {
    $PathPersisted = $PathPersisted | Where-Object { $_ -ne $PathChange };

    $ConstructedEnvPath = $PathPersisted -join ";";
}

if ($PathContainer -ne 'Session') 
{
    # Save permanently to Machine, User
    [Environment]::SetEnvironmentVariable("Path", $ConstructedEnvPath, $PathContainer);
}

# Update the current session
${env:Path} = $ConstructedEnvPath;

Поки, здається, вони працюють.


0

Лише відповіді, що підштовхують значення до реєстру, впливають на постійну зміну (тому більшість відповідей у ​​цій темі, включаючи прийняту відповідь, не впливають назавжди Path).

Наступна функція працює як для Path/, так PSModulePathі для User/ Systemтипів. Він також додасть новий шлях до поточного сеансу за замовчуванням.

function AddTo-Path {
    param ( 
        [string]$PathToAdd,
        [Parameter(Mandatory=$true)][ValidateSet('System','User')][string]$UserType,
        [Parameter(Mandatory=$true)][ValidateSet('Path','PSModulePath')][string]$PathType
    )

    # AddTo-Path "C:\XXX" "PSModulePath" 'System' 
    if ($UserType -eq "System" ) { $RegPropertyLocation = 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' }
    if ($UserType -eq "User"   ) { $RegPropertyLocation = 'HKCU:\Environment' } # also note: Registry::HKEY_LOCAL_MACHINE\ format
    $PathOld = (Get-ItemProperty -Path $RegPropertyLocation -Name $PathType).$PathType
    "`n$UserType $PathType Before:`n$PathOld`n"
    $PathArray = $PathOld -Split ";" -replace "\\+$", ""
    if ($PathArray -notcontains $PathToAdd) {
        "$UserType $PathType Now:"   # ; sleep -Milliseconds 100   # Might need pause to prevent text being after Path output(!)
        $PathNew = "$PathOld;$PathToAdd"
        Set-ItemProperty -Path $RegPropertyLocation -Name $PathType -Value $PathNew
        Get-ItemProperty -Path $RegPropertyLocation -Name $PathType | select -ExpandProperty $PathType
        if ($PathType -eq "Path") { $env:Path += ";$PathToAdd" }                  # Add to Path also for this current session
        if ($PathType -eq "PSModulePath") { $env:PSModulePath += ";$PathToAdd" }  # Add to PSModulePath also for this current session
        "`n$PathToAdd has been added to the $UserType $PathType"
    }
    else {
        "'$PathToAdd' is already in the $UserType $PathType. Nothing to do."
    }
}

# Add "C:\XXX" to User Path (but only if not already present)
AddTo-Path "C:\XXX" "User" "Path"

# Just show the current status by putting an empty path
AddTo-Path "" "User" "Path"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.