Windows powershell directory commands

Working with Files and Folders

Navigating through Windows PowerShell drives and manipulating the items on them is similar to manipulating files and folders on Windows physical disk drives. This article discusses how to deal with specific file and folder manipulation tasks using PowerShell.

Listing All the Files and Folders Within a Folder

You can get all items directly within a folder by using Get-ChildItem . Add the optional Force parameter to display hidden or system items. For example, this command displays the direct contents of Windows PowerShell Drive C (which is the same as the Windows physical drive C):

The command lists only the directly contained items, much like using Cmd.exe ‘s DIR command or ls in a UNIX shell. In order to show contained items, you need to specify the -Recurse parameter as well. (This can take an extremely long time to complete.) To list everything on the C drive:

Get-ChildItem can filter items with its Path, Filter, Include, and Exclude parameters, but those are typically based only on name. You can perform complex filtering based on other properties of items by using Where-Object .

The following command finds all executables within the Program Files folder that were last modified after October 1, 2005 and which are neither smaller than 1 megabyte nor larger than 10 megabytes:

Copying Files and Folders

Copying is done with Copy-Item . The following command backs up C:\boot.ini to C:\boot.bak:

If the destination file already exists, the copy attempt fails. To overwrite a pre-existing destination, use the Force parameter:

This command works even when the destination is read-only.

Folder copying works the same way. This command copies the folder C:\temp\test1 to the new folder C:\temp\DeleteMe recursively:

You can also copy a selection of items. The following command copies all .txt files contained anywhere in C:\data to C:\temp\text :

You can still use other tools to perform file system copies. XCOPY, ROBOCOPY, and COM objects, such as the Scripting.FileSystemObject, all work in Windows PowerShell. For example, you can use the Windows Script Host Scripting.FileSystem COM class to back up C:\boot.ini to C:\boot.bak :

Creating Files and Folders

Creating new items works the same on all Windows PowerShell providers. If a Windows PowerShell provider has more than one type of item—for example, the FileSystem Windows PowerShell provider distinguishes between directories and files—you need to specify the item type.

This command creates a new folder C:\temp\New Folder :

This command creates a new empty file C:\temp\New Folder\file.txt

When using the Force switch with the New-Item command to create a folder, and the folder already exists, it won’t overwrite or replace the folder. It will simply return the existing folder object. However, if you use New-Item -Force on a file that already exists, the file will be completely overwritten.

Removing All Files and Folders Within a Folder

You can remove contained items using Remove-Item , but you will be prompted to confirm the removal if the item contains anything else. For example, if you attempt to delete the folder C:\temp\DeleteMe that contains other items, Windows PowerShell prompts you for confirmation before deleting the folder:

If you do not want to be prompted for each contained item, specify the Recurse parameter:

Mapping a Local Folder as a drive

You can also map a local folder, using the New-PSDrive command. The following command creates a local drive P: rooted in the local Program Files directory, visible only from the PowerShell session:

Just as with network drives, drives mapped within Windows PowerShell are immediately visible to the Windows PowerShell shell. In order to create a mapped drive visible from File Explorer, the parameter -Persist is needed. However, only remote paths can be used with Persist.

Reading a Text File into an Array

One of the more common storage formats for text data is in a file with separate lines treated as distinct data elements. The Get-Content cmdlet can be used to read an entire file in one step, as shown here:

Читайте также:  Процессы запускаемые при загрузке windows

Get-Content already treats the data read from the file as an array, with one element per line of file content. You can confirm this by checking the Length of the returned content:

This command is most useful for getting lists of information into Windows PowerShell directly. For example, you might store a list of computer names or IP addresses in a file C:\temp\domainMembers.txt , with one name on each line of the file. You can use Get-Content to retrieve the file contents and put them in the variable $Computers :

$Computers is now an array containing a computer name in each element.

Справочник командлетов Windows PowerShell

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

Ранее в материале «Основы Windows PowerShell» мы с Вами узнали, что вообще такое PowerShell, а также рассмотрели основные его возможности. Поэтому данная статья подразумевает, что Вы уже имеете представление о том, что такое Windows PowerShell и сейчас мы не будем заострять на этом внимание, а сразу перейдем к рассмотрению командлетов.

Конечно же, ниже представлен неполный перечень командлетов, так как их на самом деле очень много, полный список командлетов в системе Вы можете получить, выполнив следующую команду в оболочке PowerShell.

Если Вы, выполнив вышеуказанную команду у себя на компьютере, не нашли командлет из представленного ниже списка (или тот который Вам нужен), то скорей всего у Вас не установлен необходимый модуль. Модули PowerShell для соответствующих ролей и компонентов сервера устанавливаются автоматически одновременно с ними. В случае если Вы хотите воспользоваться данными модулями на системе без установленных ролей и компонентов, то Вы всегда можете установить соответствующие «Средства удаленного администрирования сервера», которые добавляют не только оснастки управления, но и необходимые командлеты. Например, для того чтобы администрировать Active Directory с помощью Windows PowerShell на компьютере, который не является контроллером домена, необходимо установить модуль Active Directory для Windows PowerShell (RSAT-AD-PowerShell).

Примечание! Данный справочник составлен на основе командлетов версии PowerShell 5.0 в операционной системе Windows Server 2016.

Полезные командлеты Windows PowerShell

В данном разделе я перечислю командлеты PowerShell, которые Вы точно будете использовать.

  • Get-Help – показывает справку по командлету, функции и общую справку по Windows PowerShell. Справка бывает нескольких типов: краткая, детальная, полная и вывод только примеров;
  • Update-Help — загружает и устанавливает новые файлы справки, т.е. обновление справки;
  • Get-Command – командлет поиска нужной команды, можно искать как по глаголу, так и по существительному, также возможно использование маски, если Вы не знаете точное наименование глагола или существительного;
  • Get-Alias – показывает псевдонимы, все или конкретной команды;
  • Get-PSDrive – показывает подключенные диски;
  • Get-Member – выводит свойства и методы, которые есть у объекта;
  • Get-WindowsFeature – выводит сведения о доступных ролях и компонентах сервера;
  • Install-WindowsFeature (эквивалентен Add-WindowsFeature) — устанавливает роли или компоненты на указанный сервер;
  • Uninstall-WindowsFeature (эквивалентен Remove-WindowsFeature) – удаляет роли или компонента сервера;
  • Get-History — возвращает список команд, введенных в ходе текущей сессии.

Работа с переменными

В PowerShell для того чтобы создать переменную, задать ей значение или получить это значение обычно используют знак доллар $ (коротко и удобно), но для этих целей существуют специальные командлеты.

  • Get-Variable – выводит список переменных и их значения (или одну указанную переменную);
  • New-Variable – создает новую переменную;
  • Set-Variable – задает значение переменной. Если переменная с указанным именем не существует, то она будет создана;
  • Clear-Variable — удаляет значение переменной;
  • Remove-Variable — удаляет переменную и ее значение.

Форматирование в Windows PowerShell

В Windows PowerShell существует набор командлетов, которые предназначены для форматирования вывода результата работы командлета. Они позволяют пользователю отобразить результат в том виде, в котором ему удобно просматривать данный результат.

  • Format-List – вывод результата команды в формате списка свойств, где на каждой новой строке отдельное свойство;
  • Format-Table — вывод результата команды в виде таблицы;
  • Format-Wide — вывод результата команды в виде широкой таблицы, в которой отображается только одно свойство каждого объекта;
  • Format-Custom – в данном случае форматирование вывода происходит с использованием пользовательского представления.

Импорт и экспорт

PowerShell позволяет импортировать и экспортировать данные в разных распространенных форматах, например, CSV или XML, а также перенаправлять вывод результата работы команды во внешний файл или на принтер.

  • Export-Csv – экспорт данных в формат CSV;
  • Import-Csv – импортирует данные из CSV файла;
  • Export-Clixml — экспорт данных в формат XML;
  • Import-Clixml — импортирует файл CLIXML и создает соответствующие объекты в оболочке Windows PowerShell;
  • Out-File — посылает вывод результата работы командлета во внешний файл (например, в TXT);
  • Out-Printer — вывод результата работы команды на принтер;
  • Import-Module — добавляет модули в текущей сессии.
Читайте также:  Nod32 предыдущие версии для windows

Работа с сетью в Windows PowerShell

Для администрирования сети в Windows PowerShell существуют такие командлеты как:

  • Disable-NetAdapter – командлет отключает сетевой адаптер;
  • Enable-NetAdapter – данный командлет включает сетевой адаптер;
  • Rename-NetAdapter — переименовывает сетевой адаптер;
  • Restart-NetAdapter — перезапускает сетевой адаптер;
  • Get-NetIPAddress – выводит информацию о конфигурации IP-адреса;
  • Set-NetIPAddress — изменяет конфигурацию IP-адреса;
  • New-NetIPAddress — создает и настраивает IP-адрес;
  • Remove-NetIPAddress — удаляет IP-адрес и его конфигурацию;
  • Get-NetRoute — выводит таблицу маршрутизации IP;
  • Set-NetRoute — изменяет таблицу маршрутизации IP;
  • New-NetRoute — создает запись в таблице маршрутизации IP;
  • Remove-NetRoute — удаляет одну или несколько записей (IP маршрутов) из таблицы маршрутизации IP;
  • Get-NetIPv4Protocol — выводит информацию о конфигурации протокола IPv4;
  • Get-NetIPv6Protocol — выводит информацию о конфигурации протокола IPv6;
  • Get-NetIPInterface — выводит информацию о свойствах интерфейса IP;
  • Get-NetTCPSetting — показывает информацию о настройках и конфигурации TCP;
  • Test-Connection – командлет посылает ICMP пакеты к одному или нескольким компьютерам, т.е. «пингует» компьютеры.

Работа с элементами

В Windows PowerShell есть командлеты, которые умеют работать с элементами, под элементами здесь можно понимать: файлы, папки, ключи реестра и так далее.

  • Clear-Item — очищает содержимое элемента, но не удаляет сам элемент;
  • Copy-Item – копирует элемент;
  • Get-Item — получает элемент в указанном месте;
  • Invoke-Item — выполняет действие по умолчанию над указанным элементом;
  • Move-Item – перемещает элемент;
  • New-Item – создает новый элемент;
  • Remove-Item – удаляет указанные элементы;
  • Rename-Item — переименовывает элемент в пространстве имен поставщика Windows PowerShell;
  • Set-Item — изменяет элемент;
  • Get-ChildItem — возвращает элементы и дочерние элементы в одном или нескольких определенных местах;
  • Get-Location – выводит информацию о текущем местонахождении.

Командлеты для работы с Active Directory (AD)

Windows PowerShell, конечно же, позволяет работать со службой каталогов Active Directory. Для этих целей существует немало командлетов, вот некоторые из них:

  • New-ADUser – создание нового пользователя в Active Directory;
  • Get-ADUser – выводит информацию о пользователях Active Directory;
  • Set-ADUser — изменяет пользователя Active Directory;
  • Remove-ADUser — удаляет пользователя Active Directory;
  • New-ADGroup – командлет создает группу в Active Directory;
  • Get-ADGroup – выводит информацию о группе или выполняет поиск, чтобы получить несколько групп из Active Directory;
  • Set-ADGroup – командлет изменяет группу в Active Directory;
  • Remove-ADGroup — удаление группы в Active Directory;
  • Add-ADGroupMember — командлет добавляет учетные записи пользователей, компьютеров или групп в качестве новых членов группы Active Directory;
  • Get-ADGroupMember — выводит информацию о членах группы Active Directory;
  • Remove-ADGroupMember — удаление элементов из группы Active Directory;
  • Set-ADAccountPassword — сброс пароля учетной записи Active Directory;
  • Disable-ADAccount — отключает учетную запись Active Directory.
  • Enable-ADAccount — включает учетную запись Active Directory;
  • Unlock-ADAccoun — разблокирует учетную запись Active Directory;
  • New-ADComputer — создание новой учетной записи компьютера в Active Directory;
  • Get-ADComputer — выводит информацию об одном или нескольких компьютерах в Active Directory;
  • Set-ADComputer — изменение учетной записи компьютера в Active Directory;
  • Remove-ADComputer — удаление компьютера из Active Directory.

