Управление через командную строку. Управление компьютером через командную строку
Управляем сервером Windows из командной строки
Содержание статьи
Windows всегда ассоциировалась с графическим интерфейсом, и долгое время win-админы считали благом отсутствие необходимости запоминать консольные команды. Но с увеличением возможностей использование GUI уже не казалось таким простым. Настройки приходится искать среди многочисленных вложенных диалоговых окон. Попытки все оптимизировать, менять местами и добавлять новые визарды только усиливали путаницу. Появился Server Core, вместо одного сервера приходится управлять уже десятками, нередко выполняя однотипные операции. В итоге админы вернулись к консоли.
На самом деле развитие консольных утилит все это время тоже не стояло на месте. Список команд не сильно изменился: net, netdom, whoami, скрипт активации slmgr.vbs, программа управления службами sc, сетевые утилиты для настройки и диагностики ipconfig, netsh, netstat/nbtstat, arp/getmac, ping, tracert, nslookup и многие другие. После анонса PowerShell появилась официальная информация, что привычные утилиты развиваться больше не будут, на смену им придут командлеты.
Такая судьба постигла консольный вариант диспетчера сервера ServerManagerCmd.exe и утилиту установки компонентов OCSetup.exe, которые, появившись в Win2008, пропали уже в Win2012. Теперь для установки компонентов из консоли используются командлеты Install-WindowsFeature и Add-WindowsFeature. Консольные утилиты по-прежнему привычнее, чем командлеты, но результат, полученный при помощи PowerShell, позволяет выбирать больше параметров, фильтровать их, обрабатывать в скриптах. А главное — теперь нужные данные можно получить не только с локальной, но и с удаленной системы, и в удобном виде. Все это говорит о том, что нужно уже быть готовым к переменам.
В последних редакциях ОС ярлык для запуска cmd.exe спрятали подальше в меню. Правда, и особой необходимости в его использовании нет, так как все традиционные консольные команды можно вводить непосредственно в консоли PowerShell (хотя есть и нюансы), обладающей несомненным преимуществом — автодополнением (по Tab). Постепенно на замену старым добрым утилитам появляются соответствующие командлеты, которые выдают аналогичный результат. Попробуем разобраться со всеми операциями по порядку, рассмотрим типичные задачи с использованием консольных команд и PowerShell.
Сразу после установки операционная система получает имя, сгенерированное случайным образом. Чтобы переименовать систему и подключить ее к домену, используется утилита netdom:
> netdom renamecomputer Win01 /newname:SRV01 > netdom join SRV01 /Domain:example.org /OU:ou=ouname,dc=example,dc=org /UserD:DomainAdmin /PasswordD:passwordТе же операции при помощи PowerShell выглядят даже понятней.
PS> Rename-Computer –NewName SRV01 PS> Add-Computer -domainname example.org -OUPath "OU=ouname=example,DC=org"После установки системы или компонента, возможно, потребуется настройка режима запуска сервиса. В консоли для этого есть две команды:
> Sc config winrm start= auto > Net start winrmА вот командлетов для управления запуском сервисов несколько: Get-Service, Start-Service, Set-Service, Stop-Service, Resume-Service. Их назначение говорит само за себя.
Sconfig.cmd
Запоминать команды админы Win не очень любят, в системе можно найти удобную оболочку для большинства консольных команд Sconfig.cmd. Изначально она разрабатывалась для Server Core, но в Win2012R2 доступна и в режиме полной установки сервера. Sconfig не требует знания всех ключей и позволяет, перемещаясь по 15 пунктам, быстро произвести основные установки или выполнить некоторые команды: добавить сервер в домен или рабочую группу, сменить имя компьютера, добавить локального администратора, настроить удаленное управление через WinRM и удаленный рабочий стол, настроить сеть, Windows Update, время и дату, перезагрузить и выключить компьютер. Нужно помнить, что скрипт использует стандартные консольные утилиты и если они пропадут в следующем релизе, то, скорее всего, не будет и Sconfig.
Sconfig.cmd упрощает работу ленивым админамА вот с монтированием сетевых дисков не все так просто. Традиционно эта операция выполняется при помощи net use:
Его аналогом считается командлет New-PSDrive (от PowerShell Drive), но здесь есть проблема, которая многим неочевидна и порождает кучу вопросов.
PS> New-PSDrive –Name E –PSProvider FileSystem –Root \\SRV01\usersПри помощи New-PSDrive создается так называемый диск PowerShell, который доступен только в текущем сеансе консоли и только в PowerShell. То есть при помощи проводника, WMI, средствами .NET Framework, net use подключиться к такому диску нельзя. Это неочевидно, но в документации это явно прописано. Просто ее мало кто читает.
Чтобы постоянно использовать диск, необходимо экспортировать сеанс, в котором добавлен диск, или сохранить команду New-PSDrive в профиле PowerShell, или изначально использовать командлет New-Object:
PS> $net = New-Object -ComObject WScript.Network PS> $net.MapNetworkDrive("E:", "\\SRV01\users")И только в PowerShell 4.0 появился параметр –Persist, позволяющий монтировать PS-диски постоянно.
PS> New-PSDrive –Name E –PSProvider FileSystem –Root \\SRV01\users –PersistДля работы с дисками и разделами консоль Windows предлагает две утилиты: diskpart и fsutil. Они не очень удобны и информативны, а поэтому малопопулярны и их часто заменяют альтернативными разработками. Получим статистику по разделу.
Команда «Get-Command disk» выдаст несколько командлетов, но в нашем примере они не очень помогают, и, чтобы получить информацию о свободном месте, по-прежнему приходится обращаться к WMI:
PS> Get-WmiObject Win32_LogicalDisk -ComputerName SRV01 -Filter "DeviceID='C:'" | Select-Object Size,FreeSpaceДоступ к файлам в Win традиционно регулируется двумя утилитами — takeown и icacls (есть еще и cacls, но она признана устаревшей), вполне справляющимися со своими обязанностями. Например, чтобы сделать текущую учетную запись (должна входить в группу админов) владельцем каталога, достаточно ввести:
> takeown /f c:\temp пуеУтилита icacls позволяет управлять списками контроля доступа. Для примера, сохраним ACL в файл и восстановим его:
> icacls c:\temp\* /save acl.txt /T > icacls c:\temp\ /restore acl.txtТа же операция при помощи PowerShell выглядит проще:
PS> Get-Acl c:\temp | Set-Acl -Path c:\temp
Управление BYOD при помощи PowerShell
Одна из самых больших проблем, с которыми сталкиваешься при работе с моделью BYOD, — отсутствие управления устройствами пользователей. В Win2012R2 этим заправляет Device Registration Service (DRS), при регистрации на устройство устанавливается сертификат, а в AD создается новый объект устройства.
Этот объект устанавливает связь между пользователем и устройством, создавая нечто вроде двухфакторной аутентификации. Пользователи получают доступ к корпоративным ресурсам, которые были недоступны, когда они работали за пределами доменной сети. Для работы потребуется роль Active Directory Federation Services (AD FS) и собственно служба DRS (устанавливается при помощи командлета Install-AdfsFarm). Теперь инициализируем службу и приступаем к регистрации устройств пользователей.
PS> Initialize-ADDeviceRegistration -ServiceAccountName example\adfsfarm PS> Enable-AdfsDeviceRegistrationВ консоли AD FS Management переходим к Authentication Policies, выбираем Edit Global Primary Authentication и активируем Enable Device Authentication. Теперь, используя командлет Get-AdfsDeviceRegistration, можем просматривать и подтверждать устройства (подробнее).
Комплект консольных сетевых утилит достаточно хорошо известен администраторам, ведь их приходится использовать довольно часто, как при установке, так и для диагностики. Настраивают сетевой интерфейс при помощи netsh interface. Для примера просмотрим список и для одного из доступных установим IP и DNS-сервер:
Для установки и изменения параметров сетевого интерфейса при помощи PowerShell 3.0 и выше используются командлеты New-NetIPAddress и Set-NetIPAddress.
PS> Get-NetIPInterface PS> Set-NetIPAddress –InterfaceAlias Ethernet –IPv4Address 192.168.1.10 –PrefixLength 24 –DefaultGateway 192.168.1.1 PS> Set-DNSClientServerAddress –InterfaceAlias Ethernet -ServerAddresses "192.168.1.10","8.8.8.8"Причем New-NetIPAddress позволяет задавать несколько IP для одного интерфейса. Вместо InterfaceAlias можно использовать индекс InterfaceIndex, который легко узнать в выводе Get-NetIPInterface.
На смену команде route пришел набор командлетов, очень простых и понятных в использовании.
PS> Get-NetRoute PS> New-NetRoute -DestinationPrefix "0.0.0.0/0" -NextHop "10.10.10.1" -InterfaceAlias Ethernet Таблица маршрутизации, полученная при помощи route и Get-NetRouteАналогом ping служат два командлета Test-Connection и Test-NetConnection (сокращенно tnc). Первый очень простой и напоминает обычный ping, второй позволяет проверить доступность определенного порта или системы с разных ПК. Например, посмотрим, на каких ПК в группе включен RDP, и проверим подключение к example.org с двух систем:
PS> Test-NetConnection -ComputerName example.org -source localhost, SRV02 PS> (Get-ADComputer -LDAPFilter "(name=office*)").DNSHostName | Test-NetConnection -Port 3389Но иногда вместо одной команды придется запомнить несколько командлетов. Так, состояние сетевых интерфейсов традиционно можно узнать при помощи ipconfig. До Win2012/8, чтобы сделать то же самое при помощи PowerShell, приходилось обращаться непосредственно к WMI. Например, нам нужны МАС- и IP-адреса:
PS> Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE | Select MACAddress,IPAddressПеременная patch
В качестве команд Win может принимать любой файл с расширением exe, bat, cmd, com, js, msc и vbs, который расположен в текущем каталоге или прописан в переменной PATH. Просмотреть значение PATH очень просто. Для этого вводим «echo %PATH%» или используем команду set (set > filename.txt). В консоли PowerShell — «echo $Env:PATH» или «Get-ChildItem Env:». Чтобы изменить, просто дописываем нужный каталог:
> set PATH=%PATH%;C:\exampleили используем GUI (My Computer -> Свойства системы -> Дополнительно -> Переменные среды -> Path). Средствами PowerShell изменить значение можно, установив SetEnvironmentVariable:
PS> [environment]::SetEnvironmentVariable('path',"$env:Path;C:\example",'Machine')И только в PowerShell 3.0 появился простой аналог ipconfig, точнее, несколько. Например, командлет Get-NetIPAddress выдает подробную информацию об интерфейсах, а Get-NetIPConfiguration (алиас gip) позволяет получить информацию о сетевых настройках: IP интерфейса, шлюза и DNS. Добавив дополнительные параметры, например –Detailed, получим больше данных.
Профильтровав их вывод, мы можем заменить «ARP –a» выводящую таблицу МАС-адресов и GETMAC — отображающую MAC-адреса сетевых адаптеров локального или удаленного компьютера. Есть уже и готовые скрипты. Например, PingMultipleServerWithTraceroute.ps1 (goo.gl/0iLeyg) позволяет проверить подключение к нескольким серверам и запустить аналог tracert к неответившим системам.
Настройка брандмауэра Windows в режиме повышенной безопасности WFAS (Windows Firewall with Advanced Security) традиционно производится при помощи netsh advfirewall, появившейся в ОС начиная с Win2k8/Vista и практически не изменившейся с тех пор. Контекст advfirewall позволяет использовать семь команд (export, import, dump, reset, set, show и help) и четыре субконтекста (consec, firewall, mainmode и monitor). Просмотреть подробности можно, использовав ключ help или ‘/?’, да и в Сети доступно достаточное количество примеров. Например, команда set позволяет сконфигурировать профили, show — просмотреть состояние. Смотрим настройки по умолчанию, активируем профили и для Domain действием по умолчанию установим блокировку.
> netsh advfirewall show allprofiles > netsh advfirewall set allprofiles state on > netsh advfirewall set domainprofile firewallpolicy blockinboundТеперь тот же пример, но средствами PS:
PS> Get-NetFirewallProfile PS> Set-NetFirewallProfile -All -Enabled True PS> Set-NetFirewallProfile –Name Domain –DefaultInboundAction BlockКак видим, командлеты выглядят даже проще. Вместо параметра All можно указать на конкретный профиль: –Profile Domain,Public,Private.
Смотрим профили Windows FirewallДоступны и прочие функции. Например, можем исключить Ethernet-интерфейс из профиля Public.
PS> Set-NetFirewallProfile -name Public -DisabledInterfaceAliases EthernetЧтобы вернуть настройки в исходное состояние, достаточно вместо Ethernet установить NotConfigured. Дополнительные параметры командлета Set-NetFirewallProfile позволяют настроить журналирование, добавить IP, порт, протокол и многое другое. Все манипуляции с правилами производятся при помощи семи командлетов: New|Set|Copy|Enable|Disable|Remove|Rename-NetFirewallRule. Чтобы просмотреть установленные правила, используем командлет Get-NetFirewallRule, при помощи фильтров мы можем легко отобрать нужные. Например, блокирующие и все, что касается IE:
PS> Get-NetFirewallRule -Enabled true -Action block PS> Get-NetFirewallRule -DisplayName “*IE*”Создадим правило, блокирующее исходящие соединения для IE в двух профилях.
PS> New-NetFirewallRule -Program “C:\Program Files\Internet Explorer\iexplore.exe” -Action Block -Profile Domain, Private -DisplayName “Block IE” -Description “Block IE” -Direction OutboundТеперь к правилу можем добавить протокол, порт и IP удаленной и локальной системы.
PS> Set-NetFirewallRule -DisplayName “Block IE” -Protocol TCP -RemotePort 80 -RemoteAddress “10.10.10.1-10.10.10.10” -LocalAddress “192.168.1.10”При создании или изменении мы можем группировать правила, используя параметр –Group, и впоследствии управлять не одним правилом, а всеми входящими в группу, при помощи -DisplayGroup. Чтобы отключить правило, воспользуемся
PS> Disable-NetFirewallRule -DisplayName “Block IE”Вполне очевидно, что в будущем админу все больше и больше придется выполнять настройки не при помощи GUI, а используя средства командной строки. Это быстрее, позволяет автоматизировать практически все задачи и легко управляться с большим количеством серверов.
INFO
Список параметров командлета можно узнать при помощи Show-Command, например Show-Command Get-NetFirewallRule.
xakep.ru
Администрирование из командной строки
Администрирование Windows из командной строки
Парадоксально, но факт: утилиты командной строки в Windows никогда не привлекали внимания ни пользователей, ни администраторов, но в тоже время состав и возможности этих утилит обогащаются каждый год. В этой статье мы поговорим о командной строке в Windows.
О том, как работать в командной строке
Наиболее часто используемой утилитой командной строки является сам командный интерпретатор - cmd.exe. Именно его мы запускаем, когда нам нужно поработать с командной строкой. Интерпретатор cmd пришел на замену command.com из мира DOS и Windows 9x. Понятно, что в окне командного интерпретатора нужно вводить команды. Команды выполняются. Если ты торопишься, и тебе не хочется ждать завершения первой команды, тогда можно ввести сразу несколько команд, разделив их амперсандом:
- команда1 & команда2 & ... & командаN
Если данную последовательность команд приходится выполнять часто, целесообразно создать командный файл - это обычный текстовый файл с расширением .cmd. Каждая команда записывается в отдельной строке, хотя это и не обязательно - можно использовать амперсанды. Иногда нужно проанализировать результат первой команды, а только потом, если результат успешен, выполнить вторую команду. Это можно реализовать с помощью двойного амперсанда:
- команда1 && команда2
Вторая команда будет выполнена, если код завершения первой команды равен 0 (успешное завершение). Не успел прочитать вывод программы? Тогда вывод можно передать программе more для постраничного вывода (листать вывод нужно пробелом):
Символ " | " используется для перенаправления стандартного вывода одной команды на стандартный ввод другой. Что будет делать с этим выводом другая программа, зависит только от нее. Для перенаправления вывода команды в файл используются символы > и >>:
- команда > файл
- команда >> файл
В первом случае файл, если он существует, будет перезаписан, а во втором информация будет добавлена в конец файла. Для подавления вывода какой-нибудь команды можно перенаправить вывод в пустое устройство:
Для очистки "экрана" командной строки удобно использовать команду cls. Команды бывают внутренними и внешними. Внутренние команды выполняет сам cmd.exe. Внешние команды - это EXE-файлы (то есть программы) на диске. Когда мы вводим команду, cmd определяет, какая это команда. Если внутренняя, то выполняет ее сам, если команда не является внутренней, тогда cmd производит поиск исполнительного файла в текущем каталоге и по пути поиска программ (переменная окружения PATH). Просмотреть путь переменную PATH можно так:
Какие имеются команды?
Команд много и все в этой статье мы не рассмотрим. Да и вообще подробно команды рассматривать не будем. А зачем? Вводишь имя команды, пробел, слеш и вопросительный знак (параметр /?). В ответ получишь описание команды и ее параметров. Нужно просто знать, что делает та или иная команда, а уж описание прочитать проблем не составит.
- Итак, все команды можно разделить на следующие группы:
- команды для работы с файловой системой
- команды для управления операционной системой
- команды мониторинга
- сетевые команды
- команды для поддержки Active Directory
- команды для обслуживания жестких дисков
- другие команды
Команды для управления операционной системой
В Unix есть очень полезная программа shutdown, с ее помощью можно не только завершить работу системы (или перезагрузить ее), но и указать время завершения работы. Аналог этой команды есть и в Windows. С ее помощью можно просто завершить работу систему, выполнить перезагрузку, завершить работу активных пользователей, перейти в режим пониженного энергопотребления и завершить сеанс без отключения компьютера. Очень полезен параметр -t, позволяющий задать в секундах таймаут операции. К командам этой группы также относится программа taskkill, которая используется для завершения работы одного или нескольких процессов. Задать процесс можно по имени образа (имени исполнимого файла - ключ /IM) или по идентификатору процесса (ключ /pid). Например:
Вообще возможностей у этой команды очень много, например, можно завершить все процессы, которые используют определенную DLL.
Команды мониторинга
Команде taskkill, как было отмечено, нужно передать или имя образа или PID процесса. Узнать PID процесса можно с помощью команды tasklist. Также к данным командам относятся команды mem (вывод информации об использовании памяти), systeminfo (полная информация о системе) и tracerpt (отслеживает журнал событий и выводит отчет в формате CSV)
Сетевые команды
В Windows довольно много программ для диагностики и мониторинга сети, причем некоторые администраторы даже не подозревают о существовании этих команд.
- arp - управление ARP-таблицей
- ping - отправляет ICMP-пакеты на указанный узел для проверки доступности узла.
- ping6 - версия ping для IPv6
- tracert - трассировка маршрута к указанному узлу (показывает маршруты, то есть список маршрутизаторов, между двумя узлами сети)
- tracert6 - версия tracert для протокола IPv6
- pathping - усовершенствованная версия tracert
- net - управляет сетью из командной строки
- nskookup - позволяет просматривать записи DNS-сервера
- netstat - вывод информации о сети
- ipconfig - вывод информации о настройках протокола IP
- route - вывод и изменение таблицы маршрутизации
- netsh (routemon) - управление маршрутизатором
Особого внимания заслуживают команды net и netstat. С помощью первой команды можно произвести много различных операций. Введи команду net без параметров. В ответ получишь список команд:
- accounts - используется для обновления базы данных регистрационных записей и изменения параметров входа в сеть
- computer - добавляет или удаляет компьютеры из базы данных домена NT
- config - выводит информацию о службах сервера или рабочей станции
- continue - активизирует службу, ранее приостановленную с помощью команды net pause
- file - используется для установки и снятия блокировки с совместно используемого файла, а также для вывода списка блокировок
- group - вывод информации о глобальных группах сервера, также используется для изменения глобальных групп
- localgroup - управляет локальными группами на локальном компьютере
- name - управляет псевдонимами этого компьютера
- pause - приостанавливает выполнение заданной службы, продолжить работу службы можно с помощью команды net continue
- print - управляет очередью печати
- send - отправляет короткое сообщение пользователям (или конкретному пользователю) сети
- session - управляет сеансами связи этого компьютера с другими компьютерами
- share - разрешает (или запрещает) использовать ресурсы этого компьютера другим компьютерам сети
- start - запускает остановленную сетевую службу
- stop - останавливает службу
- statistics - выводит журнал статистики для локальной службы рабочей станции или сервера
- time - синхронизирует время этого компьютера с временем другого компьютера сети
- use - используется для подключения общих ресурсов другого компьютера сети
- user - создает и изменяет учетные записи пользователя, используется только на сервере
- view - выводит список общих ресурсов этого компьютера
Получить справку по конкретной команде можно так:
- net help имя_команды
Теперь поговорим о команде netstat. Она выводит статистику использования сети и отображает информацию о текущих соединениях. Очень удобная команда. Представим, что на твоем компьютере закрыты все приложения, которые могут обращаться к сети, а обращение к сети все равно производится, о чем свидетельствуют индикаторы в system tray. Введи команду netstat -o и узнаешь, какая программа обращается к сети (параметр -o используется для вывода PID процесса).
Команды обслуживания жестких дисков
Для проверки дисков используются команды chkdsk и chkntfs. Первая используется для проверки FAT-разделов, а вторая - для проверки NTFS-разделов. Для дефрагментации диска используется команда defrag. Команда recover используется для восстановления файлов с поврежденных разделов, а всем известная команда format используется для форматирования дисков.
Вместо команды fdisk, которая использовалась в Windows 9x, в современных версиях Windows используется программа diskpart. Данная программа позволяет разбить диск на разделы, создать логические диски, удалить логические диски, выбрать активный раздел и т.д. Если команда fdisk работала в интерактивном режиме, то diskpart в основном ориентирована на использование сценариев. Сценарии - это текстовые файлы, в которых содержатся инструкции, которые должна выполнить diskpart. Вызвать diskpart можно так:
- diskpart /s <имя_сценария>
Вот пример сценария diskpart:
- select disk 0
- clean
- create partition primary
- select partition 1
- assign letter=c:
- active
- format
- exit
Обрати внимание, как производится работа с объектами в diskpart. Сначала нужно выбрать какой-то объект (с помощью команды select): сначала мы выбираем диск (select disk). Затем нужно произвести операции с объектом. Мы производим две операции (clean и create partition). Потом мы уже выбираем другой объект - раздел (select partition) и производим операции с ним (делаем раздел активным и форматируем его). Можно указать размер создаваемого раздела, например:
- create partition primary size=5000
В данном случае будет создан раздел размером в 5 Гб. К данному разделу можно отнести еще две команды - diskperf, которая управляет счетчиками производительности жесткого диска, и fsutil, которая управляет поведением файловой системы. Например, с помощью fsutil можно сбросить или установить флаг тома "грязный" (dirty), а также получить информацию о файловой системе. В общем, читай man, то есть fsutil /?
Команды для поддержки и диагностики Active Directory
В Windows для управления службой каталога используются так называемые DS-утилиты:
- dsquery - выводит список объектов Active Directory по заданным параметрам поиска
- dsget - возвращает атрибуты заданного объекта Active Directory, может принимать на стандартный ввод стандартный вывод команды dsquery
- dsadd - добавляет один или несколько объектов ActiveDirectory
- dsmod - модифицирует атрибуты существующего объекта
- dsmove - перемещает объект из одного домена в другой
- dsrm - удаляет один или несколько объектов
Синтаксис всех DS-команд похож, используй /? для получения справки. Для диагностики контроллера домена (DC) используется утилита DcDiag из комплекта Support Tools. Если запустить ее без параметров, то запустится 27 тестов DC (в Windows 2000 было 22 теста).
Другие команды
Ты помнишь, как называется команда, но когда ее вводишь, получаешь сообщение, что такая команда не найдена? Тогда попробуй использовать команду where (аналог which в Unix):
Команда where появилась в Windows 2003, в Windows 2000 и Windows 2002 (она же XP) ее нет. Для выполнения какой-то команды в строго определенное время можно использовать планировщик at. Можно задать дату запуска команды, время, интервал (например, каждый день). Программа может работать в интерактивном режиме (параметр /interactive). Если боишься редактировать файл boot.ini в блокноте, можешь использовать программу bootcfg, которая позволит тебе избежать ошибок при редактировании этого файла.
Иногда полезно опросить драйверы устройств. Для этого используется команда driverquery.
Windows PowerShell
Возможности стандартного командного интерпретатора cmd в Windows довольно скудны, особенно по сравнению с командными интепретаторами Unix - ksh, bash, csh и др. В Microsoft это тоже понимают, поэтому была разработана оболочка Monad, она же MSH, которая впоследствии была переименована в Windows PowerShell. Установить MSH можно в следующих платформах: Windows XP SP2, Windows Vista, Windows Server 2003 and Windows Server "Longhorn".
Скачать PowerShell можно по адресу: http://www.microsoft.com/windowsserver2003/technologies/management/powershell/default.mspx Там же можно скачать и полное руководство по PowerShell.
Оболочка PowerShell - это интерактивный командный интерпретатор. Как и cmd, в PowerShell можно создавать сценарии, позволяющие администраторам автоматизировать управление системными задачами, как на сервере, так и на других компьютерах сети. PowerShell, в отличие от cmd, который предоставляет доступ только к файловой системе, позволяет управлять всей операционной системой и ее приложениями, например, мы можем работать с реестром Windows как с обычной файловой системой. В этой статье мы рассмотрим далеко не все возможности PowerShell.
Вот некоторые полезные команды, которые нужно знать, для начала работы в PowerShell:
- Get-Command - получить список доступных команд
- Get-Help - получить справку по указанной команде
- Get-Drive - получить список дисков
- Set-Location - изменить текущее местоположение (аналог команды cd в cmd)
- Set-Alias - создать псевдоним для команды
- Get-Date - вывести дату
Как и в cmd, поддерживается перенаправление ввода-вывода, например:
- Get-Date > current-date.txt
При запуске PowerShell автоматически запускаются следующие сценарии (если они найдены).
- Documents and Settings\All Users\Documents\Msh\profile.msh
- Documents and Settings\All Users\Documents\Msh\Microsoft.Management.Automation.msh_profile.msh
- $HOME\My Documents\msh\profile.msh
- $HOME\My Documents\msh\Microsoft.Management.Automation.msh_profile.msh
Сценарий - это обычный текстовый файл, содержащий команды PowerShell. Расширение у файла сценария должно быть msh. Синтаксис PowerShell похож на синтаксис любого другого языка высокого уровня. Рассмотрим несколько примеров:
- MSH> 5*5
- 25
- MSH> "Конкатенация" + "строк"
- Конкатенация строк
- MSH> (Get-Date).year * 5
- 10035
Можно работать с переменными, причем поддерживаются массивы:
- MSH> $t = 10
- MSH> $t
- 10
- MSH> $arr = 1,2
- MSH> $arr
- 1
- 2
- MSH> $arr[1] = 3
- MSH> $arr
- 3
- 2
Перед именем переменной нужно обязательно указывать знак доллара - так PowerShell поймет, что перед ним переменная, а не значение. Нумерация элементов массива начинается с единицы. Для доступа к элементу массива используются квадратные скобки. Для добавления нового элемента в массив используется оператор +:
- MSH> $arr += 7
- MSH> $arr
- 3
- 2
- 7
Кроме простых массивов поддерживаются ассоциативные массивы:
- MSH> $assoc = @{ one = 1; two = 2; three = 3}
- MSH> $assoc['one']
- 1
Для добавления элемента в ассоциативный массив используется вот такая конструкция:
Тип переменной выбирается автоматически, но можно установить любой тип .NET: array, bool, byte, char, char[], decimal, double, float, int, int[], long, long[], regex, single, scriptblock, string, type, xml. Тип переменной определяется в квадратных скобках в момент присваивания:
В сценариях можно использовать условные операторы if-elseif-else, switch, а также операторы циклов while, do-while, do-until, foreach. Мы рассмотрим только оператор if-elseif-else и циклы while и foreach. Конструкция if-elseif-else следующая:
Условие задается так:
- переменная оператор_сравнения переменная_или_значение
Цикл while выглядит так:
- while {условие} {операторы}
Пример:
- $i = 0; while($i -lt 10) { $i; $i++ }
- Данный цикл выведет числа от 0 до 9.
Теперь рассмотрим синтаксис foreach:
- foreach (переменная in ассоциативный_массив) {операторы}
Цикл foreach удобно использовать для перебора значений ассоциативного массива, например:
- foreach ($v in Get-Process |Sort-Object Name) { $v.Name }
Сейчас рассмотрим работу с реестром. Перейти в нужный раздел можно с помощью всем знакомой команды cd:
Мы перешли в раздел HKEY_CURRENT_USER. Можно перейти в другой раздел, например, HKEY_LOCAL_MACHINE, задав его имя или сокращение (hklm). Вывести содержимое раздела можно с помощью команды dir. Чтобы просмотреть содержимое раздела используется команда get-property:
- MSH> cd hkcu:SoftwareMicrosoftNotepad
- MSH> get-property
В данном случае мы выводим настройки Блокнота. Установить значение переменной в разделе можно с помощью команды set-property (следующая команда изменит шрифт Блокнота):
- MSH> set-property. -property lfFaceName -value "Arial"
Командную строку можно вызвать даже при установке Windows Vista - для этого во время установки нужно нажать Shift + F10
Команды для работы с файловой системой:
- type - просмотр файла
- more - постраничный вывод файла
- copy - копирование одного или нескольких файлов
- move - перемещение одного или нескольких файлов (или переименование каталога)
- del - удаление одного или нескольких файлов
- ren - переименование файла
- attrib - изменение атрибутов файла/каталога (скрытый, системный, только чтение, архивный)
- fc - сравнение файлов
- find - поиск текстовой строки в одном или нескольких файлах
- grep - поиск текстовой строки (можно использовать регулярные выражения) в файле или в списке файлов
- cd - смена каталога
- dir - вывод содержимого каталога
- tree - вывод дерева каталогов
- md (или mkdir) - создание каталога
- rd - удаление каталога или дерева каталогов
Операторы сравнения PowerShell
Оператор | Описание | Зависящая от регистра версия | Явно заданная независимая от регистра версия |
-eq | Равно | -ceq | -ieq |
-ne | Не равно | to -cne | -ine |
-gt | Более, чем | -cge | -ige |
-ge | Более, чем или равно | -cge | -ige |
-lt | Менее, чем | -clt | -ilt |
-le | Менее, чем или равно | -cle | -ile |
-like | Использование символов подстановки для поиска по образцу | -clike | -ilike |
-notlike | Использование символов подстановки для поиска несоответствия образцу | -cnotlice | -inotlice |
-match | Использование регулярных выраженией для поиска соответствия по образцу | -cmatch | -imatch |
-notmatch | Использование регулярных выражений для поиска несоотвутствия по образцу | -cnotmatch | -inotmatch |
-contains | Определение, содержит ли значение слева от оператора значение справа | -ccontains | -icontains |
-notcontains | Определение того, что значение слева от оператора не содержит значение справа | -cnotcontains | -inotcontains |
-replace | Заменяет часть или все значения слева от оператора | -creplace | -ireplace |
Логические операторы PowerShell
Оператор | Описание |
-and | Оба условия должны быть истинны, чтобы выражение было истинно |
-or | Одно или оба условия должны быть истинны, чтобы выражение было истинно |
-not | Указанные условия должны иметь значение "ложь", чтобы выражение было истинно |
! | Указанное условие должно иметь значение "ложь", чтобы выражение было истинно |
Опубликовано: 21.03.2015
rusopen.com
29 Things The U.K. Does That The U.S. Needs To Start Doing / Surfingbird
1. Mixing beer with cider.
It’s called a snakebite, and it will get you dancing on tables in no time.
2. Taking four weeks’ paid vacation
That’s twice as many days off, which explains why the Brits are half as likely to have public meltdowns on the subway.
3. Incorporating Yorkshire pudding in our dinners.
They’re little savory dough cups to fill with gravy and food before shoving into your mouth-hole. We’ve been eating dinner wrong this whole time.
4. Cursing on TV after 9 p.m.
Shoot, these mamajamas know what’s up.
5. Eating biscuits (cookies) with coffee or tea.
Like custard creams, which are like the blonde cousin of the Oreo but twice as delicious.
6. Celebrating bank holidays
Even more days off!
7. Embracing “wet cakes,” like trifle.
Cakes are great but that flour stuff really gets in the way of the gooey deliciousness.
8. Legally drinking at 18.
Old enough to go to war but not old enough to drink a beer? There’s something wrong with that.
9. Watching Peep Show.
We’ve adopted so much British television already, the self-deprecating dry comedy Peep Show is an obvious next step.
10. The ability to buy alcohol at any hour of the night.
Twenty-four hour newsagent = twenty-four hour beers. In some parts of our great nation you can’t get a beer after 9 p.m. Nine! P.M.!
11. Seeing boobs in the news.
Well, we could probably leave the page three girls to The Sun, but the U.S. could use a more relaxed attitude toward nudity in the media.
12. Lax open-container laws.
Imagine a world where you can chug a beer on the subway, sip a cider on the street, or knock back a bottle of merlot in the park. That magical kingdom exists, you guys. The United Kingdom.
13. Greggs
Pastries, sandwiches, bread, salads, soups, bread, pastas, desserts, bread, and bread. Sometimes they’re open 24 hours.
14. Using a coin system that makes sense.
The only coin in U.S. currency inscribed with a numerical amount is the nickel, and it literally says the words “five cents.” How unhelpful is that to the illiterate or tourists? Or illiterate tourists!
15. Castles
The Disney castles do not count.
16. Donkey rides on the beach.
Why the eff not?
17. Eating fries with curry sauce.
For those who require more of a kick than ketchup.
18. Cheese rolling
Which is where grown humans throw their bodies down a steep hill to capture a wheel of cheese. Whoever wins gets £1000 (but most importantly, free cheese).
19. Offering the full English breakfast as a menu option.
Because one meat at breakfast isn’t enough of meats.
20. Speaking with dat accent.
Every human being* loves a British accent.
21. Throwing parades that don’t suck.
Like the Caribbean Carnivals, which are more like a giant street party and less like people marching somberly down the road.
22. Signs that notify you when the next train is coming.
Or a more efficient rail system in general.
23. Accepting a range of ideologies.
There’s good old Charles Darwin on the 10-pound note. That shit would never fly in America.
24. Shopping at markets.
Matt Cardy / Getty Images
We need more markets.
25. Writing the date in a way that makes logical sense.
We’re blowing it, you guys.
26. Embracing the comedy of Monty Python.
This should be mandatory viewing for all U.S. citizens.
27. Free museums that are actually free.
Peter Macdiarmid / Getty Images
Not suggested-donation-of-$29-and-I’ll-give-you-a-look-if-you-decline-to-donate free. Actually free.
28. Offering affordable tuition fees (or FREE tuition, like in Scotland).
In buildings that look like this!
29. Producing people who look like this:
Christopher Polk / Getty Images
We could use a few of these in America.
Читать дальше
Одноклассникиматериал с buzzfeed.com
surfingbird.ru
Управление через командную строку Компьютерная помощь
Среди множества пользователей Windows, лишь немногие знают что такое командная строка и какие функции она исполняет. Давайте же подробнее рассмотрим этого «динозавра» в эпоху 21-го века.
Командная строка появилась давным давно, и сегодня смотрится несколько архаично, однако имеет ряд преимуществ. Рассмотрим их внимательнее.Во-первых сmd.exe позволяет создавать автоматизированные сценарии, то есть одной командой выполняется несколько команд , не требуя каждый раз ввода данных.Во-вторых при работе с множеством файлов , командная строка удобнее и практичнее. Выполняя однотипные операции с сотнями и тысячами файлов трудно обойтись без cmd.В третьих это огромный функционал в одном окне, можно использовать файловый менеджер, полностью редактировать жесткие диски, их файловую систему , получать различную информацию о системе, управлять приложениями и даже отключать компьютер. И это лишь крупица из того, что становится возможным при углубленном знакомстве.
Первое, что нужно запомнить для работы в командной строке, это как собственно ей управлять.Чтобы попасть в командную строку Windows, нужно нажать Пуск-Выполнить-cmd.exe
Основные команды при работе в cmd.exe:CMD — запуск еще одной копии командной строкиEXIT — выход из командной строкиCOLOR — позволяет настраивать цвета фона и шрифтаCLS — очищает экранПри помощи команды HELP вы увидите полный список доступных команд.
Команды для работы с файлами и папками:COPY — как несложно догадаться, копирует файл\файлы в другое место с сохранением оригинала.DEL / ERASE — удаляет файлыMOVE — перемещает файлы из одной папки в другуюPRINT — отправка на печатьREN / RENAME — переименованиеTREE — показывает «дерево» каталогов
Команды при работе с HDD (жесткими дисками):CHKDISK — осуществляет проверку диска и отображает её статистикуCONVERT — смена файловой системы диска с FAT на NTFSDISKPART — работа с разделами дискаFORMAT — используйте осторожно, удаляет все данныеRECOVER — восстановление
Это лишь малая часть возможностей командной строки. Например SYSTEMINFO расскажет вам о конфигурации системы, а TASKKILL принудительно завершит работу процесса. Всего не перечесть, и каждому нужны определенные функции, поэтому не бойтесь, смело изучайте и пользуйтесь, ведь знаний не бывает много.
www.pcs-service.ru