• Home
  • Linux
  • Docker
  • Windows
    • PS
    • C#
    • Exchange Server
  • Other
    • Perl
    • IPV6
    • MacOS
  • DB
    • MSSQL
    • MariaDB
    • PG

Home

Настройка клиент-серверного доступа к 1С через WEB-интерфейс

Details
Written by: po3dno
Category: Other
Created: 06 October 2014
Hits: 1726

Настройка клиент-серверного доступа к 1С через WEB-интерфейс

Опубликовал pvase в раздел Администрирование - Администрирование

 
    • server01
  • server01
  • server02
  • server03
  • server04
  • server05
  • server06
  • server07
  • server08
  • server09
  • server10
  • server11
  • server12
  • server13
  • server14
  • server15
  • server16
  • server17
  • server18
  • server19
  • server20
  • server21
  • server22
  • server23
  • server24
  • server25
  • server26
  • server27
  • server28
  • server29
  • server30
  • server31
  • server32
  • server33
  • server34
  • server35
 
Пошаговая инструкция как настроить web-доступ к базам 1С.
Писал для себя как инструкцию чтобы не забыть в будущем. Может еще кому пригодится как инструкция.

Настройка клиент-серверного доступа к 1С через WEB-интерфейс

В этой статье изложена инструкция как организовать работу с конфигурацией 1С через Internet обозреватель.
Для статьи была использована настройка 1С для работы с базой MS SQL Server и в качестве web-сервера использовался Internet Information Services входящий в поставку операционной системы.
Перед началом установки должны быть установлена 1С с сервером приложений, SQL Server 2005 и выше, запущен Internet Information Services.
В качестве примера для описания статьи использовались следующие версии программного обеспечения:
 Параметр системы Название   Версия
 Операционная система  Windows 8.1 Proffesional   64 разрядная
 Платформа 1С  1С 8.3  8.3.5.1088
 Сервер БД  SQL Server 2012  SP1 x64
 Internet Information Services  Входят в поставку ОС Windows 8.1  8.1

Все описанные шаги могут работать как на старших релизах программ, так и на младших. Минимальные требования указаны на сайте 1С -http://v8.1c.ru/requirements/
Перед началом настроек, на компьютер должны быть установлены выше указанные в таблице продукты. При этом сервер 1С, сервер SQL могут находиться на разных физически или виртуальных компьютерах. Желательно чтобы Сервер 1С и Internet Information Services находились на одном физическом и логическом сервере (так будет меньше проблем с настройками).

Весь процесс настройки разбит на 5 шагов:
1 - Регистрация конфигурации и базы на серверах 1С и SQL 
2 - Настройка IIS на сервере для публикации конфигурации
3 - Публикация WEB-приложения из 1С
4 - Настройка библиотек для работы в 64-х разрядной ОС
5 - Настройка прав доступа на папки и Брандмауэра Windows

Кроме того в статье содержится информация как зайти на опубликованный сайт
6. Доступ к опубликованной информационной базе

А также информация о используемых ресурсах
7. Используемые ресурсы

1. Регистрация базы на серверах 1С и SQL

1.1. Запустить Сервер 1С

 После установки 1С необходимо убедиться что сервер 1С запущен. Автор обычно запускает сервер вручную. Но если вы уверены что сервер 1С запущен, то этот шаг делать не надо.


1.2. Зарегистрировать кластер 1С

Запустить утилиту администрирования серверов 1С:


В открывшемся окне зарегистрировать новый центральный сервер 1С предприятия:



В появившемся окне ввести сетевое имя компьютера, на котором запущен 1С Сервер (или его IP-адрес):

1.3. Зарегистрировать базу 1С на сервере SQL

Для начала регистрации базы необходимо запустить приложение 1С. В появившемся окне "Запуск 1С:Предприятия" регистрируем новую базу нажатием на кнопку "добавить":


Выбираем "Создание новой информационной базы":

В появившемся окне есть возможность создать базу из шаблона, или создать новую пустую базу (в последствии можно будет загрузить базу, загрузить конфигурацию или создать свою конфигурацию):


Жмем кнопку далее, вводим название базы и тип расположения базы на сервере:


жмем далее и заполняем поля:
При этом необходимо заметить, что поле "Имя базы данных" - это названия базы на SQL сервере. А поле "Имя информационной базы" - название базы на сервере 1С.
После чего выбираем вариант аутентефикации в 1С (Выбирать автоматически) и жмем кнопку "Готово":

1.4. Загрузить или создать конфигурацию 1С

Запустить конфигуратор с базой:


Загрузить ранее выгруженную информационную базу:

2. Настройка IIS на сервере

