По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Для устранения неполадок мы должны пройти путь от нижней части модели OSI к верхней. Для этого нам придется начать с протоколов, которые используются для коммутации. Будем думать о VLAN, транкинге, об агрегировании каналов и связующем дерева. Мы рассмотрим различные протоколы и различные сценарии, где "что-то работает" не так. Мы решим эти проблемы с помощью комбинации команд show и debug. Первая остановка ... проблемы с интерфейсом! Следующие статьи этого цикла: Траблшутинг STP (Spanning tree protocol) Устранение неисправностей EtherChannel Case #1 В этом примере мы имеем коммутатор в центре и два компьютера, которые подключены к нему. Каждый компьютер имеет свой IP-адрес, и они должны иметь возможность пинговать друг друга. Мы будем считать, что компьютеры настроены правильно и там нет никаких проблем. Интерфейс FastEthernet 0/1 находится в состоянии down. Это может указывать на проблему уровня 1, такую как неисправный кабель, неправильный кабель (кроссовер вместо прямого) или, возможно, нерабочая сетевая карта. Обратите внимание, что этот интерфейс работает в полудуплексном режиме. Если повезет, вы можете получить дуплексное сообщение через CDP, которое сообщит вам, что существует дуплексное несоответствие. Если вам не повезло, возможно, из-за этого ваш интерфейс переходит в состояние down. Имейте в виду, что гигабитный интерфейс не поддерживает halfduplex. SwitchA(config)#interface fa0/1 SwitchA(config-if)#duplex auto Изменим настройки интерфейса на duplex auto, чтобы коммутатор мог само настроиться. Может быть, нам повезет...но не в этот раз, пинг не работает. Интерфейс fa0 / 3, подключенный к хосту B, также не работает. После проверки кабелей и разъемов мы можем проверить ошибки дуплекса и скорости. Дуплекс включен в режим auto, так что это не является проблемой. Скорость была установлена на 10 Мбит, однако в то время как этот интерфейс является каналом Fast Ethernet (100 Мбит). SwitchA(config)#interface fa0/3 SwitchA(config-if)#speed auto Давайте переключим скорость на авто и посмотрим, что произойдет. Похоже, что несоответствие скорости привело к тому, что интерфейс перешел в состояние down. Изменение его на auto-speed возвращает интерфейс в состояние up. Это то, что мы искали. Интерфейсы, с которыми мы работаем, оба показывают состояние up/up. По крайней мере, теперь мы знаем, что нет никаких ошибок в кабеле, скорости или дуплексе. Теперь наш пинг проходит. Первый урок усвоен: Проверьте свои интерфейсы и посмотрите, отображаются ли они как up/up. Case #2 Та же топология, но здесь другая проблема. Хост A не может пропинговать хост B. Мы начнем с проверки интерфейсов: Состояние интерфейса FastEthernet0/3 выглядит нормально, но что-то не так с интерфейсом FastEthernet 0/1. Давайте изучим его подробнее: Так так, мы видим сообщение err-disabled. Это уже дает нам понять, что проблема, где здесь (по крайней мере, это означает, что мы на что-то наткнулись). Используйте команду show interfaces status err-disabled, чтобы узнать, почему интерфейс перешел в режим error-disabled. Это сообщит нам, что причина-безопасность порта. Мы можем посмотреть на конфигурацию безопасности порта, и мы видим, что только 1 MAC-адрес разрешен. Последний MAC-адрес, который виден на интерфейсе - 000с.2928.5c6c. Выше мы видим, что интерфейс был настроен для обеспечения безопасности на другой MAC-адрес. Именно по этой причине порт перешел в режим err-disabled. SwitchA(config)#interface fa0/1 SwitchA(config-if)#no switchport port-security Давайте уберем port security, чтобы решить эту проблему. SwitchA(config)#interface fa0/1 SwitchA(config-if)#shutdown SwitchA(config-if)#no shutdown Главное, что вы не должны забыть сделать - это после очистки настройки от port security ваш интерфейс все еще находится в режиме err-disabled. Вам нужно выполнить команды отключения и включения порта (shutdown и no shutdown), чтобы он снова заработал! Консоль сообщает нам, что интерфейс теперь включен. Как мы видим эхо-запрос проходит между компьютерами. Проблема решена! Урок 2 усвоен: проверьте, находится ли интерфейс в состоянии err-disabled, и если да, то: а) проверьте, почему это произошло, и Б) решите проблему. Case #3 Давайте продолжим с другой проблемой. Та же топология, но опять проблема. Эти два компьютера не "видят" друг друга. Интерфейсы выглядят хорошо, никаких ошибок здесь нет. И так мы видим, что port security отключена на этом коммутаторе. На данный момент мы, по крайней мере, знаем, что нет никаких проблем с интерфейсом и port security не фильтрует никакие MAC-адреса. В данный момент это хорошая идея, чтобы проверить информацию о VLAN. Вы можете использовать команду show vlan, чтобы быстро проверить, к какой VLAN принадлежат интерфейсы. Как вы можете видеть, наши интерфейсы находятся не в одной и той же VLAN. SwitchA(config)#interface fa0/3 SwitchA(config-if)#switchport access vlan 1 Мы переместим интерфейс fa0/3 обратно в VLAN 1. Теперь оба компьютера находятся в одной VLAN. Проблема решена! Урок 3 усвоен: убедитесь, что интерфейсы находится в нужной VLAN. Case #4 Пришло время для другой проблемы! Наши два компьютера не пингуюся между собой. Вы теперь знаете, как выглядит неудачный пинг, поэтому скрин не будет публиковаться снова. Интерфейсы не показывают никаких ошибок. Мы изучим настройку VLAN. Вы видите, что FastEthernet 0/1 находится в VLAN 10, но мы нигде не видим FastEthernet 0/3. Вот возможные причины: Что-то не так с интерфейсом. Мы проверили и убедились, что это не так, потому что он показывает состояние up/up, поэтому он кажется активным. Интерфейс не в режиме access port, а в режиме trunk. Быстрый взгляд на информацию о коммутаторе показывает нам, что нам нужно знать. Мы убедились, что интерфейс fa0/3 находится в режиме trunk, а native VLAN - 1. Это означает, что всякий раз, когда хост B отправляет трафик и не использует маркировку 802.1 Q, наш трафик заканчивается в VLAN 1. SwitchA(config)#interface fa0/3 SwitchA(config-if)#switchport mode access SwitchA(config-if)#switchport access vlan 10 Мы включим fa0/3 в режим доступа и убедимся, что он находится в VLAN 10. Оба интерфейса теперь активны в VLAN 10. Возможно, лучше проверить информацию на коммутаторе. Теперь я могу отправить пинг с хоста а на хост Б...проблема решена! Урок 4 усвоен: убедитесь, что интерфейс находится в нужном режиме (доступ или магистральный режим). Case #5 Те же два компьютера, тот же коммутатор. Однако этот сценарий немного интереснее. Компьютеры не могут пинговать друг друга, поэтому давайте пройдемся по нашему списку "возможных" ошибок: Интерфейсы выглядят хорошо, up/up-это очень хорошо. Оба интерфейса находятся в VLAN 10, так что это тоже хорошо. Просто чтобы быть уверенным...там нет port security. Это очень интересная ситуация. Интерфейсы работают (в состоянии up/up), мы находимся в одной VLAN, и нет никакой защиты портов. Что еще может быть причиной "перекрытия" трафика? Ага! Это может быть не то, о чем нам может прийти в голову, но мы же можем использовать VACLs (VLAN access-list), чтобы разрешить или запретить трафик в пределах VLAN. Если вы устраняете неполадки коммутаторов, то необходимо проверить эту настройку, если все остальное кажется вам нормальным. В этом случае есть VACL, подключенный к VLAN 10, давайте проверим его. Есть два порядковых номера ... 10 и 20. Порядковый номер 10 соответствует access-list 1, и его задача состоит в том, чтобы отбросить трафик. Давайте посмотрим, что это за access-list 1: Не смущайтесь из-за заявления о разрешении здесь. Использование оператора permit в access-list означает, что он будет "соответствовать" подсети 192.168.1.0/24. Наши два компьютера используют IP-адреса из этого диапазона. Если он соответствует этому access-list, то VLAN access-map отбросит трафик. SwitchA(config)# vlan access-map BLOCKSTUFF 10 SwitchA(config-access-map)# action forward Давайте изменим действие на "forward" и посмотрим, решит ли оно нашу проблему. Ну вот, все работает. Урок 5 усвоен: если все остальное кажется нормальным, убедитесь, что нет никакого VACL! Case #6 Давайте продолжим урок 6 с другой топологией. Теперь вы знаете, что нам нужно сначала проверить интерфейсы, а затем VLAN. В этом примере у нас есть те же два компьютера, но теперь у нас есть два коммутатора. Пинг от Хост А к Хосту Б не работает, так с чего начнем поиск? Сначала мы проверим интерфейс fa0/1 на коммутаторе 1. Интерфейс запущен и работает, это switchport, назначенный для VLAN 10. Пока все выглядит неплохо. Port security не включен, так что нам не нужно беспокоиться об этом. Давайте проверим то же самое на коммутаторе 2. Интерфейс работает, и он был назначен на VLAN 10. В данный момент мы видим, что интерфейсы, "смотрящие" к компьютерам выглядят хорошо. В этот момент Вы могли бы сделать две вещи: Подключите другой компьютер к коммутатору 1 и назначьте его во VLAN 10. Посмотрите, можно ли общаться между компьютерами во VLAN 10, когда они подключены к одному коммутатору. Сделайте то же самое на коммутаторе 2. Проверьте интерфейсы между коммутатором 1 и коммутатором 2. Мы сконцентрируем свое внимание на интерфейсах между коммутатором 1 и коммутатором 2, потому что там много чего может пойти не так! Интерфейсы не показывают никаких проблем, время проверить информацию о switchport. Коммутатор A находится в магистральном режиме и использует инкапсуляцию ISL. Коммутатор B также находится в магистральном режиме, но использует инкапсуляцию 802.1Q. Имейте в виду, что (в зависимости от модели коммутатора) административный режим по умолчанию может быть dynamic auto. Два интерфейса, которые оба работают в dynamic auto режиме, станут портом доступа (access). Лучше всего самостоятельно переключить интерфейс в магистральный режим. В нашем случае оба интерфейса магистральные, так что это хорошо, но у нас есть несоответствие протокола инкапсуляции. SwitchA(config)#interface fa0/15 SwitchA(config-if)#switchport trunk encapsulation dot1q Мы изменим тип инкапсуляции, чтобы оба коммутатора использовали протокол 802.1Q. Проблема решена! И опять все работает. Урок 6 усвоен: убедитесь, что при настройке магистралей используется один и тот же протокол инкапсуляции. Case #7 Вот опять тот же сценарий. Сейчас рассмотрим еще кое-что, что важно проверить при решении проблем trunk. Предположим, мы проверили и убедились, что следующие элементы не вызывают никаких проблем: Интерфейсы (скорость/дуплекс). Безопасность портов. Конфигурация Switchport (назначение VLAN, интерфейс, настроенный в режиме доступа). К сожалению, эхо-запрос между компьютерами все еще не проходит. Давайте взглянем на интерфейсы fa0/15 на коммутаторах: Проверим, что оба интерфейса находятся в магистральном режиме и что мы используем один и тот же протокол инкапсуляции (802.1 Q). Здесь нет никаких проблем. Что-нибудь еще, что может пойти не так с этой магистральной связью? Да! Магистраль может быть работоспособной, но это не означает, что все VLAN разрешены по магистральному каналу связи. В приведенном выше примере вы видите, что разрешена только VLAN 20. SwitchA(config)#interface fa0/15 SwitchA(config-if)#switchport trunk allowed vlan all SwitchB(config)#interface fa0/15 SwitchB(config-if)#switchport trunk allowed vlan all Давайте позволим всем VLAN пройти магистраль. По магистральной линии может передаваться трафик VLAN 10 между двумя коммутаторами. В результате пинг идет между компьютерами....еще одна проблема решена! Урок 7 усвоен: всегда проверяйте, разрешает ли магистраль все VLAN или нет. Case #8 Вот вам новый сценарий. Два компьютера, имеют разные IP-адреса. Коммутатор - это многоуровневый коммутатор. Поскольку компьютеры находятся в разных подсетях, нам приходится беспокоиться о маршрутизации. Мы видим, что два компьютера не могут связаться друг с другом. С чего мы должны начать устранение неполадок? Это статья не о настройке windows, но нам нужно обратить внимание на наши хосты. Поскольку компьютеры должны "выйти из своей собственной подсети", мы должны проверить, что IP-адрес шлюза по умолчанию в порядке и доступен. Хост А может достичь шлюза по умолчанию, поэтому мы, по крайней мере, знаем, что хост А работает нормально. Вот IP-конфигурация хоста B. Давайте проверим доступность шлюза по умолчанию! Здесь тоже все работает. Мы знаем, что компьютеры рабочие, потому что они знают, как выйти из своей собственной подсети, и шлюз по умолчанию доступен. Пора проверить коммутатор. Как мы видим, что хост А находится в VLAN 10 и хост B находится в VLAN 20. Мы не проверяли, включены ли интерфейсы, потому что мы можем пинговать IP-адреса шлюза по умолчанию. Это говорит о том, что fa0/1 и fa0/3 работают, но мы не знаем, к какой VLAN они принадлежат. Были сконфигурированы два интерфейса SVI. Это IP-адреса, которые компьютеры используют в качестве шлюза по умолчанию. Так почему же наш коммутатор не маршрутизирует трафик? Наличие IP-адресов на интерфейсах не означает автоматическую маршрутизацию трафика. Для этого нам потребуется таблица маршрутизации. Этот коммутатор не имеет SwitchA(config)#ip routing Давайте включим маршрутизацию на этом коммутаторе. Давайте сделаем так, чтобы это выглядело получше. Теперь коммутатор знает, куда перенаправлять IP-пакеты на этом коммутаторе. Вот так...теперь два компьютера могут достучаться друг до друга! Проблема решена! Урок 8 усвоен: если вы используете многоуровневый коммутатор для маршрутизации interVLAN, убедитесь, что интерфейсы SVI настроены правильно и что маршрутизация включена. Мы рассмотрели наиболее распространенные ошибки, которые могут произойти с нашими интерфейсами, VLAN, транками и проблемами маршрутизации при использовании многоуровневых коммутаторов. В следующей статье мы рассмотрим связующее дерево. Spanning-tree-довольно надежный протокол, но есть ряд вещей, которые могут пойти не так, как, вы ожидаете. Кроме того, из-за неправильной настройки могут произойти некоторые странные вещи...давайте рассмотрим траблшутинг STP в следующей статье.
img
Всем привет! Мы начинаем рассказывать о продуктах унифицированных коммуникаций разработанных компанией Cisco Systems. В сегодняшней статье мы рассмотрим подключение и регистрацию IP-телефона Cisco к Cisco Unified Communications Manager (CUCM) . Как это работает? При подключении IP-телефона Cisco к CUCM используются следующие функции и сервисы: Network Time Protocol (NTP) Cisco Discovery Protocol (CDP) Dynamic Host Configuration Protocol (DHCP) Power Over Ethernet (PoE) Trivial File Transfer Protocol (TFTP) Domain Name System (DNS) Процесс регистрации телефона происходит следующим образом: Телефон получает питание c помощью блока питания или при помощи PoE; Телефон загружает ПО, которое хранится локально в его памяти; Телефон узнает голосовой VLAN ID при помощи CDP; Телефон использует DHCP чтобы узнать свой IP адрес, маску подсети, шлюз и адрес TFTP сервера; Телефон связывается с TFTP сервером и запрашивает конфигурационный файл. (У каждого телефона есть конфигурационный файл, который имеет вид SEP<мак_адрес>.cnf.xml); Телефон регистрируется на CUCM, который указан в конфигурационном файле; Файл SEP<мак_адрес>.cnf.xml содержит список CUCM серверов, в том порядке, в котором телефон должен проходить регистрацию. Также он содержит список TCP портов, которые используются в SCCP коммуникации, список ПО для каждой модели телефона и сервисные URI, которые используются телефоном. Телефоны добавить в CUCM можно несколькими путями: Ручное добавление: Добавление нового телефона и настройка всех параметров вручную Авторегистрация: Добавление и настройка телефона автоматически, при подключении к сети Использование Bulk Administration Tool (BAT) : Добавление нескольких телефонов при помощи .csv файла Настройка В данной статье мы разберем ручное подключение IP-телефона к CUCM. Для этого нужно выполнить следующие шаги: Заходим в веб-интерфейс CUCM и переходим в меню Device –Phone, где нажимаем Add New для добавления нового телефона. Выбираем модель телефона в выпадающем списке и нажимаем Next. Выбираем протокол, по которому будет работать телефон (SCCP или SIP; некоторые телефоны поддерживают только один протокол и в таком случае этот шаг будет пропущен). На этой странице указываем информацию о телефоне. У четырех пунктов нет дефолтных значений и их нужно вести вручную: MAC Address: в этом поле указываем уникальный MAC-адрес телефона, который можно посмотреть либо в меню телефона, либо на самом аппарате; Device Pool: этот пункт содержит общие настройки телефона, которые зависят от его местоположения и будущего пользователя. Для базовой настройки выбираем Default; Phone Button Template: этот пункт определяет какой шаблон кнопок будет применен к телефону; Device Security Profile: этот пункт отвечает за применение настроек, относящихся к безопасности. Можно использовать стандартную настройку – Standard SCCP/SIP Non-Secure Profile; После этих шагов нажимаем Save и после перезагрузки страницы слева появится панель Association Information. В ней нажимаем Line [1] – Add New DN чтобы добавить Directory Number для этого телефона. В открывшемся окне указываем следующие параметры: Directory Number – номер конечного устройства; Alerting Name – имя телефону, которое будет видно звонящему (тут можно вводить на русском языке); ASCII Alerting Name – имя которое будет отображаться у телефонов, не поддерживающих Unicode; Display – имя, которое используется как внутренний CallerID; Line Text Label – текст, который будет отображаться на телефоне, для описания выбранной линии; После того как мы прописали всю необходимую информацию нажимаем Save. Затем возвращаемся в предыдущий раздел где нажимаем кнопку Apply Config чтобы загрузить на новый конфигурационный файл на телефон. В последующем добавлять новые телефоны такой же модели можно если в меню Phone Configuration нажать на COPY и ввести данные нового телефона.
img
Если PowerShell кажется вам сложным для использования его для повседневных задач, "круто" может быть не тем словом, которое у вас ассоциируете с ним. Но PowerShell является основной частью Exchange, Windows Server и SQL Server, и он обладает огромными возможностями, которые мы все должны понять, принять и использовать, чтобы облегчить и автоматизировать наши текущие дела. Я собираюсь немного поразвлечься и показать вам несколько хитростей, которые определенно пригодятся вам в решении нудных задач на работе. Кроме того, вы будете выглядеть намного круче в глазах ваших коллег, когда сможете решить проблему из командной строки. Согласитесь, это выглядит привлекательно, чем щелкать правой кнопкой мыши и что-то исправлять. Будьте очень осторожны так как это инструмент достойный своего названия (Power – Сила, Shell – Оболочка). PowerShell может легко вызвать массовые изменения конфигурации, как положительные, так и отрицательные, поэтому для безопасности создайте тестовую или лучше всего виртуальную среду для вашего обучения и тестирования. Если вы будете тестировать у себя на компьютере, то создайте точку восстановления системы. Чтобы во время выполнения одной из следующих команд что-то пойдет не так, вы всегда могли восстановить свой компьютер. 10 крутых вещей, которые можно сделать с помощью Windows PowerShell 1: Отчёты о подключённых USB оборудованиях PowerShell даёт возможность работать с Windows Management Instrumentation (WMI). С помощью PowerShell, вы можете сделать WMI - запрос для получения информации о USB - устройствах, которые установлены как на локальной, так и на удаленных системах. gwmi Win32_USBControllerDevice -computername DBSERVER1 |fl Antecedent,Dependent В данной команде будет применен фильтр возврата предшествующих и зависимых полей с компьютера DBSERVER1. Если вы хотите получить полную информацию о USB-устройствах в системе, вы можете убрать оператор | и fl. Это весьма удобный способ для ведения отчётов по серверам, к которым подключены USB - устройства с лицензией. 2: Выполнение ваших любимых задач CMD в PowerShell Да, вы можете перестать использовать командную строку (CMD) и начать выполнять все те же задачи в PowerShell. Это поможет сделать процесс обучение немного проще и помочь вам лучше ознакомиться с интерфейсом. К сожалению, PowerShell невозможно вызвать через окно «выполнить» с помощью трёх букв, подобно CMD. Но вы можете назначить сочетание клавиш для быстрого запуска PowerShell, например, Ctrl + Shift + P. 3: Принудительное завершение процесса в PowerShell Если зависла какая-то служба Windows, вы можете использовать PowerShell для завершения процесса так же, как и через Диспетчер Задач. Например, для закрытия BadThread.exe, вы делаете следующее: get-process BadTh* Результаты выведут нам нужные данные в таком формате: Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 19 5 -321955 -312219 -154 32.76 7583 BadThread После того, как мы идентифицируем Process ID, вы можете принудительно закрыть зависший процесс введя команду: stop-process -id 7583 В тот же момент процесс BadThread будет принудительно остановлен, и вы сможете возобновить попытку запуска службы. Которую можете сделать прямо здесь, в PowerShell. 4: Используйте PSDrive для большего, чем просто просмотр дисков Команда PSDrive позволяет просматривать объекты Windows за пределами традиционных сетей, а также локальных или съемных дисков. Например, чтобы посмотреть диски в разделе верхнего уровня реестра HKEY_LOCAL_MACHINE, вы можете использовать HKLM PSDrive. Чтобы войти в реестр, введите следующую команду: PS C:> cd HKLM: PS HKLM:/> Затем вы переключаетесь в раздел регистра где сможете просмотреть список всех объектов и удалять их, если вам это нужно. 5: Экспорт NTFS разрешений папки – как обычно, так и рекурсивно Управление разрешениями NTFS - это отдельный вопрос, но с помощью PowerShell можно экспортировать список разрешений для аудита доступов или для быстрого анализа списка ACLs для настройки политик безопасности. Это лучший вариант для создания отчётности в формате периодически запускаемого скрипта, или вы можете запускать его по требованию, например, для диагностики конкретной проблемы, связанной с доступами. Например, используя следующую команду: PS E:>Get-Acl N:Data Это даст вам быстрый ответ с результатами ваших прав безопасности по указанному пути N:Data (обратите внимание, что команда не даёт доступ к ресурсу). Данная команда не даст нам общую картину всех доступов всего пути, а только отчёт только об указанном пути. Но если вы хотите включить рекурсию для всего пути, вы можете использовать другую команду. Для того же пути N:Data вы должны использовать командлет Get-ChildItem (cmdlet) в PowerShell в сочетании с командлетом Get-Acl. Рассмотрим следующий пример: PS E:>Get-ChildItem N:Data -recurse | Get-Acl Данная команда будет отображать списки ACL для содержимого всего пути N:Data. Разберём как это работает: командлет Get-ChildItem показывает нам все объекты файловой системы по указанному пути N:Data, а дальше весь список объектов передаётся командлету Get-Acl который предоставляет результаты (списки ACL) для каждого объекта. Если вы хотите заархивировать данные в документ (CSV), вам нужно добавить | export-csv c:filename.csv в конце команды. Кроме этого вы можете извлечь в обычный текстовый файл с помощью добавления командлета > C:filename.txt. Обратите внимание что, когда вы используете параметр -recurse, он будет применяться во всех вложенных файлах и папках. Поэтому будьте внимательны, когда используете его для инвентаризации объёмных томов или же по сети. 6: Отличия PowerShell 2.0 PowerShell 2.0 включает в себя графический интерфейс что является удобной особенностью данной системы. Скрипты PowerShell сохраняются как файлы .ps1, что позволяет нам легко изменять, импортировать и мигрировать сценарии в различные системы. На скриншоте ниже показан пример списка разрешений NTFS в графическом режиме. Примечание для PowerShell 2.0: Перед тем как начать использовать PowerShell 2.0 версию, необходимо настроить политику исполнения с помощью первой версии PowerShell. Введите одну из следующих команд для настройки политики исполнения под ваши нужды: PS C:> Set-ExecutionPolicy Restricted (только проверка) PS C:> Set-ExecutionPolicy AllSigned (наиболее безопасный) PS C:> Set-ExecutionPolicy RemoteSigned (средний уровень безопасности) PS C:> Set-ExecutionPolicy Unrestricted (наименее безопасный) При этом не забудьте, что для PowerShell 2.0 требуется пакет WS-MAN v1.1 и Microsoft.NET Framework 3.0 для графического интерфейса. 7: Горячие клавиши в графическом интерфейсе PowerShell Если вы знакомы со средой Microsoft SQL Query Analyzer, вы по достоинству оцените некоторые из этих сочетаний клавиш. В PowerShell GUI вы можете выбрать одну или несколько строк и выполнить их разом одним нажатием клавиши F5. Кроме того, если вы изменили скрипт, то для экономии времени при редактировании и тестировании доступны привычные Ctrl + S для сохранения, Ctrl + Z для отмены, Ctrl + C для копирования и Ctrl + V для вставки. 8: Фоновый режим для длительных задачи Если вы собираетесь использовать команду, выполнение которого займёт некоторое время, вы можете запустить PowerShell в фоновом режиме до её завершения. Таким образом, можно отправить серию команд на автоматическое выполнение по своему собственному расписанию. Чтобы запустить команду в фоновом режиме необходимо добавить в начало параметр –psjob. А ещё можно узнать о состоянии любого из заданий с помощью следующей команды: PS C:> get-psjob В дополнительном окне вы увидите таблицу с результатами о текущих состояний ваших заданий, дополнительно с уникальными идентификаторами сеанса для каждой задачи отдельно. На скриншоте ниже показана одна проваленная задача. С помощью следующей команды вы можете удалить неудачную задачу, указав ID Session в конце команды: PS C:>remove-psjob 9 9: Вставка временных рамок для вывода команд PowerShell Для задач PowerShell можно ввести временную метку последовательности, чтобы определить продолжительность каждого шага, к тому же можно использовать для настройки журнала вводимых скриптов. Это может оказаться удобным способом для их тестирования. Чтобы вставить метку времени, введите одну из следующих команд в виде одно строки в файле .ps1: КомандыВывод"$(Get-Date -format g) Start logging"20/4/2020 7:45 AM"$(Get-Date -format F) Start logging"Friday, December 23, 2019 8:26:24 AM“$(Get-Date -format o) Start logging"2019-11-17T19:26:24.0479860-06:00 Существует много различных форматов команды Get-Date, но обычно эти три параметра подходят для большинства целей с временными метками. 10: Вывод результатов с задержкой В PowerShell некоторые команды выводят информацию на экран быстрым прокручиванием. Если вы не экспортируете данные в файл, будет невозможно просмотреть их на экране. Давайте ещё раз воспользуемся командлетом Get-ChildItem из предыдущих примеров. Эта команда может выводить множество результатов в зависимости от указанного пути. Для упрощения просмотра выводимых данных на экране мы воспользуемся функцией, которая называется EasyView. Данная функция позволяет нам просмотреть результаты на экране путем отображения одной строки каждые полсекунды. Функция EasyView создаётся следующим образом: function EasyView { process { $_; Start-Sleep -seconds .5}} Чтобы выполнить команду PowerShell с помощью функции EasyView добавьте в конце команды оператор | и название самой функции, как показано ниже: Get-ChildItem N:Data | EasyView Функция EasyView настроена на отображение строк с интервалом в полсекунды. Вы также можете настроить интервал в миллисекундах. Итоги Крутые особенности на этих 10 пунктах не заканчиваются. Есть множества функций PowerShell, которые могут упростить ваши ежедневные задачи. Я надеюсь эта статья привлечёт ваше внимание к командной строке и поможет вам в будущем использовать PowerShell.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59