Форум программистов, компьютерный форум, киберфорум
Наши страницы
Администрирование Windows
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
Ispada
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 108
1

Скрипт на перезагрузку компьютера

27.11.2014, 10:27. Просмотров 3108. Ответов 13
Метки нет (Все метки)

Здравствуйте, не знаю сможете-ли вы мне помочь, облазил интернет ничего не нашел, решил сюда написать. У меня такая проблемка: есть программа для удалённого администрирования Radmin. есть сотрудники которые её отключают, ну и соответственно пускаются во все тяжкие) так вот в чём вопрос: можете ли вы помочь написать скрипт который будет при отключении процесса rserver3.exe перезапускать(или выключать) компьютер или перезапускать процесс rserver3.exe??? Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2014, 10:27
Ответы с готовыми решениями:

Скрипт на перезагрузку службы
Народ, помогите написать скрипт на перезагрузку службы приложения! конкретнее:...

Нужен скрипт на перезагрузку службы
Народ, помогите написать скрипт на перезагрузку службы приложения! конкретнее:...

Написать программу или скрипт для удалённого включения компьютера через wake-on-lan
Нужно написать программу или скрипт для удалённого включения компьютера через...

Не до конца отрабатывает CMD скрипт при выключении компьютера (Win7Pro) при настройке через групповую политику (2008r2)
Добрый день! Имеется сервер 2008r2, поднят домен средствами AD. Клиенты...

wmic как запретить перезагрузку после деинсталяции?
Всем доброго времени суток! Мне необходимо со скрипта удалять свой продукт....

13
Maks
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
3575 / 1754 / 232
Регистрация: 13.03.2013
Сообщений: 8,059
Записей в блоге: 4
27.11.2014, 12:27 2
Вообще непонятно, почему у Ваших пользователей есть права на отключения Radmin, который кстати работает на уровне службы.
Самым верным и технически правильным решением будет убрать учетным записям пользователей права администратора, а в свойствах службы выставить запуск от имени учетной записи с правами администратора.
0
Ispada
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 108
27.11.2014, 13:04  [ТС] 3
Цитата Сообщение от Maks Посмотреть сообщение
Вообще непонятно, почему у Ваших пользователей есть права на отключения Radmin, который кстати работает на уровне службы.
Самым верным и технически правильным решением будет убрать учетным записям пользователей права администратора, а в свойствах службы выставить запуск от имени учетной записи с правами администратора.
они работают с другой программой которая требует наличия правд администратора. может как-нибудь можно в реестре запретить отключение этого процесса, я нашел только запрет на запуск)
0
Charles Kludge
Клюг
7642 / 3157 / 382
Регистрация: 03.05.2011
Сообщений: 8,382
27.11.2014, 14:24 4
Ispada, попробуйте http://en.kioskea.net/download/download-8018-hide-process
0
Maks
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
3575 / 1754 / 232
Регистрация: 13.03.2013
Сообщений: 8,059
Записей в блоге: 4
27.11.2014, 15:45 5
Цитата Сообщение от Ispada Посмотреть сообщение
они работают с другой программой которая требует наличия правд администратора
А что за программа? И под какой ОС работают пользователи?
Программами можно рулить локальной политикой безопасности, плюс дать полный доступ к папке, куда установлена программа.
Я все таки за то, чтобы все изначально делалось правильно и против админских прав пользователям.
0
Ispada
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 108
27.11.2014, 16:33  [ТС] 6
Цитата Сообщение от Charles Kludge Посмотреть сообщение
скрытие процесса не поможет, в трее всёравно отображается
0
Maks
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
3575 / 1754 / 232
Регистрация: 13.03.2013
Сообщений: 8,059
Записей в блоге: 4
27.11.2014, 16:34 7
Так всегда, сперва даем админиские права пользователю, а потом ищем "Костыли" чтобы что-то ему запретить.
Вы лучше создайте в планировщике задание, которое будет запускаться от имени администратора при старте системы и укажите путь к исполняемому файлу программы, которой требуется админский доступ подробнее
0
Ispada
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 108
27.11.2014, 16:37  [ТС] 8
Цитата Сообщение от Maks Посмотреть сообщение
А что за программа? И под какой ОС работают пользователи?
везде винда 7-я, программа колор кампозер, для колеровки краски.
0
Maks
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
3575 / 1754 / 232
Регистрация: 13.03.2013
Сообщений: 8,059
Записей в блоге: 4
28.11.2014, 08:22 9
Цитата Сообщение от Ispada Посмотреть сообщение
программа колор кампозер, для колеровки краски.
Не поверите, но у меня в конторе тоже колеруют краску, колеровочник дозирует и смешивает краску, так?
Ну и причем тут наличие прав администратора?
Лично у меня все превосходно работает от имени обычного пользователя.
0
Ispada
0 / 0 / 0
Регистрация: 22.11.2013
Сообщений: 108
28.11.2014, 09:04  [ТС] 10
Цитата Сообщение от Maks Посмотреть сообщение
Не поверите, но у меня в конторе тоже колеруют краску, колеровочник дозирует и смешивает краску, так?
Ну и причем тут наличие прав администратора?
Лично у меня все превосходно работает от имени обычного пользователя.
вам не кажется, что мы немного отошли от темы???? я бы хотел использовать именно скрипт, а не лазить по правам и не перенастраивать всех пользователей.
0
Maks
Модератор
Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows
3575 / 1754 / 232
Регистрация: 13.03.2013
Сообщений: 8,059
Записей в блоге: 4
28.11.2014, 11:31 11
Цитата Сообщение от Ispada Посмотреть сообщение
вам не кажется, что мы немного отошли от темы????
Нет, не кажется. Я Вам предлагаю именно правильное решение, ПО колеровочника запустится под обычным пользователем без дополнительных настроек прав.
А перенастраивать много ничего ненадо: достаточно создать учетку админа и запаролить ее, а учетки пользователей выключить из группы "Администраторы" - это максимум 2-3 минуты времени на каждый ПК.
Цитата Сообщение от Ispada Посмотреть сообщение
я бы хотел использовать именно скрипт
Ну тогда ждите ответа от других участников форума.
0
Alli_Lupin
03.12.2014, 10:28
  #12

Не по теме:

Цитата Сообщение от Ispada Посмотреть сообщение
я бы хотел использовать именно скрипт
для скриптов есть отдельная ветка форума. в этой ветке предлагаются именно правильные системные методы решения проблемы.

0
SmileNet
12 / 12 / 2
Регистрация: 25.01.2015
Сообщений: 133
26.01.2015, 12:04 13
попробуйте damewar вместо радмина. У клиента работает служба. По умолчанию в трее висит значок, но можно убрать и клиент даже знать не будет о вашем подключении.
0
Dmitrii
2603 / 535 / 107
Регистрация: 21.03.2012
Сообщений: 1,043
26.01.2015, 23:11 14
Цитата Сообщение от Ispada Посмотреть сообщение
... скрипт который будет при отключении процесса rserver3.exe <...> перезапускать процесс rserver3.exe...
Ну, если уж очень хочется решить задачу именно с помощью сценария, то вот пример:
Кликните здесь для просмотра всего текста
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
'Перезапуск НЕ ИНТЕРАКТИВНОГО процесса, если он остановлен.
Dim objWMI, objCollection, objInstance, objItem
Dim strComputer, strProcess, intErr, intProcID
 
strComputer = "station": strProcess = "rserver3.exe"
If Available(strComputer, False) Then
    On Error Resume Next
    Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    If Err.Number = 0 Then
        Set objCollection = objWMI.ExecQuery("SELECT Name FROM Win32_Process WHERE Name='" & strProcess & "'")
        If Err.Number = 0 Then
            If objCollection.Count = 0 Then
                Set objInstance = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2:Win32_Process")
                intErr = objInstance.Create(strProcess, null, null, intProcID)
                If intErr = 0 Then
                    'WScript.Echo UCase(strComputer) & " -> процесс запущен. Его PID: " & intProcID
                Else
                    'WScript.Echo UCase(strComputer) & " -> ошибка " & intErr & " при попытке запуска процесса."
                    WScript.Quit -1
                End If
                Set objInstance = Nothing
            Else
                'WScript.Echo UCase(strComputer) & " -> процесс уже запущен."
            End If
            Set objCollection = objWMI.ExecNotificationQuery("SELECT * FROM __InstanceDeletionEvent " & _
                "WITHIN 1 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name='" & strProcess & "'")
            If Err.Number = 0 Then
                'WScript.Echo UCase(strComputer) & " -> наблюдение начато " & Now
                Do
                    Set objItem = objCollection.NextEvent
                    If Err.Number = 0 Then
                        Set objInstance = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2:Win32_Process")
                        intErr = objInstance.Create(strProcess, null, null, intProcID)
                        If intErr = 0 Then
                            'WScript.Echo UCase(strComputer) & " -> процесс перезапущен. Его PID: " & intProcID
                        Else
                            'WScript.Echo UCase(strComputer) & " -> ошибка " & intErr & " при попытке перезапуска процесса."
                            Err.Clear
                            Exit Do
                            '2 - Access Denied
                            '3 - Insufficient Privilege
                            '8 - Unknown failure
                            '9 - Path Not Found
                            '21 - Invalid Parameter
                        End If
                    Else
                        'WScript.Echo UCase(strComputer) & " -> ошибка " & Err.Number & " работы сценария-подписчика." & vbNewLine & Err.Description
                        Exit Do
                    End If
                Loop
                'WScript.Echo UCase(strComputer) & " -> наблюдение завершено " & Now
                Set objItem = Nothing: Set objInstance = Nothing
            Else
                WScript.Echo UCase(strComputer) & " -> ошибка " & Err.Number & " при создании подписки на событие." & vbNewLine & Err.Description
                Err.Clear
            End If
        Else
            WScript.Echo UCase(strComputer) & " -> ошибка " & Err.Number & " при обращениии к классу Win32_Process." & vbNewLine & Err.Description
            Err.Clear
        End If
        Set objCollection = Nothing
    Else
        WScript.Echo UCase(strComputer) & " -> ошибка " & Err.Number & " при подключении к WMI-пространству." & vbNewLine & Err.Description
        Err.Clear
    End If
    Set objWMI = Nothing