Для этого пункта информация была взята из статьи: http://infostart.ru/public/71480/

2.1. Проверка установленных компонент IIS

Для работы веб-клиента 1С:Предприятия необходимы службы IIS, которые небыли установлены по умолчанию при установке Windows 8.1 x64.
Для их установки следует перейти "Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов Windows". В появившемся дереве, в ветке "Службы IIS – Службы интернета - Компоненты разработки приложений" отметить все компоненты, как показано на рисунке. Затем нажать кнопку "Ок":

2.2. Разрешение 32-разрядных приложений в пуле приложений

Веб-клиент 1С:Предприятия 8.3 является 32-разрядным приложением. Поэтому для 64-разрядной ОС необходимо разрешить работу оных в пуле приложений сервера IIS. Для этого необходимо перейти "Пуск - Панель управления – Администрирование – Диспетчер служб IIS". В диспетчере служб выбрать "Пулы приложений – DefaultAppPool – Дополнительные параметры". В списке дополнительных параметров переменной "Разрешены 32-разрядные приложения" установить значение "True":


Установить значение в True для параметра "Разрешены 32-разрядные приложения":

2.3. Установка удостоверения пула приложений в качестве удостоверения анонимного пользователя

По умолчанию в качестве анонимного пользователя установлен пользователь IUSR, которого нет в системе. Дабы не создавать оного можно просто включить удостоверение пула приложений в качестве удостоверения анонимного пользователя. Для этого необходимо перейти "Пуск - Панель управления – Администрирование – Диспетчер служб IIS". В диспетчере служб перейти в "Проверка подлинности:



На пункте "Анонимная проверка подлинности" вызвав контекстное меню "изменить":

В открывшемся диалоге отметить "Удостоверение пула приложений". Закрыть диалог, нажав кнопку "ОК".

3. Публикация WEB-приложения из 1С

Для публикации приложения необходимо иметь полный доступ на папку проектов IIS. Есть 2 способа публикации приложения из 1С. 1 - сначала создать необходимую папку в каталоге "C:\inetpub\wwwroot\" в нашем случае это папка с названием "Base1C" и дать права текущему пользователю на полный доступ на эту папку. 2 способ зайти в 1С из под администратора а потом дать необходимые права на папку уже опубликованного приложения. В э статье описан второй путь.

3.1. Для публикации конфигурации на сервере IIS необходимо запустить 1С из под администратора:

Вызываем контекстное меню на ярлыке 1С и выбераем "Запуск от имени администратора"



Выбираем базу и запускаем 1С в режиме конфигуратора:


3.2. Запустить публикацию на web-сервере

Для начала публикации переходим в меню "Администрирование - Публикация на веб-сервере":



В появившемся окне указать имя публикации, указать веб-сервер и указать путь на веб-сервере.
1С позволяет публиковать на любой доступный веб-сервер в сети с помощью утиллиты webinst. В статье использовался пример публикации на локальный компьютер:


Более подробную информацию по пунктам в окне публикации можно получить из 1С конфигуратора нажав на кнопку F1.

4. Настройка библиотек для работы в 64-х разрядной ОС

После публикации на веб-сервере из конфигуратора, в случае использования 64-х разрядной операционной системы на компьютере который используется в качестве сервера IIS, необходимо настроить работу с библиотеками 1С. Это делается каждый раз после публикации на веб-сервере.

Для настройки библиотек необходимо выполнить следующие действия.
Открываем через Панель Управления - Администрирование Диспетчер служб IIS.
В открывшемся окне раскрываем группу "Сайты" и наш сайт (в примере Base1C).
Нажимаем на "Сопоставление обработчиков" в группе IIS:

В открывшемся окне ищем строку с именем "ISAPI-dll" и нажимаем пункт меню в действиях "Добавить сопоставление сценария..."

В открытом окне "Добавление сопоставления сценария" в поле "Путь запроса" ввести символ * (звездочка, т.е. все). В поле "Исполняемый файл" выбрать библиотеку wsisapi.dll с каталога установленной 32-х разрядной версии 1С. В поле "Имя" можно задать любое имя (в примере Имя = 1С):


Некоторые специалисты в других статьях указывают что надо отключить ограничение сопоставления запроса. Автор не нашел зависимости работы этой отметки для программы 1С. Данная информация приводиться информативно, может быть кому то понадобиться.
Настроить ограничения запроса можно нажав на кнопку "Ограничение запроса" в окне Добавление сопоставления сценария. В открывшемся окне  убрать отметку с "Вызывать обработчик только при сопоставлении запроса с:":


Нажать кнопку Ok.
На появившейся вопрос ответить "Да":

После чего необходимо перезапустить службу IIS. Для этого необходимо перейти в корень панели "Подключения" (на название сервера) и в меню действия справа выбрать "Перезапустить":



После чего можем проверить, работает ли подключенная библиотека. Для этого переходим в "Ограничения ISAPI и CGI":


И посмотреть, есть ли ссылки для необходимых обработчиков (dll):


Еще раз следует отметить, что данную процедуру настройки библиотек следует делать каждый раз после публикации приложения из 1С.

5. Настройка прав доступа на папки и Брандмауэра Windows

5.1. Настройка доступов к папкам

Для правильной работы всех пользователей, а не только администраторов с опубликованным веб-приложениям необходимо настроить некоторые права на папки.
Для настройки прав на пакпи необходимо в проводнике Windows вызвать контекстное меню для необходимой папки и выбрать в контекстном меню пункт "Свойства" и перейти на закладку "Безопасность"

В данном случае речь идет о правах на 3 папки:
1. "C:\Program Files (x86)\1cv8\8.3.5.1088\bin\" (в этой папке находится библиотека wsisapi.dll) (номер релиза "8.3.5.1088" может быть другой)
2. C:\inetpub\wwwroot\Base1C (это созданная нами папка которая будет использоваться для доступа из интернет)
3. КаталогБазы (это база 1С, если используется файловый тип базы), в нашем примере база храниться на SQL сервере, поэтому каталога базы нет и доступа на него давать не надо.
Для всех папок (Пункты: 1,2,3) необходимо для пользователя IIS_IUSRS установить доступ "Полный доступ":

Для папки с нашей базой (Пункт 3) данных для пользователя Users, установить доступ "Изменение".

5.2. Настройка доступов к портам в Брандмауэре Windows

Если планируется использовать web-доступ не только локально, то необходимо настроить Брандмауэр Windows для доступа с внешних ресурсов, указав порт доступа 80. Автор не использовал настроек брандмауэра, а просто отключил его:

6. Доступ к опубликованной информационной базе


Для доступа к информационной базе надо зайти в обозреватель интернет (поддерживающий HTML5, например "многими любимый" Internet Explorer) и ввести в адресную строку:
http://localhost/Base1C
или по IP http://127.0.0.127/base1c

Инвентаризация

Details
Written by: po3dno
Category: Power Shell
Created: 01 October 2014
Hits: 1205

param($a)

 

#if (test-connection $a){

Write-Host "Проверка компьютера " -ForeGroundColor Green $a

  

Read more …

CMD или PowerShell

Details
Written by: po3dno
Category: Other
Created: 01 October 2014
Hits: 1292

 

Ping

На замену утилите ping в PowerShell пришел командлет Test-Connection, входящий в состав модуля Microsoft.PowerShell.Management. Для примера пропингуем сервер SRV3 командой:

Test-Connection -ComputerName SRV3

Можно указать для проверки сразу несколько серверов, например перечислив их через запятую:

Test-Connection -ComputerName SRV3, SRV4

или считав из файла:

Test-Connection -ComputerName (Get-Content serverlist.txt)

Еще командлет умеет запускать проверку сразу с нескольких точек. Например, для проверки сервера SRV4 с локального компьютера и с сервера SRV3 воспользуемся следующей командой:

Test-Connection -Source localhost, SRV3 -ComputerName SRV4

Параметр -Source появился только в PS 3.0. В некоторых случаях очень удобно, однако при его использовании может понадобится ввести учетные данные:

Test-Connection -Source localhost, SRV3 -ComputerName SRV4 -Credential Contoso\administrator

командлет Test-Connection

 

Примечание. Командлет использует класс Win32_PingStatus, поэтому для проверки соединения можно воспользоваться командой Get-WmiObject Win32_PingStatus, ее действие аналогично команде Test-Connection.

Tracert

Следующее средство, обычно применяемое после ping — это трассировка с помощью утилиты tracert. В PowerShell для этих целей можно задействовать командлет Test-NetConnection из модуля NetTCPIP. Не смотря на похожее название, по функционалу он довольно сильно отличается от предыдущего командлета, хотя включает в себя и его возможности. Кроме проверки TCP соединения вывод может включать в себя список IP интерфейсов, разрешение DNS-имен (DNS lookup), правила IPsec и проверку возможности установления соединения. В самом простом варианте команда выглядит так:

Test-NetConnection -ComputerName ya.ru

Для пошагового вывода в стиле tracert можно сделать так:

Test-NetConnection -ComputerName ya.ru -TraceRoute

Также можно указать определенный порт и сделать детализованный вывод:

Test-NetConnection -ComputerName ya.ru -Port 80 -InformationLevel Detailed

командлет Test-NetConnection

IPConfiig

Первое, для чего используют Ipconfig — это просмотр сетевых настроек. В PowerShell для этих целей можно воспользоваться командлетом Get-NetIPConfiguration. Так для подробного вывода настроек для всех сетевых интерфейсов (аналог ipconfig /all) введем команду:

Get-NetIPConfiguration -All -Detailed

командлет Get-NetIPConfiguration

 

Для операций с клиентом DNS воспользуется командлетами PowerShell из модуля DNSClient. Для очистки содержимого локального кеша DNS вместо ipconfig /flushdns выполним команду Clear-DnsClientCache, для перерегистрации вместо ipconfig /registerdns — команду Register-DnsClient. Вывести содержимое кеша (ipconfig /displaydns) можно командой Get-DnsClientCache. Также можно выводить не все содержимое кеша, а посмотреть только определенную запись, например:

Get-DnsClientCache -Entry www.bing.ru

командлет Get-DNSClientCache

Nslookup

Для проверки DNS имен вместо nslookup можно воспользоваться командлетом Resolve-DnsName, входящий в состав модуля DNSClient. Синтаксис у них похожий, например:

Resolve-DnsName -Name SRV3

Можно указать тип записи (A, PTR, SRV), указать, откуда брать данные и выбрать определенный DNS-сервер, отличный от дефолтного:

Resolve-DnsName -Name SRV3 -Type A -DNSOnly -Server 192.168.0.1

командлет Resolve-DNSName

Netstat

Утилита Netstat — еще один инструмент сетевой диагностики, показывающий сетевые подключения. Заменим ее командлетом Get-NetTCPConnection. Следующая команда выведет все подключения к интернету, имеющие статус установленных (Established):

Get-NetTCPConnection -State Established -AppliedSettings Internet | ft -auto

командлет Get-NetTcpConnection

Route

Для управления маршрутизацией вместо утилиты Route воспользуемся несколькими командлетами из модуля NetTCPIP. Для примера попробуем добавить новый постоянный маршрут до сети 172.16.0.0 с маской 255.255.0.0 и шлюзом 192.168.0.1 для интерфейса с номером 3. Вот так это можно сделать с помощью Route:

Route -p add 172.16.0.0 mask 255.255.0.0 192.168.0.1 -if 3

А вот так при использовании PowerShell:

New-NetRoute -DestinationPrefix ″172.16.0.0/16″ -InterfaceIndex 3 -NextHop 192.168.0.1

Для просмотра таблицы маршрутизации вместо route print возьмем командлет Get-NetRoute.  Выведем все маршруты для протокола IPv4 командой:

Get-NetRoute -AddressFamily IPv4 | ft -auto

New-NetRoute и Get-NetRoute

 

В PS 4.0 появился интересный командлет Find-NetRoute, с помощью которого можно вывести маршрут для одного конкретного  IP-адреса, например:

Find-NetRoute -RemoteAddress 10.0.0.1

Для удаления маршрута (вместо route delete) также есть отдельный командлет Remove-NetRoute, например:

Remove-NetRoute -DestinationPrefix ″172.16.0.0/16″ -InterfaceIndex 3 -NextHop 192.168.0.1 -Confirm:$false

Для изменения уже созданного маршрута вместо route change можно воспользоваться связкой Remove-NetRoute&New-NetRoute.

Netsh

Утилита Netsh (Network shell) предназначена для выполнения различных задач по настройке сети. Поскольку функционал ее достаточно широк, для сравнения возьмем одну из типичных задач по настройке сетевого интерфейса.  Предположим, нам необходимо проверить настройки сетевого интерфейса, и если включен DHCP - отключить его и настроить статическую адресацию. С помощью netsh это будет выглядеть следующим образом:

Netsh interface IPv4 show addresses
Netsh interface IP set address ″Ethernet″ static 192.168.0.11 255.255.255.0 192.168.0.1
Netsh interface IP add DNSServers ″Ethernet″ 8.8.8.8

И тоже самое, но уже с помощью PowerShell:

Get-NetIPAddress -InterfaceIndex 3 -AddressFamily IPv4
Set-NetIPInterface -InterfaceIndex 3 -Dhcp disabled
New-NetIPAddress -InterfaceIndex 3 -IPAddress 192.168.0.11 -PrefixLength 24 -DefaultGateway 192.168.0.1
Set-DNSClientServerAddress -InterfaceIndex3 -ServerAddresses (″8.8.8.8″)

изменение сетевых настроек из PowerShell

 

Что интересно, для изменения сетевых настроек придется их удалить и создать заново. Например IP-адрес можно изменить так:

Remove-NetIPAddress -InterfaceIndex 3 -IPAddress 192.168.0.11 -PrefixLength 24 -DefaultGateway 192.168.0.1 -Confirm:$false
New-NetIPAddress -InterfaceIndex 3 -IPAddress 192.168.0.12 -PrefixLength 24 -DefaultGateway 192.168.0.1 -Confirm:$false

изменение IP-адреса из powerShell

 

Примечание. Для изменения IP-адреса логично было бы воспользоваться специально предназначенным для этого командлетом Set-NetIPAddress, но не тут-то было :) При попытке изменить настройки этот командлет стабильно выдает ошибку. Как выяснилось, этот командлет не может изменить сам IP-адрес, а только некоторые его свойства.

Gpupdate и Gpresult

Для обновления групповых политик вместо Gpupdate в модуле GroupPolicy есть командлет Invoke-GPUpdate. Синтаксис у них практически один и тот же, например принудительное обновление политик пользователя выполняется командой:

Gpupdate /target:user /force
Invoke-GPUpdate -Target user -force

Ну и посмотреть результирующие политики вместо Gpresult можно командлетом Get-GPResultantSetOfPolicy. Осуществить вывод результатов в HTML-файл можно командой:

Get-GPResultantSetOfPolicy -ReportType Html -Path C:\gpo.html

командлет Invoke-GPUpdate

Управляем сервером Windows из командной строки

Details
Written by: po3dno
Category: Other
Created: 01 October 2014
Hits: 1307

Базовые операции

На самом деле развитие консольных утилит все это время тоже не стояло на месте. Список команд не сильно изменился: net, netdom, whoami, скрипт активации slmgr.vbs, программа управления службами sc, сетевые утилиты для настройки и диагностики ipconfig, netsh, netstat/nbtstat, arp/getmac, ping, tracert, nslookup и многие другие. После анонса PowerShell появилась официальная информация, что привычные утилиты развиваться больше не будут, на смену им придут командлеты.

Такая судьба постигла консольный вариант диспетчера сервера ServerManagerCmd.exe и утилиту установки компонентов OCSetup.exe, которые, появившись в Win2008, пропали уже в Win2012. Теперь для установки компонентов из консоли используются командлеты Install-WindowsFeature и Add-WindowsFeature. Консольные утилиты по-прежнему привычнее, чем командлеты, но результат, полученный при помощи PowerShell, позволяет выбирать больше параметров, фильтровать их, обрабатывать в скриптах. А главное — теперь нужные данные можно получить не только с локальной, но и с удаленной системы, и в удобном виде. Все это говорит о том, что нужно уже быть готовым к переменам.

В последних редакциях ОС ярлык для запуска cmd.exe спрятали подальше в меню. Правда, и особой необходимости в его использовании нет, так как все традиционные консольные команды можно вводить непосредственно в консоли PowerShell (хотя есть и нюансы), обладающей несомненным преимуществом — автодополнением (по Tab). Постепенно на замену старым добрым утилитам появляются соответствующие командлеты, которые выдают аналогичный результат. Попробуем разобраться со всеми операциями по порядку, рассмотрим типичные задачи с использованием консольных команд и PowerShell.

Проверяем состояние сетевых интерфейсов при помощи PowerShell

Проверяем состояние сетевых интерфейсов при помощи PowerShell

Сразу после установки операционная система получает имя, сгенерированное случайным образом. Чтобы переименовать систему и подключить ее к домену, используется утилита netdom:

> netdom renamecomputer Win01 /newname:SRV01
> netdom join SRV01 /Domain:example.org /OU:ou=ouname,dc=example,dc=org /UserD:DomainAdmin /PasswordD:password

Те же операции при помощи PowerShell выглядят даже понятней.

PS> Rename-Computer –NewName SRV01
PS> Add-Computer -domainname example.org -OUPath "OU=ouname=example,DC=org"

После установки системы или компонента, возможно, потребуется настройка режима запуска сервиса. В консоли для этого есть две команды:

> Sc config winrm start= auto
> Net start winrm

А вот командлетов для управления запуском сервисов несколько: Get-Service, Start-Service, Set-Service, Stop-Service, Resume-Service. Их назначение говорит само за себя.

PS> Set-Service -name winrm -status Running -StartupType Automatic

Sconfig.cmd

Запоминать команды админы Win не очень любят, в системе можно найти удобную оболочку для большинства консольных команд Sconfig.cmd. Изначально она разрабатывалась для Server Core, но в Win2012R2 доступна и в режиме полной установки сервера. Sconfig не требует знания всех ключей и позволяет, перемещаясь по 15 пунктам, быстро произвести основные установки или выполнить некоторые команды: добавить сервер в домен или рабочую группу, сменить имя компьютера, добавить локального администратора, настроить удаленное управление через WinRM и удаленный рабочий стол, настроить сеть, Windows Update, время и дату, перезагрузить и выключить компьютер. Нужно помнить, что скрипт использует стандартные консольные утилиты и если они пропадут в следующем релизе, то, скорее всего, не будет и Sconfig.

Sconfig.cmd упрощает работу ленивым админам

Sconfig.cmd упрощает работу ленивым админам

А вот с монтированием сетевых дисков не все так просто. Традиционно эта операция выполняется при помощи net use:

> net use E: \\SRV01\users /Persistent:Yes

Его аналогом считается командлет New-PSDrive (от PowerShell Drive), но здесь есть проблема, которая многим неочевидна и порождает кучу вопросов.

PS> New-PSDrive –Name E –PSProvider FileSystem –Root \\SRV01\users

При помощи New-PSDrive создается так называемый диск PowerShell, который доступен только в текущем сеансе консоли и только в PowerShell. То есть при помощи проводника, WMI, средствами .NET Framework, net use подключиться к такому диску нельзя. Это неочевидно, но в документации это явно прописано. Просто ее мало кто читает.

Чтобы постоянно использовать диск, необходимо экспортировать сеанс, в котором добавлен диск, или сохранить команду New-PSDrive в профиле PowerShell, или изначально использовать командлет New-Object:

PS> $net = New-Object -ComObject WScript.Network
PS> $net.MapNetworkDrive("E:", "\\SRV01\users")

И только в PowerShell 4.0 появился параметр –Persist, позволяющий монтировать PS-диски постоянно.

PS> New-PSDrive –Name E –PSProvider FileSystem –Root \\SRV01\users –Persist

Для работы с дисками и разделами консоль Windows предлагает две утилиты: diskpart и fsutil. Они не очень удобны и информативны, а поэтому малопопулярны и их часто заменяют альтернативными разработками. Получим статистику по разделу.

> fsutil fsinfo statistics C:

Команда «Get-Command disk» выдаст несколько командлетов, но в нашем примере они не очень помогают, и, чтобы получить информацию о свободном месте, по-прежнему приходится обращаться к WMI:

PS> Get-WmiObject Win32_LogicalDisk -ComputerName SRV01 -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace

Доступ к файлам в Win традиционно регулируется двумя утилитами — takeown и icacls (есть еще и cacls, но она признана устаревшей), вполне справляющимися со своими обязанностями. Например, чтобы сделать текущую учетную запись (должна входить в группу админов) владельцем каталога, достаточно ввести:

> takeown /f c:\temp пуе

Утилита icacls позволяет управлять списками контроля доступа. Для примера, сохраним ACL в файл и восстановим его:

> icacls c:\temp\* /save acl.txt /T
> icacls c:\temp\ /restore acl.txt 

Та же операция при помощи PowerShell выглядит проще:

PS> Get-Acl c:\temp | Set-Acl -Path c:\temp

Управление BYOD при помощи PowerShell

Одна из самых больших проблем, с которыми сталкиваешься при работе с моделью BYOD, — отсутствие управления устройствами пользователей. В Win2012R2 этим заправляет Device Registration Service (DRS), при регистрации на устройство устанавливается сертификат, а в AD создается новый объект устройства.

Этот объект устанавливает связь между пользователем и устройством, создавая нечто вроде двухфакторной аутентификации. Пользователи получают доступ к корпоративным ресурсам, которые были недоступны, когда они работали за пределами доменной сети. Для работы потребуется роль Active Directory Federation Services (AD FS) и собственно служба DRS (устанавливается при помощи командлета Install-AdfsFarm). Теперь инициализируем службу и приступаем к регистрации устройств пользователей.

PS> Initialize-ADDeviceRegistration -ServiceAccountName example\adfsfarm
PS> Enable-AdfsDeviceRegistration

В консоли AD FS Management переходим к Authentication Policies, выбираем Edit Global Primary Authentication и активируем Enable Device Authentication. Теперь, используя командлет Get-AdfsDeviceRegistration, можем просматривать и подтверждать устройства (подробнее).

Настройки сети

Комплект консольных сетевых утилит достаточно хорошо известен администраторам, ведь их приходится использовать довольно часто, как при установке, так и для диагностики. Настраивают сетевой интерфейс при помощи netsh interface. Для примера просмотрим список и для одного из доступных установим IP и DNS-сервер:

