![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Работа с реестром |
|
PowerShell - [решено] Работа с реестром
|
Пользователь Сообщения: 80 |
Доброго времени суток!
Хотелось бы прояснить для себя следующую ситуацию. Необходимо определить путь до папки Desktop у пользователя. Почему не получается считать значение корректно? Рассматриваемая ветка является же корнем именно из нее получается ветка HKLU |
|
Отправлено: 15:42, 10-08-2020 |
Забанен Сообщения: 793
|
Когда цепляетесь к удалённой тачке к тому же с активной сессией пользователя, знать SID необязательно, так как в память среди прочего будет загружен куст реестра HKCU. Иными словами, можно запросить данные из последнего. Например:
using namespace Microsoft.Win32 $target_machine = "zhopka" try { $rk = [RegistryKey]::OpenRemoteBaseKey([RegistryHive]::CurrentUser, $target_machine) $sk = $rk.OpenSubKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders') $sk.GetValue('Desktop') } finally { if ($sk) {$sk.Dispose()} if ($rk) {$rk.Dispose()} } |
Отправлено: 18:24, 10-08-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата lox-ness:
|
|
------- Отправлено: 18:28, 10-08-2020 | #3 |
Забанен Сообщения: 793
|
YuS_2, если обернуть в Invoke-Command, но у оного достаточно побочных эффектов.
|
Отправлено: 18:32, 10-08-2020 | #4 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Цитата greg zakharov:
с указанием Sid пишет"Невозможно вызвать метод для выражения со значением NULL" В ходе тестирования выяснили, что с Windows XP считывает ветку как надо, думаю это происходит потому что папка называется "Рабочий стол", а не "Desktop" И проблема именно в переменной %Userprofile% и как обойти эту проблему ... ???? Если путь до Desktop написан явно, то все хорошо считывает WinRM у нас запрещен, поэтому вариант с Invoke-Command и [environment]::getfolderpath('Desktop') - не получиться |
||
Отправлено: 18:54, 10-08-2020 | #5 |
Забанен Сообщения: 793
|
Цитата lox-ness:
К слову, можно провернуть очень грязный трюк со счётчиками производительности, но способ палится всеми AV. |
|
Отправлено: 19:29, 10-08-2020 | #6 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Цитата greg zakharov:
Не получается получить корректное значение, единственное что получается это через wmi получить путь до профиля пользователя и потом дописать название папки и проверить этот путь Примерно так Какой-то костыль выходит |
|
Отправлено: 06:08, 11-08-2020 | #7 |
Забанен Сообщения: 793
|
Цитата lox-ness:
|
|
Отправлено: 14:36, 11-08-2020 | #8 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Цитата greg zakharov:
|
|
Отправлено: 16:22, 11-08-2020 | #9 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать В проблеме разобрались, все таки как и предполагалось проблема в применении переменной %UserProfile%
ветка .. user Shell Folders содержит тип: REG_EXPAND_SZ - Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения. Именно это и происходит. Возможно мои суждения ошибочны, но тестирование показывает именно этот вывод сменили путь на shell folders отрабатывает корректно. |
Отправлено: 19:08, 11-08-2020 | #10 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Работа с реестром | xakserv | Скриптовые языки администрирования Windows | 4 | 06-03-2017 12:58 | |
Доступ - Работа с реестром | Lite | Microsoft Windows 10 | 2 | 20-02-2017 01:49 | |
Работа с реестром | TERMINAL | AutoIt | 10 | 15-06-2012 11:41 | |
Работа с реестром | semen1967 | Хочу все знать | 18 | 27-11-2004 12:05 | |
Работа с реестром | Artya | Программирование и базы данных | 3 | 08-09-2003 10:19 |
|