источник
http://techdays.ru https://channel9.msdn.com/Browse/AllContent?sort=recent&page=2&lang=ru msdn.com www.microsoft.com/rus/blogs - блоги сотрудников MS. www.microsoft.com/rus/technet/community_overview.mspx - не зависимые ИТ эксперты. Блоги powershell xaegr.wordpress.com blogs.technet.com/abeshkov/ www.microsoft.com/technet/scriptcenter windows powershell ru - google... windowspowershell.ru Dmitry's PowerBlog dmitrysotnikov.wordpress.com quest.com
основы active directory
Рабочая группа
Сеть одноранговая Аутентификация - проверка логина и пароля Авторизация - проверка прав пользователя
Домен Active Directory
DC могут быть все редакции windows кроме web-edition Движок джет Контролер домена после аутентификации выдает паспорт Все ПК состоящие в домене доверяют DC В DC может хранится миллионы объектов c:\windows\ntds\ntds.dit - здесь хранится база данных Транзакционная база данных Active Directory не работает без DNS server
AD Read only
Контролер домена только для чтения Read only Controler Domain Может содержать все объекты и атрибуты Может содержать DNS зоны только для чтения Одностороння репликация Данные авторизации и аутентификация. Не хранит паролей. RODC выдает только локальные билеты. Управляется от имени локального пользователя
Перезагрузки
Перезагрузку службы AD на контролере домена DC можно произвести только когда есть два DC.
Программы для работы с AD
ActivDirectory Adds ntdsutil - программа дефрагментация AD. MS рекомендуют делать раз в месяц. ntdsutil "Activate Instance NTDS" snapshot create quit quit - создание снимка АД dsamain - программа с помощью ее можно подключить снимок АД и дальнейшего его изучения.
ПК в домене windows
При включении компьютера: ПК получает ip address DHCP сервера( или имеет статический адрес (Static) ПК обращается к DNS server скажижи ip DC c:\windows\ntds\*.log - логи DNS - вот такой то x.x.x.x ПК происходит попытка аутентификации
DNS server
eventviewer.msc репликация - синхронизация базы данных между двумя контролями. Каждый контроллер домена хранит свою базу данных. Сайт актив директории Лес актив директории - это логическая структура максимального размера Схема актив директории - это описание объектов как они будут выглядеть
Групповые политики
domain controller with sysvol group police preferinc Административные шаблоны group managment console - оснастка групповых политик default domain policy - применяется к пк и пользователям домена по умолчанию default domain controllers policy - применяется к контроллерам домена по умолчанию GPO - Group Policy Object состоит из GPC и GPT GPC - Group Policy Container содержит информацию о политике и хранится в AD GPT - Group Policy Template параметры применяемые к клиентам (шаблон). хранится в папке SYSVOL\guidGP\policy на DC GPO - применяется к той зоне объектов которые мы ей задали. local gpo -> site gpo -> domain gpo -> ou gpo. - применяются в такой последовательности. organization unit. Последняя примененная политика имеет высший приоритет чем предыдущая. Политика примененная к пользователя, имеет выше приоритет, чем примененная к групповая политика группы в которой он состоит. Применение групповых политик: 1. загрузка ПК 2. Вход пользователя 3. GPUpdate фоновое обновление 90-120 минут Групповые политики друг друга не затирают, происходит суммирование. Если параметры политик совпадают то выигрывает последняя примененная политика. gpudate - команда обновления GPO gpupdate /force - принудительно применить политики на ПК клиента ( хз советует MVP Руть Илья) Перезагрузка нужна только для обновления GPO параметров ПК. adsi edit - программа для соединения с AD Административные Шаблоны *.ADMX и *.ADML правка реестра. c:\Windows\PolicyDefinition их можно доставить скачав с сайта Microsoft или добавить свои. gpresult /v - какие настройки GPO применились Оснастка результирующая политика. admx office 2010 все установить на DC в папку c:\Windows\PolicyDefinition Рекомендуется отключать учетные записи пользователей в место удаления. Центр администрирования AD (Active directory administrator center) - можно выполнять поиск например когда меняли пароль и т.д. сбрасывать пароли и т.д. djoin.exe - автономный ввод в домен. win7 win2008r2 djoin /provision /domain domain.name /machine win7pc /dcname dc-name123 /downlevel /savefile c:\filename.txt - генерируем на dc или на ПК в этом домене. djoin /requestODJ /loadfile c:\filename.txt /windowspatch %SystemRoot% /localos - на ПК (нужно скопировать файл на ПК c:\filename.txt с DC) Анализатор оптимальных конфигураций - покажет ошибки вашего DC start /w ocsetup IIS-WebServerRole - установить роль IIS через cmd start /w ocsetup NeTFX2-ServerCore - установить netfx через cmd на coreserer start /w ocsetup IIS-ManagmentService - установить оснастку для удаленного управления net start wmsvc - запуск службы IISmanagment sc config FTPSVC start= auto - вкл авто запуск службы FTP sc config wmsvc start= auto - вкл авто запуск службы управления
Exchange Server
1. registring dns 2. добавим в dns mx и A запись 3. spf запись (example.org. IN TXT"v=spf1 +a +mx -all") spf website , The SPF Setup Wizard. Генерация SPF записи доя дальнейшего добавления в DNS SPF Record Testing Tools проверка есть ли у нас SPF запись 4. PTR запись добавить в DNS 5. требования 10гб + 30мб места. 4ядра сервер + 10 гб оперативы - минимальные требования. exchange 2010 mailbox server role calculator. 10 raid рекомендуют. Внимание при установки exchange модифицируется схема AD. В одном лесу можно установить только один exchange сервер. 0. подготовка схемы dsquery server -forest -hasfsmo schema - покажет какой контроллер домена является схемомастером. setup.com /PreaperSchema - выполняем на контролере домена схемомастере (Для защиты можно поднять еще один контролер домена в этом лесу. выключить его.) setup.com /prepareAd /OrganizationName: NameOrganization exchange 2010 requirements - смотрим что требуется для установки hubtransport+clientaccess+mailbox(типовая установка) ставим с помощью powershell службу net tcp port sharing ставим в автозапуск. 1. приступаем к установке setup.exe 2. открываем консоль powershell Test-serviceHealth - смотрим всели в порядке. 3. открываем консоль эксченж. 4. в hubtransport прописываем свой почтовый домен. 5. в hub transport Создаем email address policy- создаем политику именования почтовых ящиков у пользователей 6. https://ex1.domain.ru/owa - веб интерфейс. 7. PS -> get-queue - посмотреть состояние отправки писем 8. в hub transport -> send Connectors создаем правила отправки почты во внешний мир 9. Hub transport default ex1 property настроить для приема почты 10. онлайн тест test exchange connectivity проверки работы вашего почтового сервера.
FAQ exchange server 2010
asiedit.msc - управление в DC issreset /noforce - перезагрузка iis сервера. exchange manager shell fl - формат лист. ft - формат таблицы. Удобная программа для выдирания нужной информации в powershell Пример: Get-MaikboxFolderStatistics namealias | ft Name,FolderSize,ItemsInFolder -a Командлет - набор команд. get-helper имя-команды -example - помощь по команде и пример. start-ManagedFolderAssistant nameuser - ускорение выполнения политик (мин 10 и применится) Как проверить работу сервисов exchange Камандлеты Exchange работают в powershell exchange Get-Command test-* get-helper имя-команды -example - помощь по команде и пример. Test-ServiceHealth - проверка общего состояния echange (если везде true то все ок) Test-MAPIConnectivity - проверка соединения с базой exchange Test-OwaConnectivity - проверка web-морды Exchange Test-MailFlow - проверка потока почты add-pssnapin nama_commandlet - добавление командлетов powershell Powershell ISE - редактор скриптов на powershell *.ps1 - скрипты powershell $PROFILE - покажет в каком файле powershell берет настройки. Windows mobile sdk *.p7b - файл цепочки сертификатов. c:\program files\exchange server\v14\scripts - куча скриптов. exchange server user monitor (Exmon) - программа для просмотра подключений к серверу exchange testexchange (remote connetctivity analyzer) - онлайн проверка подключения к почтовому серверу exfolders -программа для вытаскивания удаленных писем из общей папки c:\Pfdatabases - в этой папке хранится база данных (файл *.edb) eseutil /D namebase.edb - оффлайн дефрагментация. (обязательно делаем бэкапы перед выполнением) В базе удалённые элементы хранятся в течении 14 дней. После 14 дней происходит онлайн дефрагментация и удаление. Только оффлайн дефрагментация уменьшает размер базы.
Sharepoint
Колобарейшен - совместная работа Sites - позволяет создавать сайты (порталы) Communities - позволяет пользователям создавать свои сайты/порталы Content - файловые сервера контент Search - поиск insights - анализ/отчеты и т.д. Composites - изменение дизайна и т.д. шарпоинт дизайнер Ферма серверов. - Роли серверов - WFE(web front server)+Application+SQL (мин один сервер и все роли на нем) Sharepoint - для хранения использует SQL server (скл\сиквель) windows server 2008/r2 -> .NET Framework -> IIS + indentity Service + SQL Server -> -> SharePoint Fundation -> SharePointServer -> Microsoft and ISV Solution + Custom Solutions shairpoint fundation - легкий старт Установка shaurpoint server 2010 server1=DC+SQL server2=Shairpoint2010 1. Установка и конфигурирование SQL компоненты Database Engine Service + Managment Tools Basic\Complete instance default Создаем учетную запись SQL в домене (заодно группу тоже создадим) SQL придумываем пароль Настраиваем файрволл. Два правила разрешения подключений порт tcp 1433 и для программы programFiles\sqlserver 2. Установка компонентов Shairpoint идем в папку с дистрибутивом Запускаем PrerequisiteInstaller компоненты сами загрузятся из интернета. 3. установка shairpont Запускаем setup.exe вводим ключ standalone - установка не подходит если будем расширятся (все ставится само) Sarver Farm - complate можно расширять и масштабировать (требует настройки) 4. Запуск мастера первоначальной конфигурации Создаем ферму. Настраиваем подключения к SQL, Создаем учетную запись для админки shairpoint. Ключевая фраза - пароль для создания новых ферм (записываем пригодится если будем еще клепать фермы). Настраиваем порт для админки shairpoint и аутентификация тип NTLM. В конце нам покажет что мы там настроили и продолжится установка. 5. Проверка успешности установки
RMS
RMS - система защиты общих данных от нежелательного распространения путем их шифрования (office + exchange + shairpoint + windows mobile) Information Right Manager - настройка RMS в shairpoint RMS client - встроен в Windows 7 +
Eventview
Eventview Аудит Step by step
Служба сертификации
ADCS - Active Directory Certificate Services CA - Certification Authority CAWE - Certification Authority Web Enrollment OR (OCSP) - Online Responder - проверка сертификатов. RFC 2560 NDES - Network Device Enrollment Service
Криптография
CNG - crypto next generation. интерфейс (шифрования документов, создание сертификатов, и.д.) Поддержка алгоритмов Группы B. (ECC,SHA2,AES) CRL - Certificate revocation List - список отозванных сертификатов.
MDTW
Microsoft deployment toolkit win7+ *.wim - образ unattend.xml, Oobe.xml - файлы ответов windows system image manager - основная программа для настройки unatted.xml и oobe.xml Windows PE imagex Windows AIK Windows OPK BDD system center configuration manager
PowerShell
Является внутренним стандартом Microsoft CEC 2009 (то есть все ПО выпущенное после 2009 года будет поддерживается Microsoft) Основы Именование командлетов Глагол-Существительное Get-Process Получить Процессы Stop-Service Остановить Сервис Общие параметры -Name Имя -Path Путь -Verbose Подробней (вывод дополнительной информации) -Confirm Применить (Подтверждение) Одинаковые устройство всех объектов $обьект.свойство = $переменная $обьект.метод($параметр) $обьект | Get-Member Пишем то что думаем Get-Process | Sort-Object -Property Name - вывести процессы, отсортировать их по имени ls -Filter *.ps1 | Select-String -Pattern SMTP - на конце покажет файл со строкой SMTP Абстракции ориентированные на задачи $Process.CPU $File.Mode Прямой доступ к файлам $myObject = Import-Cvs -Path File.cvs $shares = Get-WmiObject -Class Win32_Share $text = Get-Content -Path computers.txt Возможно использовать старые команды и стороннее ПО. Так же возможны и объединения. Ipconfig.exe | Select-String "IPV4 Address" - покажет строку где есть фраза "IPV4 Address" Get-Content DnsServers.txt | Foreach {nslookup -type=mx ya.ru $_} В PowerShell есть инструменты управления Windows Managment instrumentation (WMI) Active Durectory Scripting interface COM Automation Системный Реестр ( правим прямо в консоли) Сертификаты Переменные окружения .Net Framework ( пишем скрипты и всячески можем программировать) ... и тд Безопасность Политика выполнения Подпоясывание скриптов Set-AuthenticodeSignature - подписать Get-AuthenticodeSignature - посмотреть подпись В Powershell можно использовать команды linux help help Get-help get-help -full получим полную справку по команде Get-help (man) Get-Help about* - вызов справки по темам camandlet-name /? получим краткую справку справка: -? ; get-help get-command - список программ man ps ls Переменные начинаются со знака доллар $ Для путей можно использовать слеш \ и обратный слег / Для быстрого ввода команд в powershell можем использовать: 0) клавишу Tab для авто дополнения; 1) у некоторых команд допускается не дописывать аргументы. Пример Get-Command -name process можно написать Get-command -Na process; 2) Можно использовать алиасы. ` - этот символ означает переход на следующую строку без выполнения команды. также является esc символом "`tтабуляция" - табуляция перед текстом "новая `nстрока - напишет второе слово с новой строки "``" - чтобы вывести символ ` его нужно за экранировать самим собой "``" "`$pwd" - экранируем переменную $pwd поставив ` перед $. (так можно экранировать любую переменную)
CLI+GUI
& $PSHome\configure-WSMan.ps1 скрипт настройки winrm WinRM реализации WS-managment для Windows http+https передача данных через XML winrm s winrm/config/client '@{TrustedHosts="Server01"}' разрешить подключения для Server1 winrm s winrm/config/client '@{TrustedHosts="*"}' разрешить подключения для всех Runspace - окружения запуска приложения Get-Help About_remote_FAQ - помощь по winrm Get-Help About_remote_Requirements - помощь по winrm Get-Help About_remote_Troubleshooting - помощь по winrm Invoke-Command -ComputerName dc2 -ScriptBlock {Get-Process} - получим список процессов на ПК dc2 $Procs = Invoke-Command -ComputerName dc2,hyper -ScriptBlock {Get-Process} - выполним на двух ПК и ответ забьем в переменную procs $Procs.count - получим количество процессов на dc2 и hyper $Procs | Get-Member - получим список $Procs | Format-table name, ComputerName - отсортируем Get-Command Invoke-Command $rsHyper = New-Runspace -ComputerName hyper создание ранспейса на ПК hyper Invoke-Command -Runspace $rsHyper -Scriptblock {cd c:\} - выполним команду перехода на удаленном ПК на диск c Invoke-Command -Runspace $rsHyper -Scriptblock {pwd} - покажет текущее положение на удаленном ПК Get-Runspace - покажет доступные ранспэйсы $runs = Get-Runspace - создадим алиас для следующей команды Invoke-Command -Runspace $runs - ScriptBlock {pwd} - выполнит команду pwd на всех доступных ранспейсах Invoke-Command -Runspace $runs - ScriptBlock {pwd} | Format-Table name path, computername Get-Runspace | Remove-Runspace - очистка ранспейсов hostname.exe - посмотрим имя хоста ПК Push-Runspace -ComputerName hyper - подключимся к консоли удаленного ПК (она будет постоянной в отличии от Get-Runspace) Get-Date - посмотреть время Можно выполнять стандартные программы такие как ping.exe, hostname.exe ... Также передаются сочетания клавиш Ctrl+C (остановка процесса) pop-Runspace - выполнив на удаленном ПК. отключимся от удаленного ПК Start-PSJob -Command 'dir c:\windows -recurse |foreach {$_.fullname}' - запуск задания/работы (список каталогов) Get-PSJob - посмотреть список работ/заданий и их статус Receive-PSJob 1 > index.txt - получим результат работы с id 1 Get-Content index.txt - посмотрим содержимое файла index.txt Start-PsJob -Name Pinger -Command 'ping www.live.com -t' - создадим работу выполнять команду ping бесконечно. Receive-PSJob -Name Pinger - получим результат работы с именем Pinger Get-PSJob 1 | Stop-PSJob -Verbose - останавливаем работу с ид 1 перенаправлением на команду Stop-PSJob Get-PSJob 1 | Remove-PSJob - удалим работу с ид 1 Invoke-command -ComputerName hyper -ScriptBlock {ping www.live.com} -AsJob - на удаленном ПК будет создана работа. на этом ПК будет создан объект для ее отслеживания.
Транзакции
Выполнение команд объединённых в единую логическую операцию. 0. либо все команды блока выполнены успешно 1. либо ни одна команда блока не применена Транзакции работают пока только с реестром windows vista 2008 cd hkcu:\ - перейти в куст hkcu реестра Windows Get-ItemProperty -Path Console - посмотреть значения ветки Console Start-Transaction начнем транзакцию Remove-ItemProperty -Path Console -Name * -Verbose -UseTransaction - удалим все значения из ветки console используя транзакцию. Get-ItemProperty -Path Console -UseTransaction - посмотрим содержимое console после выполнения в транзакции Get-ItemProperty -Path Console - смотрим что у нас сейчас (не в транзакции) Undo-PSTransaction - отменим выполненное в транзакции (прекратим выполнение транзакции0 cd hkcu:\ - перейти в куст hkcu реестра Windows Start-transaction начнем транзакцию Set-ItemProperty -Path Console -Name QuickEdit -value 1 -UseTransacrion - изменим одно значение в реестре Set-ItemProperty -Path Console -Name CursorSize -value 100 -UseTransacrion - изменим одно значение в реестре Complete-PsTransaction - применим все изменения сделанные в транзакции
Graphical Windows PowerShell
CLI & GUI WPF Get-Process | gui | Stop-Process - пример Get-Content Enc:path | gui | Set-Content env:\path\ - пример dir c:\Windows | Out-GridView - красиво выводим список Get-Alias | Out-GridView - красиво выведем список алиасов Get-Command | Out-GridView - красиво выведем список команд Get-EventLog system -Newest 500 | Out-GridView - красиво вывести 500 последних записей из лога system Add-Module Select-Grid - добавим модуль Select-Grid Get-Process s* | Select-Grid Name, WS, CPU -Graph CPU | Stop-Process -WhatIf - появится список процессов начинающихся на s*. при выборе и закрытии графической оболочки произойдёт вывод информации (WhatIf) об выбранном процессе. Get-Content c:\file.txt | Edit-Content | Set-Content c:\file.txt - тут используется самописный скрипт/функция Edit-Content Get-Content function:\Edit-Content | Edit-Content | Set-Content Function:\Edit-Content - изменим функцию Edit-Content в памяти Powershell События (Eventing) скрипт охранник доступа к файлам *.ps1 $DoSomething = {Write-Warning "Кто-то лазил!"} $Watcher = New-Object System.IO.FileSystemWatcher $Watcher.Path = "c:\myscripts" $Watcher.Filter = "*.ps1" $Watcher.EnableRaisingEvents = $true Registor-ObjectEvent $Watcher "Changed" -SourceIdentifier "FileSystemWatcher.Canged" -Action $DoSomething Get-Event - получить данные событий системы.
Управление серверами Windows 2008
Server Manager PowerShell initial configuration tasks - новое предвестие при первом запуске Provide computer information - настройка информация о ПК (имя ПК) Update this server - настройка обновлений на сервере Customize this saerver - настройка ролей сервера и добавление возможностей HKLM\SOFTWARE\Microsoft\ServerManager - управление автомат запуском Server manager HKLM\SOFTWARE\Microsoft\ServerManager\OOBE - управление автоматическим запуском Server manager OOBE - команда управления сервером ICT Manage ServerManagerCmd.exe -install RSAT - установит компонент RSAT ServerManagerCmd.exe -query отобразит список компонентов ServerManagerCmd.exe -remove RSAT-ADDS - удалит компоненты RSAT-ADD Roles - некая функциональность сервера. определяет работу сервера. Features (Фичи) - это программы и дополнительное ПО. Servermanagercmd -query | findstr RSAT - покажет строки где есть RSAT get-process w* |format-list get-process | where {$_.handlecount -gt 400} больше чем 400 calc - запустили калькулятор get-process calc | stop-process -confirm - завершение с подтверждением get-process calc | stop-process -whatif - эмуляция завершения Set-Location $Home - устанавливает текущий каталог New-item -type directory Temp - создать директорию Temp (в текущем каталоге ) Copy-item c:\file.txt Temp - скопировать file.txt в каталог Temp Get-Childitem Temp - покажет содержимое каталога Temp Set-Location HKLM:\SOFTWARE\Microsoft\PowerShell - перейти в реестр в куст HKLM:\SOFTWARE\Microsoft\PowerShell (аналог cd) ls - покажет текущие место положения $reg = Get-childitem -rec . Get-childitem -rec . - покажет ключи и атрибуты из текущего места положения в реестре. Get-itemProperty $reg - вытащить все атрибуты содержащихся в переменных Get-Childitem 'hkcu:\keyboard loyout' $bad get-eventlog "System" | where-object [$_.EntryType -eq "Error" } get-eventlog "System" | where-object [$_.EntryType -eq "Error" } - покажет ошибки из системного журнала
WMI
Windows managment instrumentation Get-WmiObject -list - список объектов get-WmiObject win32_LogicalDisk Get-WmiObject win32_Bios - получим BIOS этого ПК
Сценарии *.ps1
Не работают до команды set-executionpolicy unrestricted (отменяет обязательную регистрацию для запуска не подписанных скриптов) Автоматически выполняются profile.ps1 Get-PSDrive - Выведет список дисков Add-Pssnapin pscx Format-table - вывести все таблицей Set-QADUser Get-QADUser - получить список пользователей домена Get-QADUser -City London |Format-Table Name, City, Department Get-QADUser | Group Departament - посмотреть какие у меня есть подразделения в АД AD $threshold = (Get-Data).AddYears(-1) - переменная покажет дату минус 1 год Get-QADUser -IncludeAllProperties | where { $_.LastLogon -le $thershold } | Select Name, Lastlogon | ConvertTo-Html | Out-File c:\report.htm Выведет список пользователей не заходивших целый год и запишет в report.htm (пример требует редактирования) Get-QADUser -IncludeAllProperties | where { $_.LastLogon -le $thershold } | Disable-QADUser -Confirm - отключим учетки которые 1год не используются Get-QADUser -Departament Sales | Add-QADGroupMember DL.Sales -добавить всех из подразделения в группу DL.Sales Get-Process | Get-Member - посмотреть команды для Get-Proccess Get-Process | where {$_.Handsles -ge 500} Fomat-table Name, Handles dir c:\project\ -include *.cs -Recurse | Get-Content | Measure-Object -Line - посчитать количество строк кода в папке project для *.cs снапшоты и сравнения $snap = Get-Process - сохранили содержимое get-process в переменную notepad calc Compare-Object $snap (Get-Process) сравниваем содержимое переменной $snap с выполненной командой Get-Process Compare-Object $snap (Get-Process) | ForEach-Object { Stop-Process -ProcessName $_.InputObject.ProcessName } сравним $snap и Get-process убьем новые. Get-History - посмотреть историю выполненных команд
Удаленное управление
0) ждем Powershell 2.0 обещали добавить из коробки 1) используем winrs (Invoke-remoteExpression) 2) или используем скрипт invoke-RemoteExpression ( на основе PsExec)
PowerGui script editor
запуск скриптов в powershell. .\имя_скрипта (.\ скрипт запустится из текущего каталога) cmd /c assoc | select-string "vxd" - так можно выполнить в powershell команду cmd и обработать ее powershell %computername% Get-PSDrive - диск с доступными устройствами в powershell cd env - переход на диск с доступными переменными $env:computername - так можно получить переменную computername (env -диск с переменными, computername переменная (%computername%)) "Этот компьютер называется" + $env:Computername - команда выполнится результат подставится в строку "Этот компьютер наpывается $($env:computername)." -команда выполнится результат подставится в строку get-content - показать содержимое алиас type dir | where {$_.lenght -gt 1kb} - покажет файлы размером больше 1kb Get-Process | where ($_.path -like "c:\windows\*") | kill -whatif - показать процессы запускающийся из папки windows и симулировать выкл Get-wmiobject win32_share - покажет шары на ПК Get-wmiobject win32_share | where ($_.path -match "^c") - покажет шары диска c Get-wmiobject win32_share | where ($_.path -match 's$') - покажет все шары знака $ Get-Process | Get-member | more - посмотреть все возможные команды Get-Process Get-Process | Select-Object -first 1 | format-list -Property * - выбрать первый процесс и показать все его свойства Get-Process | where ($_.company -ne "Microsoft Corporation") - покажет процессы которые не Microsoft Corporation " " | Get-member - покажет какие есть свойства для символа пробел "test".lenght - посмотрим свойство строки test Get-content $Profile - получим содержимое файла профиля Get-content $Profile | Select-String "function" - получим содержимое файла профиля и покажем только строки с function Set-Alias grep select-string - так можно создать алиас слова grep на команду select-string Регулярные выражения $mail = "byb@mail.ru" - создадим переменную $mail - покажем что у нас в переменной mail $mail -match "^(.+)@(.+)$" - создадим группу захвата разделения $matches - посмотрим содержимое разделения $Matches[1] - посмотреть 1 содержимое [regexp]"" можно использовать регулярны выражения .net "Test" -eq "test" - сравнение строки Test с Test (регистра не зависимое) вернет истину (true) "Test" -ceq "test" - сравнение строки Test с test (регистра зависимое) вернет неправда (false) "Test" -like "t*" - сравнение строки Test с Test (регистра не зависимое) вернет истину (true) "Test" -clike "t*" - сравнение строки Test с test (регистра зависимое) вернет неправда (false) как посмотреть что это за команды %,?,gps или fl. Get-Command % Get-Command '?' Get-Command gps Get-Command fl - это алиас Format-List Get-Command ps - это алиас на Get-Process $pwd -текущий каталог (%cd% не работает в powershell) сообщения write-error "Ошибка" write-warning "Осторожно" write-verbose "Выводим сообщения" -verbose write-host "Зеленый" -ForegroundColor "Red" write-host - камандлет для работы с сообщениями. write-host "начало строки" -N; write-host "конец" - вот так можно вывести два сообщения на одной строке $host.значения - можно всячески менять размер текста, цвет, вывод и тд. Как создать профиль powershell и сохранить его настройки. New-Item -type file -path $profile -Force - создаст профиль powershell notpad $profile - откроем его в блокноте доя изменения. (лучше редактировать с помощью powergui) "один плюс два равно $(1+2)" - свойство объекта и результат выражения. "Самый активный процесс в системе это $(get-process | sort cpu | select -last 1)" Get-Process | Measure-Object - Посчитать количество объектов в конвейере (например для get-process) Get-Process | Measue-Object -minimum -property cpu (Get-Process).count - покажет количество процессов в системе как запустить скрипт powershell с планировщика powershell.exe имя_скрипта.ps1 в планировщике программа powershell.exe и аргументы -command c:\scripts\myfile.ps1 Get-command -name explorer - скажет что такое explorer (в данном случаи это application explorer.exe)
IIS
модульная архитектура PHP - теперь поддерживается через FastCGI IUSR - встроенный пользователь ГОСТЬ анонимный доступ. IIS_IUSER - встроенная группа iss (SID этой группы автоматически добавляется маркер доступа для каждого Worker Process) (iss сам следит) В эту группу следует добавлять пользователей которым не обходимо дать доступ к веб контенту. Aplication Pool indentity для аутентификации можно использовать учетную запись пула Aplication Pool SID для каждого пула генерируется уникальный SID IIS APPPOOL\<имя пула> Конфиги ISS защищает сам. Берет конфиг пула ApplicationHost.config считывает данные. на основе их создает %SystemDrive%\Inetpub\Temp\AppPools Конфиги ISS хранит %Windir%\system32\inetsrv\config ISS manager -> Request Filtering - обработка запросов. (запреты и фильтрация) Url-авторизация (Windows и .Net провайдеры) (модуль не уст по умолчанию) (Deny имеет самый высокий приоритет) Если требуется использовать Windows Authentication нужно отключить Anonymous Authentication. А иначе ISS будет игнорировать Windows Auth. По умолчанию всем пользователям windows разрешён web доступ к сайтам на ISS (alluser allow при уст. ISS) WMSvs - WebMenagment Service - удаленно администрирование по умолчанию не влачена автозагрузка и разрешен только локальный вход. IIS manager - программа для управления IIS с клиентского пк. Удалите все не нужные модули Настроить делегирование (если не обходимо) Выделяйте каждому приложению отдельный пул handler mappings - тут можно задать настройку ISS чем открывать страницы на PHP (php-cgi.exe) http.sys- драйвер кеширования, аутентификации и т.д. для ISS www.iss.net официальный сайт ISS Wcat - тестирование сайта от ms Outputcashing - настройка кеширования ISS помогает ускорит работу ISS Sharing Configuration - общая папка настроек IIS (создать общею папку и указать IIS где брать настройки) мета базы metabase.xml - ушел в прошлое начиная с 7 IIS и заменен на набор файлов machin.config web.confug applicationhost.config..... %windir%\system32\inetsrv\config\ - каталог конфигов rootqeb.config - настройки ASP.NET applicationhost.config - глобальные настройки сайта administration.config - конфигурация пользователя web.config - конфигурация сайта redirection.config - разделяемые настройки %windir%\system32\inetsrv\config\schema - Схема xcopy - копирование везде рекомендуют. скрипт копирования настроек диск z подключен с другого сервера. (диск c) xcopy c:\inetup\test z:inetup\test /E /I - копируем контент сайта test xcopy c:\windows\system32\inetsrv\config z:\windows\system32\inetsrv\config /E /I копируем настройки IIS pause восстановление настроек c:\windows\system32\inetsrv\appcmd restore backup initial откатим настройки IIS из бэкапа с именем initial rd c:\inetup\test /s /q - Удалим каталог сайта test pause Защита NAP - Network Access Protection - Система управления здоровьем клиента есть везде наченая с windows xp (служба nap и включается через ГПО Есть много способов настройки: Ipsec , vpn , dhcp и тд Работает на уровне сети. NPS - Network policy servers - роль не обходимая для NAP и windows 2008+ Безопасная работа офисов.