Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.

powershell



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

В качестве примера можно привести сервер с размещенным веб-сайтом и также работающий как файл сервер. Когда файлы не копируются с сервера веб-сайт работает отлично. Однако когда кто-либо начинает процесс копирования, быстродействие  веб-сервера немедленно падает. 

Давайте посмотрим на график скачивания файла.

В моей сети сейчас файл копируется на скорости приблизительно 40MB/s

Далее...

Сброс парольной фразы SharePoint 2010 через PowerShell

Четверг, 12 января 2012 г.
Рубрика: Sharepoint
Метки: |
Просмотров: 9462
Подписаться на комментарии по RSS


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

Не отчаивайтесь, сброс парольной фразы очень просто процесс. Откройте Powerhsell и выполните следующий скрипт. При соответствующем запросе укажите новый пароль:

Add-PSSnapin Microsoft.SharePoint.PowerShell
$Passphrase = Read-Host -assecurestring "SP PassPhrase"
Set-SPPassPhrase -PassPhrase $Passphrase –Confirm

Я заметил, что очень многие статьи в блогах по этой теме предлагают для решения этой проблемы следующий скрипт, который запрашивает ввод пароля в явном виде. Мне кажется это неправильным.

Подтвердите новую парольную фразу:

Нажмите “Yes” и на этом необходимые действия будут завершены:

 

 

Полезная информация

Быстрая регистрация предприятий в соответствии с законодательство по разумным ценам.

Powershell - получение размера баз и количества ящиков

Понедельник, 31 октября 2011 г.
Рубрика: Exchange Server
Метки: | | |
Просмотров: 15384
Подписаться на комментарии по RSS


В этой небольшой статье мы рассмотрим некоторые полезные командлеты Powershell и их комбинации для администратора Exchange.  В частности мы научимся получать размер почтовых баз и подсчитывать количество ящиков в каждой базе.

Размер почтовых базMailbox database size

Данная команда очень проста. Она использует параметр –Status командлета Get-MailboxDatabase:

Get-MailboxDatabase –Identity <MailboxDatabaseName> -Status | Select ServerName,Name,DatabaseSize

Для просмотра размера всех почтовых баз используем следующую команду:

Get-MailboxDatabase -Status | Select ServerName,Name,DatabaseSize

И если вы хотите отсортировать список по размеру базы то выполните следующую команду:

Get-MailboxDatabase -Status | Select ServerName,Name,DatabaseSize | Sort-Object DatabaseSize –Descending

Или сортируем по имены базы:

Get-MailboxDatabase -Status | Select ServerName,Name,DatabaseSize | Sort-Object Name –Descending

Далее...



По моему мнению PowerShell Integrated Scripting Environment (ISE) является отличной утилитой для написания, тестирования и отладки скриптов. Так как я не использую ISE только для написания скриптов для Exchange, у меня нет необходимости импортировать командлеты EMS каждый раз при загрузке ISE. Поэтому я добавил в меню ISE пункт для загрузки командлетов Exchange Management Shell когда мне это необходимо. Для этого добавьте следующий код в ваш профиль ISE (к примеру: Microsoft.PowerShellISE_profile.ps1). Измените имя сервера на соответствующее вашему Exchange серверу:

$psISE.CurrentPowerShellTab.AddOnsMenu.SubMenus.Add(
  "Connect to Exchange",
    {
        $s = New-PSSession -ConfigurationName Microsoft.Exchange `
        -ConnectionUri http://adatum-ex1.adatum.com/PowerShell/ `
        -Authentication Kerberos
        Import-PSSession $s
    },
  "Control+Alt+Z"
)

После того как вы перезайдете в ISE, вы увидите новый элемент в меню Add-Ons: Далее...

Советы по PowerShell : Запись сессии в файл

Вторник, 22 марта 2011 г.
Рубрика: Shell
Метки:
Просмотров: 11507
Подписаться на комментарии по RSS


Возможно не все знают, но в PowerShell 2.0 появилась новая полезная возможность, которая позволяет записать в файл все действия, произведенные в сессии PowerShell.

Это может пригодится в самых различных сценариях, например для сохранения введенных команд для последующего использования, либо для анализа и последующего использования в скриптах.

Для использования данной функции применяется командлет Start-Transcript перед началом записи сессии. Дополнительно вы можете указать путь к выходному файлу и его имя, а так же дописывать ли данные в существующий файл или перезаписывать его.

[PS] C:\>Start-Transcript
Transcript started, output file is C:\Users\administrator.ESPNET\Documents\PowerShell_transcript.20110311225255.txt

В результирующий файл будут записаны все команды, которые были введены и весь результат выполнения команд, отображающийся в окне Powershell.Далее...



Как вы можете знать Windows PowerShell 2.0 представляет новую возможность по удаленному управлению компьютерами. Данная функция может использоваться вручную или автоматически в скриптах с помощью командлета Enable-PSRemoting. Я предпочитаю использовать групповые политики везде где это возможно, и данная функция не является исключением. Данное руководство применимо к операционным системам Windows Vista, Windows Server 2008 и выше. Для систем Windows XP и Windows Server 2003 лучшим подходом будет использование командлета Enable-PSRemoting.

Windows PowerShell 2.0 и WinRM 2.0 входит в состав Windows 7 и Windows Server 2008 R2. Для получения всех преимуществ использования Windows PowerShell Remoting необходимы оба этих компанента.

Настройка групповых политик

Откройте редактор групповых политик и создайте новую групповую политику, либо используйте уже существующую. Перейдите в раздел Computer Configuration->Policies->Administrative templates->Windows Components

Здесь вы найдете доступные в групповых политиках опции для настройки Windows PowerShell, WinRM и Windows Remote Shell:

image

Для включения PowerShell Remoting нам необходимо настроить политику “Allow automatic configuration of listeners” в секции “WinRM Service”:Далее...

Рецепты для работы с активной копией базы Exchange

Понедельник, 15 марта 2010 г.
Рубрика: Exchange Server
Метки: | | |
Просмотров: 7843
Подписаться на комментарии по RSS


I- Проверяем какой сервер имеет активные копии баз:

  • Откройте Exchange Management Shell
  • Наберите команду: 

Get-MailboxDatabase -Identity ElieB*

Вы должны получить список активных почтовых баз

  • Для проверки статуса копии базы и почтовой очереди запустите следующий командлетДалее...



В данной статье мы рассмотрим интересный скрипт для вывода статистики использования ActiveSync устройств в вашей организации. PowerShell скрипт, код которого приведен ниже экспортирует статистику по всем ActiveSync устройствам. Обратите внимание что туда включены все устройства, включая те, которые уже неактивны. В зависимости от размера вашей организации и количества устройств выполнение скрипта может занять продолжительное время.Далее...

Включаем обратный просмотр DNS в IIS

Воскресенье, 10 января 2010 г.
Рубрика: Администрирование Windows
Метки: | | | |
Просмотров: 10131
Подписаться на комментарии по RSS


В данной статье я расскажу как включить обратный поиск в DNS для всех версий IIS.

Когда на веб-сервере включен обратный DNS просмотр, IP адрес каждого клиента подключающего к IIS резолвится в DNS имя и в лог файла заносятся именно имена, а не IP адреса клиентов. Также включение обратного просмотра оказывает влияние на расширения CGI и ISAPI.

Статья знаний Microsoft под номером  297795 подробно расскажет нам как включить RDNS для IIS4, IIS5 and IIS6. Необходимо запустить соответствующие скрипты из папки ADScripts:Далее...



В данной статье мы рассмотрим командлет Import-RecipientDataProperty, позволяющий заполнить данные аккаунта в AD.

Рассмотрим шаги, необходимые для загрузки картинки в Active Directory. Здесь и далее я буду в качестве примера использовать тестового пользователя Ilse. В результате данных действия мы сможем прикрепить к каждому пользователю картинку, которая будет отображаться в том числе и в Outlook 2010.

Далее...

Создаем подсказку в Exchange 2010

Воскресенье, 13 декабря 2009 г.
Рубрика: Exchange Server
Метки: | | | |
Просмотров: 11814
Подписаться на комментарии по RSS


MailTips - это новая функция в Exchange 2010, которая отображает заданную информацию в момент когда пользователь создает письмо. Вы, как администратор, можете создавать произвольные подсказки для почтовых аккаунтов, групп распространения, динамически групп, контактов.

К примеру, вы можете настроить подсказку, которая говорит "You will receive a response within 2 hours" при создании сообщения сотруднику технической поддержки. Или сделать ещё какое либо сообщение, в зависимости от вашей фантазии и нужд сотрудников.

Давайте подробнее остановимся на создании подсказки для почтового ящика с именем "Helpdesk". Я хочу чтобы пользователи видели сообщение "You will receive a response within 2 hours" в процессе написания письма в Helpdesk. Это может быть выполнено либо через  Exchange Control Panel (ECP) либо через Shell. Вы не можете использовать EMC.Далее...

Настройка модерации динамических групп в Exchange 2010

Пятница, 11 декабря 2009 г.
Рубрика: Exchange Server
Метки: | | | |
Просмотров: 9634
Подписаться на комментарии по RSS


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

Если вы зайдете в свойства динамической группы распространения, вы не найдете там опцию "Message Moderation"

Далее...



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

$user = "user1"
 $searcher=New-Object DirectoryServices.DirectorySearcher
 $searcher.Filter="(&(samaccountname=$user))"
 $results=$searcher.findone()
 $changedtime  = [datetime]::fromfiletime($results.properties.pwdlastset[0])
 write-host -b blue -f red The user, $user has changed password last time at $changedtime

Далее...



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

С помощью Powershell v1 отправка почты не была очень простой задачей. Нам приходилось использовать класс System.Net.Mail, чему было посвящено большое количество статей.

С релизом Powershell v2 все сильно изменилось, так как появился новый командлет “Send-MailMessage”.Далее...



Внешний адрес postmaster'а используется в качестве адреса отправителя для всех сообщений, которые посылаются внешним адресатам. Все домены, которые не находятся в списке обслуживаемых доменов обрабатываются как внешние домены. По умолчанию, External Postmaster address установлен в $null. Однако это не означает что нет вообще никакого почтового адреса. Все транспортные севрера испльзуют Postmaster@defaultaccepteddomain в качестве внешнего адреса администратора.

Интересное
Очень полезный и интересный сайт про психологию отношений мужчины и женщины.

Эта схема без проблем работает для организаций, у которых совпадают внешние и внутренние доменные имена. Если же это условие не выполняется, необходимо изменить адрес администратора на внешний маршрутизируемый адрес. По стандартам RFC, все домены должны иметь настроенный адрес администратора и должны принимать все письма, которые идут на этот адрес. По этой причине вам нужно либо создать аккаунт для администратора, либо добавить данный почтовый адрес к существующему аккаунту.Далее...



Вы можете обновить OAB двумя способами, либо с помощью EMS, либо используя Power Shell

1 Для обновления из  EMS:

Откройте EMC>Organizational Configuration>Mailbox>вкладку Offline Address Book.

Нажмите правой кнопкой на нужной адресной книге и выберите update.

Обновление oab через ems

Далее...



Иногда возникают ситуации, когда администратору необходимо получить список всех пользователей в динамической группе распространения. Например многие компании имеют динамическую группу “All Staff”, которая наполняется пользователями на выбранных критериях( к примеру все пользователи с почтовыми ящиками). Большие компании могут иметь динамические группы основанные на департаментах, организациях и прочее...

Просто посмотреть список всех членов группы можно нажав кнопку “preview” в EMC, однако при необходимости выполнить экспорт в csv файл для анализа или отчета вы столкнетесь с проблемой. Однако эту проблему замечательно решает powershell. Давайте рассмотрим все на примере. У меня есть динамиская группа распространения с именем “All Staff” и я хочу экспортировать список её членов в текстовый файл. Запустите следующую команду для получения списка членов группы:Далее...



Любой администратор, работающий в большой компании знакома ситуация с большим количеством списков рассылки. Иногда какие то департаменты посылают запрос на создание нового списка, но в дальнейшем не используют его. Иногда группа распространения вообще становиться пустой, либо потому что пользователи покинули компанию, либо она вообще не наполнялась. 