Else
    WScript.Echo UCase(strComputer) & " -> не отвечает."
End If
WScript.Quit 0
 
'======
 
Function Available(strName, blnIsCon)
If blnIsCon Then
    Dim objExec, objOutStream, strTemp
    Set objExec = CreateObject("WScript.Shell").Exec("ping -n 1 -w 130 " & strName)
    Set objOutStream = objExec.StdOut
    While Not objOutStream.AtEndOfStream
        strTemp = strTemp & Trim(objOutStream.ReadLine())
    Wend
    Set objOutStream = Nothing
    Set objExec = Nothing
    If InStr(1, strTemp, "TTL", vbTextCompare) > 0 Then
        Available = True
    Else
        Available = False
    End If
Else
    Dim objWMI, objItem
    On Error Resume Next
    Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("SELECT StatusCode FROM Win32_PingStatus WHERE Address='" & strName & "'")
    If Err.Number = 0 Then
        For Each objItem In objWMI
            If IsNull(objItem.StatusCode) Then
                Available = False
            Else
                Available = (objItem.StatusCode = 0)
            End If
        Next
    Else
        Err.Clear
        Available = False
    End If
    Set objItem = Nothing
    Set objWMI = Nothing
    On Error GoTo 0
End If
End Function

Примечания.
1. Для каждого компьютера, который должен находится под наблюдением, потребуется запускать свой экземпляр сценария.
2. Для корректной работы сценария необходимо запускать его из-под "учётки", обладающей полномочиями локального администратора на удалённом компьютере.
3. Сценарий проверялся на работоспособность только в Windows XP.
4. Предполагается, что сценарий используется в доменной инфраструктуре.
5. Пример ориентирован на запуск в графическом режиме, но может работать и в консольном.
1
26.01.2015, 23:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.01.2015, 23:11

Проверить пинг и при его отсутствии запустить перезагрузку интернета
Вопрос Как мне после проверки пинга и при его отсутствии запустить...

Компьютер перезагрузится автоматически через 30 секунд. Выполнить перезагрузку ПК сейчас?
Компьютер перезагрузится автоматически через 30 секунд. (shutdown.exe -r -t 30)...

Проверить пинг и при его отсутствии запустить перезагрузку интернета - CMD
Скажу сразу - вопросов нет, есть решение, возможно кому-то пригодится....


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru