Powershell подключить сетевой диск
Connects a computer to or disconnects a computer from a shared resource, or displays information about computer connections. The command also controls persistent net connections. Used without parameters, net use retrieves a list of network connections.
For examples of how this command can be used, see Examples.
Подключение сетевого диска, доступного в Windows
Командлет New-PSDrive может создать диск PowerShell, сопоставленный с общей сетевой папкой.
Тем не менее диски, созданные таким образом, доступны только для сеанса PowerShell, в котором они созданы. Чтобы подключить диск, доступный за пределами PowerShell (или для других сеансов PowerShell), необходимо использовать параметр Persist.
Постоянно сопоставленные диски могут быть недоступны при работе в контексте с повышенными привилегиями. Этот режим используется по умолчанию для Windows UAC. Дополнительные сведения см. в следующей статье:
Отмена и обновление аренды адресов DHCP для всех адаптеров
Отменить или обновить аренду адресов DHCP сразу для всех адаптеров можно с помощью методов Win32_NetworkAdapterConfiguration — ReleaseDHCPLeaseAll и RenewDHCPLeaseAll . Однако эту команду следует применять к классу WMI, а не к отдельному адаптеру, поскольку глобальная отмена и обновление аренды осуществляется на уровне класса, а не отдельного адаптера. Командлет Invoke-CimMethod может вызывать методы класса.
Такой же формат команды используется при вызове метода RenewDHCPLeaseAll:
Подключение дисков удаленно
Каждая из команд может выполняется удаленно. У команды 'New-SMBMapping' для этого есть встроенный параметр 'CimSession'. В случае обоих подходов можно использовать команды из модуля PSRemoting, например 'Invoke-Command'. Нужно отметить, что сетевые папки в Powershell всегда подключаются под тем пользователем, под которым была запущена консоль или скрипт. Если вы были аутентифицированы под пользователем 'alex' и открыли консоль Powershell, то диски будут подключены пользователю 'alex'. Кроме этого, для каждой команды у вас должен быть запущен WinRM и установлены настройки в TrustedHost.
Подсистема Windows для Linux или Windows Subsystem for Linux (WSL) позволяет запускать среду GNU/Linux для разработки или отладки прямо в среде Windows без использования сред для вирутализации и установки ОС Linux.
Удаление всех файлов и папок, содержащихся в папке
Удалить вложенные элементы можно с помощью командлета Remove-Item , однако он потребует подтверждения удаления, если элемент сам что-нибудь содержит. Например, при попытке удаления папки C:\temp\DeleteMe , которая содержит другие элементы, Windows PowerShell предварительно предложит подтвердить удаление этой папки:
Если подтверждение для каждого вложенного элемента нежелательно, задайте параметр Recurse:
Включение поддержки DHCP на каждом адаптере
Чтобы включить поддержку DHCP на всех адаптерах, используйте команду:
Использование оператора фильтра IPEnabled=True and DHCPEnabled=False позволяет избежать включения DHCP, когда он уже включен.
Работа с записями реестра. Создание списков записей реестра.
Существует несколько способов просмотра реестра. Самый простой — получить имена свойств, связанные с разделом. Например, чтобы просмотреть имена записей в разделе реестра HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion , используйте Get-Item . Разделы реестра содержат свойство с универсальным именем Property, которое является списком записей реестра в разделе. Следующая команда выбирает свойство Property и расширяет элементы так, чтобы они отображались в списке:
Чтобы просмотреть записи реестра в более удобочитаемой форме, используйте Get-ItemProperty .
Все свойства Windows PowerShell раздела имеют префиксы PS, например PSPath, PSParentPath, PSChildName и PSProvider.
Для создания ссылки на текущее расположение можно использовать нотацию *.* . Set-Location можно использовать для изменения значения на контейнер реестра CurrentVersion.
Кроме того, можно использовать встроенный диск HKLM PSDrive с Set-Location .
Затем можно использовать нотацию *.* для текущего расположения, чтобы перечислить свойства без указания полного пути.
Расширение пути работает так же, как и в файловой системе, поэтому в этом расположении можно получить перечисление ItemProperty для HKLM:\SOFTWARE\Microsoft\Windows\Help с помощью Get-ItemProperty -Path ..\Help .
Назначение домена DNS сетевому адаптеру
Чтобы назначить домен DNS для автоматического разрешения имен, нужно использовать метод SetDNSDomain класса Win32_NetworkAdapterConfiguration. Параметр Запрос со значением Invoke-CimMethod принимает строку WQL-запроса. Командлет вызывает метод, указанный для каждого экземпляра, возвращаемого запросом.
Фильтрация по IPEnabled=True необходима, так как даже в сети, использующей только TCP/IP, некоторые конфигурации сетевых адаптеров на компьютере не являются настоящими адаптерами TCP/IP. Это просто общие программные элементы, поддерживающие службы RAS, VPN, QoS и другие службы для всех адаптеров, то есть, они не имеют собственного адреса.
Docker Swarm. Свой оркестратор
Когда стоит задача по построению среды с требованиями к отказоустойчивости, масштабируемости и возможности распределения нагрузки, то конечно смотришь на системы кластеризации. Если речь идет еще и о контейнерной кластеризации, то выбор в сторону систем оркестрации контейнеров.
Оркестровка — это управление и координация взаимодействия контейнеров.
Docker Swarm является стандартным инструментом кластеризации для Docker. Хосты Docker объединяются в один последовательный кластер, называемый Swarm. Docker Swarm обеспечивает доступность и высокую производительность работы, равномерно распределяя ее по нодам Docker внутри кластера. Это очень похоже на кластеры Kubernetes, а может и наоборот.
Удаление сетевой папки
Удаление записей реестра
Чтобы удалить записи реестра PSHome и PowerShellPath, используйте Remove-ItemProperty .
Большая часть задач администрирования низкоуровневых сетевых протоколов связана с протоколом TCP/IP, так как это наиболее распространенный сетевой протокол. В этом разделе описано использование инструментария WMI и PowerShell для выполнения этих задач.
Получение списка сетевых дисков и их удаление
Мы можем получить список сетевых дисков используя обе команды модуля:
Отличия, которые видны на первый взгляд в том, что во втором случае мы возвращаем список дисков подключение к которым не восстановилось. Кроме этого 'Get-SmbMapping' хранит больше информации о дисках, если вывести их все:
Мы можем вывести учетную запись, под которой подключена сетевая папка, следующим образом:
Команды удаления отличаются только наличием параметра 'UpdateProfile'. Если он присутствует в команде 'Remove-SMBMapping', то диск не будет восстанавливать соединение после перезагрузки компьютера. В случае с Remove-PSDrive это предусмотрено автоматически:
Force удаляет подключение без подтверждения.
Syntax
Вывод данных IP-конфигурации
Для отображения подробных данных IP-конфигурации каждого сетевого адаптера воспользуйтесь следующей командой:
По умолчанию отображается очень небольшая часть доступных сведений об объекте конфигурации сетевого адаптера. Для более глубокого изучения и устранения неполадок воспользуйтесь командлетом Select-Object или командлетом форматирования, например Format-List , чтобы задать отображаемые свойства.
В современных сетях TCP/IP вам, скорее всего, больше не понадобятся свойства IPX или WINS. Вы можете использовать параметр ExcludeProperty командлета Select-Object , чтобы скрыть свойства, имена которых начинаются на WINS или IPX.
Эта команда выводит подробные сведения о DHCP, DNS, маршрутизации и других менее значительных свойствах IP-конфигурации.
Сервис управления бесперебойным питанием в сети (NUT)
Как бы мы не уходили от понятия железа в облака, если есть в локальной сети серверное оборудование, то сразу возникает вопрос как бороться с перепадами и стабильностью напряжения и как быть когда пропадает питание в сети?
Решение обычно — это развертывание некой системы, которая обеспечит управление мягким отключением питания нашего оборудования. Как правило, производители систем бесперебойного питания (ИБП) имеют свою системы, но не всегда они бесплатны и доступны, например для простых моделей.
Фильтрация элементов по имени (-Name)
Чтобы отобразить только имена элементов, используйте параметр Name для Get-Childitem:
Как работают в Powershell сетевые диски
В Powershell по умолчанию существует возможность обратиться по сетевому пути не используя сетевые диски. Например это можно сделать через команду 'Get-ChildItem':
Такой способ ограничен пользователем, который открыл консоль или запустил скрипт. Если вы запустите консоль от имени доменного администратора - то обращение к сетевому пути будет от его имени.
Возможность использовать другие учетные записи, а так же подключать сетевые диски, реализованы в 2 командах:
- New-SmbMapping - команда появилась в версии Powershell 5. Относится к модулю SmbShare, то есть создана специально для работы с SMB;
- New-PSDrive - работает с версии Powershell 3. Все командлеты типа 'PSDrive' относятся ко всем дискам.
Обе команды, аналогично Get-ChildItem, подключают диски под учетной записью, которая запустила консоль.
Хоть эти команды достаточно старые, в каждой из новых версий Powershell находятся ошибки и баги. На момент написания статьи баги были найдены в версиях 5.1 - 7.1 и все они касались процесса подключения.
Основной момент, который упростит работу с сетевыми папками в Powershell кроется в понимании понятии провайдеров. Создавая сетевой диск обычными средствами Windows вы сразу видите результат в проводнике. Делая то же самое в Powershell вы изначально обращаетесь к провайдеру услуг, а он обращается к Windows. В зависимости от указанных вами параметров и возможностью команды у вас может быть создан диск только в рамках этого провайдера либо в рамках провайдера и области Windows.
Если это сложно понять, то представьте, что среда Windows и Powershell это разные вещи и что бы скопировать файл с одного места на другое - нужно использовать дополнительный параметр, которого может и не быть.
Сохранение и отзыв последних расположений (Push-Location и Pop-Location)
При изменении расположения полезно отслеживать свое предыдущее расположение и иметь возможность вернуться к нему. Командлет Push-Location в Windows PowerShell создает упорядоченный журнал («стек») путей к каталогам, которые вы открывали, чтобы можно было вернуться по нему на шаг назад, используя дополнительный командлет Pop-Location.
Например, Windows PowerShell обычно запускается в корневом каталоге пользователя.
Чтобы передать текущее расположение в стек, а затем переместить его в папку локальных параметров, введите:
После этого можно передать расположение локальных параметров в стек и переместить его в папку Temp, введя следующее:
Чтобы убедиться, что каталоги изменены, введите команду Get-Location.
После этого можно перейти в последний открытый каталог, введя команду Pop-Location, и проверить изменение, введя команду Get-Location.
Как и в случае с командлетом Set-Location, можно включить параметр -PassThru при вводе командлета Pop-Location, чтобы открыть указанный каталог.
Кроме того, можно использовать командлеты расположения с сетевыми путями. Если у вас есть сервер FS01 с общей папкой Public, можно изменить расположение, введя
или диспетчер конфигурации служб
Чтобы изменить расположение на любой доступный диск, можно использовать команды Push-Location и Set-Location. Например, если у вас есть локальный дисковод компакт-дисков с буквой диска D, содержащий компакт-диск с данными, вы можете изменить расположение на него, введя команду Set-Location D: .
Вам нужно обратить внимание на выделенные фрагменты. 'DeferFlags', в значении 4, обозначает, что диск подключается под логином и паролем аутентифицированного пользователя. 1-ца говорит об обратном и, возможно, что пароль не указан. На одном из форумов писали, что это поле должно указывать на цифру 4 что бы команда успешно работала. Я наблюдал случаи с 1 и 4, но проблем не замечал.
Моя проблема была решена после указания 1 в поле 'ConnectionType'. Значение 1 говорит, что будет выполняться перенаправление дисков. Установить это значение через Powershell можно так:
FTP через FUSE
Сколь бы древними не были NFS, FTP, они остаются востребованными службами в информационной среде. Многие используют для резервного хранения данных.
Продолжая тему FUSE попробуем подключить FTP в автоматическом режиме и пользоваться им как локальной папкой в корневой файловой системе.
Чтобы определить путь к текущему каталогу, введите команду Get-Location.
Командлет Get-Location аналогичен команде pwd в оболочке BASH. Командлет Set-Location аналогичен команде cd в Cmd.exe.
Перечисление всех элементов в контейнере (-Recurse)
Чтобы увидеть оба элемента в папке Windows и все элементы во вложенных папках, используйте параметр Recurse для Get-ChildItem. В списке отображается все, что находится в папке Windows, а также элементы в ее вложенных папках. Пример:
Examples
To assign the disk-drive device name E: to the Letters shared directory on the \\Financial server, type:
To assign (map) the disk-drive device name M: to the directory User2 within the Letters volume on the \\Financial server, type:
To connect the user identifier User1 as if the connection were made from the Accounts domain, type:
To disconnect from the \\Financial\Public directory, type:
To connect to the resource memos shared on the \\Financial 2 server, type:
To restore the current connections at each logon, regardless of future changes, type:
В Powershell реализована возможность подключать сетевые диски используя протоколы SMB/CIFS. Эта возможность использует разные команды работа с которыми может вызвать сложности. Рассмотрим применение команд на примерах.
Навигация по посту
Настройка текущего расположения (Set-Location)
Команда Get-Location используется с командой Set-Location. Команда Set-Location позволяет вам указать расположение текущего каталога.
Обратите внимание, что после ввода команды вы не получите прямого отклика о действии команды. Большинство команд Windows PowerShell, выполняющих действия, практически не создают выходных данных, так как выходные данные не всегда полезны. Чтобы проверить успешность внесения изменения в каталог при вводе команды Set-Location, укажите параметр -PassThru при вводе команды Set-Location.
Параметр -PassThru можно использовать с некоторыми командами Set в Windows PowerShell для возврата сведений о результате, когда отсутствуют выходные данные по умолчанию.
Вы можете указать пути относительно текущего расположения так же, как и в большинстве командных оболочек UNIX и Windows. В стандартной нотации для относительных путей точка ( . ) представляет текущую папку, а две точки ( .. ) — родительский каталог текущего расположения.
Например, если вы находитесь в папке C:\Windows, точка ( . ) представляет C:\Windows, а две точки ( .. ) представляют C: . Текущее расположение можно изменить на корень диска C: путем ввода следующей команды:
Тот же метод работает для дисков Windows PowerShell, которые не являются дисками файловой системы, например HKLM: . В реестре в качестве расположения можно задать раздел HKLM\Software путем ввода следующего кода:
После этого можно изменить расположение каталога на родительский каталог, который является корнем диска Windows PowerShell HKLM: с помощью относительного пути:
Вы можете ввести Set-Location или использовать любой из встроенных псевдонимов Windows PowerShell для Set-Location (cd, chdir, sl). Пример:
Смешение параметров Get-ChildItem
В одной команде можно использовать несколько параметров Get-ChildItem. Перед тем как комбинировать параметры, убедитесь, что понимаете принципы сопоставления подстановочных знаков. Например, следующая команда не возвращает результатов:
Результаты отсутствуют, даже если существуют две библиотеки, которые начинаются на букву z в папке Windows.
Результаты не возвращены, так как подстановочный знак указан как часть пути. Хотя команда и была рекурсивной, командлет Get-ChildItem ограничил элементы до тех, которые находятся в папке Windows с именами, заканчивающимися на .dll.
Чтобы указать рекурсивный поиск для файлов, имена которых соответствуют специальному шаблону, используйте параметр -Include.
Parameters
Assigns a name to connect to the resource or specifies the device to be disconnected. There are two kinds of device names: disk drives (that is, D: through Z:) and printers (that is, LPT1: through LPT3:). Type an asterisk (*) instead of a specific device name to assign the next available device name.
Specifies the name of the server and the shared resource. If ComputerName contains spaces, use quotation marks around the entire computer name from the double backslash (\\) to the end of the computer name (for example, "\\Computer Name\Share Name"). The computer name can be from 1 to 15 characters long.
Specifies a NetWare volume on the server. You must have Client Service for NetWare or Gateway Service for Netware (Windows Server) installed and running to connect to NetWare servers.
Specifies the password needed to access the shared resource. Type an asterisk (*) to produce a prompt for the password. The password is not displayed when you type it at the password prompt.
Specifies a different user name with which the connection is made.
Specifies another domain. If you omit DomainName, net use uses the current logged on domain.
Specifies the user name with which to log on.
Specifies the fully qualified domain name for the domain where the user account exists.
Stores the provided credentials for reuse.
Specifies the network connection is to use the credentials on a smart card. If multiple smart cards are available, you are asked to specify the credential.
Cancels the specified network connection. If you specify the connection with an asterisk (*), all network connections are canceled.
Controls the use of persistent network connections. The default is the setting used last. Deviceless connections are not persistent. Yes saves all connections as they are made, and restores them at next logon. No does not save the connection being made or subsequent connections. Existing connections are restored at the next logon. Use /delete to remove persistent connections.
Connects a user to the home directory.
Displays help for the specified net command.
Извлечение свойств сетевого адаптера
Ранее упоминалось о возможности извлечения общих свойств конфигурации с помощью класса Win32_NetworkAdapterConfiguration. Такие сведения о сетевом адаптере, как MAC-адреса и типы адаптеров, не относятся, строго говоря, к протоколу TCP/IP, но могут оказаться полезными для понимания того, что происходит в компьютере. Сводные данные можно получить с помощью следующей команды:
Восстановление удалённых файлов в Linux
Речь не пойдет о восстановлении обычных файлов, которые были удалены и теперь вдруг захотелось вернуть. Для этого есть свои инструменты.
Речь пойдет о файлах на которые ссылаются процессы в Linux и при удалении этих файлов ссылка на данные файлы из процесса никуда не исчезают. Например, есть процесс, который пишет свой лог в определенный файл и пока процесс активен, он будет писать свои данные в указанный файл, даже тогда когда файл лога будет удален. Или же другой пример, у вас идет потоковая запись аудио/видео и вы удалили файл. Как восстановить?
Получение списка IP-адресов компьютера
Список всех IP-адресов, используемых локальным компьютером, возвращает следующая команда:
Учитывая, что свойство IPAddress объекта Win32_NetworkAdapterConfiguration является массивом, необходимо использовать параметр ExpandProperty со значением Select-Object для просмотра всего списка адресов.
С помощью командлета Get-Member можно увидеть, что свойство IPAddress является массивом:
Свойство IPAddress каждого сетевого адаптера в действительности представляет собой массив. Фигурные скобки в определении указывают на то, что свойство IPAddress содержит не значение типа System.String, а массив значений типа System.String.
Создаем сервер Qemu-KVM с управлением через Cockpit
В данной заметке рассматривается вопрос быстрого поднятия гипервизора Qemu-KVM на базе CentOS 7 с удобным управлением сервера. В качестве интерфейса управления будет Cockpit.
Cockpit по умолчанию включен в CentOS 8, но его нет в 7-ке.
Итак, имеем сервер с установленным CentOS 7, включен Firewall и SELinux.
Отмена и обновление аренды адреса DHCP для отдельных адаптеров
Экземпляры класса Win32_NetworkAdapterConfiguration содержат методы ReleaseDHCPLease и RenewDHCPLease . Оба метода используются одинаково. Обычно их применяют лишь при необходимости отмены или обновления аренды адресов для адаптера в отдельной подсети. Простейшим способом фильтрации адаптеров в подсети является выбор лишь тех адаптеров, которые используют шлюз для этой подсети. Например, следующая команда отменяет все аренды адресов DHCP для адаптеров на локальном компьютере, которые арендуют адреса DHCP с 192.168.1.254:
Единственное отличие при обновлении аренды адреса DHCP заключается в вызове метода RenewDHCPLease RenewDHCPLease ReleaseDHCPLease вместо метода ReleaseDHCPLease:
Если эти методы применяются на удаленном компьютере, возможна потеря доступа к удаленной системе, которая подключена через адаптер с отмененной или обновленной арендой.
Чтение текстового файла в массив
Одним из наиболее общих форматов хранения текстовых данных является файл, отдельные строки которого рассматриваются как отдельные элементы. Командлет Get-Content используется для чтения всего файла за один шаг, как показано далее:
Командлет Get-Content сразу рассматривает данные, считанные из файла, как массив с одним элементом на строку содержимого файла. Убедиться в этом можно, проверив свойство Length полученного содержимого:
Эта команда наиболее полезна для непосредственного ввода в Windows PowerShell информационных списков. Например, можно хранить в файле C:\temp\domainMembers.txt список имен компьютеров или IP-адресов по одному имени на каждую строку файла. Вы можете использовать командлет Get-Content , чтобы извлечь содержимое файла и поместить его в переменную $Computers :
Теперь переменная $Computers представляет собой массив, содержащий в каждом элементе имя компьютера.
Создание сетевой папки
Эта команда эквивалентна следующей команде net share в Windows:
Чтобы вызвать метод класса WMI, который принимает параметры, необходимо определить доступные параметры и типы этих параметров. Например, можно вывести список методов Win32_Class с помощью следующих команд:
Используйте следующую команду, чтобы вывести список параметров метода Create .
Также можно ознакомиться с документацией по методу Create класса Win32_Share.
Работа с файлами, папками и разделами реестра
Создание файлов и папок
Создание новых элементов осуществляется одинаковым образом всеми поставщиками Windows PowerShell. Если поставщик Windows PowerShell поддерживает более одного типа элементов (например, поставщик Windows PowerShell FileSystem различает каталоги и файлы), необходимо указать тип элемента.
Эта команда создает папку C:\temp\New Folder :
Эта команда создает пустой файл C:\temp\New Folder\file.txt .
При использовании параметра Force с командой New-Item для создания папки, которая уже существует, она не перезапишет и не заменит папку. Будет просто возвращен имеющийся объект папки. Однако, если использовать New-Item -Force в уже имеющимся файле, файл будет полностью перезаписан.
Балансировщик нагрузки HAProxy с SSL
Сегодня балансировка трафика и нагрузки достаточно распространенная практика. По сути балансировщик решает задачу горизонтального масштабирования доступа к приложениям и сервисам, предоставляя единую точку доступа.
HAProxy одна из самых популярных программ для балансировки нагрузки, обеспечивающая высокую доступность и проксирование. HAProxy программа с открытым исходным кодом.
HAProxy архитектурно не требователен к ресурсам сервера, работает в режиме одного потока, реагируя на события (запросы) и пересылая запрос на соединение на сервера служб.
Исключение элементов (-Exclude)
Вы можете исключить определенные элементы с помощью параметра Exclude для Get-ChildItem. Это позволит вам выполнить сложную фильтрацию в одном операторе.
Например, предположим, что вы пытаетесь найти библиотеку службы времени Windows в папке System32 и все, что вам известно об имени библиотеки, — то, что оно начинается на W и содержит «32».
WDS – создаем свой образ
Продолжая тему Windows Deployment Services, рассмотрим возможность загрузить на сервер свой подготовленный образ системы.
Имеем систему «добровольца» с необходимыми предустановленными обновлениями и ПО.
Выполнение задач настройки DHCP
Изменение сведений DHCP, так же как и настройка DNS, включает работу с набором сетевых адаптеров. Существует несколько отдельных действий, выполняемых с помощью инструментария WMI. Мы рассмотрим несколько наиболее типичных.
Копирование файлов и папок
Копирование выполняется с помощью командлета Copy-Item . Следующая команда создает резервную копию C:\boot.ini в C:\boot.bak:
Если целевой файл уже существует, то попытка копирования завершается неудачей. Чтобы перезаписать имеющийся целевой файл, используйте параметр Force.
Эта команда работает, даже если целевой объект доступен только для чтения.
Так же выполняется и копирование папок. Эта команда копирует папку C:\temp\test1 в новую папку C:\temp\DeleteMe рекурсивно.
Можно также скопировать избранные элементы. Следующая команда копирует все файлы TXT, содержащиеся в папке C:\data , в папку C:\temp\text :
Для копирования элементов файловой системы можно использовать и другие средства. В Windows PowerShell по-прежнему работают команды XCOPY, ROBOCOPY и такие COM-объекты, как Scripting.FileSystemObject. Например, можно воспользоваться COM-классом Scripting.FileSystem сервера сценариев Windows для создания резервной копии файла C:\boot.ini в файле C:\boot.bak :
Подключение сетевых дисков
Проблемы с командами могут зависеть от версии вашего интерпретатора. Powershell 5-ой версии был предустановлен во всех версиях начиная с Windows 10 и Windows Server 2016. Если вы сомневаетесь в версии, то это можно проверить следующей командой:
Создание новых записей реестра
Чтобы добавить новую запись реестра с именем PowerShellPath в раздел CurrentVersion, используйте New-ItemProperty с путем к разделу, именем записи и значением записи. В этом примере используется значение переменной Windows PowerShell $PSHome , в которой хранится путь к каталогу установки Windows PowerShell.
Вы можете добавить новую запись в раздел с помощью следующей команды, и команда также вернет сведения о новой записи:
Значение PropertyType должно быть именем элемента перечисления Microsoft.Win32.RegistryValueKind из следующей таблицы:
Значение PropertyType | Значение |
---|---|
Двоичные данные | Двоичные данные |
DWord | Число, которое является допустимым UInt32 |
ExpandString | Строка, которая может содержать динамически раскрывающиеся переменные среды |
MultiString | Многострочная строка |
String | Любое строковое значение |
QWord | 8 байтов двоичных данных |
Запись реестра можно добавить в несколько расположений, указав массив значений для параметра Path:
Кроме того, можно перезаписать существующее значение записи реестра, добавив параметр Force в любую команду New-ItemProperty .
Извлечение свойств DHCP
Свойства адаптера, относящиеся к протоколу DHCP, обычно начинаются с DHCP , поэтому для отображения только этих свойств можно использовать параметр Property командлета Format-Table :
Настройка одной записи реестра
Если необходимо изменить определенную запись в разделе реестра, можно использовать один из нескольких подходов. Этот пример изменяет запись Path в разделе HKEY_CURRENT_USER\Environment . Запись Path указывает расположение для поиска исполняемых файлов.
- Получите текущее значение записи Path с помощью Get-ItemProperty .
- Добавьте новое значение, отделив его с помощью ; .
- Используйте Set-ItemProperty с указанным разделом, именем записи и значением, чтобы изменить запись реестра.
Хотя Set-ItemProperty содержит параметры Filter, Include и Exclude, их нельзя использовать для фильтрации по имени свойства. Эти параметры относятся в разделам реестра (путям элементов), а не к записям реестра (свойствам элементов).
Другой вариант — использовать средство командной строки Reg.exe. Для получения справки по reg.exe введите reg.exe /? . в командной строке.
В следующем примере запись Path изменяется за счет удаления пути, добавленного в предыдущем примере. Get-ItemProperty по-прежнему используется для получения текущего значения, исключая анализ строки, возвращаемой reg query . Методы SubString и LastIndexOf используются для получения последнего добавленного пути в запись Path.
Подключение дисков под другим пользователем
Обе команды позволяют выполнять подключение используя других пользователей. Для каждой из команд этот подход отличается.
В случае команды 'New-PSDrive' вам нужно будет выполнить 'Get-Credential' и поместить в него учетные данные. Традиционный способ поместить эти данные в переменную:
Эта переменная будет хранить ссылку на объект в памяти, который нельзя будет экспортировать на другой компьютер. Как упростить процесс, если вы планируете использовать учетные данные на разных компьютерах, рассмотрено в другой статье.
После этого мы передаем переменную в параметр '-Credential':
В случае с 'New-SMBMapping' эта операция выполняется проще. У вас есть 3 параметра, которые нужно заполнить:
- UserName - логин;
- Password - пароль;
- SaveCredential - нужно ли сохранять учетные данные.
Пример подключения с сохранением учетных данных:
Проблема, которую не получилось решить на разных версиях Powershell, связана с параметром '-SaveCredentials'. Его указание приводит к ошибке " New-SmbMapping : The parameter is incorrect. ". Его отсутствие - не сохраняет введенные учетные данные и после перезагрузки связь с диском может пропасть если не добавить соответствующую запись в 'Credential Manager'.
Получение одной записи реестра
Если необходимо получить конкретную запись в разделе реестра, можно использовать один из нескольких возможных подходов. Этот пример получает значение DevicePath в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion .
Вместе с Get-ItemProperty используйте параметр Path, чтобы указать имя раздела и параметр Name, а также имя записи DevicePath.
Эта команда возвращает стандартные свойства Windows PowerShell, а также свойство DevicePath.
Хотя Get-ItemProperty содержит параметры Filter, Include и Exclude, их нельзя использовать для фильтрации по имени свойства. Эти параметры относятся к разделам реестра (путям элементов), а не записям реестра. Записи реестра — это свойства элементов.
Другой вариант — использовать средство командной строки Reg.exe. Для получения справки по reg.exe введите reg.exe /? в командной строке. Чтобы найти запись DevicePath, используйте reg.exe, как показано в следующей команде:
Также можно использовать объект WshShell COM, чтобы найти некоторые записи реестра, хотя этот метод не работает с большими двоичными данными или именами записей реестра, содержащими такие символы, как \. Добавьте имя свойства с разделителем «\» в путь элемента:
Сопоставление имен элементов с подстановочными знаками
Команда Get-ChildItem допускает подстановочные знаки в пути к перечисляемым элементам.
Так как сопоставление с подстановочными знаками обрабатывается подсистемой Windows PowerShell, все командлеты, которые принимают подстановочные знаки, используют одну нотацию и имеют одно поведение сопоставления. В нотацию подстановочных знаков Windows PowerShell входит:
- Звездочка (*) — соответствует нулю или большему количеству вхождений любого символа.
- знак вопроса (?) — соответствует ровно одному символу;
- Открывающая квадратная скобка ([) и закрывающая квадратная скобка (]) — заключают в себя набор символов для сопоставления.
Далее приводится несколько примеров работы спецификации из подстановочных знаков.
Чтобы найти в каталоге Windows все файлы, имеющие суффикс .log и ровно пять символов в основном имени, введите следующую команду:
Чтобы найти в каталоге Windows все файлы с именами, начинающимися на букву x, введите:
Чтобы найти все файлы с именами, начинающимися на x или z, введите:
Принудительное перечисление скрытых элементов (-Force)
В выходных данных команды Get-ChildItem не отображаются элементы, которые обычно невидимы в проводнике или Cmd.exe. Чтобы показать скрытые элементы, используйте параметр Force для Get-ChildItem. Пример:
Этот параметр называется Force, так как позволяет принудительно переопределить обычное поведение команды Get-ChildItem. Параметр Force широко используется для принудительного выполнения действия командлетом. Тем не менее, он не будет выполнять действия, компрометирующие систему безопасности.
Проверка связи с компьютерами
Простую проверку связи с компьютером можно выполнить с помощью Win32_PingStatus. Следующая команда производит проверку связи, но при этом выводит большой объем сведений:
Удобнее отображать сводные данные, содержащие свойства Address, ResponseTime и StatusCode, как это делает приведенная ниже команда. Параметр Autosize командлета Format-Table изменяет размер столбцов таблицы для их правильного отображения в PowerShell.
Значение 0 свойства StatusCode указывает на успешно выполненную проверку связи.
Для проверки связи с несколькими компьютерами с помощью одной команды можно использовать массив. Так как адресов несколько, для проверки связи с каждым адресом по отдельности можно использовать ForEach-Object :
Один и тот же формат команды можно использовать для проверки связи со всеми компьютерами подсети. Например, при проверке частной сети, использующей номер сети 192.168.1.0 и стандартную маску подсети класса C (255.255.255.0), допустимы только локальные адреса в диапазоне от 192.168.1.1 до 192.168.1.254 (0 всегда зарезервирован в качестве номера сети, а 255 используется в качестве широковещательного адреса подсети).
Чтобы представить массив чисел от 1 до 254 в PowerShell, используйте выражение 1..254 . Таким образом, полную проверку связи с подсетью можно осуществить, добавив все значения в диапазоне к частичному адресу в операторе проверки связи:
Такой метод формирования диапазона адресов может быть использован в любых подобных случаях. Полный набор адресов можно сформировать следующим образом:
Определение адаптеров, поддерживающих DHCP
Найти на компьютере адаптеры, поддерживающие DHCP, можно с помощью следующей команды:
Чтобы исключить из поиска адаптеры, имеющие проблемы в IP-конфигурации, можно добавить требование поддержки протокола IP:
Windows Deployment Services (WDS) — разворачиваем сервер
Для компаний, где есть потребность в быстром развертывании систем с предустановленными настройками или даже просто быстрой установки (переустановки) системы на голое железо, подобные системы просто незаменимы.
Сложность в данном случае заключается в содержании в актуальном состоянии раздаваемых образов операционных систем.
New-PSDrive
В отличие от предыдущего способа - у него нет проблем с проводником, но после перезагрузки компьютера подключение к диску пропадет. Как я прочитал в каких-то версиях Powershell это исправлено, в каких-то появились новые проблем. Один из способов сделать диск постоянным - будет рассмотрен ниже.
Подключить аналогичный диск можно следующим способом:
- Name - путь, буква или любой другой идентификатор определяющий диск. Чаще всего это просто буква;
- PSProvider - поставщик услуг. Всех поставщиков услуг можно увидеть через 'Get-PSProvider'. В большинстве случаев поставщиком услуг для сетевых дисков будет 'FileSystem'. В теории вы можете использовать поставщика "Registry" что бы в рамках сессии Powershell легче обращаться к какому-то пути. Поставщик услуг или 'PSProvider' - это условная программа, которая будет обрабатывать вашу команду между Powershell и Windows;
- Root - путь до удаленной папки. Если бы в 'PSProvider' стоял 'Registry', то тут можно было указать путь следующего формата: 'HKLM:\Software\Microsoft';
- Persist - должно ли восстанавливаться подключение при потере связи;
- Scope - область действия диска. В этом случае не должно играть значение, но на форумах советуют использовать значение 'Global', если не получается подключать диск. Если бы вы использовали сетевой диск только для одно сессии Powershell - вы могли бы ограничить область видимости диска.
У вас могут появиться следующие ошибки:
- New-PSDrive : The network resource type is not correct;
- The specified network resource or device is no longer available.
Один из способов решения - убрать слэш в конце пути. Так же попробуйте открыть полный путь в проводнике так как ошибка может указывать на недоступность папки. Так же можете попробовать убрать параметр 'Persist', т.к. после этого ошибка может изменится и принять более понятный характер.
Рабочий способ сделать этот диск постоянным - отредактировать его через реестр. Ветка, под которой был подключен диск, будет иметь следующий путь ''HKCU:\Network\G". "G" в конце - это буква под который был подключен диск. Мы можем вернуть существующие значения следующей командой:
Подключаем хост VMware ESXi 6/7 в Zabbix
VMware ESXi не дает возможности установить zabbix-agent для настройки мониторинга через агента, но Zabbix может пользоваться SOAP протокол для обмена информацией через XML.
Перечисление файлов, папок и разделов реестра (Get-ChildItem)
Так как получение коллекции элементов из определенного расположения является обычной задачей, командлет Get-ChildItem разработан специально для возврата всех элементов, найденных в контейнере, например в папке.
Если необходимо вернуть все файлы и папки, которые находятся непосредственно в папке C:\Windows, введите:
Списки выглядят аналогично тем спискам, которые появляются при вводе команды dir в Cmd.exe или команды ls в командной оболочке UNIX.
С помощью параметров командлета Get-ChildItem можно создавать очень сложные списки. Далее рассмотрим несколько сценариев. Синтаксис командлета Get-ChildItem можно увидеть, введя:
Эти параметры можно скомбинировать и сопоставить для получения настраиваемых выходных данных.
Подключение локальной папки как диска
Отобразить локальную папку можно с помощью команды New-PSDrive . Следующая команда создает локальный диск P: , корневым каталогом которого является локальный каталог Program Files, отображающийся только в сеансе PowerShell:
Как и при использовании сетевых дисков, диски, отображенные в Windows PowerShell, немедленно становятся доступными оболочке Windows PowerShell. Чтобы создать подключенный диск, отображающийся в проводнике, нужен параметр -Persist . Но с этим параметром можно использовать только удаленные пути.
New-SmbMapping
Самый простой способ подключить диски, используя команду New-SmbMapping, будет выглядеть следующим способом:
В этой команде используются следующие ключи:
- LocalPath - локальный путь или буква, под которой будет подключен диск;
- RemotePath - путь к папке через IP или DNS. В случае выше подразумевается, что у пользователя, который открыл консоль Powershell, есть права для подключения к этому пути. Важно так же обратить внимание на кавычки, если ваш путь содержит специальные символы;
- Persistent - дословно переводится как 'постоянный', но в случае сетевых папок обозначает восстановление соединения после отключения сети/компьютера.
Пример выше специально демонстрирует проводник так как это одна из проблем этой команды в версии 5.1 - диск начнет отображаться в проводнике только после перезагрузки компьютера или перезапуске процесса 'explorer.exe'.
Мы можем перезапустить процесс средствами Powershell. Выполнение этой команды, как минимум, закроет все открытые окна:
Так же у вас могут появиться другие ошибки, например следующие говорят об уже занятой букве:
- New-SmbMapping : Имя локального устройства уже используется.
- New-SmbMapping : The local device name is already in use.
Следующая ошибка произойдет, если вы указали слэш '\' в конце пути или к нему нет доступа на уровне сети (фаерволла, dns, политик и т.д.):
- New-SmbMapping : The network name cannot be found.
Переименование записей реестра
Чтобы переименовать запись PowerShellPath в PSHome, используйте Rename-ItemProperty .
Чтобы отобразить переименованное значение, добавьте параметр PassThru в команду.
Работа с файлами и папками. Получение списка файлов и папок, содержащихся в папке.
Извлечь все элементы непосредственно из папки можно с помощью командлета Get-ChildItem . Для отображения скрытых и системных элементов добавьте необязательный параметр Force. Например, эта команда отображает непосредственное содержимое диска C Windows PowerShell (которое совпадает с содержимым физического диска C Windows):
Эта команда выводит только элементы, содержащиеся на диске непосредственно, так же как и команда DIR оболочки Cmd.exe или команда ls оболочки UNIX. Для показа вложенных элементов необходимо также указать параметр -Recurse . (Время выполнения этой операции будет очень велико.) Для вывода всего содержимого диска C введите:
Командлет Get-ChildItem позволяет отфильтровать элементы с помощью параметров Path, Filter, Include и Exclude, но обычно осуществляется лишь фильтрация по имени. Сложную фильтрацию на основе других свойств элементов можно выполнить с помощью Where-Object .
Следующая команда находит все исполняемые файлы в папке Program Files, которые были в последний раз изменены после 1 октября 2005 г. и размер которых не менее одного мегабайта и не более десяти мегабайт:
Remarks
Connecting and disconnecting from a network resource
Use net use to connect to and disconnect from a network resource, and to view your current connections to network resources. You cannot disconnect from a shared directory if you use it as your current drive or an active process is using it.
Viewing connection information
To view information about a connection, you can do either of the following:
Type net use DeviceName to get information about a specific connection.
Type net use to get a list of all the computer's connections.
Using deviceless connections
Deviceless connections are not persistent.
Connecting to NetWare servers
After you install and run Client Service for NetWare, you can connect to a NetWare server on a Novell network. Use the same syntax that you use to connect to a Windows Networking server, except you must include the volume you to which you want to connect.
Using quotation marks
If the ServerName that you supply contains spaces, use quotation marks around the text (that is, "Server Name"). If you omit quotation marks, an error message appears.
Читайте также: