С Новым годом! Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2802 / 500 / 120
Регистрация: 26.09.2020
Сообщений: 944
Записей в блоге: 5

reg.exe vs PowerShell

01.09.2023, 16:23. Показов 1905. Ответов 31

Студворк — интернет-сервис помощи студентам
Windows Batch file
1
reg add "HKEY_CURRENT_USER\Test" /v "Long number" /t REG_DWORD /d 0xF080004D /f
В CSHARP есть unchecked
C#
1
2
3
.SetValue("Attributes", unchecked((int)0xf080004d), RegistryValueKind.DWord);
PSHELL не рулит
PowerShell
1
2
3
4
5
$KeyName   = "HKEY_CURRENT_USER\Test"
$ValueName = 'Long number'
$Value     = 4034920525
$ValueKid  = [Microsoft.Win32.RegistryValueKind]::DWord
[Microsoft.Win32.Registry]::SetValue($KeyName, $ValueName, $Value, $ValueKid)
Как в PowerShell сделать?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.09.2023, 16:23
Ответы с готовыми решениями:

Копирование exe в папку windows/system32, и запуск reg-файла
День добрый. Нужна помощь, не могли бы вы подсказать как написать bat файл который будет копировать exe'шник (например TotalComander.exe),...

Сильно разное потребление памяти процессами powershell.exe и powershell_ise.exe при выполнении одного скрипта
Добрый день! Раньше такого не замечал, может из-за того, что скрипты проще были. Недавно столкнулся вот с таким поведением (скрипт парсит...

Не запускаются реестр и .exe, .reg
При запуске открывалась страница . Вроде прибил запуск страницы, но проблему с запуском файлов и реестра самостоятельно не могу решить....

31
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
01.09.2023, 16:45
Лучший ответ Сообщение было отмечено iNNOKENTIY21 как решение

Решение

Обычно как-то так это делают:
PowerShell
1
2
New-Item HKCU:\Test
Set-ItemProperty -Path HKCU:\Test -Name 'Long Number' -Type DWord -Value 4034920525
1
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
04.09.2023, 18:57
Цитата Сообщение от lesser
Обычно как-то так это делают
Обычно так не делают, ибо New-Item возвращает в хост объект, который может быть передан далее по конвейеру другому командлету, скажем, New-ItemProperty.
PowerShell
1
New-Item HKCU:\Test | New-ItemProperty -Name 'Long Number' -Type Dword -Value 4034920525 | Out-Null
1
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
04.09.2023, 19:31
Цитата Сообщение от greg zakharov Посмотреть сообщение
Обычно так не делают
Ну и ладно, пусть делают необычно.
0
2802 / 500 / 120
Регистрация: 26.09.2020
Сообщений: 944
Записей в блоге: 5
04.09.2023, 21:08  [ТС]
greg zakharov, это хорошо. А, если таков путь один и много пропертей…
Вопрос возник, потому что нету в подсказке Set-ItemProperty параметра -Type, а у New-ItemProperty параметр зовётся -PropertyType.
Видимо, что бы не расслаблялись.
Миниатюры
reg.exe vs PowerShell  
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
04.09.2023, 23:03
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
а у New-ItemProperty параметр зовётся -PropertyType.
Type, это псевдоним:
PowerShell
1
2
PS > (Get-Command New-ItemProperty).Parameters.PropertyType.Aliases
Type
Добавлено через 25 минут
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
нету в подсказке Set-ItemProperty параметра -Type
Вообще это динамический параметер и зависит от провайдера, если это реестр, то параметер доступен. В онлайн справке он указан.

Добавлено через 16 минут
PowerShell
1
2
3
4
5
6
7
8
9
PS > (Get-Command Set-ItemProperty -ArgumentList HKCU:).Parameters.Type
 
Name            : Type
ParameterType   : Microsoft.Win32.RegistryValueKind
ParameterSets   : {[__AllParameterSets, System.Management.Automation.ParameterSetMetadata]}
IsDynamic       : True
Aliases         : {}
Attributes      : {}
SwitchParameter : False
1
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
04.09.2023, 23:49
Цитата Сообщение от iNNOKENTIY21
А, если таков путь один и много пропертей…
И что с того?
PowerShell
1
2
$pars = @{Name='Param1';Type='Dword';Value=23},@{Name='Param2';Type='String';Value='stedzip'}
[void](New-Item HKCU:\Test -f -ov x) && $pars.ForEach{[void](New-ItemProperty -Path $x.PSPath @_)}
Цитата Сообщение от lesser
Вообще это динамический параметер и зависит от провайдера, если это реестр, то параметер доступен. В онлайн справке он указан.
Причём здесь онлайн?
PowerShell
1
Get-Help New-ItemProperty -Parameter *Type
говорит нечеловеческим голосом:
Code
1
2
3
-PropertyType <Microsoft.Win32.RegistryValueKind>
    This is a dynamic parameter made available by the Registry provider.
...
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
05.09.2023, 00:31
Цитата Сообщение от greg zakharov Посмотреть сообщение
Причём здесь онлайн?
Надежней )) Вдруг локальную не завезли.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
05.09.2023, 10:51
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
нету в подсказке Set-ItemProperty параметра -Type
Фиг его знает чего там у микрософта в консерватории... но в документации есть это

Добавлено через 4 минуты
ага, уже есть упоминание... но пусть будет по-русски
0
2802 / 500 / 120
Регистрация: 26.09.2020
Сообщений: 944
Записей в блоге: 5
05.09.2023, 13:28  [ТС]
(Get-Command Set-ItemProperty -ArgumentList HKCU:).Parameters.Type
Да, всё, так интуитивно, доступно (онлайн), понятно и просто, особенно зная точно, что ищешь -Type у Set-ItemProperty…

Цитата Сообщение от greg zakharov Посмотреть сообщение
И что с того?
Хотелось поглядеть, как Вы это сделаете. И не зря!
В общем то, так же, только на мой вкус лучше уж $X внешним параметром, по простому записать.
А вот за спасибо @_ Не знал. Я там городил -Name $_.name -Value $_.value
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
05.09.2023, 14:43
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
Да, всё, так интуитивно
Можно же вызвать этот параметр через автодополнение или выбрать из списка Ctrl-Space:
Миниатюры
reg.exe vs PowerShell  
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
05.09.2023, 15:06
Цитата Сообщение от iNNOKENTIY21 Посмотреть сообщение
Не знал
Get-Help about_Splatting
0
2802 / 500 / 120
Регистрация: 26.09.2020
Сообщений: 944
Записей в блоге: 5
05.09.2023, 17:32  [ТС]
Цитата Сообщение от lesser Посмотреть сообщение
Get-Help about_Splatting
PowerShell
1
2
PS > Get-Help about_Splatting
Get-Help : Get-Help не удалось найти about_Splatting в файле справки в этом сеансе.
Что такое сплаттинг я знаю, я не знал, как указать из массива, в цикле. @_

Цитата Сообщение от lesser Посмотреть сообщение
автодополнение или выбрать из списка Ctrl-Space
А нету. параметром там $path и обломинго. Зная, конечно можно…

Не по теме:

Знал бы прикуп, жил бы в Сочи 8-)

0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
05.09.2023, 17:46
Обновите, у меня тоже в 5.1 не было (а в 7-ке есть), от админа Update-Help
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
05.09.2023, 23:29
Цитата Сообщение от iNNOKENTIY21
Хотелось поглядеть, как Вы это сделаете.
В повседневной практике вообще предпочтение лучше отдавать прокси-функциям. Тот же New-ItemProperty можно переписать таким образом, чтобы он сразу создавал узел реестра и впносил необходимые данные скопом. Костяк прокси можно получить следующим образом:
PowerShell
1
2
3
4
5
[Management.Automation.ProxyCommand]::Create(
   [Management.Automation.CommandMetaData]::new(
      (Get-Command New-ItemProperty)
   )
)
В нем, к слову, можно увидеть объявление параметров (с альясами).
Цитата Сообщение от lesser
от админа Update-Help
И без админа справляется.
0
Любознательный
 Аватар для YuS_2
7404 / 2254 / 360
Регистрация: 10.03.2016
Сообщений: 5,213
06.09.2023, 09:56
Цитата Сообщение от greg zakharov Посмотреть сообщение
И без админа справляется.
Это в последних версиях Core, а в предустановленном v5.1 и до какой-то из версии Core (точно не помню), он создает видимость обновления и потом выдает такой швах:

