Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Powershell и службы

Ответить
Настройки темы
PowerShell - Powershell и службы

Аватара для a1ek9

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Добрый вечер! Помогите сделать на powershell этот скрипт, ничего не выходит, нужно чтобы он был однострочным, и желательно без двойных ковычек (') такая допускается.
Код: Выделить весь код
for /f %I in ('reg query "HKLM\SYSTEM\CurrentControlSet\Services" /k /f "BcastDVRUserService" ^| find /i "BcastDVRUserService"') do (reg add "%I" /v "Start" /t reg_dword /d 4 /f)

Отправлено: 15:11, 18-05-2024

 

Аватара для YuS_2

Crazy


Contributor


Сообщения: 1177
Благодарности: 491

Профиль | Отправить PM | Цитировать


Цитата a1ek9:
тут прав хватает, а через powershell нет? что то тут не так. »
Дело не в этом, прав не хватает на остановку службы. А в cmd не служба останавливается, там в реестре изменяется тип запуска службы... в powershell Вы тоже можете это сделать.
Выше, Вам дали верную ссылку на описание подобных служб... почитайте, что там написано (про powershell там тоже есть описание). Если аглицкий вызывает затруднения, есть такая ссылка на ту же страницу, но на русском.
Вот так:
Код: Выделить весь код
Set-Service -Name BcastDVRUserService -StartupType Disabled
- это должно работать. По сути, так задается шаблон для запускаемых отдельных служб...
Цитата:
Когда пользователь входит в Windows, ОС создает службы для каждого пользователя. При выходе пользователя эти службы останавливаются и удаляются.
Цитата:
Windows создает эти службы для каждого пользователя на основе шаблонов, определенных в реестре. Если вам нужно управлять поведением этих служб или управлять ими, можно настроить шаблон. Например, можно задать для типа запуска службы шаблонов значение Отключено.
Цитата:
При отключении службы для отдельных пользователей Windows по-прежнему создает ее при входе пользователя, но в остановленном и отключенном состоянии. При выходе пользователя Windows удаляет службу для каждого пользователя.
Т.е. управлять уже запущенной "службой для каждого пользователя", не получится, можно только настроить шаблон для её запуска в отключенном состоянии.

-------
scio me nihil scire. Ѫ


Последний раз редактировалось YuS_2, 21-05-2024 в 09:44.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:28, 21-05-2024 | #11



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

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


Аватара для a1ek9

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата a1ek9:
Добрый вечер! Помогите сделать на powershell этот скрипт, ничего не выходит, нужно чтобы он был однострочным, и желательно без двойных ковычек (') такая допускается. »
В общем понятно что ничего не понятно. Я понял что нельзя так сделать, хорошо. Тогда помогите лишить выше указанный код двойных ковычек, в одну строку! Я так понял, из за параметра find не получиться, или все же возможно как то?

Последний раз редактировалось a1ek9, 25-05-2024 в 20:37.


Отправлено: 20:31, 25-05-2024 | #12


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1177
Благодарности: 491

Профиль | Отправить PM | Цитировать


Цитата a1ek9:
Я понял что нельзя так сделать, хорошо. »
Сделать как?
Вы переходили по ссылке? Там есть всё, что надо для настройки. Сформулируйте задачу точнее.
Запретить запуск службы с LUID? Ссылка для решения вопроса
Или что Вы хотите автоматизировать скриптом? Это же одноразовая задача. Но тем не менее и она решается с помощью powershell

Цитата a1ek9:
Тогда помогите лишить выше указанный код двойных ковычек, в одну строку! »
Вы понимаете, что делает тот код на cmd, который Вы пытаетесь модернизировать? Он, всего лишь изменяет записи в реестре, с чем powershell также умеет работать.
Вопрос только в том, какова конечная цель.

-------
scio me nihil scire. Ѫ


Отправлено: 00:15, 26-05-2024 | #13


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1177
Благодарности: 491

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
#Requires -runas
$pth = 'HKLM:\SYSTEM\CurrentControlSet\Services\BcastDVRUserService'
$iprop = gp $pth
$nusf = 'UserServiceFlags'
$nst = 'Start'
if (!$iprop.$nusf.count){
    new-itemproperty -path $pth -name $nusf -prop 'DWORD' -val 0|out-null
} elseif ($iprop.$nusf) {
    sp -path $pth -name $nusf -val 0
}
if($iprop.$nst -ne 4){
    sp -path $pth -name $nst -val 4
}
- скрипт Powershell, который либо добавляет, либо изменяет значение 0 с типом 'DWORD' параметра UserServiceFlags для сервиса BcastDVRUserService, а также переводит сервис в тип запуска "Отключено"

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:57, 26-05-2024 | #14


Аватара для a1ek9

Новый участник


Сообщения: 21
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
Вы понимаете, что делает тот код на cmd, который Вы пытаетесь модернизировать? »
Цитата a1ek9:
Это не то, в windows есть службы которые генерируются, имя вернее. Пример как раз выше я написал. Ваша команда отключает только BcastDVRUserService, а BcastDVRUserService_34220 по прежнему функционирует. Скрипт видимо не прочитали до конца что я указал) »
Я понимаю. И написал я тут, чтобы люди которые понимали что тут написано, помогли мне реализовать код на powershell.
И еще раз напишу, скрипт ищет службу по началу имени, так как последние цифры генерируются всегда. Скрипт вносит изменения в службу BcastDVRUserService, потом ищет службу по ключевому слову и добавляет еще там значение. Если и сейчас не понятно, тогда я не смогу вам объяснить.
Цитата YuS_2:
Или что Вы хотите автоматизировать скриптом? »
Просто прочитайте скрипт что я указал в шапке, и вы поймете что я хочу.
Цитата a1ek9:
for /f %I in ('reg query "HKLM\SYSTEM\CurrentControlSet\Services" /k /f "BcastDVRUserService" ^| find /i "BcastDVRUserService"') do (reg add "%I" /v "Start" /t reg_dword /d 4 /f) »
Благодарю всех! Что откликнулись и за ваше время! Буду искать дальше..

Последний раз редактировалось a1ek9, 27-05-2024 в 12:00.


Отправлено: 11:21, 27-05-2024 | #15



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Powershell и службы

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - Службы - Службы Windows 8/8.1/8.1 Update morozoff Microsoft Windows 8 и 8.1 8 16-04-2014 01:27
PowerShell - PowerShell bort-747 Скриптовые языки администрирования Windows 0 10-04-2012 11:29
PowerShell - PowerShell и Excel tarasov.evgeny Скриптовые языки администрирования Windows 11 15-11-2011 16:27
PowerShell - Powershell и Access tarasov.evgeny Скриптовые языки администрирования Windows 2 09-06-2011 17:06
Разное - PowerShell Butunin Klim Программирование и базы данных 1 31-07-2008 18:39




 
Переход