.NET-класс ServiceBase
Все службы должны создавать .NET-объект, производный от класса ServiceBase. В документации Microsoft описаны все свойства и методы этого класса. В табл. 2 перечислены те из них, которые представляют интерес в данном проекте.
Табл. 2. Некоторые свойства и методы класса ServiceBase
Член | Описание |
ServiceName | Краткое имя, используемое для идентификации службы в системе |
CanStop | Сообщает, можно ли остановить службу после того, как она запущена |
OnStart() | Действия, предпринимаемые при запуске службы |
OnStop() | Действия, предпринимаемые при остановке службы |
Run() | Регистрирует исполняемый файл службы в SCM |
Реализуя эти методы, служба будет управляемой SCM и сможет запускаться автоматически при загрузке системы или по требованию; кроме того, такую службу можно будет запускать или останавливать вручную через панель управления SCM, старыми командами net.exe/sc.exe или новыми функциями Windows PowerShell для управления службами.
Все службы должны создавать .NET-объект, производный от класса ServiceBase.
Запуск 32-разрядной версии Windows PowerShell
При установке Windows PowerShell на 64-разрядном компьютере в дополнение к 64-разрядной версии устанавливается Windows PowerShell (x86) — 32-разрядная версия Windows PowerShell. При открытии Windows PowerShell по умолчанию запускается 64-разрядная версия.
Однако в некоторых случаях нужно запустить Windows PowerShell (x86), например при использовании модуля, которому требуется 32-разрядная версия, или при удаленном подключении к 32-разрядному компьютеру.
Для запуска 32-разрядной версии Windows PowerShell воспользуйтесь любой из следующих процедур.
В Windows Server 2012 R2
- На экране Пуск щелкните Windows PowerShell (x86). Щелкните плитку Windows PowerShell x86.
- Выберите пункт Windows PowerShell (x86) в меню Сервис****диспетчера сервера.
- На рабочем столе переместите курсор в правый верхний угол, щелкните элемент Поиск, введите PowerShell x86 и выберите Windows PowerShell (x86) .
- В командной строке введите следующее:
В Windows Server 2012
- На экране Пуск введите PowerShell и выберите Windows PowerShell (x86).
- Выберите пункт Windows PowerShell (x86) в меню Сервис****диспетчера сервера.
- На рабочем столе переместите курсор в правый верхний угол, щелкните элемент Поиск, введите PowerShell и выберите Windows PowerShell (x86) .
- В командной строке введите следующее:
- На экране Пуск щелкните Windows PowerShell (x86). Щелкните плитку Windows PowerShell x86.
- Если вы используете средства удаленного администрирования сервера для Windows 8.1, можно также открыть Windows PowerShell x86 из меню Сервис диспетчера сервера. Выберите Windows PowerShell (x86).
- На рабочем столе переместите курсор в правый верхний угол, щелкните элемент Поиск, введите PowerShell x86 и выберите Windows PowerShell (x86) .
- В командной строке введите следующее:
Изменение имени компьютера в настройках windows 10
Как самостоятельно поменять название (через настройки):
отыскать значок «шестеренка» (Настройки);
активировать «Система», «Дополнительные параметры»;
вызвать окошко «Свойства…»;
открыть одну из вкладок: «Имя компьютера»;
отыскать на ее площадке опцию «Изменить»;
- придумать и записать свое слово на английском;
- сохранить изменения, выполнить перезагрузку ПК.
Способ переименования (через Параметры):
- одновременно нажать на кнопки «Win» и «I»;
- откроется консоль «Параметры»;
найти подпункт «О системе»;
отыскать кнопку «Переименовать ПК» (нажать на нее);
всплывет новое окошко «Переименование…»;
- придумать и ввести свое слово латинскими буквами;
- сохранить изменения;
- перезагрузить ПК.
Параметры конфигурации клиента WinRM по умолчанию
Клиентская версия WinRM имеет следующие параметры конфигурации по умолчанию.
нетворкделаймс
Задает дополнительное время ожидания клиента в миллисекундах для поправки на сетевую задержку. Значение по умолчанию — 5000 миллисекунд.
алловуненкриптед
Позволяет клиентскому компьютеру запрашивать передачу данных в незашифрованном виде. По умолчанию клиентский компьютер требует зашифрованный сетевой трафик, а этот параметр имеет значение false.
Basic
Позволяет клиентскому компьютеру использовать обычную проверку подлинности. При использовании обычной проверки подлинности имя пользователя и пароль передаются серверу или прокси-серверу открытым текстом. Эта схема является наименее безопасным методом проверки подлинности. Значение по умолчанию равно True.
Digest (дайджест)
Позволяет клиентскому компьютеру использовать дайджест-проверку подлинности. Дайджест-проверка подлинности проводится по принципу «запрос-ответ». В качестве запроса поступает строка данных, указанная сервером. Инициировать запрос дайджест-проверки подлинности может только клиентский компьютер. Клиентский компьютер отправляет запрос на сервер для проверки подлинности и получает строку токена с сервера. Затем клиентский компьютер отправляет запрос ресурса, включая имя пользователя и криптографический хэш пароля, в сочетании со строкой токена. Дайджест-проверка подлинности поддерживается для HTTP и для HTTPS. Клиентские скрипты и приложения оболочки WinRM могут указывать дайджест-проверку подлинности, но служба WinRM не принимает дайджест-проверку подлинности. Значение по умолчанию равно True.
Примечание
Дайджест-проверка подлинности по протоколу HTTP не считается безопасной.
Сертификат
Позволяет клиенту использовать проверку подлинности на основе сертификата клиента. Проверка подлинности на основе сертификатов — это схема, в которой сервер проверяет подлинность клиента, идентифицируемого сертификатом X509. Значение по умолчанию равно True.
Kerberos
Позволяет клиентскому компьютеру использовать проверку подлинности Kerberos. Проверка подлинности Kerberos подразумевает взаимную проверку подлинности клиента и сервера с использованием сертификатов Kerberos. Значение по умолчанию равно True.
Согласование
Позволяет клиенту использовать проверку подлинности согласованием. При проверке подлинности с согласованием клиент отправляет серверу запрос на проверку подлинности. Сервер определяет, какой протокол использовать — Kerberos или NTLM. Протокол Kerberos выбирается для проверки подлинности учетной записи домена, а NTLM — для учетных записей локального компьютера. Имя пользователя должно быть указано в \ _ формате имени пользователя домена для пользователя домена. Имя пользователя должно быть указано в _ формате «имя \ пользователя сервера _ » для локального пользователя на компьютере сервера. Значение по умолчанию равно True.
CredSSP
Позволяет клиенту использовать проверку подлинности с помощью поставщика поддержки безопасности учетных данных (CredSSP). CredSSP позволяет приложению делегировать учетные данные пользователя с клиентского компьютера на целевой сервер. По умолчанию False.
дефаултпортс
Указывает порты, которые клиент будет использовать для HTTP или HTTPS.
WinRM 2,0: HTTP-порт по умолчанию — 5985, а HTTPS-порт по умолчанию — 5986.
TrustedHosts
Указывает список доверенных удаленных компьютеров. В этот список необходимо добавить другие компьютеры в Рабочей группе или компьютерах в другом домене.
Примечание
Компьютеры в списке TrustedHosts не проходят проверку подлинности. Клиент может отправить учетные данные на эти компьютеры.
Если для Трустедхост указан IPv6-адрес, адрес должен быть заключен в квадратные скобки, как показано в следующей команде WinRM Utility: .
Чтобы получить дополнительные сведения о добавлении компьютеров в список TrustedHosts, введите .
Нужно ли менять имя компьютера?
Такое понятие действительно существует и присваивается в автоматическом режиме ОС Виндовс. Это не просто наименование, а средство, используемое для доступа к ПК из локальной (домашней, корпоративной) сети. Чем оно проще, тем легче им пользоваться.
Название своего устройства можно найти в описании персонального устройства после слов: Computer Name, NETBIOS, DNS. Наименования, как правило, написаны на латыни, могут содержать буквенно-цифровые символы. Зная Computer Name, пользователь может заходить и работать на своем ПК через локальную сеть, не используя IP-адрес.
Правда, придуманное в случайном порядке слово от создателей ОС Win 10 лучше поменять. Ведь заводское название может содержать набор трудно запоминаемых и не произносимых символов. Нередко Win 10 присваивает нескольким устройствам одинаковые наименования.
Важно! В случае использования учетной записи Microsoft после переименования ПК к онлайн-аккаунту пользователя привязывается еще один «new computer». Правда, на сайте «Майкрософта» можно удалить старые данные и оставить только новые
Второе решение проблемы “no time data was available”
Во второй раз с этой же ошибкой с я столкнулся через пару лет. При попытке получить время от нашего cisco роутера, при помощи команды w32tm /resync, видел ошибку:
Sending resync command to local computer…The computer did not resync because no time data was available.
Или на русском:
Команда синхронизации отправлена на local computer…Синхронизация не выполнена, поскольку нет доступных данных о времени.
При этом вышеописанные действия уже были совершены.
Служба win32time отсылала “симметрические пакеты”: в снифере wireshark я видел что windows сервер отсылает пакеты “NTP Version 3, symmetric active”, но никакого ответа от CISCO не получал.
В логах службы сообщалось “No response from peer”, а в логах роутера:
252755: Jul 2 11:52:48.456 EEST: NTP message received from 192.168.2.31 on interface 'FastEthernet0/0.5' (192.168.2.10). 252756: Jul 2 11:52:48.456 EEST: NTP Core(DEBUG): ntp_receive: message received 252757: Jul 2 11:52:48.456 EEST: NTP Core(DEBUG): ntp_receive: peer is 0x00000000, next action is 5. 252758: Jul 2 11:52:48.456 EEST: NTP Core (NOTICE): ntp_receive: dropping message: AM_NEWPASS, passive association disabled..
В этой случае мне помогла команда:
w32tm /config /manualpeerlist:192.168.2.10,0x8 /syncfromflags:MANUAL
и перезапуск службы времени.
После этого в wireshark увидел нормальный обмен пакетами:
Запуск
За управление службами отвечает SCM. Каждая операция запуска должна проходить через SCM, чтобы он мог отслеживать состояния служб. Поэтому, даже если пользователь хочет вручную инициировать запуск через скрипт службы, этот запуск должен быть выполнен как запрос к SCM. В этом случае последовательность операция перечислена ниже.
- Пользователь (администратор) запускает первый экземпляр: PSService.ps1 –Start.
- Этот первый экземпляр сообщает SCM запустить службу: Start-Service $serviceName.
- SCM выполняет PSService.exe. Ее процедура Main создает объект службы, а затем вызывает его метод Run.
- SCM вызывает метод OnStart объекта службы.
- C#-метод OnStart запускает второй экземпляр скрипта: PSService.ps1 –Start.
- Этот второй экземпляр, теперь выполняемый в фоне как системный пользователь, запускает третий экземпляр, который останется в памяти как настоящая служба: PSService.ps1 –Service. Этот экземпляр и работает как служба.
В итоге будут выполняться две задачи: PSService.exe и экземпляр PowerShell.exe, выполняющий PSService.ps1 –Service.
За управление службами отвечает SCM.
Все это реализуется тремя частями кода в скрипте.
Определение ключа –Start в блоке Param в начале скрипта:
В процедуре Main в конце скрипта блок if обрабатывает ключ –Start:
Фрагмент исходного кода на C#, процедура Main и обработчик для OnStart, который выполняет команду PSService.ps1 –Start, как показано на рис. 4.
Рис. 4. Обработчик стартового кода
Сохранение и отзыв последних расположений (Push-Location и Pop-Location)
При изменении расположения полезно отслеживать свое предыдущее расположение и иметь возможность вернуться к нему. Командлет в Windows PowerShell создает упорядоченный журнал («стек») путей к каталогам, которые вы открывали, чтобы можно было вернуться на шаг назад по журналу путей к каталогу, используя дополнительный командлет .
Например, Windows PowerShell обычно запускается в корневом каталоге пользователя.
Примечание
Слово стек имеет специальное значение во многих параметрах программирования, включая .NET Framework.
Например, в физическом стеке элементов последний элемент, помещенный в стек, является первым элементом, который можно извлечь из него. Добавление элемента в стек в разговорной речи называется «проталкиванием» элемента в стек. Извлечение элемента из стека в разговорной речи называется «выводом» элемента из стека.
Чтобы передать текущее расположение в стек, а затем переместить его в папку локальных параметров, введите:
После этого можно передать расположение локальных параметров в стек и переместить его в папку Temp, введя следующее:
Чтобы убедиться, что каталоги изменены, введите команду :
После этого можно перейти в последний открытый каталог, введя команду , и проверить изменение, введя команду :
Как и в случае с командлетом , вы можете включить параметр PassThru при вводе командлета , чтобы открыть указанный каталог:
Кроме того, можно использовать командлеты расположения с сетевыми путями. Если у вас есть сервер FS01 с общей папкой Public, можно изменить расположение, введя
или
Для изменения расположения на любой доступный диск можно использовать команды и . Например, если у вас есть локальный дисковод компакт-дисков с буквой диска D, содержащий компакт-диск с данными, вы можете изменить расположение на дисковод компакт-дисков, введя команду .
Если дисковод пуст, вы получите следующее сообщение об ошибке:
История
Эта функция была впервые представлена в Windows XP как удаленный помощник и основана на технологиях удаленного рабочего стола. Удаленный помощник в Windows XP интегрирован в пользовательский интерфейс центра справки и поддержки и позволяет отправлять приглашения специалисту службы поддержки по электронной почте, Windows Messenger или сохранять приглашение в виде файла и передавать его другими способами. Компьютером может управлять как сотрудник службы поддержки, подключающийся удаленно, так и тот, кто отправляет приглашение. Доступны чат, аудио-видео разговоры и передача файлов.
Удаленный помощник в Windows Vista
В Windows Vista удаленный помощник обновлен с помощью автономного пользовательского интерфейса и основан на RDP 6 и Windows Desktop Sharing API . Два системных администратора могут одновременно подключаться к одному компьютеру. Удаленные сеансы автоматически переподключаются после перезагрузки компьютера. Он также поддерживает приостановку сеанса, встроенную диагностику, чат, передачу файлов и ведение журнала на основе XML . Это снижает требования к пропускной способности для низкоскоростных соединений. Обход NAT позволяет установить сеанс, даже если пользователь находится за устройством преобразования сетевых адресов (NAT), например, маршрутизатором в домашней сети. Удаленный помощник настраивается с помощью групповой политики и поддерживает переключатели командной строки, что позволяет развертывать настраиваемые ярлыки.
В Windows 7 удаленный помощник основан на RDP 7. Добавлена дополнительная опция для подключения с использованием протокола разрешения имен одноранговых узлов , называемая Easy Connect, если имеется возможность подключения по IPv6. При использовании Easy Connect вместо файла приглашения необходимо сообщать только пароль , и два компьютера могут установить одноранговое соединение через локальную сеть (LAN) или Интернет без сервера ретрансляции. Однако удаленный помощник Windows не поддерживает передачу файлов и совместное использование буфера обмена в Windows 7.
Удаленный помощник устанавливается по умолчанию на клиентах Windows, но должен быть добавлен вручную на серверах Windows Server 2008 R2 . Сеансы удаленной помощи могут быть инициированы с помощью приложения Windows Remote Assistance, доступного в меню «Пуск» в разделе «Все приложения» → «Обслуживание», или путем вызова из интерфейса командной строки .
Исходный удаленный помощник также включен во все выпуски Windows 10 , но после его ярлык в меню «Пуск» удален, что фактически скрывает его от пользователя. Вместо этого добавлено новое приложение под названием Quick Assist. Он имеет в основном те же функции и аналогичный пользовательский интерфейс с кнопками Получить помощь и Оказать помощь . Дизайн похож на приложения UWP . В отличие от Remote Assistant, Quick Assist требует, чтобы сотрудник службы поддержки вошел в систему с использованием учетной записи Microsoft перед выдачей помощи.
В то время как удаленный помощник устанавливает соединение по протоколу удаленного рабочего стола (RDP) с компьютером конечного пользователя (требуется, чтобы на клиентском компьютере был открыт TCP-порт 3389 и брандмауэр / NAT / маршрутизатор, за которым находится компьютер), Quick Assist является облачным и требуется одно исходящее соединение от ПК помощника к облачной службе / серверу Microsoft и отдельное подключение от облачной службы к машине человека, получающего помощь. На брандмауэре клиентского устройства нет открытых портов.
Групповые политики и скрипты
Если предыдущие варианты не требовали доменной среды, то в этом случае потребуется домен. Поддерживаются скрипты при входе и выходе пользователя из системы, а также при ее включении и выключении. Поскольку каждый администратор Windows сталкивался с ними, я не буду подробно расписывать как ими пользоваться ― лишь напомню, где их искать.
Скрипты, выполняющиеся при старте и завершении системы.
Скрипты, выполняющиеся при входе и выходе пользователя из системы.
Скрипты, настраиваемые в пользовательском разделе, выполняются от имени пользователя, а в разделе компьютера ― под аккаунтом SYSTEM.
Переменные среды PowerShell
Функции PowerShell могут использовать переменные среды для хранения настроек пользователя.
Эти переменные работают подобно переменным предпочтений, но они наследуются дочерними сеансами сеансов, в которых они созданы. Дополнительные сведения о переменных предпочтений см. в разделе about_Preference_Variables.
Ниже перечислены переменные среды, в которых хранятся настройки.
-
PSExecutionPolicyPreference
Хранит политику выполнения, заданную для текущего сеанса. Эта переменная среды существует только в том случае, если задана политика выполнения для одного сеанса.
Это можно сделать двумя разными способами.-
Запустите сеанс из командной строки с помощью параметра ExecutionPolicy , чтобы задать политику выполнения для сеанса.
-
Используйте командлет . Используйте параметр Scope со значением «Process».
Подробнее см. в разделе about_Execution_Policies.
-
-
псмодулеаналисискачепас
PowerShell обеспечивает контроль над файлом, используемым для кэширования данных о модулях и их командлетах. Кэш считывается при запуске во время поиска команды и записывается в фоновом потоке после импорта модуля.
Расположение кэша по умолчанию:
- Windows PowerShell 5.1: .
- PowerShell 6,0 и более поздние версии:
- значение по умолчанию не Windows:
По умолчанию для кэша используется имя файла . Если установлено несколько экземпляров PowerShell, имя файла включает в себя шестнадцатеричный суффикс, чтобы для каждой установки существовало уникальное имя файла.
Примечание
Если обнаружение команд работает неправильно, например, в IntelliSense отображаются несуществующие команды, можно удалить файл кэша. Кэш создается повторно при следующем запуске PowerShell.
Чтобы изменить расположение кэша по умолчанию, задайте переменную среды перед запуском PowerShell. Изменения этой переменной среды влияют только на дочерние процессы. Значение должно быть полным путем (включая имя файла), на создание и запись файлов по которому у среды PowerShell есть разрешение.
Чтобы отключить файловый кэш, укажите в качестве этого значения недопустимое расположение, например:
Это задает путь к устройству NUL . PowerShell не удается выполнить запись в путь, но ошибка не возвращается. Вы можете увидеть ошибки, о которых сообщили с помощью трассировки:
-
псдисаблемодулеаналисискачеклеануп
При вызаписи кэша анализа модуля PowerShell проверяет наличие модулей, которые больше не существуют, чтобы избежать необязательного большого объема кэша. Иногда эти проверки нежелательны. в этом случае их можно отключить, задав для этого значения переменной среды значение .
Установка этой переменной среды вступает в силу немедленно в текущем процессе.
-
PSModulePath
Переменная среды содержит список расположений папок, в которых выполняется поиск модулей и ресурсов.
По умолчанию действующие расположения, назначенные, являются:
-
Расположения на уровне системы. Эти папки содержат модули, поставляемые с PowerShell. Модули хранятся в расположении. кроме того, это расположение, в котором устанавливаются модули управления Windows.
-
Модули, установленные пользователем: это модули, установленные пользователем.
имеет параметр области , который позволяет указать, установлен ли модуль для текущего пользователя или для всех пользователей. Дополнительные сведения см. в разделе Install-Module.- в Windows расположением определяемой пользователем области CurrentUser является папка. Областью ALLUSERS является расположение .
- в системах, отличных от Windows, расположением определенной пользователем области CurrentUser является папка. Областью ALLUSERS является расположение .
Кроме того, программы установки, устанавливающие модули в других каталогах, например каталог Program Files, могут добавлять свои расположения к значению .
Дополнительные сведения см. в разделе about_PSModulePath.
-
-
POWERSHELL_UPDATECHECK
Настроить уведомления об обновлениях можно с помощью переменной среды . Поддерживаются следующие значения.
- отключает функцию уведомления об обновлении
-
то же самое, что не определяет :
- В общедоступных выпусках выводятся уведомления об обновлениях для общедоступных выпусков.
- В предварительных выпусках и релизах-кандидатах выводятся уведомления об обновлениях для общедоступных и предварительных выпусков.
- уведомления об обновлениях только для выпусков долгосрочного обслуживания (LTS)
Дополнительные сведения см. в разделе about_Update_Notifications.
-
POWERSHELL_TELEMETRY_OPTOUT
Чтобы отказаться от телеметрии, задайте для переменной среды значение , или .
Дополнительные сведения см. в разделе about_Telemetry.
Почему сбиваются время и дата на Windows 10
Когда время на компьютере постоянно слетает, это вызывает массу сопутствующих проблем. Мало того, что пользователь не может ознакомиться с актуальной информацией, так еще и, в большинстве случаев, блокируется доступ к сайтам в интернете из-за расхождений в показателях.
Возникает подобная ситуация по целому ряду причин:
- разряжена батарейка BIOS, расположенная на материнской плате;
- установлен неправильный часовой пояс;
- компьютер не синхронизируется с сервисом time.windows.com;
- воздействие вредоносного ПО;
- использование пиратской версии Windows.
Несмотря на то, что ошибка времени кажется простой и незначительной, на решение проблемы может уйти много времени. Кроме того, некоторым пользователям процесс устранения неполадок покажется сложным, однако только так можно исправить ошибку, избежав более серьезных последствий.
Как поменять дату в windows xp через графический интерфейс
Если у вас возникла необходимость поменять дату в Windows XP, то вам нужно дважды кликнуть по системным часам, которые расположены в правом нижнем углу экрана.
После двойного клика по системным часам перед вами появится небольшое окно под названием «Свойства: Дата и время».
Нужно отметить, что окно «Свойства: Дата и время» можно открыть и через Панель управления. Для этого откройте панель управления и переключитесь в классический вид. После этого откройте раздел «Дата и время».
Итак, мы открыли окно «Свойства: Дата и время». В данном окне можно поменять время и дату в Windows XP. Для того чтобы поменять дату выберите нужный год и месяц над календарем, после этого вы сможете выбрать нужную дату в календаре, для этого будет достаточно просто выделить нужный день.
После выбора нужной вам даты в календаре, просто закройте окно нажатием на кнопку «Ok». Все этих простых действий достаточно для того чтобы поменять дату в Windows XP.
Также в окне «Свойства: Дата и время» можно поменять другие настройки, которые имеют отношение к системным часам. Например, для того чтобы поменять часовой пояс нужно перейти на вкладку «Часовой пояс» и выбрать нужный часовой пояс из выпадающего списка.
Также здесь можно включить или отключить синхронизацию даты и времени через Интернет. Для этого нужно перейти на вкладку «Время Интернета» и установить или снять отметку напротив соответствующей функции.
Для сохранения внесенных изменений окно нужно закрывать нажатием на кнопку «OK».