> netsh interface ipv4 show interfaces
> netsh interface ipv4 set address name="1" source=static address=192.168.1.10 mask=255.255.255.0 gateway=192.168.1.1.
> netsh interface ipv4 add dnsserver name="Local" address=8.8.8.8 index=1
Смотрим сетевые настройки

Смотрим сетевые настройки

Для установки и изменения параметров сетевого интерфейса при помощи PowerShell 3.0 и выше используются командлеты New-NetIPAddress и Set-NetIPAddress.

PS> Get-NetIPInterface
PS> Set-NetIPAddress –InterfaceAlias Ethernet –IPv4Address 192.168.1.10 –PrefixLength 24 –DefaultGateway 192.168.1.1
PS> Set-DNSClientServerAddress –InterfaceAlias Ethernet -ServerAddresses "192.168.1.10","8.8.8.8"

Причем New-NetIPAddress позволяет задавать несколько IP для одного интерфейса. Вместо InterfaceAlias можно использовать индекс InterfaceIndex, который легко узнать в выводе Get-NetIPInterface.

На смену команде route пришел набор командлетов, очень простых и понятных в использовании.

PS> Get-NetRoute
PS> New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "10.10.10.1" -InterfaceAlias Ethernet
Таблица маршрутизации, полученная при помощи route и Get-NetRoute

Таблица маршрутизации, полученная при помощи route и Get-NetRoute

Аналогом ping служат два командлета Test-Connection и Test-NetConnection (сокращенно tnc). Первый очень простой и напоминает обычный ping, второй позволяет проверить доступность определенного порта или системы с разных ПК. Например, посмотрим, на каких ПК в группе включен RDP, и проверим подключение к example.org с двух систем:

PS> Test-NetConnection -ComputerName example.org -source localhost, SRV02
PS> (Get-ADComputer -LDAPFilter "(name=office*)").DNSHostName | Test-NetConnection -Port 3389

Но иногда вместо одной команды придется запомнить несколько командлетов. Так, состояние сетевых интерфейсов традиционно можно узнать при помощи ipconfig. До Win2012/8, чтобы сделать то же самое при помощи PowerShell, приходилось обращаться непосредственно к WMI. Например, нам нужны МАС- и IP-адреса:

PS> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE | Select MACAddress,IPAddress

Переменная patch

В качестве команд Win может принимать любой файл с расширением exe, bat, cmd, com, js, msc и vbs, который расположен в текущем каталоге или прописан в переменной PATH. Просмотреть значение PATH очень просто. Для этого вводим «echo %PATH%» или используем команду set (set > filename.txt). В консоли PowerShell — «echo $Env:PATH» или «Get-ChildItem Env:». Чтобы изменить, просто дописываем нужный каталог:

> set PATH=%PATH%;C:\example

или используем GUI (My Computer -> Свойства системы -> Дополнительно -> Переменные среды -> Path). Средствами PowerShell изменить значение можно, установив SetEnvironmentVariable:

PS> [environment]::SetEnvironmentVariable('path',"$env:Path;C:\example",'Machine')

И только в PowerShell 3.0 появился простой аналог ipconfig, точнее, несколько. Например, командлет Get-NetIPAddress выдает подробную информацию об интерфейсах, а Get-NetIPConfiguration (алиас gip) позволяет получить информацию о сетевых настройках: IP интерфейса, шлюза и DNS. Добавив дополнительные параметры, например –Detailed, получим больше данных.

Профильтровав их вывод, мы можем заменить «ARP –a» выводящую таблицу МАС-адресов и GETMAC — отображающую MAC-адреса сетевых адаптеров локального или удаленного компьютера. Есть уже и готовые скрипты. Например, PingMultipleServerWithTraceroute.ps1 (goo.gl/0iLeyg) позволяет проверить подключение к нескольким серверам и запустить аналог tracert к неответившим системам.

Управление WFAS

Настройка брандмауэра Windows в режиме повышенной безопасности WFAS (Windows Firewall with Advanced Security) традиционно производится при помощи netsh advfirewall, появившейся в ОС начиная с Win2k8/Vista и практически не изменившейся с тех пор. Контекст advfirewall позволяет использовать семь команд (export, import, dump, reset, set, show и help) и четыре субконтекста (consec, firewall, mainmode и monitor). Просмотреть подробности можно, использовав ключ help или ‘/?’, да и в Сети доступно достаточное количество примеров. Например, команда set позволяет сконфигурировать профили, show — просмотреть состояние. Смотрим настройки по умолчанию, активируем профили и для Domain действием по умолчанию установим блокировку.

> netsh advfirewall show allprofiles
> netsh advfirewall set allprofiles state on
> netsh advfirewall set domainprofile firewallpolicy blockinbound

Официальная информация гласит, что в следующих релизах netsh может пропасть, а использовать следует командлеты PowerShell, позволяющие к тому же контролировать еще больше функций. Командлеты NetSecurity доступны только в PS 3.0, для их использования в Win2012/8 их необходимо импортировать Import-Module NetSecurity. При помощи Get-Command firewall получим список из 27 командлетов (полный список командлетов модуля — goo.gl/Aj9Mg4). Ситуацию упрощает то, что названия командлетов пересекаются с командами netsh.

Настройкой Windows Firewall можно управлять при помощи почти 30 командлетов

Настройкой Windows Firewall можно управлять при помощи почти 30 командлетов

Теперь тот же пример, но средствами PS:

PS> Get-NetFirewallProfile
PS> Set-NetFirewallProfile -All -Enabled True
PS> Set-NetFirewallProfile –Name Domain –DefaultInboundAction Block

Как видим, командлеты выглядят даже проще. Вместо параметра All можно указать на конкретный профиль: –Profile Domain,Public,Private.

Смотрим профили Windows Firewall

Смотрим профили Windows Firewall

Доступны и прочие функции. Например, можем исключить Ethernet-интерфейс из профиля Public.

PS> Set-NetFirewallProfile -name Public -DisabledInterfaceAliases Ethernet

Чтобы вернуть настройки в исходное состояние, достаточно вместо Ethernet установить NotConfigured. Дополнительные параметры командлета Set-NetFirewallProfile позволяют настроить журналирование, добавить IP, порт, протокол и многое другое. Все манипуляции с правилами производятся при помощи семи командлетов: New|Set|Copy|Enable|Disable|Remove|Rename-NetFirewallRule. Чтобы просмотреть установленные правила, используем командлет Get-NetFirewallRule, при помощи фильтров мы можем легко отобрать нужные. Например, блокирующие и все, что касается IE:

PS> Get-NetFirewallRule -Enabled true -Action block 
PS> Get-NetFirewallRule -DisplayName “*IE*”

Создадим правило, блокирующее исходящие соединения для IE в двух профилях.

PS> New-NetFirewallRule -Program “C:\Program Files\Internet Explorer\iexplore.exe” -Action Block -Profile Domain, Private -DisplayName “Block IE” -Description “Block IE” -Direction Outbound 

Теперь к правилу можем добавить протокол, порт и IP удаленной и локальной системы.

PS> Set-NetFirewallRule -DisplayName “Block IE” -Protocol TCP -RemotePort 80 -RemoteAddress “10.10.10.1-10.10.10.10” -LocalAddress “192.168.1.10”

При создании или изменении мы можем группировать правила, используя параметр –Group, и впоследствии управлять не одним правилом, а всеми входящими в группу, при помощи -DisplayGroup. Чтобы отключить правило, воспользуемся

PS> Disable-NetFirewallRule -DisplayName “Block IE”

Заключение

Вполне очевидно, что в будущем админу все больше и больше придется выполнять настройки не при помощи GUI, а используя средства командной строки. Это быстрее, позволяет автоматизировать практически все задачи и легко управляться с большим количеством серверов.

INFO

Список параметров командлета можно узнать при помощи Show-Command, например Show-Command Get-NetFirewallRule.

Install .NET Framework 3.5 on Windows Server 2012 and Windows Server 2012 R2

Details
Written by: po3dno
Category: Other
Created: 01 October 2014
Hits: 1332

1. Go to a command prompt and enter this:

dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess

Note: Source should be the Windows installation disc. In my case, this was located on D:

Bug when adding .net framework 3.5 in Server 2012

2. Go down to “Specify an alternate source path” and enter “d:\sources\sxs” as the path.

Specify alternate source path windows server 2012 .net framework 3.5

Specify alternate source path windows server 2012 .net framework 3.5

Now you should see this under your Features list:

.NET Framework 3.5 feature installed on Windows Server 2012

  1. Сreate a bootable Windows 8 USB using Diskpart
  2. Windows shell commands to get system/process info
  3. Powershell post image
  4. Права на редактирование группы рассылки

Subcategories

Power Shell Article Count:  53

C# Article Count:  10

Perl Article Count:  1

Exchange Server Article Count:  15

Other Article Count:  24

MSSQL Article Count:  17

Windows Article Count:  25

MariaDB Article Count:  3

Linux Article Count:  8

Docker Article Count:  2

pg Article Count:  2

Page 24 of 32

  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

Login Form

  • Forgot your password?
  • Forgot your username?

Statistics

  • Users 2
  • Articles 176
  • Articles View Hits 157832