не удалось подключиться к серверу с помощью удаленного взаимодействия windows powershell
установка службы удаленных серверов windows server 2012
изучаю windows server 2012. Подскажите пожалуйста, при установки служб удаленных рабочих столов ошибка (не удалось подключится к серверу с помощью удаленного взаимодействия windows power shell). Не могу дальше продолжить установку. Виртуальный сервер на котором провожу настройку в домене права дал Администраторов.
Добавлено через 50 минут
проблема решилась. разрешить удаленное взаимодействие с Windows PowerShell можно командой Enable-PSRemoting.
UEFI-установка Windows Server 2012 с флешки
Добрый день! Создал загрузочную флешку с оригинальным win server 2012 r2 standart x64.
Установка Windows Server 2012 на программный raid 1
Возможно сделать так чтобы системный диск с Windows Server 2012 находился на программном raid 1? В.
Установка Windows Server 2012 R2 с загрузочной UEFI-флешки
1. разбил утилитой диски на 2 рейд-массива. 2 диска raid1, 5 дисков- raid5. выставил режим.
Установка программ на Windows Server 2012 R2 x64 Datacenter
Приветствую уважаемые форумчане. Подскажите пожалуйста как устанавливать и в частности запускать.
Начальная настройка сервера и установка Windows Server 2012 Essentials
Добрый день! Прошу помочь с сервером. Начальная настройка сервера и установка Windows Server 2012.
Обновление Windows Server 2008 на Windows Server 2012 без каких-либо потерь конфигурации сервера
Добрый день товарищи! Подскажите можно ли как нибудь обновиться до версии 2012 без каких либо.
Перенос DNS сервера и всех настроек с Windows Server 2003 на Windows Server 2012
Добрый вечер! Прошу помочь с одной проблемой. А именно по поводу миграции c Windows Server 2003 на.
Настройка удаленного взаимодействия в PowerShell (часть 2)
Продолжим тему удаленного взаимодействия, начатую в предыдущей статье. Сегодня мы поговорим о конфигурациях сессии. Их еще называют конечными точками подключения, или эндпойнтами (endpoint).
Конфигурации сессии отвечают за настройку пользовательского окружения в удаленной сессии. Проще говоря, конфигурация сессии — это набор параметров на локальном компьютере, определяющих, что именно будет доступно пользователю при удаленном подключении к этому компьютеру. Кроме того, конфигурацию можно использовать для раздачи разрешений, необходимых для удаленного подключения к компьютеру.
При подключении к удаленному компьютеру используется конфигурация сессии по умолчанию. Ее значение хранится в переменной $PSSessionConfigurationName, обычно это конфигурация microsoft.powershell.
Настройка дескриптора безопасности
В свойствах конфигурации есть поле Permission. В нем указан список пользователей, которые имеют право использовать эту конфигурацию. По умолчанию в этот список входят члены локальной группы Administrators, а также Remote Management Users (эта группа есть только в Windows 8 и Server 2012). Все остальные пользователи, не входящие в эти группы, удаленно подключаться к компьютеру и использовать PS Remoting не могут.
Исправить это можно двумя способами — либо добавив пользователей в соответствующие локальные группы, либо изменив дескриптор безопасности конфигурации. Добавлять всех подряд в локальные админы на сервере не очень хорошая идея, а группа Remote Management Users есть только в Windows 8 и Server 2012. Поэтому пойдем вторым путем и изменим дескриптор безопасности конфигурации сессии по умолчанию.
Теперь все члены этой группы имеют возможность подключаться к данному компьютеру. Обратите внимание, что для успешного подключения пользователю необходимо дать право выполнения — Execute (Invoke).
Запуск сессии от имени другого пользователя
Файл конфигурации сессии
-AliasDefinitions — определяет значения алиасов в удаленном сеансе. Представляет из себя массив такого вида : @
-FunctionDefinitions — определяет функции в удаленном сеансе. Также представляет из себя массив: @
-EnvironmentVariables — список переменных окружения, добавляемых в удаленную сессию. Представляет из себя одномерный массив: @
-ExecutionPolicy — задает политику выполнения скриптов в удаленном сеансе. По умолчанию Restricted, т.е. скрипты выполнять нельзя.
-LanguageMode — определяет элементы языка PowerShell, которые можно использовать в удаленной сессии. Может иметь значения:
-ScriptsToProcess — задает скрипты, которые будут запущены при подключении. В скрипте можно настроить окружение, импортировать оснастки и модули, определить переменные, функции и многое другое.
-ModulesToImport — определяет модули и оснастки, автоматически импортируемые в сессию. По умолчанию импортируется только ядро PowerShell (модуль Microsoft.PowerShell.Core).
-SessionType — задает тип сессии. Может иметь значение:
Создание эндпойнта
И вот теперь мы подошли к созданию новой конфигурации сессии, или custom endpoint. Скажем у нас есть задача разрешить группе пользователей подключаться к контроллеру домена и производить манипуляции с учетными данными пользователей — удалять, редактировать и заводить новых. При этом они не должны входить в группу доменных администраторов и иметь возможность делать что либо кроме этих разрешенных действий.
Создаем файл конфигурации сессии ADUser.pssc. В нем указываем импортировать в сессию модуль ActiveDirectory и сделать видимыми несколько командлетов:
Протестируем созданный файл на валидность:
Теперь сохраним учетные данные администратора домена и зарегистрируем новую конфигурацию с именем ADUser. Права на подключение дадим членам доменной группы HelpDesk:
Проверим, что получилось. Заходим в систему с учетной записью vpupkin, входящей в группу HelpDesk. Открываем сессию на компьютер SRV4 и указываем использовать конфигурацию сессии ADUser:
Затем в этой сессии пробуем создать нового пользователя и проверить результат. Как видите все получилось. Однако если теперь попытаться сделать что либо еще, хотя бы просто посмотреть список процессов, то получим ошибку.
То есть все условия соблюдены — простой пользователь может подключаться к контроллеру домена с правами доменного администратора, но ему доступны только несколько команд. Это позволяет создавать эндпойнт под каждую конкретную задачу, при этом не давая пользователям лишних полномочий.
И еще пара моментов, которые стоит иметь в виду при настройке удаленного взаимодействия.
Администраторы из других доменов
Даже если пользователь из другого домена является членом группы ″Администраторы″ на локальном компьютере, удаленно подключиться к локальному компьютеру с правами администратора он не сможет. По умолчанию удаленные подключения из других доменов запускаются только с разрешениями обычного пользователя. Для того, чтобы изменить подобное положение вещей и разрешить удаленным пользователям выполнять операции с правами администратора, необходимо изменить значение параметра реестра LocalAccountTokenFilterPolicy. Для этого можно воспользоваться следующей командой, устанавливающей для LocalAccountTokenFilterPolicy значение 1:
Внимание! Параметр реестра LocalAccountTokenFilterPolicy, равный 1, фактически полностью отключает контроль учетных записей (UAC) для всех удаленных пользователей. Перед его изменением внимательно изучите возможные последствия.
Second-hop
В данном случае мы столкнулись с проблемой второго шага (Second-hop). Она заключается в том, что находясь в удаленной сессии нельзя подключиться к другому компьютеру со своими учетными данными. По умолчанию передача учетных данных по сети запрещена.
Чтобы решить эту проблему, необходимо разрешить аутентификацию CredSSP на клиенте и на сервере, а также включить политику передачи учетных данных. Для этого есть два способа.
Способ 1
Включаем аутентификацию CredSSP на клиенте:
Способ 2
Если возиться с групповыми политиками влом не очень хочется, то есть способ проще. На сервере включаем CredSSP:
Затем на клиенте включаем аутентификацию CredSSP и указываем сервер\сервера, которым мы доверяем делегировать свои учетные данные:
Примечание: команда Enable-WSManCredSSP также изменяет политику Allow delegating fresh credentials, но только на локальном компьютере. Имейте это в виду, если вы используете доменные политики для определения доверенных серверов.
Теперь остается подключиться и проверить, что получилось. Помните, что в строке подключения обязательно нужно указать тип аутентификации и учетные данные. Также имя компьютера должно соответствовать тому, что указано в политике. В нашем случае строка подключения будет выглядеть так:
Установив сессию, еще раз пробуем проверить доступность шары. И как видите, теперь команда Test-Path прошла успешно.
Ну, пожалуй все. Для более глубокого понимания механизмов удаленного взаимодействия в PowerShell рекомендую прочесть книгу Secrets of PowerShell Remoting. А также не пренебрегайте справочной документацией PowerShell, в ней можно найти много интересного.
Вопросы и ответы об удаленном взаимодействии PowerShell
При удаленной работе вы вводите команды в PowerShell на одном компьютере (называемом «локальный компьютер»), но команды запускаются на другом компьютере (называемом «удаленным компьютером»). Работа по удаленному интерфейсу должна быть настолько, насколько это возможно, непосредственно на удаленном компьютере.
Чтобы использовать удаленное взаимодействие PowerShell, удаленный компьютер должен быть настроен для удаленного взаимодействия. Дополнительные сведения см. в разделе about_Remote_Requirements.
Необходимо ли установить PowerShell на обоих компьютерах?
Компьютеры, на которых выполняется Windows PowerShell 3,0 и компьютеры с Windows PowerShell 2,0, могут подключаться друг к другу удаленно и выполнять удаленные команды. Однако некоторые функции, например возможность отключения от сеанса и повторного подключения к нему, работают только в том случае, если оба компьютера работают под управлением Windows PowerShell 3,0.
Необходимо иметь разрешение на подключение к удаленному компьютеру, разрешение на запуск PowerShell и разрешение на доступ к хранилищам данных (например, файлам и папкам) и реестру на удаленном компьютере.
Дополнительные сведения см. в разделе about_Remote_Requirements.
Как работает удаленное взаимодействие?
При отправке удаленной команды команда передается по сети модулю PowerShell на удаленном компьютере и выполняется в клиенте PowerShell на удаленном компьютере. Результаты команды отправляются обратно на локальный компьютер и отображаются в сеансе PowerShell на локальном компьютере.
Для передачи команд и получения выходных данных PowerShell использует протокол WS-Management. Дополнительные сведения о протоколе WS-Management см. в разделе протокол WS-Management документации по Windows.
Начиная с Windows PowerShell 3,0, удаленные сеансы хранятся на удаленном компьютере. Это позволяет отключиться от сеанса и повторно подключиться из другого сеанса или другого компьютера без прерывания команд или потери состояния.
Безопасна ли служба удаленного взаимодействия PowerShell?
При подключении к удаленному компьютеру система использует учетные данные пользователя и пароля на локальном компьютере или учетные данные, предоставленные в команде для входа на удаленный компьютер. Учетные данные и остальная часть передачи шифруются.
Чтобы добавить дополнительную защиту, можно настроить удаленный компьютер на использование SSL (SSL) вместо HTTP для прослушивания запросов служба удаленного управления Windows (WinRM). Затем при установлении соединения пользователи могут использовать параметр UseSSL Invoke-Command New-PSSession Enter-PSSession командлетов, и. Этот параметр использует более защищенный канал HTTPS вместо HTTP.
Требуется ли удаленное взаимодействие PowerShell для всех удаленных команд?
Эти командлеты не используют удаленное взаимодействие PowerShell. Поэтому их можно использовать на любом компьютере, на котором работает PowerShell, даже если компьютер не настроен для удаленного взаимодействия PowerShell или компьютер не соответствует требованиям удаленного взаимодействия PowerShell.
К этим командлетам относятся следующие:
Чтобы определить, требуется ли для параметра ComputerName конкретного командлета удаленное взаимодействие PowerShell, см. Описание параметра. Чтобы отобразить описание параметра, введите:
Для всех остальных команд используйте Invoke-Command командлет.
Разделы справки выполнить команду на удаленном компьютере?
Чтобы выполнить команду на удаленном компьютере, используйте Invoke-Command командлет.
Заключите команду в фигурные скобки ( <> ), чтобы сделать ее блоком сценария. Используйте параметр ScriptBlock аргумента Invoke-Command для указания команды.
Параметр ComputerName параметра можно использовать Invoke-Command для указания удаленного компьютера. Или можно создать постоянное подключение к удаленному компьютеру (сеанс), а затем использовать параметр Session из Invoke-Command для выполнения команды в сеансе.
Например, следующие команды выполняют Get-Process команду удаленно.
Дополнительные сведения об удаленных командах см. в разделе about_Remote и разделы справки по командлетам, поддерживающим удаленное взаимодействие.
Могу ли я только Telnet на удаленном компьютере?
Enter-PSSession С помощью командлета можно запустить интерактивный сеанс с удаленным компьютером.
В командной строке PowerShell введите следующую команду:
Командная строка изменится, чтобы отображалось подключение к удаленному компьютеру.
Теперь команды, которые вы вводите, выполняются на удаленном компьютере так же, как и при их вводе непосредственно на удаленном компьютере.
Чтобы завершить интерактивный сеанс, введите:
Интерактивный сеанс — это постоянный сеанс, использующий протокол WS-Management. Это не то же самое, что и Telnet, но обеспечивает аналогичную работу.
Можно ли создать постоянное подключение?
Да. Для выполнения удаленных команд можно указать имя удаленного компьютера, имя NetBIOS или его IP-адрес. Также можно выполнить удаленные команды, указав сеанс PowerShell (PSSession), подключенный к удаленному компьютеру.
При использовании параметра ComputerName в Invoke-Command или Enter-PSSession PowerShell устанавливает временное подключение. PowerShell использует соединение для выполнения только текущей команды, а затем закрывает соединение. Это очень эффективный метод выполнения одной команды или нескольких несвязанных команд, даже на многих удаленных компьютерах.
При использовании New-PSSession командлета для создания сеанса PSSession PowerShell устанавливает постоянное подключение к сеансу PSSession. Затем можно выполнить несколько команд в сеансе PSSession, включая команды, которые совместно используют данные.
Дополнительные сведения о сеансах см. в разделе about_PSSessions.
Можно ли выполнять команды более чем на одном компьютере за раз?
Да. Параметр ComputerName Invoke-Command командлета принимает несколько имен компьютеров, а параметр Session принимает несколько PSSession.
При выполнении Invoke-Command команды PowerShell выполняет команды на всех указанных компьютерах или во всех указанных PSSession.
PowerShell может управлять сотнями одновременных удаленных подключений. Однако количество удаленных команд, которые можно отправить, может быть ограничено ресурсами компьютера и его емкостью для установки и обслуживания нескольких сетевых подключений.
Дополнительные сведения см. в примере в Invoke-Command разделе справки.
Где находятся мои профили?
Чтобы запустить профиль в сеансе, используйте Invoke-Command командлет.
Сценарий запуска можно также использовать в конфигурации сеанса для запуска профиля в каждом удаленном сеансе, использующем конфигурацию сеанса.
Как работает регулирование для удаленных команд?
Чтобы упростить управление ресурсами на локальном компьютере, в PowerShell имеется функция регулирования для отдельных команд, которая позволяет ограничить количество одновременных удаленных подключений, установленных для каждой команды.
Значение по умолчанию — 32 одновременных подключений, но можно использовать параметр ThrottleLimit командлетов, чтобы установить настраиваемое ограничение регулирования для определенных команд.
При использовании функции регулирования Помните, что она применяется к каждой команде, а не ко всему сеансу или к компьютеру. При одновременном выполнении команд в нескольких сеансах или PSSession число одновременных подключений равно сумме одновременных подключений во всех сеансах.
Отличаются ли выходные данные удаленных команд от локального вывода?
Однако поскольку большинство активных объектов не могут передаваться по сети, PowerShell «сериализует» большинство объектов, отправленных в удаленных командах, то есть преобразует каждый объект в ряд элементов данных XML (язык ограничений в XML [CLiXML]) для передачи.
Когда PowerShell получает сериализованный объект, он преобразует XML в тип десериализованного объекта. Десериализованный объект — это точная запись свойств программы или компонента в предыдущий раз, но она больше не является «динамической», то есть больше не связана напрямую с компонентом. Методы удаляются, так как они больше не действуют.
Как правило, десериализуемые объекты можно использовать так же, как и активные объекты, но следует иметь в виду их ограничения. Кроме того, объекты, возвращаемые Invoke-Command командлетом, имеют дополнительные свойства, помогающие определить происхождение команды.
Некоторые типы объектов, например объекты DirectoryInfo и GUID, преобразуются обратно в динамические объекты при их получении. Для этих объектов не требуется специальная обработка или форматирование.
Дополнительные сведения об интерпретации и форматировании удаленных выходных данных см. в разделе about_Remote_Output.
Можно ли выполнять фоновые задания удаленно?
Да. Фоновое задание PowerShell — это команда PowerShell, которая выполняется асинхронно без взаимодействия с сеансом. При запуске фонового задания командная строка возвращается немедленно, и вы можете продолжать работу в сеансе, пока задание выполняется, даже если оно выполняется в течение продолжительного периода времени.
Фоновое задание можно запустить даже во время выполнения других команд, так как фоновые задания всегда выполняются асинхронно во временном сеансе.
Фоновые задания можно выполнять на локальном или удаленном компьютере. По умолчанию фоновое задание выполняется на локальном компьютере. Однако можно использовать параметр AsJob Invoke-Command командлета для выполнения любой удаленной команды в качестве фонового задания. И можно использовать Invoke-Command для Start-Job удаленного выполнения команды.
Дополнительные сведения о фоновых заданиях в PowerShell см. в разделе about_Jobs и about_Remote_Jobs.
Можно ли запускать программы Windows на удаленном компьютере?
Для запуска программ на основе Windows на удаленных компьютерах можно использовать удаленные команды PowerShell. Например, можно запустить Shutdown.exe или Ipconfig.exe на удаленном компьютере.
Однако нельзя использовать команды PowerShell для открытия пользовательского интерфейса для любой программы на удаленном компьютере.
При запуске программы Windows на удаленном компьютере команда не завершается, и Командная строка PowerShell не возвращается, пока программа не будет завершена или пока не будет нажата клавиша CTRL + C для прерывания команды. Например, если запустить Ipconfig.exe программу на удаленном компьютере, Командная строка не вернется, пока не Ipconfig.exe завершится.
Можно ли ограничить команды, которые пользователи могут запускать удаленно на моем компьютере?
Да. Каждый удаленный сеанс должен использовать одну из конфигураций сеанса на удаленном компьютере. Вы можете управлять конфигурациями сеансов на компьютере (и разрешениями для этих конфигураций сеанса), чтобы определить, кто может выполнять команды удаленно на компьютере и какие команды они могут выполняться.
Конфигурация сеанса настраивает среду для сеанса. Конфигурацию можно определить с помощью сборки, реализующей новый класс конфигурации, или с помощью скрипта, выполняемого в сеансе. Конфигурация может определять команды, доступные в сеансе. Кроме того, конфигурация может включать параметры, защищающие компьютер, такие как параметры, ограничивающие объем данных, которые сеанс может получить удаленно, в одном объекте или команде. Можно также указать дескриптор безопасности, который определяет разрешения, необходимые для использования конфигурации.
Enable-PSRemoting Командлет создает конфигурации сеансов по умолчанию на компьютере: Microsoft. PowerShell, Microsoft. PowerShell. Workflow и Microsoft. PowerShell32 (только 64-разрядные операционные системы). Enable-PSRemoting Задает дескриптор безопасности для конфигурации, чтобы разрешить использовать их только членам группы «Администраторы» на компьютере.
Командлеты конфигурации сеанса можно использовать для изменения конфигураций сеансов по умолчанию, создания новых конфигураций сеансов и изменения дескрипторов безопасности всех конфигураций сеансов.
Начиная с Windows PowerShell 3,0, New-PSSessionConfigurationFile командлет позволяет создавать пользовательские конфигурации сеансов с помощью текстового файла. Файл содержит параметры для настройки языкового режима и для указания командлетов и модулей, доступных в сеансах, использующих конфигурацию сеанса.
Дополнительные сведения о конфигурациях сеансов см. в справке по командлетам конфигурации сеанса. Чтобы найти командлеты конфигурации сеанса, введите:
Что такое конфигурации вентиляторов и наружных вентиляторов?
Наиболее распространенным сценарием удаленного взаимодействия PowerShell, включающим несколько компьютеров, является конфигурация «один ко многим», в которой один локальный компьютер (компьютер администратора) выполняет команды PowerShell на многочисленных удаленных компьютерах. Этот сценарий называется «выходом из».
Однако на некоторых предприятиях конфигурация имеет значение «многие к одному», где многие клиентские компьютеры подключаются к одному удаленному компьютеру, работающему под управлением PowerShell, например файловый сервер или киоск. Это называется конфигурацией с вентилятором.
Удаленное взаимодействие PowerShell поддерживает конфигурации как развертывания, так и вентилятора.
Для конфигурации с выходом из развертывания PowerShell использует протокол веб-служб для управления (WS-Management) и службу WinRM, поддерживающую реализацию WS-Management Майкрософт. При подключении локального компьютера к удаленному компьютеру WS-Management устанавливает подключение и использует подключаемый модуль для PowerShell, чтобы запустить хост-процесс PowerShell (Wsmprovhost.exe) на удаленном компьютере. Пользователь может указать альтернативный порт, конфигурацию дополнительного сеанса и другие функции для настройки удаленного подключения.
Для поддержки конфигурации «с вентиляторами» в PowerShell используются службы IIS для размещения WS-Management, загрузки подключаемого модуля PowerShell и запуска PowerShell. В этом сценарии вместо того, чтобы запускать каждый сеанс PowerShell в отдельном процессе, все сеансы PowerShell выполняются в одном и том же хост-процессе.
Размещение и удаленное управление в IIS не поддерживается в Windows XP и Windows Server 2003.
В конфигурации с вентилятором пользователь может указать универсальный код ресурса (URI) подключения и конечную точку HTTP, включая транспорт, имя компьютера, порт и имя приложения. Службы IIS пересылают в приложение все запросы с указанным именем приложения. Значение по умолчанию — WS-Management, в котором может размещаться PowerShell.
Можно также указать механизм проверки подлинности и запретить или разрешить перенаправление из конечных точек HTTP и HTTPS.
Можно ли протестировать удаленное взаимодействие на одном компьютере, а не в домене?
Да. Удаленное взаимодействие PowerShell доступно даже в том случае, если локальный компьютер не входит в домен. Функции удаленного взаимодействия можно использовать для подключения к сеансам и создания сеансов на одном компьютере. Функции работают так же, как и при подключении к удаленному компьютеру.
Для выполнения удаленных команд на компьютере в Рабочей группе Измените следующие параметры Windows на компьютере.
Внимание! эти параметры влияют на всех пользователей системы и могут сделать систему более уязвимой для атак злоумышленников. Будьте внимательны при внесении этих изменений.
Windows Vista, Windows 7, Windows 8:
Создайте следующую запись реестра и присвойте ей значение 1: LocalAccountTokenFilterPolicy в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Для добавления этой записи можно использовать следующую команду PowerShell:
Windows Server 2003, Windows Server 2008, Windows Server 2012, Windows Server 2012 R2:
Изменения не требуются, так как параметр по умолчанию политики «сетевой доступ: модель общего доступа и безопасность для локальных учетных записей» имеет значение «Классическая». Проверьте значение параметра, если оно изменилось.
Можно ли выполнять удаленные команды на компьютере в другом домене?
Да. Как правило, команды выполняются без ошибок, хотя может потребоваться использовать параметр Credential Invoke-Command New-PSSession командлета, или, Enter-PSSession чтобы предоставить учетные данные члена группы администраторов на удаленном компьютере. Это иногда требуется, даже если текущий пользователь является членом группы «Администраторы» на локальном и удаленном компьютерах.
Однако если удаленный компьютер не входит в домен, которому доверяет локальный компьютер, удаленный компьютер не сможет проверить подлинность учетных данных пользователя.
Чтобы включить проверку подлинности, используйте следующую команду, чтобы добавить удаленный компьютер в список доверенных узлов для локального компьютера в WinRM. Введите команду в командной строке PowerShell.
Например, чтобы добавить компьютер Server01 в список доверенных узлов на локальном компьютере, введите следующую команду в командной строке PowerShell: