Авторизация



Теги сайта



0х0000007b 1c access control list acl activation active directory ad roles add route adexplorer apache authentication to zabbix bare metal recovery bg zsh bicycle books bruteforce centos centos packet certificate change net adapter name chap chkrootkit chmod cisco class clipboard cmd configuring cpu cores cron crontab csc custom object cut cvsup cvsup-without-gui db dekorator dev null 2 1 dhcp dhcp reservation digitally signing script disable ipv6 diskpart dism django dns domain naming master domain roles download download powershell enabled encapsulation english english language esx eventlog fail2ban fastest_cvsup fedora fg zsh field formatdatabase freebsd fsmo get-aduser hardware https hyper-v idioms iis info php inheritance iperf iptables iscsi jobs kernel panic ldap ldap аутентификация zabbix limit lingualeo linux malware posix mcitp mcsa mcse memory check method microsoft mod_ssl mount mssql mysql mysql user password netcache network network config network load balance cluster network scripts nginx nlb num lock numlock oop openssl pap partition pdc permissions pfx php pipeline pkg_version polymorphism ports upgrade portupgrade posix powershell ppp puppet pwdlastset python rdp regedit registry remote enable restrictions reverse proxy rhel rid rope jumping bridge мост прыжок высота route add route freebsd routing protocol rpm sc sc sdset sc sdshow schema scope script output secure web security services set dns servers set ip address sftp shell script show variables snmp sound scheme sounds speed ssh ssl standard-supfile supfile switch switchport sync syncronization task sсheduler tempdb transfer role tripplite monitoring tweaks unix user must change password at next logon utf8 vim vlan vmware w32tm web windows windows 2003 r2 windows 2008 r2 windows firewall windows server windows server 2012 windows server backup windows service permissions windows пингалка winre wsus xargs yum zabbix zabbix external check zabbix ldap authentication zsh автоматическое обновление портов freebsd автономные файлы активация английский язык база данных безопасность active directory буфер вело велосипед видео внешняя проверка zabbix вредоносное программное обеспечение posix задание двумерного массива захват ролей dc звуки звуковая схема идиомы иероглифы киев кодировка командная строка конфигурация сети маршрутизация маршруты в freebsd маршруты в redhat linux область обновление портов ограничения windows основные команды пакеты centos перевод передача ролей dc перенос планировщик задач подписываем сценарий powershell покатушки полет над днепром проблемы кодировки протокол путь развития в it разрешения служб windows регистрируем cmd скриптом недоступность хоста реестр резервирование ip скриптом роли домена русские символы синхронизация скачать скачать powershell скачать книгу скорость сети списки контроля доступа тарзанка твики фоновые процессы цикл mssql

Главная страница
Полезные твики Windows. Автоматизация на PowerShell Печать

Каждый раз при переустановке операционной системы Microsoft Windows 8.1 или Windows 7 многие из нас сталкиваются с одними и теми же рутинными задачами, цель которых привести рабочую среду к более удобному состоянию, позволяющему наилучшим образом выполнять свою работу, не задумываясь об остальном. В этой статье я поделюсь простыми и нужными твиками для Вашей операционной системы Microsoft (версии Windows 7 и выше).

Точно следуя написанному, Вы сможете автоматизировать следующее:

  • Автоматический перенос пользовательских папок с системного диска C: на диск D: с миграцией существующих данных
  • Автоматическое переименование метки дисков C: и D: (изменение названия логических дисков)
  • Заблокировать надоедающую рекламу в настольной версии Skype
  • Заблокировать отправку шпионских данных операционной системой

Приведенные твики можно скомпоновать в единый PowerShell скрипт по Вашему желанию. Таким образом Вы существенно снизите ваши трудовые затраты, а главное свое время.

Почему PowerShell? Зачем он нам нужен?

Учитывая, что PowerShell это скриптовый язык, не требующий предварительной компиляции, Вы всегда можете самостоятельно дополнить тело скрипта. Тем самым быстро расширив его функционал либо изменив необходимую Вам настройку. Кроме того, из PowerShell Вы сможете без проблем запустить внешнюю команду или исполняемый файл с необходимыми аргументами, что еще больше расширяет возможности написания сценария.

На мой взгляд, язык сценариев Microsoft PowerShell в дальнейшем будет стремительно развиваться и все больше и больше пользователей, в том числе и пользователей клиентских рабочих станций, будут прибегать к его использованию в своих нуждах. Также не станет удивлением, если через некоторое время Microsoft добавит базовый функционал PowerShell и в свои мобильные версии операционных систем, устанавливаемые на подобные смартфоны Windows Phone 8.1 http://price.ua/smartfony_windows_phone_8_1/ccid1871.html

Главное преимущество PowerShell по сравнению со многими другими командными оболочками - это унифицированные команды (командлеты). Один раз поняв их принцип, можно будет писать серьезные сценарии, даже не имея доступа к интернет и пользуясь только встроенной справкой Get-Help и командлетом Get-Command

Как с этим работать? Куда вставлять код PowerShell?

Человек, который ни разу не работал с PowerShell, резонно задаст первый вопрос: "Куда же вставлять весь этот код?". Ответ прост: вставлять нужно в саму оболочку, запущенную с повышенными правами администратора.

В меню "Пуск" в строке поиска пишем "powershell", после чего в найденных результатах нажимаем правой кнопкой мыши на "Windows PowerShell" и выбираем "Запуск от имени администратора". Если все сделано правильно, откроется синее окошко. Это и есть оболочка Windows PowerShell.

powershell-tweaks-01

 

Следует также знать что для того, чтобы вставить текст из буфера обмена в оболочку PowerShell, нужно нажать правую кнопку мыши в окне оболочки (сочетание Ctrl+V тут по умолчанию работать не будет). Создавать же сценарии лучше в специальной оболочке PowerShell ISE.


Автоматический перенос пользовательских папок с системного диска C: на диск D:. Миграция существующих данных

Конечно было бы неплохо, чтобы на Вашем компьютере были установлены два дисковых накопителя. Однако даже если у Вас один винчестер, который логически поделен на два раздела C: (система) и D: (данные), я все равно рекомендую держать всю пользовательскую информацию на отдельном от системного разделе (хотя бы для того, чтобы при необходимости отформатировать раздел с Windows, не нужно было задумываться на счет сохраненных документов, изображений, видео, аудио и других важных файликов, сохраненных на Рабочем столе).

 
if (Test-Path -LiteralPath 'D:\')
{
    $curUser = "$env:USERDOMAIN\$env:USERNAME"

    if (!(Test-Path -LiteralPath 'D:\_DESKTOP'))
        {
            Write-Host -ForegroundColor DarkGray "START: Migrate Desktop"

            New-Item -Path "D:\_DESKTOP" -ItemType Directory -Force | Out-Null
            Start-Process -FilePath "$env:SystemRoot\System32\xcopy.exe" -Wait -WindowStyle Minimized -ArgumentList """$env:USERPROFILE\Desktop\*"" ""D:\_DESKTOP"" /C /H /K /O /X /R /E /I /G /Q /Y"
            $getDir = Get-Item -Path "D:\_DESKTOP"
            $getDir.Attributes = "Hidden, System"

            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_DESKTOP"" /grant:r *S-1-5-18:(OI)(CI)(F) /inheritance:r"
            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_DESKTOP"" /grant ""$curUser"":(OI)(CI)(F) /inheritance:r"

            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name 'Desktop' -Value 'D:\_DESKTOP' | Out-Null
            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name 'Desktop' -Value 'D:\_DESKTOP' | Out-Null
        }


    if (!(Test-Path -LiteralPath 'D:\_DOWNLOADS'))
        {
            Write-Host -ForegroundColor DarkGray "START: Migrate Downloads"

            New-Item -Path "D:\_DOWNLOADS" -ItemType Directory -Force | Out-Null
            Start-Process -FilePath "$env:SystemRoot\System32\xcopy.exe" -Wait -WindowStyle Minimized -ArgumentList """$env:USERPROFILE\Downloads\*"" ""D:\_DOWNLOADS"" /C /H /K /O /X /R /E /I /G /Q /Y"
            $getDir = Get-Item -Path "D:\_DOWNLOADS"
            $getDir.Attributes = "ReadOnly"

            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_DOWNLOADS"" /grant:r *S-1-5-18:(OI)(CI)(F) /inheritance:r"
            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_DOWNLOADS"" /grant ""$curUser"":(OI)(CI)(F) /inheritance:r"

            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name '{374DE290-123F-4565-9164-39C4925E467B}' -Value 'D:\_DOWNLOADS' | Out-Null
            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name '{374DE290-123F-4565-9164-39C4925E467B}' -Value 'D:\_DOWNLOADS' | Out-Null
        }


    if (!(Test-Path -LiteralPath 'D:\_DOCUMENTS'))
        {
            Write-Host -ForegroundColor DarkGray "START: Migrate Documents"

            New-Item -Path "D:\_DOCUMENTS" -ItemType Directory -Force | Out-Null
            Start-Process -FilePath "$env:SystemRoot\System32\xcopy.exe" -Wait -WindowStyle Minimized -ArgumentList """$env:USERPROFILE\Documents\*"" ""D:\_DOCUMENTS"" /C /H /K /O /X /R /E /I /G /Q /Y"
            $getDir = Get-Item -Path "D:\_DOCUMENTS"
            $getDir.Attributes = "ReadOnly"

            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_DOCUMENTS"" /grant:r *S-1-5-18:(OI)(CI)(F) /inheritance:r"
            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_DOCUMENTS"" /grant ""$curUser"":(OI)(CI)(F) /inheritance:r"

            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name 'Personal' -Value 'D:\_DOCUMENTS' | Out-Null
            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name 'Personal' -Value 'D:\_DOCUMENTS' | Out-Null
        }


    if (!(Test-Path -LiteralPath 'D:\_AUDIO'))
        {
            Write-Host -ForegroundColor DarkGray "START: Migrate Audios"

            New-Item -Path "D:\_AUDIO" -ItemType Directory -Force | Out-Null
            Start-Process -FilePath "$env:SystemRoot\System32\xcopy.exe" -Wait -WindowStyle Minimized -ArgumentList """$env:USERPROFILE\Music\*"" ""D:\_AUDIO"" /C /H /K /O /X /R /E /I /G /Q /Y"
            $getDir = Get-Item -Path "D:\_AUDIO"
            $getDir.Attributes = "ReadOnly"

            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_AUDIO"" /grant:r *S-1-5-18:(OI)(CI)(F) /inheritance:r"
            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_AUDIO"" /grant ""$curUser"":(OI)(CI)(F) /inheritance:r"

            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name 'My Music' -Value 'D:\_AUDIO' | Out-Null
            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name 'My Music' -Value 'D:\_AUDIO' | Out-Null
        }


    if (!(Test-Path -LiteralPath 'D:\_PICTURES'))
        {
            Write-Host -ForegroundColor DarkGray "START: Migrate Pictures"

            New-Item -Path "D:\_PICTURES" -ItemType Directory -Force | Out-Null
            Start-Process -FilePath "$env:SystemRoot\System32\xcopy.exe" -Wait -WindowStyle Minimized -ArgumentList """$env:USERPROFILE\Pictures\*"" ""D:\_PICTURES"" /C /H /K /O /X /R /E /I /G /Q /Y"
            $getDir = Get-Item -Path "D:\_PICTURES"
            $getDir.Attributes = "ReadOnly"

            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_PICTURES"" /grant:r *S-1-5-18:(OI)(CI)(F) /inheritance:r"
            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_PICTURES"" /grant ""$curUser"":(OI)(CI)(F) /inheritance:r"

            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name 'My Pictures' -Value 'D:\_PICTURES' | Out-Null
            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name 'My Pictures' -Value 'D:\_PICTURES' | Out-Null
        }


    if (!(Test-Path -LiteralPath 'D:\_VIDEO'))
        {
            Write-Host -ForegroundColor DarkGray "START: Migrate Videos"

            New-Item -Path "D:\_VIDEO" -ItemType Directory -Force | Out-Null
            Start-Process -FilePath "$env:SystemRoot\System32\xcopy.exe" -Wait -WindowStyle Minimized -ArgumentList """$env:USERPROFILE\Videos\*"" ""D:\_VIDEO"" /C /H /K /O /X /R /E /I /G /Q /Y"
            $getDir = Get-Item -Path "D:\_VIDEO"
            $getDir.Attributes = "ReadOnly"

            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_VIDEO"" /grant:r *S-1-5-18:(OI)(CI)(F) /inheritance:r"
            Start-Process -FilePath "$env:SystemRoot\System32\icacls.exe" -Wait -WindowStyle Minimized -ArgumentList """D:\_VIDEO"" /grant ""$curUser"":(OI)(CI)(F) /inheritance:r"

            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders' -Name 'My Video' -Value 'D:\_VIDEO' | Out-Null
            Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders' -Name 'My Video' -Value 'D:\_VIDEO' | Out-Null
        }
}

Для вступления изменений в силу нужно перезагрузить компьютер.

 

Автоматическое переименование метки дисков C: и D: (изменение названия логических дисков)

Еще один интересный сценарий автоматизации переименует Ваши логические диски C и D в определенный формат. Например, если у Вас в системе установлен один физический дисковый накопитель (попросту один винчестер), то ваши логические диски станут выглядеть таким образом: Disk-1_SYSTEM (C:) и Disk-1_WORK (D:). А если у Вас два физических дисковых накопителя, один из которых отформатирован под логический раздел C, а другой под логический раздел D, то ваши логические диски станут: Disk-1_SYSTEM (C:) и Disk-2_WORK (D:).

Write-Host -ForegroundColor DarkGray "START: Logical disks renaming"
[string]$DiskClabel = 'SYSTEM'
[string]$DiskDlabel = 'WORK'

foreach ($Drive in Get-WmiObject win32_diskDrive )
{
    [byte]$CurrentDisk = $Drive.Index + 1
    $did = $Drive.deviceid.replace('\','\\')

    foreach ( $Partition in Get-WmiObject -query ('associators of {win32_diskdrive.deviceid="' + $did + '"} where assocclass = win32_diskDriveToDiskPartition') )
    {
        foreach ($Disk in Get-WmiObject -query ('associators of {win32_diskpartition.deviceid="' + $Partition.deviceID + '"} where assocclass = win32_logicalDiskToPartition'))
        {
            switch ($Disk.DeviceID)
            {
                "C:" {$DiskClabel = "Disk-" + $CurrentDisk + "_SYSTEM"}
                "D:" {$DiskDlabel = "Disk-" + $CurrentDisk + "_WORK"}
            }

            if ( ($DiskDlabel -ne 'WORK') -and ($DiskClabel -ne 'SYSTEM') )
            {
                break
            }
        }
    }
}

Get-CimInstance Win32_LogicalDisk -Filter "deviceID = 'c:'" | Set-CimInstance -Property @{volumename= $DiskClabel}
Get-CimInstance Win32_LogicalDisk -Filter "deviceID = 'd:'" | Set-CimInstance -Property @{volumename= $DiskDlabel}

Для того, чтобы данный сценарий отработал в операционной системе Windows 7, нужно убедиться что версия оболочки PowerShell не ниже 3.0. Если версия ниже, понадобится предварительно установить dotNet Framework 4 (ссылка) и затем соответствующий пакет обновления PowerShell (ссылка).

 

Заблокировать надоедающую рекламу в настольной версии Skype

Надоели анимированные рекламные картинки в приложении Skype? Выполните следующий сценарий:

Write-Host -ForegroundColor DarkGray "START: Skype advertisement disabling"

$spyURLs = @(
"`n"
"`n"
"`n"
'# -----====== START BLOCK: Skype advertisement URLs disabling. Please visit http://Vam.in.UA ======-----'
'127.0.0.1 apps.skype.com' 
'127.0.0.1 api.skype.com' 
'127.0.0.1 static.skypeassets.com'
'127.0.0.1 rad.msn.com'
'127.0.0.1 adriver.ru'
'# -----====== END BLOCK: Skype advertisement URLs disabling. Please visit http://Vam.in.UA ======-----'
) 

Out-File -FilePath "$env:SystemRoot\System32\drivers\etc\hosts" -InputObject $spyURLs -Force -Append -Encoding default

 

Заблокировать отправку шпионских данных операционной системой

И напоследок хотелось бы поделиться сценарием, который занесет в файл hosts ссылки URL, на которые осуществляется отправка операционными системами Microsoft статистической информации. Тем самым предотвратив утечку Ваших данных.

Я не против поделиться некоторой статистической информацией, однако это не должны быть снимки моего Рабочего стола или веб-камеры и подобное. И при любых обстоятельствах, мне хотелось бы самостоятельно принимать решение отправлять ли какие-то статистические данные или нет. А так как в операционных системах по-умолчанию включены сбор и отправка Ваших данных и нет предложения выборочно отключить этот функционал, я буду солидарен с пользователями интернет, которые называют такие действия шпионскими.

На сегодняшний день уже многие сайты содержат новости об обновлениях KB3068708, KB3022345, KB3075249 и KB3080149, которые ставятся на Windows 7 или Windows 8.1. Эти обновления добавляют в такие операционные системы печально известный функционал, присутствующий в Windows 10.

Я предлагаю простой скрипт PowerShell, по сути блокирующий отправку на известные веб-адреса Ваших данных.

Write-Host -ForegroundColor DarkGray "START: Add spy URLs to the Hosts file"

$spyURLs = @(
"`n"
"`n"
"`n"
'# -----====== START BLOCK: Microsoft spy URLs disabling. Please visit http://Vam.in.UA ======-----'
'127.0.0.1 vortex-win.data.microsoft.com'
'127.0.0.1 settings-win.data.microsoft.com'
'127.0.0.1 vortex.data.microsoft.com'
'127.0.0.1 telecommand.telemetry.microsoft.com'
'127.0.0.1 telecommand.telemetry.microsoft.com.nsatc.net'
'127.0.0.1 oca.telemetry.microsoft.com'
'127.0.0.1 oca.telemetry.microsoft.com.nsatc.net'
'127.0.0.1 sqm.telemetry.microsoft.com'
'127.0.0.1 sqm.telemetry.microsoft.com.nsatc.net'
'127.0.0.1 watson.telemetry.microsoft.com'
'127.0.0.1 watson.telemetry.microsoft.com.nsatc.net'
'127.0.0.1 redir.metaservices.microsoft.com'
'127.0.0.1 choice.microsoft.com'
'127.0.0.1 choice.microsoft.com.nsatc.net'
'127.0.0.1 df.telemetry.microsoft.com'
'127.0.0.1 reports.wes.df.telemetry.microsoft.com'
'127.0.0.1 wes.df.telemetry.microsoft.com'
'127.0.0.1 services.wes.df.telemetry.microsoft.com'
'127.0.0.1 sqm.df.telemetry.microsoft.com'
'127.0.0.1 telemetry.microsoft.com'
'127.0.0.1 watson.ppe.telemetry.microsoft.com'
'127.0.0.1 telemetry.appex.bing.net'
'127.0.0.1 telemetry.urs.microsoft.com'
'127.0.0.1 telemetry.appex.bing.net'
'127.0.0.1 settings-sandbox.data.microsoft.com'
'127.0.0.1 vortex-sandbox.data.microsoft.com'
'127.0.0.1 survey.watson.microsoft.com'
'127.0.0.1 watson.live.com'
'127.0.0.1 watson.microsoft.com'
'127.0.0.1 statsfe2.ws.microsoft.com'
'127.0.0.1 corpext.msitadfs.glbdns2.microsoft.com'
'127.0.0.1 compatexchange.cloudapp.net'
'127.0.0.1 cs1.wpc.v0cdn.net'
'127.0.0.1 a-0001.a-msedge.net'
'127.0.0.1 statsfe2.update.microsoft.com.akadns.net'
'127.0.0.1 sls.update.microsoft.com.akadns.net'
'127.0.0.1 fe2.update.microsoft.com.akadns.net'
'127.0.0.1 diagnostics.support.microsoft.com'
'127.0.0.1 corp.sts.microsoft.com'
'127.0.0.1 statsfe1.ws.microsoft.com'
'127.0.0.1 pre.footprintpredict.com'
'127.0.0.1 i1.services.social.microsoft.com'
'127.0.0.1 i1.services.social.microsoft.com.nsatc.net'
'127.0.0.1 feedback.windows.com'
'127.0.0.1 feedback.microsoft-hohm.com'
'127.0.0.1 feedback.search.microsoft.com'
'127.0.0.1 rad.msn.com'
'127.0.0.1 preview.msn.com'
'127.0.0.1 ad.doubleclick.net'
'127.0.0.1 ads.msn.com'
'127.0.0.1 ads1.msads.net'
'127.0.0.1 ads1.msn.com'
'127.0.0.1 a.ads1.msn.com'
'127.0.0.1 a.ads2.msn.com'
'127.0.0.1 adnexus.net'
'127.0.0.1 adnxs.com'
'127.0.0.1 az361816.vo.msecnd.net'
'127.0.0.1 az512334.vo.msecnd.net'
'# -----====== END BLOCK: Microsoft spy URLs disabling. Please visit http://Vam.in.UA ======-----'
)

Out-File -FilePath "$env:SystemRoot\System32\drivers\etc\hosts" -InputObject $spyURLs -Force -Append -Encoding default
 
Скрываем часть ресурсов IIS средствами Nginx as Reverse Proxy (CentOS 7) Печать

Задача

Есть Web-сервер на IIS, обслуживающий клиентские запросы во внутренней подсети.

Стала задача предоставления части услуг, обеспечиваемых этим web-сервером, внешним пользователям через интернет.

Однако было необходимо, чтобы внешние пользователи могли получить доступ только к ограниченному (заданному) списку адресов URL.

Учитывая большое количество других ресурсов, обслуживаемых нашим сервером IIS, а также факт доступа к этому серверу команды разработчиков, да и в целом это не отдельный сервер, а кластер NLB с несколькими узлами (что заставило бы править разрешения на всех узлах каждый раз, при необходимости что-либо добавить или поменять) было принято решение не заморачиваться с правами web.config (дабы исключить дальнейшую потенциальную угрозу безопасности) и развернуть отдельный Linux сервер и настроить на нем обратный веб-прокси-сервер средствами Nginx.

 

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

http://10.0.0.2/arcgis/rest/services/gis_ort_stat_general/MapServer

http://10.0.0.2/arcgis/rest/services/dug_multi/MapServer

 

Установка и настройка Nginx

[]# yum -y install net-tools bind-utils telnet wget tree mlocate vim gcc cifs-utils samba-client tcpdump zip unzip whois openssh-clients # Изначально я установил и обновил CentOS 7 Linux в сборке Minimal, поэтому ставлю базовые утилиты, которые могут понадобиться для работы

[]# yum -y install epel-release # Устанавливаем репозиторий EPEL

[]# sed -i -r 's/^enabled=1/enabled=0/g' /etc/yum.repos.d/epel.repo # Лично я не люблю когда дополнительные репозитории включены по умолчанию, поэтому исправляем в конфиге epel значение enabled на 0

[]# yum -y --enablerepo=epel install htop saidar # Устанавливаем базовые утилиты из репозитория Epel

[]# yum -y --enablerepo=epel install nginx # Устанавливаем веб-сервер Nginx

[]# firewall-cmd --permanent --zone=public --add-service=http # Открываем 80 порт в брандмауэре для Public зоны
success

[]# firewall-cmd --permanent --zone=public --add-service=https # Открываем 443 порт в брандмауэре для Public зоны
success

[]# firewall-cmd --reload # Заставляем брандмауэр применить конфигурацию
success

[]# vim /etc/nginx/nginx.conf # С корректировками заменяем конфиг на следующий
worker_processes 5;

events {
        worker_connections 1024;
}

http {
        server {
                listen 80;
                server_name external.domain.com www.external.domain.com;
                location /arcgis/rest/services/gis_ort_stat_general/MapServer {
                        proxy_cache                             off;
                        proxy_set_header x-real-IP              $remote_addr;
                        proxy_set_header Host                   $http_host;
                        proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
                        proxy_pass                              http://10.0.0.2/arcgis/rest/services/gis_ort_stat_general/MapServer;
                }

                location /arcgis/rest/services/dug_multi/MapServer {
                        proxy_cache                             off;
                        proxy_set_header x-real-IP              $remote_addr;
                        proxy_set_header Host                   $http_host;
                        proxy_set_header X-Forwarded-For        $proxy_add_x_forwarded_for;
                        proxy_pass                              http://10.0.0.2/arcgis/rest/services/dug_multi/MapServer;
                }
        }
}

[]# nginx -t # Проверяем конфиг на ошибки
nginх: the configuration filе /etc/nginх/nginх.conf syntax is ok
nginх: configuration filе /etc/nginх/nginх.conf tеst is successful

[]# systemctl enable nginx # Включаем nginх в автозагрузку

[]# reboot # Перезагружаем систему

[]# systemctl status nginx # Проверяем работу после перезагрузки
nginх.sеrvice - The nginх HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginх.sеrvice; enabled)
   Active: active (running) since Fri 2015-07-03 12:02:43 EEST; 7s ago
   {Output ommited}...

 

При доступе с клиента (браузера) к настроенному web-reverse-proxy обратите внимание на правильно сконфигурированный DNS

 


 
Получение DHCP Leases в указанном Scope Печать
 
PS C:\> Get-DhcpServerv4Lease -ComputerName dc2 -ScopeId '10.1.0.0' | ft -Wrap -AutoSize -Property ipaddress,hostname,clientid,description # Показать все аренды в области 10.1.0.0 на DHCP-сервере dc2
PS C:\> Get-DhcpServerv4Lease -ComputerName dc2 -ScopeId '10.1.0.0' | where { $_.clientid -match '12(-?)83(-?)ee' } | ft -Wrap -AutoSize -Property ipaddress,hostname,clientid,description # Показать аренду/ы на сервере dc2, MAC-адрес которой содержит 12-83-ee (или 1283ee)
PS C:\> Get-DhcpServerv4Lease -ComputerName dc2 -ScopeId '10.1.0.0' | where { $_.hostname -match 'comp133' } | ft -Wrap -AutoSize -Property ipaddress,hostname,clientid,description # Показать аренду/ы на сервере dc2, имя хоста которой содержит comp133
 
<< Первая < Предыдущая 1 2 3 4 5 6 7 8 9 10 Следующая > Последняя >>

Страница 5 из 62
Главная страница