Вопрос или проблема
Я намерен выполнить следующую команду PowerShell из командной оболочки администратора:
powershell -command ni "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\runWinRAR" | New-ItemProperty -Name "StubPath" -Value ('REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce" /v runWinRAR /t REG_SZ /d "{0}\WinRAR\WinRAR.exe"' -f $env:ProgramFiles)
Это вызывает у меня ошибку:
C:\Users\RPHOME>powershell -command ni “HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\runWinRAR” | New-ItemProperty -Name “StubPath” -Value (‘REG ADD “HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce” /v runWinRAR /t REG_SZ /d “{0}\WinRAR\WinRAR.exe”‘ -f $env:ProgramFiles)
‘New-ItemProperty’ не распознается как встроенная или внешняя команда,
выполняемая программа или пакетный файл.
Ответ или решение
Чтобы выполнить вашу задачу корректно из командной строки администратора, нужно учитывать, что команда New-ItemProperty
является встроенной командой PowerShell, и её нельзя комбинировать с синтаксисом CMD напрямую. Вам необходимо полностью переписать команду, используя правильный синтаксис PowerShell.
Вот правильный способ выполнения вашей команды PowerShell из командной строки:
- Запустите командную строку от имени администратора.
- Введите следующую команду:
powershell -command "New-Item 'HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\runWinRAR' -Force; New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\runWinRAR' -Name 'StubPath' -Value ('REG ADD \"HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce\" /v runWinRAR /t REG_SZ /d \"{0}\WinRAR\WinRAR.exe\"' -f $env:ProgramFiles) -PropertyType String"
Объяснение изменений:
-
Команда
New-Item
: Является правильным вызовом командлета для создания нового элемента в реестре. Мы используем-Force
для перезаписи, если такой элемент уже существует. -
Правильная передача строки: Командлет
New-ItemProperty
требует указания пути как параметра-Path
, что исправлено в данной команде. -
Экранирование кавычек: Для правильной работы с кавычками внутри строки, мы используем экранирование при помощи знака
\
.
Убедитесь, что у вас есть все необходимые права на изменение реестра перед выполнением этой команды. После выполнения, новая запись должна появиться в реестре, что позволит запускать WinRAR при входе в систему.
Если вы продолжаете сталкиваться с проблемами, убедитесь, что вы используете версию PowerShell, которая поддерживает команды, а также что у вас есть права администратора.