Как мы можем найти все группы распространения которые не содержат ни одного пользователя? Конечно с помощью Powershell. Запустите:

<span style="color: #0000ff;">Get-DistributionGroup | Where-Object { (Get-DistributionGroupMember –identity $_.Name).Count –lt 1 }</span>

Далее...



Я постоянно сталкиваюсь с задачей получить список всех членов в группе рассылки. Когда группа небольшая, все просто, но когда она просто огромная, возникают определенные проблемы. Правда проблемы возникают только у тех, кто не использует Powershell. Запустите следующую команду:

<span style="color: #0000ff;">Get-DistributionGroupMember –identity “group name”</span>

Для выбора и форматирования в нужном вам виде передайте результат выполнение команды в команду format-table с необходимыми значениями.Далее...



В одной из предыдущих статей я показал как получить список всех отключенных почтовых ящиков в организации. Exchange 2007 не дает нам возможности произвести удаление данных ящиков с помощью GUI, поэтому нам необходимо воспользоваться соответствующими командлетами Powershell.

Итак, так как в больших организациях обычно имеется несколько серверов почтовых ящиков, следующая команда выдаст нам список всех отключенных ящиков на всех серверах:

<span style="color: #0000ff;">Get-ExchangeServer |
Where-Object {$_.IsMailboxServer –eq $true} | ForEach-Object {
Get-MailboxStatistics –Server $_.Name | Where-Object {$_.DisconnectDate
–notlike ‘’}}</span>

Для удаления, сперва поместим все отключенные ящики в переменную $mailboxes. После этого запустим цикл, который удаляет все отключенные ящики.Далее...



Мне необходимо получить список всех почтовых ящиков, которые были созданы за последнюю неделю. Используя Powershell я могу сделать это очень просто.

 

<span style="color: #0000ff;">Get-Mailbox | Where-Object {$_.WhenCreated –ge ((Get-Date).Adddays(-7))}</span>

 

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

 

<span style="color: #0000ff;">Get-Mailbox | Where-Object {$_.WhenCreated –ge ((Get-Date).Adddays(-7))} | ft name, servername, database</span>

 

Вы можете экспортировать результат в txt или csv файл.Далее...



Думаю все, кто занимается администрированием Exchange 2007, знакомы с разделом “Disconnected Mailbox” в EMC. Как я полагаю некоторые впадали в недоумение когда не видели в данном разделе ящики, которые должны быть отключены. Для форсирования обработки подобных ящиков можно запустить командлет Clean-MailboxDatabase.

 

А с помощью данной команды мы можем найти список всех отключенных почтовых ящиков используя Powershell:

 

Get-MailboxStatistics | Where-Object {$_.DisconnectDate –notlike ‘’} | select Displayname, Database

 

Данная команда запускается на Exchange сервере и прекрасно работает, но только в том случае если сервер один. Однако если серверов несколько нам необходимо получить список всех наших серверов, хранящих почтовые ящики. Команда ниже получает список отключенных почтовых ящиков на всех серверах в организации. Она может быть запущена на любом сервере.Далее...

Как управлять Microsoft Hyper-V из командной строки

Воскресенье, 6 сентября 2009 г.
Рубрика: Windows Server 2008 -> Администрирование Windows -> Виртуализация
Метки: |
Просмотров: 29545
Подписаться на комментарии по RSS


Использование графических интрефейсов, таких как Hyper-V Manager или System Center Virtual Machine Manager (SCVMM) делает управление Hyper-V быстрым и простым. Однако, существует множество ситуаций, при которых вы вы можете выполнять операции гораздо быстрее, если у вас есть возможность использовать командную строку или скрипты. В этой статье мы рассмотрим возможности Powershell для управления Microsoft Hyper-V.

Установка Powershell

Для начала нам необходимо установить Powershell.

Для установки Powershell в Windows 2008, перейдите в  Server Manager, далее в Features. Нажмите Add Features. Отметьте Windows Powershell и нажмите Next.

установка powershell

Далее...