источник
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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
1 |
Рабочая группа
1 2 3 |
Сеть одноранговая Аутентификация - проверка логина и пароля Авторизация - проверка прав пользователя |
Домен Active Directory
1 2 3 4 5 6 7 8 |
DC могут быть все редакции windows кроме web-edition Движок джет Контролер домена после аутентификации выдает паспорт Все ПК состоящие в домене доверяют DC В DC может хранится миллионы объектов c:\windows\ntds\ntds.dit - здесь хранится база данных Транзакционная база данных Active Directory не работает без DNS server |
AD Read only
1 2 3 4 5 6 7 8 |
Контролер домена только для чтения Read only Controler Domain Может содержать все объекты и атрибуты Может содержать DNS зоны только для чтения Одностороння репликация Данные авторизации и аутентификация. Не хранит паролей. RODC выдает только локальные билеты. Управляется от имени локального пользователя |
Перезагрузки
1 |
Перезагрузку службы AD на контролере домена DC можно произвести только когда есть два DC. |
Программы для работы с AD
1 2 3 4 |
ActivDirectory Adds ntdsutil - программа дефрагментация AD. MS рекомендуют делать раз в месяц. ntdsutil "Activate Instance NTDS" snapshot create quit quit - создание снимка АД dsamain - программа с помощью ее можно подключить снимок АД и дальнейшего его изучения. |
ПК в домене windows
1 2 3 4 5 6 |
При включении компьютера: ПК получает ip address DHCP сервера( или имеет статический адрес (Static) ПК обращается к DNS server скажижи ip DC c:\windows\ntds\*.log - логи DNS - вот такой то x.x.x.x ПК происходит попытка аутентификации |
DNS server
1 2 3 4 5 6 |
eventviewer.msc репликация - синхронизация базы данных между двумя контролями. Каждый контроллер домена хранит свою базу данных. Сайт актив директории Лес актив директории - это логическая структура максимального размера Схема актив директории - это описание объектов как они будут выглядеть |
Групповые политики
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
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 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
Колобарейшен - совместная работа 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
1 2 3 4 |
RMS - система защиты общих данных от нежелательного распространения путем их шифрования (office + exchange + shairpoint + windows mobile) Information Right Manager - настройка RMS в shairpoint RMS client - встроен в Windows 7 + |
Eventview
1 2 |
Eventview Аудит Step by step |
Служба сертификации
1 2 3 4 5 |
ADCS - Active Directory Certificate Services CA - Certification Authority CAWE - Certification Authority Web Enrollment OR (OCSP) - Online Responder - проверка сертификатов. RFC 2560 NDES - Network Device Enrollment Service |
Криптография
1 2 3 |
CNG - crypto next generation. интерфейс (шифрования документов, создание сертификатов, и.д.) Поддержка алгоритмов Группы B. (ECC,SHA2,AES) CRL - Certificate revocation List - список отозванных сертификатов. |
MDTW
1 2 3 4 5 6 7 8 9 10 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
Является внутренним стандартом 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
& $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 - на удаленном ПК будет создана работа. на этом ПК будет создан объект для ее отслеживания. |
Транзакции
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Выполнение команд объединённых в единую логическую операцию. 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
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
1 2 3 4 |
Windows managment instrumentation Get-WmiObject -list - список объектов get-WmiObject win32_LogicalDisk Get-WmiObject win32_Bios - получим BIOS этого ПК |
Сценарии *.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
Не работают до команды 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 - посмотреть историю выполненных команд |
Удаленное управление
1 2 3 |
0) ждем Powershell 2.0 обещали добавить из коробки 1) используем winrs (Invoke-remoteExpression) 2) или используем скрипт invoke-RemoteExpression ( на основе PsExec) |
PowerGui script editor
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
запуск скриптов в 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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
модульная архитектура 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+ Безопасная работа офисов. |