Работа с Hyper-V

Для работы с Hyper-V в Windows PowerShell существует много командлетов, вот небольшой перечень:

  • New-VM — создание новой виртуальной машины;
  • Set-VM — настройка виртуальной машины;
  • Start-VM — запуск виртуальной машины;
  • Stop-VM — закрытие, выключение или сохранение виртуальной машины;
  • Import-VM — импорт виртуальной машины из файла;
  • Move-VM — перемещение виртуальной машины на новый Hyper-V хост;
  • Remove-VM — удаление виртуальной машины;
  • Rename-VM — переименование виртуальной машины;
  • New-VHD — создание одного или нескольких новых виртуальных жестких дисков;
  • Set-VHD – настройка виртуального жесткого диска;
  • Test-VHD — тестирование виртуального жесткого диска на предмет обнаружения проблем, которые сделали бы его непригодным для использования;
  • Add-VMDvdDrive — добавляет DVD диск к виртуальной машине;
  • Remove-VMDvdDrive — удаляет DVD-диск из виртуальной машины;
  • Add-VMHardDiskDrive — добавляет жесткий диск к виртуальной машине;
  • Remove-VMHardDiskDrive — удаляет один или несколько виртуальных жестких дисков (VHD) из виртуальной машины;
  • Add-VMNetworkAdapter — добавляет виртуальный сетевой адаптер на виртуальной машине;
  • Remove-VMNetworkAdapter — удаляет один или несколько виртуальных сетевых адаптеров из виртуальной машины;
  • Copy-VMFile — копирование файлов на виртуальную машину;
  • Get-VMVideo – выводит информацию о настройках видео для виртуальных машин;
  • Move-VMStorage — перемещение хранилища виртуальной машины.
Читайте также:  Установщик windows не видит драйвера

Работа с фоновыми заданиями

В Windows PowerShell есть возможность запускать задачи в фоновом режиме, для того чтобы, не дожидаясь окончания работы команды (для случаев, когда задача выполняется долго), продолжать работать в текущей сессии. Для работы с фоновыми заданиями в PowerShell есть следующие командлеты:

  • Start-Job – запустить фоновую задачу;
  • Stop-Job – остановить фоновую задачу
  • Get-Job – посмотреть список фоновых задач;
  • Receive-Job – посмотреть результат выполнения фоновой задачи;
  • Remove-Job – удалить фоновую задачу;
  • Wait-Job – перевести фоновую задачу на передний план, для того чтобы дожидаться ее окончания.

Работа с объектами

Так как PowerShell работает с объектами, он позволяет выполнять некие действия над этими объектами, например:

  • Measure-Object – командлет позволяет рассчитывать на основе свойств объектов такие числовые агрегирующие параметры как: минимальное, максимальное, среднее значение, сумму и количество. Например, Вы хотите узнать максимальный или средний размер файла в определенном каталоге, или просто узнать количество файлов (запущенных процессов, служб и так далее);
  • Select-Object – с помощью данного командлета можно выбрать определенные объекты или свойства этих объектов, например Вы хотите выводить только название файла и его размер;
  • Sort-Object — сортирует объекты по значениям свойств;
  • Where-Object – командлет для того чтобы ставить условие для выборки объектов на основе значений их свойств;
  • Group-Object – группирует объекты, которые содержат одинаковое значение для заданных свойств;
  • ForEach-Object – перебор объектов с целью выполнения определенной операции над каждым из этих объектов.

Командлеты PowerShell для удаленного управления

С помощью Windows PowerShell можно выполнять команды не только на локальном компьютере, но и на одном или даже на нескольких удаленных компьютерах.

  • Enter-PSSession — запускает интерактивный сеанс с удаленным компьютером;
  • Exit-PSSession — завершает интерактивный сеанс с удаленным компьютером;
  • New-PSSession — создает постоянное подключение к локальному или удаленному компьютеру;
  • Remove-PSSession — закрывает один или несколько сеансов Windows PowerShell;
  • Disconnect-PSSession — отсоединяется от сеанса;
  • Connect-PSSession — подключается к отключенным сеансам;
  • Get-PSSession — получает сеансы Windows PowerShell на локальных и удаленных компьютерах;
  • Invoke-Command — выполняет команды на локальном и удаленных компьютерах.

Работа со службами и процессами

PowerShell, конечно же, умеет управлять службами и процессами в Windows, для этого существуют такие командлеты как:

  • Get-Process – выводит информацию о запущенных процессах на компьютере;
  • Start-Process – запускает один или несколько процессов на компьютере;
  • Stop-Process — останавливает один или несколько запущенных процессов;
  • Get-Service – выводит информацию о службах;
  • Restart-Service – перезапускает службу;
  • Start-Service – запускает службу;
  • Stop-Service — останавливает службу;
  • Suspend-Service – приостанавливает работу службы;
  • Set-Service – с помощью данного командлета можно изменить свойства службы, например, описание, отображаемое имя и режим запуска. Также его можно использовать для запуска, остановки или приостановки службы.

Работа с компьютером

Windows PowerShell позволяет выполнять административные задачи для операционной системы и компьютера в целом, например, перезапустить операционную систему или переименовать компьютер.

  • Restart-Computer – командлет перезапускает операционную систему (перезагружает компьютер);
  • Stop-Computer – выключает компьютер;
  • Rename-Computer – переименовывает компьютер;
  • Checkpoint-Computer — создает точку восстановления системы на локальном компьютере;
  • Restore-Computer — запускает восстановление системы на локальном компьютере;
  • Disable-ComputerRestore — отключает функцию восстановления системы на указанном диске файловой системы;
  • Enable-ComputerRestore — включает функцию восстановления системы на указанном диске файловой системы;
  • Remove-Computer — удаляет локальный компьютер из домена;
  • Get-EventLog – выводит информацию о событиях в журнале событий, или список журналов событий на локальном или удаленном компьютере;
  • Clear-EventLog — удаляет записи из указанных журналов событий.

Работа с контентом

Для управления контентом, например, текстом в файле в Windows PowerShell существуют специальные командлеты, такие как:

  • Get-Content – получает содержимое элемента (например, считывает файл);
  • Add-Content – добавляет содержимое в заданные элементы, например, текст в файл;
  • Clear-Content — удаляет содержимое элемента, но не удаляет сам элемент;
  • Set-Content — записывает или заменяет содержимое в элемент с новым содержанием.

Другие командлеты Windows PowerShell

Также хотелось бы выделить следующие командлеты Windows PowerShell, которые наверняка Вам понадобятся и будут полезны.

  • Get-ExecutionPolicy – с помощью данного командлета можно узнать действующую политику выполнения Windows PowerShell для текущего сеанса;
  • Set-ExecutionPolicy – командлет изменяет политику выполнения Windows PowerShell;
  • Write-Host – выводит информацию на экран (пишет текст);
  • Read-Host – считывает строку ввода из консоли;
  • Write-Warning – выводит предупреждающее сообщение;
  • Write-Error – командлет объявляет ошибку и выводит ее в поток ошибок;
  • Get-Date – возвращает текущую дату и время;
  • Set-Date – командлет изменяет системную дату и время на компьютере.

Вот мы с Вами и рассмотрели полезные и часто используемые командлеты Windows PowerShell, надеюсь, этот справочник будет Вам полезен, удачи!

Оцените статью