т.е. не во всех модулях обновляется помощь...
а вот из-под админа, картинка другая:
1
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
06.09.2023, 10:32
Цитата Сообщение от YuS_2 Посмотреть сообщение
Это в последних версиях Core,
Там хотя бы можно выбрать куда ставить, я ставлю в хомяк -Scope CurrentUser
0
2802 / 500 / 120
Регистрация: 26.09.2020
Сообщений: 944
Записей в блоге: 5
06.09.2023, 19:43  [ТС]
Цитата Сообщение от greg zakharov Посмотреть сообщение
ProxyCommand
Усложнением кажется. Не понимаю зачем вообще в скриптах такое
Всё равно код писать по проверке путей и созданию недостающих.

Это бы меня устроило, если бы не стартовый вопрос…
PowerShell
1
2
3
4
5
6
7
.{
    $KeyName   = "HKEY_CURRENT_USER\Test\T\E\S\T"
    $ValueName = 'Short number'
    $Value     = 403492052
    $ValueKid  = [Microsoft.Win32.RegistryValueKind]::DWord
    [Microsoft.Win32.Registry]::SetValue($KeyName, $ValueName, $Value, $ValueKid)
}
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
07.09.2023, 10:54
YuS_2, относительно -le 5 судить не берусь, все они по факту трупы, а трупов пинать не хорошо. С Core история другая, ведь именно с неё берёт начало возможность админить Linux системы из-под той же Windows и наборот.
Цитата Сообщение от lesser
Там хотя бы можно выбрать куда ставить
Баловство это.
Цитата Сообщение от iNNOKENTIY21
Усложнением кажется.
Отнюдь. ~30% всех командлетов "из корбки" невозможно использовать, не переопределив ряд параметров в них. Именно поэтому в личном арсенале больше командлетов проксированы, в том числе Get-Process имеет динамический параметр-расширение Handles:
PowerShell
1
2
3
4
5
6
7
8
9
10
11
PS> Get-Process notepad -Handles # или так (Get-Process notepad).Handles
 
Value Type          Name
----- ----          ----
0x34  Directory     \KnownDlls
0x40  File          E:\sandbox
0x48  Mutant        \Sessions\1\BaseNamedObjects\SM0:8500:304:WilStaging_02
0x50  Directory     \Sessions\1\BaseNamedObjects
0x54  Semaphore     \Sessions\1\BaseNamedObjects\SM0:8500:304:WilStaging_02_p0
0x58  Semaphore     \Sessions\1\BaseNamedObjects\SM0:8500:304:WilStaging_02_p0h
...
Причём переопределить логику командлета можно и в обход стандартным средствам. Использовать методы типов платформы — дополнительная акробатика для пальцев, но если их "упаковать" в прокси, становится проще: дополнили логику динамическими плюшками и пользуемся также безопасно командлетом без потери производительноти.
0
1658 / 273 / 66
Регистрация: 03.06.2020
Сообщений: 689
07.09.2023, 11:46
Цитата Сообщение от greg zakharov Посмотреть сообщение
Отнюдь.
У меня один раз возникла необходимость писать прокси для Get-Process для исправления вывода CommandLine, который выводил все одной строкой без пробелов. Например:

PowerShell
1
2
$ (gps Xorg).CommandLine
/usr/lib/Xorg:0-seatseat0-auth/run/lightdm/root/:0-nolistentcpvt7-novtswitch
Вместо
PowerShell
1
2
$ (gps Xorg).CommandLine
/usr/lib/Xorg :0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch
Потом это дело пофиксили и я прокси в дальнейшем не пользовался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.09.2023, 11:46
Помогаю со студенческими работами здесь

Setup.exe: Generate Reg File not supported
Пытался поставить Gtk2Hs. При установке двух пакетов одна ошибка cabal install gtk In-place registering cairo-0.12.5.3... ...

Не открываются файлы exe и reg. Что делать?
Помогите,я не хочу переустанавливать винду И ввостановление системы тоже не работает

Оперативка загруженная процессами: "powershell.exe" / "conhost.exe" / "cmd.exe"
С недавних пор начались проблемы. После включение пк и часа работы с ним оперативка загружаеться системными утилитами.. после перезагрузки...

Fatal error: in D:\OSPanel\domains\localhost\reg\reg.php on line 31
Очень долго искал информацию как это исправить : $user = 'root'; $password = '123456789'; $db = 'tasting'; $host = '127.0.0.1'; ...

После чистки Reg Organizer-ом долго грузится explorer.exe при включении компьютера
Приветствую! Стал жертвой Reg Organizer'a , который что-то сделал с проводником. Процесс explorer.exe весит с самой загрузки , но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru