Команды PowerShell с описанием и примерами
Add-Computer ИМЯ Add-Computer ОПИСАНИЕ Добавление локального компьютера в домен или рабочую группу. СИНТАКСИС Add-Computer [-DomainName] <string> [-Credential <PSCredential>] [-OUPath string>] [-Server <string>] [-Unsecure] [-PassThru] [-Confirm] [-WhatIf] [ CommonParameters>] Add-Computer [-WorkGroupName] <string> [-Credential <PSCredential>] [-PassT hru] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Add-Computer добавляет локальный компьютер в домен или рабочую гр уппу или перемещает его из одного домена в другой. Также он создает учетную запись домена, если компьютер добавлен в домен без учетной записи. Параметры этого командлета можно использовать для задания подразделения и к онтроллера домена или для выполнения незащищенного присоединения. Для получения результатов выполнения команды используются параметры Verbose и PassThru. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Требуется? false Позиция? named Значение по умолчанию Параметры учетной записи текущего пользователя Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DomainName <string> Задает домен для учетной записи компьютера. Это обязательный параметр. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OUPath <string> Задает подразделение для учетной записи домена. Введите полное различаю щееся имя подразделения. По умолчанию используется подразделение, прин ятое по умолчанию для объектов-компьютеров в домене. Требуется? false Позиция? named Значение по умолчанию Подразделение, принятое по умолчан ию для всех объектов-компьютеров в домене Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает результаты выполнения команды. По умолчанию этот командлет н е формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Server <string> Задает имя контроллера домена, выполняющего добавление компьютера в дом ен. Введите имя в формате DomainName\ComputerName. По умолчанию использ уется значение "Локальный компьютер". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Unsecure [<SwitchParameter>] Выполняет незащищенное присоединение. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WorkGroupName <string> Задает имя рабочей группы для компьютера. Если этот параметр не задан, компьютер присоединяется к домену. Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Add-Computer по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.ComputerChangeInfo Если задан параметр PassThru, командлет Add-Computer возвращает объект ComputerChangeInfo. В противном случае этот командлет не формирует ника ких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>add-computer -domainname Domain01; restart-computer Описание ----------- Эти команды добавляют локальный компьютер в домен Domain01, используя учетн ые данные текущего пользователя. Первая команда добавляет компьютер в домен. Вторая команда использует коман длет Restart-Computer для перезапуска компьютера, что завершает операцию пр исоединения. Точка с запятой (;) разделяет две команды. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>add-computer -workgroupname WORKGROUP-A Описание ----------- Эта команда добавляет локальный компьютер в рабочую группу Workgroup-A. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>add-computer -DomainName Domain01 -Server Domain01\DC01 -passthru -ve rbose Описание ----------- Эта команда добавляет локальный компьютер в домен Domain01 при помощи контр оллера домена Domain01\DC01. В команде используются параметры PassThru и Verbose для получения подробных сведений о результатах выполнения команды. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>Add-Computer -domainname Domain02 -OUPath OU=testOU,DC=domain,DC=Doma in,DC=com Описание ----------- Эта команда добавляет компьютеры Server01 и Server02 в домен Domain02. Для задания подразделения для новых учетных записей используется параметр OUPat h. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>Add-Computer -domainname Domain02 -cred Domain02\Admin02 -passthru Описание ----------- Эта команда добавляет локальный компьютер в домен Domain02, используя учетн ые данные администратора домена. В команде используется параметр PassThru д ля формирования краткого отчета о результатах выполнения команды. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135194 Checkpoint-Computer Remove-Computer Restart-Computer Restore-Computer Stop-Computer Test-Connection Add-Content ИМЯ Add-Content ОПИСАНИЕ Добавляет содержимое в заданные элементы, например слова в файл. СИНТАКСИС Add-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSC redential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <st ring[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParamet ers>] Add-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredenti al>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]> ] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Add-Content добавляет содержимое в заданный элемент или файл. Сод ержимое можно задать непосредственно в команде либо путем указания объекта, в котором оно хранится. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Переопределяет атрибут "только для чтения", позволяя добавить содержимо е в файл, доступный только для чтения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Добавляет только указанные элементы. Значение этого параметра определяе т значение параметра Path. Введите элемент пути или шаблон, например "* .txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к элементам, которые получают дополнительное содержимое. В отличие от значения параметра Path, значение параметра LiteralPath испо льзуется точно в том виде, в котором оно введено. Никакие символы не ин терпретируются как подстановочные знаки. Если путь включает escape-симв олы, его нужно заключить в одиночные кавычки. Одиночные кавычки указыва ют оболочке Windows PowerShell, что никакие символы не следует интерпре тировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий добавленное содержимое. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементам, которые получают дополнительное содержимое. По дстановочные знаки разрешены. Если нужно указать несколько путей, разде лите их запятыми. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Value <Object[]> Задает добавляемое содержимое. Введите строку в кавычках, например "Эти данные предназначены только для внутреннего использования", или укажит е объект с содержимым, например объект DateTime, созданный командлетом Get-Date. Нельзя указать содержимое файла, задав путь к файлу, потому что путь яв ляется обычной строкой, однако содержимое можно получить с помощью кома нды Get-Content и передать его параметру Value. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Добавляемые объекты (Value) можно передавать командлету Add-Content по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.String При использовании параметра Passthru командлет Add-Content создает объе кт System.String, представляющий содержимое. В противном случае этот ко мандлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ При передаче командлету Add-Content объекта по конвейеру перед добавлен ием в элемент объект преобразуется в строку. Формат строки определяется типом объекта, но может отличаться от используемого по умолчанию форма та отображения объекта. Для управления форматом строки используйте пара метры форматирования отправляющего командлета. Командлет Add-Content также можно вызывать с помощью встроенного псевдо нима "ac". Дополнительные сведения см. в разделе About_Aliases. Командлет Add-Content предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>add-content -path *.txt -exclude help* -value "END" Описание ----------- В результате выполнения данной команды во все текстовые файлы текущего ката лога, кроме файлов, имена которых начинаются с "help", записывается строка "END". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>add-content -Path file1.log, file2.log -Value (get-date) -passthru Описание ----------- В результате выполнения данной команды в конец файлов File1.log и File2.log записывается дата, которая затем отображается в командной строке. В данной команде для извлечения даты используется командлет Get-Date, затем дата пе редается командлету Add-Content через параметр Value. Объект, представляющи й добавленное содержимое, передается дальше по конвейеру через параметр Pas sThru. Так как командлет, принимающий передаваемый объект, не задан, этот о бъект отображается в командной строке. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>add-content -path monthly.txt -value (get-content c:\rec1\weekly.txt) Описание ----------- В результате выполнения данной команды содержимое файла Weekly.txt записыва ется в конец файла Monthly.txt. В данной команде для извлечения содержимого файла Weekly.txt используется командлет Get-Content, затем содержимое пере дается командлету Add-Content через параметр Value. Использование круглых с кобок гарантирует, что командлет Add-Content начнет работу только после зав ершения работы Get-Content. Также можно скопировать содержимое файла Weekly.txt в переменную, например $w, а затем с помощью параметра Value передать ее командлету Add-Content. В этом случае команда примет вид "add-content -path monthly.txt -value $w". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>add-content -value (get-content test.log) -path C:\tests\test134\logs \test134.log Описание ----------- Эта команда создает новые каталог и файл и копирует содержимое существующег о файла в созданный файл. Для добавления содержимого в данной команде используется командлет Add-Cont ent. Значение параметра Value представляет собой команду Get-Content, котор ая получает содержимое из существующего файла, Test.log. Значение параметра Path — это путь, который на момент запуска команды не су ществует. В данном примере существуют только каталоги C:\Tests. Остальные к аталоги и файл Test134.log создаются командой. Параметр Force для этой команды не требуется. Командлет Add-Content создает каталоги для завершения заданного пути даже без параметра Force. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113278 about_Providers Get-Content Set-Content Clear-Content Get-Item Add-History ИМЯ Add-History ОПИСАНИЕ Добавляет записи в журнал сеанса. СИНТАКСИС Add-History [[-InputObject] <PSObject[]>] [-PassThru] [<CommonParameters>] ОПИСАНИЕ Командлет Add-History добавляет записи в конец журнала сеанса, содержащего список команд, введенных за время текущего сеанса. Командлет Get-History позволяет получить эти команды и передать их командле ту Add-History либо экспортировать команды в файл CSV или XML, после чего и мпортировать команды и передать импортированный файл командлету Add-History . Этот командлет позволяет добавить определенные команды в журнал или созда ть единый файл журнала, в котором содержатся команды, введенные в течение н ескольких сеансов. ПАРАМЕТРЫ -InputObject <PSObject[]> Добавляет указанный объект HistoryInfo в журнал сеанса. Этот параметр п озволяет отправить объект HistoryInfo из командлета Get-History, Import -Clixml или Import-Csv в командлет Add-History. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект истории для каждой записи журнала. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.HistoryInfo Объект HistoryInfo можно передать командлету Add-History по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или Microsoft.PowerShell.Commands.HistoryInfo Если задан параметр PassThru, командлет Add-History создает объект Hist oryInfo. В противном случае этот командлет не формирует никаких выходны х данных. ПРИМЕЧАНИЯ Журнал сеанса представляет собой список команд, введенных за время сеан са, вместе с идентификатором. В журнале сеанса представлен порядок выпо лнения, состояние, время начала и завершения выполнения команды. При вв оде каждой команды Windows PowerShell добавляет ее в журнал, чтобы обес печить возможность ее повторного использования. Дополнительные сведени я о журнале сеанса см. в разделе about_History. Команды, добавляемые в журнал, указываются при помощи параметра InputOb ject. Командлет Add-History принимает только объекты HistoryInfo, анало гичные тем, что формирует для каждой команды командлет Get-History. Пер едача пути и имени файла либо списка команд не поддерживается. Параметр -InputObject можно использовать для передачи командлету Add-Hi story файла с объектами HistoryInfo. Для этого экспортируйте результаты команды Get-History в файл с помощью Export-Csv или Export-Clixml, а з атем импортируйте файл с помощью Import-Csv или Import-Clixml. После эт ого можно передать файл с импортированными объектами HistoryInfo команд лету Add-History по конвейеру или в переменной. Дополнительные сведения см. в примерах. Файл объектов HistoryInfo, передаваемый командлету Add-History, должен содержать сведения о типах, заголовки столбцов и все свойства объектов HistoryInfo. Если объекты должны быть переданы командлету Add-History, не используйте в командлете Export-Csv параметр NoTypeInformation и не удаляйте сведения о типах, заголовки столбцов и какие-либо поля в этом файле. Чтобы отредактировать журнал сеанса, экспортируйте журнал в файл CSV ил и XML, отредактируйте этот файл, импортируйте его и воспользуйтесь кома ндлетом Add-History для добавления его в текущий журнал сеанса. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-history | export-csv c:\testing\history.csv C:\PS>import-csv history.csv | add-history Описание ----------- Эти команды добавляют команды, набранные в сеансе Windows PowerShell, в жур нал другого сеанса Windows PowerShell. Первая команда извлекает объекты, пр едставляющие команды в журнале, и экспортирует их в файл History.csv. Втора я команда должна быть набрана в командной строке другого сеанса. Она исполь зует командлет Import-Csv для импорта объектов в файле History.csv. Операто р конвейера передает объекты командлету Add-History, который добавляет объе кты, представляющие команды в файле History.csv, в текущий журнал сеанса. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>import-clixml c:\temp\history.xml | add-history -passthru | foreach-o bject {invoke-history} Описание ----------- Эта команда импортирует команды из файла History.xml, добавляет их в текущи й журнал сеанса и исполняет команды из объединенного журнала. Первая команда использует командлет Import-Clixml для импорта журнала коман д, экспортированных в файл History.xml. Оператор конвейера (|) передает ком анды в качестве параметра командлету Add-History, который добавляет их в те кущий журнал сеанса. Параметр PassThru обеспечивает передачу объектов, пред ставляющих добавленные команды, дальше по конвейеру. Затем команда использует командлет ForEach-Object, чтобы применить команду Invoke-History ко всем командам в объединенном журнале. Команда Invoke-Hist ory оформляется как блок скрипта, который заключается в фигурные скобки ({} ), поскольку для командлета ForEach-Object необходимо использовать блок скр ипта для применения даже одной команды. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-history -id 5 -count 5 | add-history Описание ----------- Эта команда добавляет первые пять команд журнала команд в конец списка в жу рнале сеанса. Командлет Get-History используется для извлечения пяти команд , завершающихся командой 5. Оператор конвейера (|) передает их командлету A dd-History, который добавляет их в текущий журнал. Команда Add-History не в ключает никаких параметров, но Windows PowerShell связывает объекты, переда нные по конвейеру, с параметром InputObject. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = import-csv c:\testing\history.csv C:\PS>add-history -inputobject $a -passthru Описание ----------- Эти команды добавляют команды в файле History.csv в текущий журнал сеанса. Первая команда использует командлет Import-Csv для импорта команд в файл Hi story.csv и сохранения их содержимого в переменную $a. Вторая команда с пом ощью командлета Add-History добавляет команды из файла History.csv в текущи й журнал сеанса. Параметр InputObject задает переменную $a, а параметр Pass Thru формирует объект для вывода в командной строке. Если параметр PassThru не используется, командлет Add-History ничего не выводит на дисплей. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>add-history -inputobject (import-clixml c:\temp\history01.xml) Описание ----------- Эта команда добавляет команды в файле History01.xml в текущий журнал сеанса . Параметр InputObject используется для передачи результатов команды в круг лых скобках командлету Add-History. Команда, заключенная в круглые скобки и выполняемая первой, импортирует файл History01.xml в Windows PowerShell. З атем Add-History добавляет команды в файле в журнал сеанса. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113279 about_History Get-History Invoke-History Clear-History Add-Member ИМЯ Add-Member ОПИСАНИЕ Добавляет определенный пользователем элемент в экземпляр объекта оболочки W indows PowerShell. СИНТАКСИС Add-Member [-MemberType] {AliasProperty | CodeProperty | Property | NotePro perty | ScriptProperty | Properties | PropertySet | Method | CodeMethod | S criptMethod | Methods | ParameterizedProperty | MemberSet | Event | All} [- Name] <string> -InputObject <psobject> [[-Value] <Object>] [[-SecondValue] <Object>] [-Force] [-PassThru] [<CommonParameters>] ОПИСАНИЕ Командлет Add-Member добавляет определенный пользователем элемент в экземпл яр объекта Windows PowerShell. Он позволяет добавлять следующие типы элемен тов: AliasProperty, CodeProperty, NoteProperty, ScriptProperty, PropertySet , CodeMethod, MemberSet и ScriptMethod. Первоначальное значение элемента за дается с помощью параметра Value. При добавлении элементов AliasProperty, S criptProperty, CodeProperty и CodeMethod можно указать дополнительные сведе ния с помощью параметра SecondValue. Дополнительные элементы добавляются в конкретный экземпляр объекта, передав аемый по конвейеру командлету Add-Member или указанный с помощью параметра InputObject. Дополнительный элемент доступен, только пока существует соотве тствующий экземпляр объекта. Командлет Export-Clixml позволяет сохранить эк земпляр вместе с дополнительными элементами в файле. Данные из такого файла могут использоваться командлетом Import-Clixml для восстановления экземпля ра объекта. ПАРАМЕТРЫ -Force [<SwitchParameter>] Добавляет новый элемент, даже если элемент с таким именем уже существуе т. Не работает с основными элементами типа. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объект, в который добавляется новый элемент. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -MemberType <PSMemberTypes> Задает тип добавляемого элемента. Этот параметр является обязательным. Допустимые значения этого параметра: -- AliasProperty: свойство, определяющее новое имя существующего свойст ва; -- CodeMethod: метод, ссылающийся на статический метод класса Microsoft .NET Framework; -- CodeProperty: свойство, ссылающееся на статическое свойство класса . NET Framework; -- MemberSet: заранее определенный набор свойств и методов, например PS Base, PSObject и PSTypeNames; -- Method: метод базового объекта .NET Framework; -- NoteProperty: свойство со статическим значением; -- ParameterizedProperty: свойство, принимающее параметры и значения па раметров; -- Property: свойство базового объекта .NET Framework; -- PropertySet: заранее определенный набор свойств объекта; -- ScriptMethod: метод, значением которого является результат выполнени я скрипта; -- ScriptProperty: свойство, значением которого является результат выпо лнения скрипта; -- All: получает все типы элементов; -- Methods: получает все типы методов объекта (например, method, codeme thod, scriptmethod); -- Properties: получает все типы свойств объекта (например, property, c odeproperty, aliasproperty, scriptproperty). Не у всех объектов имеются элементы каждого из типов. Если указать тип элемента, который у объекта отсутствует, оболочка Windows PowerShell ве рнет ошибку. Недопустимо использовать с командлетом Add-Member тип элемента Event. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Name <string> Задает имя добавляемого элемента. Если имя параметра "Name" опущено, его значение должно быть вторым безы мянным значением в команде. Если имя этого параметра указано, порядок п араметров может быть любым. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает по конвейеру расширенный объект. По умолчанию этот командлет н е формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SecondValue <Object> Задает необязательные дополнительные сведения об элементах AliasPropert y, ScriptProperty, CodeProperty или CodeMethod. Если с его помощью доба вляется элемент AliasProperty, этот параметр должен быть типом данных. К значению AliasProperty добавляется преобразование (приведение) к указ анному типу данных. Например, при добавлении элемента AliasProperty, оп ределяющего альтернативное имя свойства строки, можно также указать пар аметр SecondValue типа System.Int32, указывающий, что значение свойства строки при доступе к нему с помощью соответствующего элемента AliasPro perty должно быть преобразовано в целое число. Параметр SecondValue можно использовать для указания дополнительного эл емента ScriptBlock при добавлении элемента ScriptProperty. В таком случ ае первый элемент ScriptBlock, заданный в параметре Value, используется для получения значения переменной. Второй элемент ScriptBlock, заданны й в параметре SecondValue, используется для задания значения переменной . Требуется? false Позиция? 4 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Value <Object> Задает первоначальное значение добавленного элемента. При добавлении эл емента AliasProperty, CodeProperty или CodeMethod можно предоставить не обязательные дополнительные сведения с помощью параметра SecondValue. Требуется? false Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой тип объекта можно передать командлету Add-Member по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Object Если задан параметр PassThru, командлет Add-Member возвращает расширенн ый объект. В противном случае этот командлет не формирует никаких выход ных данных. ПРИМЕЧАНИЯ Добавлять элементы можно только в объекты PSObject. Чтобы узнать, прина длежит ли объект к типу PSObject, используется оператор "is". Например, для проверки объекта, хранящегося в переменной $obj, следует ввести ко манду "$obj -is [PSObject]". Имена параметров MemberType, Name, Value и SecondValue указывать необяз ательно. Если в команде отсутствуют имена параметров, безымянные значен ия параметров необходимо указывать в следующем порядке: MemberType, Nam e, Value, SecondValue. При указании имен параметры могут следовать в лю бом порядке. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$a = (get-childitem)[0] C:\PS> $a | add-member -membertype noteproperty -name Status -value done C:\PS> $a | get-member -type noteproperty TypeName: System.IO.DirectoryInfo Name MemberType Definition ---- ---------- ---------- PSChildName NoteProperty System.String PSChildName=Co PSDrive NoteProperty System.Management.Automation PSIsContainer NoteProperty System.Boolean PSIsContainer PSParentPath NoteProperty System.String PSParentPath=M PSPath NoteProperty System.String PSPath=Microso PSProvider NoteProperty System.Management.Automation Status NoteProperty System.String Status=done Описание ----------- Эти команды добавляют свойство-примечание Status в объект DirectoryInfo, во звращенный командлетом Get-ChildItem, и присваивают ему значение "done". Первая команда получает первый объект, возвращаемый командлетом Get-Childit em (индекс 0). Вторая команда добавляет свойство-примечание. Третья команда передает обновленный объект командлету Get-Member с помощью оператора конвейера (|). Вывод показывает, что свойство было добавлено. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$a = (get-childitem)[0] C:\PS> $a | add-member -membertype aliasproperty -name FileLength -value Le ngth C:\PS> $a.filelength Описание ----------- Эти команды добавляют свойство-псевдоним FileLength в объект DirectoryInfo, возвращенный командлетом Get-ChildItem. Новое свойство является псевдонимо м для свойства Length. Первая команда получает первый объект, возвращаемый командлетом Get-Childit em (индекс 0). Вторая команда добавляет свойство-псевдоним. Третья команда возвращает значение нового свойства FileLength. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$a = "a string" C:\PS> $a = $a | add-member -membertype noteproperty -name StringUse -value Display -passthru C:\PS> $a.StringUse Описание ----------- Эти команды добавляют свойство StringUse для строки. Так как строка не явля ется объектом PSObject, необходимо включить в команду параметр PassThru, чт обы сохранить расширенную строку в переменной. Последняя команда примера вы водит новое свойство. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = "this is a string" C:\PS> $a = add-member -inputobject $a -membertype scriptmethod -name words ` -value {$this.split()} -passthru C:\PS> $a.words() Описание ----------- Эти команды добавляют в строковый объект метод-скрипт. Метод-скрипт предост авляет доступ к методу Split() класса System.String библиотеки классов .NET Framework, обеспечивая удобный способ получения отдельных слов строки путе м вызова метода "Words" для объекта-строки. Обратите внимание, что использу ется параметр PassThru, чтобы командлет Add-Member возвратил расширенный об ъект-строку для сохранения в переменной $a. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$event = get-eventlog -logname system -newest 1 C:\PS> $event.TimeWritten | get-member C:\PS> add-member -inputobject $event -membertype aliasproperty -name When ` -value TimeWritten -secondvalue System.String C:\PS> $event.When | get-member Описание ----------- Эти команды добавляют элемент AliasProperty в объект EventLogEntry, возвращ енный командлетом Get-EventLog. Свойство AliasProperty называется "When" и является псевдонимом имеющегося у объекта свойства TimeWritten. Параметр Se condValue указывает, что при доступе к свойству с помощью псевдонима AliasP roperty значение свойства должно быть преобразовано в тип System.String. Св ойство TimeWritten является объектом типа DateTime. В первой команде с помощью командлета Get-EventLog извлекается последнее со бытие из системного журнала событий и сохраняется в переменной $event. Вторая команда получает доступ к свойству TimeWritten этого события и перед ает его по конвейеру командлету Get-Member, чтобы показать, что это свойств о принадлежит к типу DateTime. Командлет Add-Member затем используется для добавления элемента AliasProperty в экземпляр объекта EventLogEntry, сохран енного в переменной $event. Параметр Name используется для присвоения новом у элементу имени "When", а параметр Value — для указания того, что этот эле мент является псевдонимом свойства "TimeWritten". Параметр SecondValue указ ывает, что при использовании этого нового элемента тип возвращаемого им зна чения должен быть преобразован из System.DateTime в System.String. Третья команда обращается к новому элементу и передает его по конвейеру ком андлету Get-Member, чтобы показать, что он принадлежит к типу System.String . -------------------------- ПРИМЕР 6 -------------------------- C:\PS>function Copy-Property ($From, $To) { foreach ($p in Get-Member -InputObject $From -MemberType Property) { Add-Member -InputObject $To -MemberType NoteProperty -Name $p.Name -Value $From.$($p.Name) -Force $To.$($p.Name) = $From.$($p.Name) } } Описание ----------- Эта функция копирует все свойства одного объекта в другой объект. В первой команде функции объявляется имя функции и перечисляются ее парамет ры. В цикле Foreach с помощью командлета Get-Member происходит получение всех с войств объекта "From". Команды, расположенные внутри цикла Foreach, последо вательно применяются к каждому из свойств. Команда Add-Member добавляет свойство объекта "From" объекту "To" в качеств е свойства NoteProperty. Использование параметра Force позволяет добавлять элементы с одинаковыми именами. В последней команде новому свойству присваивается имя исходного свойства. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113280 Get-Member Export-Clixml Import-Clixml Add-PSSnapin ИМЯ Add-PSSnapin ОПИСАНИЕ Добавляет одну или несколько оснасток Windows PowerShell в текущий сеанс. СИНТАКСИС Add-PSSnapin [-Name] <string[]> [-PassThru] [<CommonParameters>] ОПИСАНИЕ Командлет Add-PSSnapin добавляет зарегистрированные оснастки Windows PowerS hell в текущий сеанс. После добавления оснасток в текущем сеансе можно испо льзовать командлеты и поставщики, которые поддерживаются этими оснастками. Чтобы добавить оснастки во все будущие сеансы Windows PowerShell, следует д обавить команду Add-PSSnapin в профиль Windows PowerShell. Дополнительные с ведения см. в разделе about_Profiles. ПАРАМЕТРЫ -Name <string[]> Задает имя оснастки. (Это параметр Name, его не следует путать с параме тром AssemblyName или ModuleName.) Чтобы определить имена зарегистрированных в системе оснасток, введите к оманду "get-pssnapin -registered". Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий каждую добавленную оснастку. По умолч анию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Объекты невозможно передать командлету Add-PSSnapin по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSSnapInInfo При использовании параметра PassThru командлет Add-PSSnapin возвращает объект PSSnapInInfo, представляющий оснастку. В противном случае этот к омандлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Чтобы получить дополнительные сведения об оснастках Windows PowerShell, см. раздел about_PSSnapins. Сведения о создании оснастки Windows Power Shell см. в разделе "Как создать оснастку Windows PowerShell" в библиот еке MSDN (Microsoft Developer Network) по адресу http://go.microsoft.co m/fwlink/?LinkId=144762. Командлет Add-PSSnapin добавляет оснастку только в текущий сеанс. Чтобы добавить оснастку во все сеансы Windows PowerShell, ее следует добавит ь в профиль Windows PowerShell. Дополнительные сведения см. в разделе a bout_Profiles. Может быть добавлена любая оснастка Windows PowerShell, зарегистрирован ная при помощи программы установки Microsoft .NET Framework. Дополнител ьные сведения см. в разделе "Регистрация командлетов, поставщиков и вед ущих приложений" библиотеки MSDN по адресу http://go.microsoft.com/fwli nk/?LinkID=143619. Для получения списка оснасток, зарегистрированных на компьютере, введит е команду "get-pssnapin -registered". Перед добавлением оснастки командлет Add-PSSnapin проверяет версию осна стки, чтобы удостовериться в ее совместимости с текущей версией Windows PowerShell. Если версия оснастки не поддерживается, Windows PowerShell сообщает об ошибке. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>add-PSSnapIn Microsoft.Exchange, Microsoft.Windows.AD Описание ----------- Эта команда добавляет оснастки Microsoft Exchange и Active Directory в теку щий сеанс. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-pssnapin -registered | add-pssnapin -passthru Описание ----------- Эта команда добавляет в сеанс все зарегистрированные оснастки Windows Power Shell. В ней используется командлет Get-PSSnapin с параметром Registered дл я получения объектов, представляющих каждую из зарегистрированных оснасток. Оператор конвейера (|) передает результат командлету Add-PSSnapin, который добавляет их в сеанс. Параметр PassThru возвращает объекты, представляющие каждую из добавленных оснасток. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-pssnapin Описание ----------- В этом примере демонстрируется процесс регистрации оснастки в вашей системе и добавления оснастки в текущий сеанс. В примере используется ManagementFe atures, фиктивная оснастка, которая реализована в файле ManagementCmdlets.d ll. Первая команда возвращает оснастки, добавленные в текущий сеанс, включая ос настки, которые установлены с Windows PowerShell. В этом примере Management Features не возвращается. Это означает, что данная оснастка не была добавле на в сеанс. get-pssnapin Вторая команда возвращает оснастки, которые были зарегистрированы в системе (включая те оснастки, которые уже добавлены в сеанс). Оснастки, установлен ные с Windows PowerShell, не включаются в этот список. get-pssnapin -registered В данном случае команда не возвращает никаких оснасток. Такой результат ука зывает на то, что оснастка ManagementFeatures не зарегистрирована в системе . Третья команда создает псевдоним Installutil для пути к средству InstallUti l, входящего в состав платформы .NET Framework. set-alias installutil $env:windir\Microsoft.NET\Framework\v2.0.50727\in stallutil.exe Четвертая команда использует средство InstallUtil для регистрации оснастки. В команде указывается путь к файлу ManagementCmdlets.dll, имя файла или "и мя модуля" оснастки. installutil C:\Dev\Management\ManagementCmdlets.dll Пятая команда совпадает со второй. Необходимо убедиться, что регистрация ос настки ManagementCmdlets прошла успешно. get-pssnapin -registered Шестая команда использует командлет Add-PSSnapin для добавления оснастки Ma nagementFeatures в сеанс. В этой команде указывается имя оснастки (Manageme ntFeatures), а не имя файла. add-pssnapin ManagementFeatures Чтобы убедиться, что оснастка добавлена в сеанс, в седьмой команде использу ется параметр Module командлета Get-Command. Этот параметр позволяет вернут ь элементы, добавленные в сеанс, по оснастке или модулю. get-command -module ManagementFeatures Чтобы определить оснастку или модуль, из которой был вызван командлет, можн о также использовать свойство PSSnapin объекта, возвращаемого командлетом G et-Command. В восьмой команде для определения значения свойства PSSnapin ко манды Set-Alias используется обращение к элементам объекта с помощью точки. (get-command set-alias).pssnapin ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113281 Get-PSSnapin Remove-PSSnapin about_Profiles Add-Type ИМЯ Add-Type ОПИСАНИЕ Добавляет тип (класс) Microsoft .NET Framework в сеанс Windows PowerShell. СИНТАКСИС Add-Type -AssemblyName <string[]> [-IgnoreWarnings] [-PassThru] [<CommonPar ameters>] Add-Type [-Name] <string> [-MemberDefinition] <string[]> [-CodeDomProvider <CodeDomProvider>] [-CompilerParameters <CompilerParameters>] [-Language {C Sharp | CSharpVersion3 | VisualBasic | JScript}] [-Namespace <string>] [-Ou tputAssembly <string>] [-OutputType <OutputAssemblyType>] [-ReferencedAssem blies <string[]>] [-UsingNamespace <string[]>] [-IgnoreWarnings] [-PassThru ] [<CommonParameters>] Add-Type [-Path] <string[]> [-CompilerParameters <CompilerParameters>] [-Ou tputAssembly <string>] [-OutputType <OutputAssemblyType>] [-ReferencedAssem blies <string[]>] [-IgnoreWarnings] [-PassThru] [<CommonParameters>] Add-Type [-TypeDefinition] <string> [-CodeDomProvider <CodeDomProvider>] [- CompilerParameters <CompilerParameters>] [-Language {CSharp | CSharpVersion 3 | VisualBasic | JScript}] [-OutputAssembly <string>] [-OutputType <Output AssemblyType>] [-ReferencedAssemblies <string[]>] [-IgnoreWarnings] [-PassT hru] [<CommonParameters>] ОПИСАНИЕ Командлет Add-Type позволяет определить в сеансе Windows PowerShell класс . NET Framework. После этого можно создавать объекты соответствующего класса (с помощью командлета New-Object) и использовать их, как любые другие объек ты .NET Framework. Если добавить команду Add-Type в профиль Windows PowerS hell, то класс будет доступен во всех сеансах Windows PowerShell. Тип можно задать, указав существующую сборку или файлы с исходным кодом; мо жно также указать исходный код в строке или сохранить его в виде переменной . Кроме того, можно просто указать метод, а команда Add-Type определит и со здаст класс. С помощью этой функции в Windows PowerShell можно вызывать неу правляемые функции. Если задать исходный код, командлет Add-Type скомпилиру ет этот код и создаст хранимую в памяти сборку, содержащую новые типы .NET Framework. С помощью параметров командлета Add-Type можно задать альтернативный язык и компилятор (по умолчанию используется CSharp), параметры компилятора, зави симости сборки, пространство имен класса, а также имена типа и получаемой в результате сборки. ПАРАМЕТРЫ -AssemblyName <string[]> Задает имя сборки, включающей типы. Команда Add-Type получает типы из у казанной сборки. Этот параметр требуется указывать в случае создания ти пов на основании имени сборки. Введите полное или простое имя (также называемое "частичным именем") сб орки. В имени сборки разрешается использовать подстановочные знаки. В с лучае указания простого или частичного имени командлет Add-Type разреша ет его в полное имя, а затем загружает сборку с использованием этого по лного имени. В качестве значения этого параметра нельзя указывать путь или имя файла . Чтобы указать путь к DLL-файлу, следует использовать параметр Path. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -CodeDomProvider <CodeDomProvider> Задает генератор кода или компилятор. Команда Add-Type использует указа нный компилятор для компиляции исходного кода. По умолчанию используетс я компилятор CSharp. Этот параметр следует применять в том случае, есл и используемый язык нельзя указать с помощью параметра Language. Указы ваемый в параметре CodeDomProvider компилятор должен поддерживать созда ние сборок из исходного кода. Требуется? false Позиция? named Значение по умолчанию Компилятор CSharp Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CompilerParameters <CompilerParameters> Задает параметры для компилятора исходного кода. Эти параметры передают ся компилятору без проверки. Этот параметр позволяет использовать компилятор для создания исполняемо го файла и внедрения ресурсов или задать для компилятора параметры кома ндной строки, например "/unsafe". Этот параметр реализует класс Compile rParameters (System.CodeDom.Compiler.CompilerParameters). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -IgnoreWarnings [<SwitchParameter>] Игнорирует предупреждения компилятора. Этот параметр позволяет запретит ь командлету Add-Type обрабатывать предупреждения как ошибки. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Language <Language> Задает язык, используемый в исходном коде. Команда Add-Type использует значение языка для выбора нужного компилятора кода. Допустимые значения: CSharp, CSharpVersion3, VisualBasic и JScript. По умолчанию используется значение CSharp. Требуется? false Позиция? named Значение по умолчанию CSharp Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MemberDefinition <string[]> Задает новые свойства или методы класса. Команда Add-Type создает шабло н кода, необходимый для поддержки этих свойств и методов. С помощью этой функции в Windows PowerShell можно вызывать неуправляемы е функции. Дополнительные сведения см. в примерах. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает имя создаваемого класса. Этот параметр требуется указывать при с оздании типа на основании определения элемента. Имя типа и пространство имен должны быть уникальными в пределах одного сеанса. Невозможно выгрузить тип или изменить его. Если требуется измен ить код типа, необходимо изменить его имя или запустить новый сеанс Win dows PowerShell. В противном случае команда завершится с ошибкой. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Namespace <string> Задает пространство имен типа. Если этот параметр не указан в команде, тип создается в пространстве им ен Microsoft.PowerShell.Commands.AddType.AutoGeneratedTypes. Если этот параметр указан в команде и имеет значение пустой строки или $null, тип создается в глобальном пространстве имен. Требуется? false Позиция? named Значение по умолчанию Microsoft.PowerShell.Commands.AddT ype.AutoGeneratedTypes Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OutputAssembly <string> Создает DLL-файл для сборки с заданным именем и расположением. Введите путь (необязательно) и имя файла. Подстановочные знаки разрешены. По ум олчанию команда Add-Type создает сборку только в памяти. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -OutputType <OutputAssemblyType> Задает тип выходных данных результирующей сборки. Допустимые значения: Library, ConsoleApplication и WindowsApplication. По умолчанию тип выходных данных не задан. Этот параметр допустим, только если в команде задана результирующая сбо рка. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект System.Runtime, представляющий добавленные типы. По у молчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к файлам с исходным кодом или DLL-файлам сборки, содержащим типы. Если задать файлы с исходным кодом, командлет Add-Type скомпилирует код в этих файлах и создаст хранимую в памяти сборку с этими типами. Расши рение имени файла, указываемое в значении параметра Path, определяет ко мпилятор, который будет использовать командлет Add-Type. Если задать файл сборки, команда Add-Type будет использовать типы из эт ой сборки. Чтобы указать сборку, хранимую в памяти, или глобальный кэш сборок, следует использовать параметр AssemblyName. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ReferencedAssemblies <string[]> Задает сборки, от которых зависит тип. По умолчанию команда Add-Type сс ылается на сборки System.dll и System.Management.Automation.dll. При ук азании сборок с помощью этого параметра ссылки на эти сборки добавляютс я к ссылкам на сборки по умолчанию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -TypeDefinition <string> Задает исходный код, содержащий определения типа. Введите исходный код в виде строки или автономной строки, либо укажите переменную, содержащу ю исходный код. Дополнительные сведения об автономных строках см. в раз деле about_Quoting_Rules. Включите в определение типа объявление пространства имен. Если опустить объявление пространства имен, имя типа может совпасть с именем или ярл ыком другого типа, в результате чего другой тип может быть непреднамере нно перезаписан. Например, если определить тип с именем "Exception", то скрипты, в которых "Exception" используется в качестве псевдонима для System.Exception, перестанут работать. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UsingNamespace <string[]> Задает другие пространства имен, необходимые для класса. Назначение это го параметра похоже на назначение ключевого слова "Using" в C#. По умолчанию Add-Type ссылается на пространство имен System. В случае и спользования параметра MemberDefinition Add-Type по умолчанию также ссы лается на пространство имен System.Runtime.InteropServices. При указани и пространств имен с помощью параметра UsingNamespace ссылки на эти про странства имен добавляются к ссылкам на пространства имен по умолчанию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Add-Type по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.RuntimeType При использовании параметра PassThru командлет Add-Type возвращает объе кт System.RuntimeType, представляющий новый тип. В противном случае это т командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Добавляемые типы существуют только в рамках текущего сеанса. Чтобы исп ользовать типы во всех сеансах, их следует добавить в профиль Windows P owerShell. Дополнительные сведения о профиле см. в разделе about_Profil es. Имена типов (и пространства имен) должны быть уникальными в пределах од ного сеанса. Невозможно выгрузить тип или изменить его. Если требуется изменить код типа, необходимо изменить его имя или запустить новый сеа нс Windows PowerShell. В противном случае команда завершится с ошибкой. Класс CodeDomProvider для некоторых языков, например IronPython и JShar p, не позволяет сформировать выходные данные. Поэтому типы, написанные на этих языках, нельзя использовать с командлетом Add-Type. Этот командлет основан на классе CodeDomProvider. Дополнительные сведен ия об этом классе см. в описании пакета SDK Microsoft .NET Framework. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$source = @" public class BasicTest { public static int Add(int a, int b) { return (a + b); } public int Multiply(int a, int b) { return (a * b); } } "@ C:\PS> Add-Type -TypeDefinition $source C:\PS> [BasicTest]::Add(4, 3) C:\PS> $basicTestObject = New-Object BasicTest C:\PS> $basicTestObject.Multiply(5, 2) Описание ----------- Эти команды добавляют в сеанс класс BasicTest при указании исходного кода, хранимого в переменной. У типа имеется статический метод Add и нестатически й метод Multiply. Первая команда хранит исходный код класса в переменной $source. Вторая команда использует командлет Add-Type для добавления класса в сеанс. Поскольку используется встроенный исходный код, для указания кода в переме нной $source команда использует параметр TypeDefinition. Оставшиеся команды используют новый класс. Третья команда вызывает статический метод Add класса BasicTest. Для указани я статических элементов класса используются двойные двоеточия (::). Четвертая команда использует командлет New-Object для создания экземпляра к ласса BasicTest. Она сохраняет новый объект в переменной $basicTestObject. Пятая команда использует метод Multiply объекта $basicTestObject. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>[BasicTest] | get-member C:\PS> [BasicTest] | get-member -static C:\PS> $basicTestObject | get-member C:\PS> [BasicTest] | get-member TypeName: System.RuntimeType Name MemberType Definition ---- ---------- ---------- Clone Method System.Object Clone() Equals Method System.Boolean Equals FindInterfaces Method System.Type[] FindInt ... C:\PS> [BasicTest] | get-member -static TypeName: BasicTest Name MemberType Definition ---- ---------- ---------- Add Method static System.Int32 Add(Int32 a, Int32 b) Equals Method static System.Boolean Equals(Object objA, ReferenceEquals Method static System.Boolean ReferenceEquals(Obj C:\PS> $basicTestObject | get-member TypeName: BasicTest Name MemberType Definition ---- ---------- ---------- Equals Method System.Boolean Equals(Object obj) GetHashCode Method System.Int32 GetHashCode() GetType Method System.Type GetType() Multiply Method System.Int32 Multiply(Int32 a, Int32 b) ToString Method System.String ToString() Описание ----------- Эти команды используют командлет Get-Member для проверки объектов, созданны х в предыдущем примере с помощью командлетов Add-Type и New-Object. Первая команда использует командлет Get-Member, чтобы получить тип и элемен ты класса BasicTest, добавленного в сеанс с помощью командлета Add-Type. Ко мандлет Get-Member позволяет узнать, чтоб объект имеет тип System.RuntimeTy pe, являющийся производным для класса System.Object. Вторая команда использует параметр Static командлета Get-Member, чтобы полу чить статические свойства и статические методы класса BasicTest. Результат содержит метод Add. Третья команда использует командлет Get-Member, чтобы получить элементы объ екта, хранящегося в переменной $BasicTestObject. Это экземпляр объекта клас са $BasicType, созданного с помощью командлета New-Object. Результат выполнения команды показывает, что значение переменной $basicTest Object является экземпляром класса BasicTest и содержит элемент Multiply. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$accType = add-type -assemblyname accessib* -passthru Описание ----------- Эта команда добавляет в текущий сеанс классы из сборки Accessibility. Коман да использует параметр AssemblyName для указания имени сборки. Подстановочн ый знак позволяет получить нужную сборку, даже если точное имя сборки или е го написание неизвестно. Команда использует параметр PassThru, чтобы создать объекты, представляющие классы, добавляемые в сеанс, и сохраняет эти объекты в переменной $accType . -------------------------- ПРИМЕР 4 -------------------------- C:\PS>add-type -path c:\ps-test\Hello.vb [VBFromFile]::SayHello(", World") # From Hello.vb Public Class VBFromFile Public Shared Function SayHello(sourceName As String) As String Dim myValue As String = "Hello" return myValue + sourceName End Function End Class C:\PS> [VBFromFile]::SayHello(", World") Hello, World Описание ----------- В этом примере командлет Add-Type используется для добавления в текущий сеа нс класса VBFromFile, определенного в файле Hello.vb. Текст файла Hello.vb показан в результатах выполнения команды. Первая команда использует командлет Add-Type для добавления в текущий сеанс типа, определенного в файле Hello.vb. Для указания исходного файла в этой команде используется параметр path. Вторая команда вызывает функцию SayHello в качестве статического метода кла сса VBFromFile. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$signature = @" [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); "@ $showWindowAsync = Add-Type -memberDefinition $signature -name "Win32ShowWi ndowAsync" -namespace Win32Functions -passThru # Minimize the Windows PowerShell console $showWindowAsync::ShowWindowAsync((Get-Process -id $pid).MainWindowHandle, 2) # Restore it $showWindowAsync::ShowWindowAsync((Get-Process -id $pid).MainWindowHandle, 4) Описание ----------- Команды в этом примере показывают, как вызывать в Windows PowerShell собств енные API Windows. Командлет Add-Type использует механизм вызова неуправляе мого кода, чтобы вызвать в Windows PowerShell функцию из файла User32.dll. Первая команда сохраняет в переменной $signature сигнатуру C# функции ShowW indowAsync. (Дополнительные сведения см. в разделе "Функция ShowWindowAsync " библиотеки MSDN по адресу (на английском языке).) Чтобы получаемый в рез ультате метод был доступен в сеансе Windows PowerShell, к стандартной сигна туре было добавлено ключевое слово "public". Вторая команда использует командлет Add-Type для добавления функции ShowWin dowAsync в сеанс Windows PowerShell в качестве статического метода класса, создаваемого командлетом Add-Type. Команда использует параметр MemberDefini tion для задания определения метода, сохраняемого в переменной $signature. Команда использует параметры Name и Namespace для задания имени и пространс тва имен класса. Она использует параметр PassThru, чтобы создать объект, пр едставляющий типы, и сохраняет этот объект в переменной $showWindowAsync. В третьей и четвертой командах используется новый статический метод ShowWin dowAsync. Этот метод принимает два параметра — дескриптор окна и целое знач ение, определяющее отображение окна. Третья команда вызывает метод ShowWindowAsync. Она использует командлет Get -Process с автоматической переменной $pid, чтобы получить процесс, в которо м работает текущий сеанс Windows PowerShell. После этого она использует сво йство MainWindowHandle текущего процесса и значение 2, соответствующее знач ению SW_MINIMIZE. Чтобы восстановить окно, четвертая команда использует для определения полож ения окна значение 4, что соответствует значению SW_RESTORE. (Положению SW_ MAXIMIZE соответствует значение 3.) -------------------------- ПРИМЕР 6 -------------------------- C:\PS>Add-Type -MemberDefinition $jsMethod -Name "PrintInfo" -Language JScr ipt Описание ----------- Эта команда использует командлет Add-Type, чтобы добавить в сеанс Windows P owerShell метод из встроенного кода JScript. Для отправки исходного кода, х ранящегося в переменной $jsMethod, используется параметр MemberDefinition. Команда использует переменную Name, чтобы задать имя класса, создаваемого с помощью командлета Add-Type для данного метода, и параметр Language, чтобы указать, что используется язык JScript. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>Add-Type -Path FSharp.Compiler.CodeDom.dll C:\PS> Add-Type -Path FSharp.Compiler.CodeDom.dll C:\PS> $provider = New-Object Microsoft.FSharp.Compiler.CodeDom.FSharpCodeP rovider C:\PS> $fSharpCode = @" let rec loop n = if n <= 0 then () else begin print_endline (string_of_int n); loop (n-1) end "@ C:\PS> $fsharpType = Add-Type -TypeDefinition $fSharpCode -CodeDomProvider $provider -PassThru | where { $_.IsPublic } C:\PS> $fsharpType::loop(4) 4 3 2 1 Описание ----------- В этом примере показано, как с помощью командлета Add-Type добавить в сеанс Windows PowerShell компилятор кода FSharp. Чтобы запустить этот пример в W indows PowerShell, требуется сборка FSharp.Compiler.CodeDom.dll, устанавлив аемая вместе с языком FSharp. Первая команда в этом примере использует командлет Add-Type с параметром Pa th, чтобы задать сборку. Командлет Add-Type получает типы из сборки. Вторая команда использует командлет New-Object, чтобы создать экземпляр пос тавщика кода FSharp, и сохраняет результат в переменной $provider. Третья команда сохраняет код FSharp, который определяет метод Loop в переме нной $FSharpCode. Четвертая команда использует командлет Add-Type, чтобы сохранить в переменн ой $fSharpType общие типы, определенные в переменной $fSharpCode. Параметр TypeDefinition задает исходный код, в котором определены типы. Параметр Cod eDomProvider задает компилятор исходного кода. Параметр PassThru означает, что командлет Add-Type должен вернуть объект Ru ntime, представляющий типы, а оператор конвейера (|) передает объект Runtim e командлету Where-Object, который возвращает только общие типы. Фильтр Whe re-Object используется потому, что поставщик FSharp создает для поддержки к онечного общего типа типы, не являющиеся общими. Пятая команда вызывает метод Loop в качестве статического метода типа, хран ящегося в переменной $fSharpType. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135195 Add-Member New-Object Alias ИМЯ ПОСТАВЩИКА Alias ДИСКИ Alias: ОПИСАНИЕ Предоставляет доступ к псевдонимам Windows PowerShell и представленным ими значениям. ОПИСАНИЕ Поставщик Windows PowerShell Alias позволяет извлекать, добавлять, изменять , очищать и удалять псевдонимы в Windows PowerShell. Псевдоним представляет собой альтернативное имя командлета, функции или исп олняемого файла. Оболочка Windows PowerShell включает набор встроенных псев донимов. Кроме того, пользователь может добавлять собственные псевдонимы в текущий сеанс и свой профиль Windows PowerShell. Поставщик Alias представляет собой плоское пространство имен, содержащее то лько объекты псевдонимов. У псевдонимов нет дочерних элементов. Каждый псевдоним является экземпляром класса System.Management.Automation.A liasInfo. Поставщик Alias отображает свое хранилище данных как диск Alias:. Для работ ы с псевдонимами можно изменить свое положение на диск Alias: с помощью сле дующей команды: set-location alias: Можно также работать в оболочке Windows PowerShell с любого другого диска. Для ссылки на псевдоним из другого положения в пути следует использовать им я диска "Alias:". Оболочка Windows PowerShell включает набор командлетов, предназначенных для просмотра и изменения псевдонимов: Export-Alias Get-Alias Import-Alias New-Alias Set-Alias При использовании этих командлетов не нужно указывать диск "Alias:" в имени . Поставщик Alias поддерживает все командлеты, содержащие слово Item, кроме к омандлета Invoke-Item. Кроме того, он поддерживает командлеты Get-Content и Set-Content. Поставщик Alias не поддерживает командлеты, содержащие слово ItemProperty. Кроме того, поставщик Alias не поддерживает параметр Filter в любых командлетах. Все изменения в псевдонимах затрагивают только текущий сеанс. Чтобы сохрани ть изменения, их следует добавить в профиль Windows PowerShell. Можно также использовать командлеты Export-Alias и Import-Alias. ВОЗМОЖНОСТИ ЗАДАЧИ ЗАДАЧА: Обращение к диску Alias: -------------------------- ПРИМЕР 1 -------------------------- Эта команда меняет текущее положение на диск Alias:. Эту команду можно использовать с любого диска в оболочке Windows PowerShell. Чтобы вернут ься к диску файловой системы, введите имя диска. Например, введите кома нду "set-location c:". set-location alias: ЗАДАЧА: Получение псевдонимов -------------------------- ПРИМЕР 1 -------------------------- Эта команда возвращает список всех псевдонимов в текущем сеансе. Эту ко манду можно использовать на любом диске Windows PowerShell. get-item -path alias: -------------------------- ПРИМЕР 2 -------------------------- Это команда возвращает псевдоним "ls". Так как он содержит путь, его мо жно использовать на любом допустимом диске Windows PowerShell. get-item -path alias:ls Если диск Alias: уже открыт, имя этого диска в пути можно не указывать. -------------------------- ПРИМЕР 3 -------------------------- Эта команда возвращает список псевдонимов, связанных с командлетом Get- ChildItem. Для хранения имени командлета в ней используется свойство De finition. get-item -path alias:* | where-object {$_.Definition -eq "Get-Childitem "} Если элемент с псевдонимом является исполняемым файлом, свойство Defini tion содержит полный путь к файлу. -------------------------- ПРИМЕР 4 -------------------------- Эта команда возвращает список всех псевдонимов, если текущим положением является диск Alias:. Подстановочный знак (*) используется для указани я на все содержимое текущего положения. get-item -path * На диске Alias: точка (.), представляющая текущее положение, и подстано вочный знак (*), представляющий все элементы текущего положения, имеют одинаковый эффект. Например, одинаковый результат получится при выполне нии команд "get-item -path ." и "get-item *". ЗАДАЧА: Создание нового псевдонима -------------------------- ПРИМЕР 1 -------------------------- Эта команда создает псевдоним "serv" для командлета Get-Service. Так ка к текущим местоположением является диск Alias:, значение параметра Path — точка (.). Точка обозначает текущее местоположение. Эта команда также использует динамический параметр Options для задания параметров псевдонима AllScope и Constant. Параметр Options доступен в командлете New-Item только если открыт диск Alias:. new-item -path . -name serv -value Get-Service -Options "AllScope,Const ant" Если диск Alias: уже открыт, имя этого диска в пути можно не указывать. -------------------------- ПРИМЕР 2 -------------------------- Псевдоним может быть создан для любого элемента, вызывающего команду. Э та команда создает псевдоним "np" для Notepad.exe. new-item -path alias:np -value c:\windows\notepad.exe -------------------------- ПРИМЕР 3 -------------------------- Можно создать псевдоним для любой функции. Эта возможность позволяет со здать псевдоним, включающий как командлет, так и его параметры. Первая команда создает функцию CD32, которая изменяет текущий каталог н а каталог System32. Вторая команда создает псевдоним "go" для функции C D32. Разделителем команд служит точка с запятой (;). После завершения команды для вызова функции CD32 можно использовать люб ую из команд CD32 и "go". function CD32 {set-location -path c:\windows\system32} set-item -path a lias:go -value CD32 ЗАДАЧА: Отображение свойств и методов псевдонимов -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Get-Item для получения всех псевдонимо в. Результаты с помощью оператора конвейера (|) передаются командлету G et-Member, который отображает методы и свойства объекта. get-item -path alias:* | get-member При передаче командлету Get-Member по конвейеру коллекции объектов, нап ример коллекции псевдонимов на диске Alias:, командлет Get-Member обраб атывает каждый объект коллекции отдельно. Затем командлет Get-Member во звращает информацию о каждом найденном типе объекта. Если все объекты п ринадлежат к одному типу, выводятся сведения о единственном типе объект а. В данном случае все псевдонимы являются объектами AliasInfo. Для получения сведений о коллекции объектов AliasInfo используйте парам етр InputObject командлета Get-Member. Например, используйте следующую команду: Get-Member -InputObject (Get-Item alias:*) При использовании параметра InputObject командлет Get-Member выполняет оценку всей коллекции, а не отдельных объектов из нее. -------------------------- ПРИМЕР 2 -------------------------- Эта команда перечисляет значения свойств псевдонима "dir". Она использу ет командлет Get-Item для получения объекта, представляющего псевдоним "dir". Оператор конвейера (|) передает результаты команде Format-List. Команда Format-List использует параметр Property с подстановочным знако м (*) для форматирования и отображения значений всех свойств псевдонима "dir". get-item alias:dir | format-list -property * ЗАДАЧА: Изменение свойств псевдонима -------------------------- ПРИМЕР 1 -------------------------- Для изменения значения свойства Options псевдонима можно использовать к омандлет Set-Item с динамическим параметром Options. Эта команда устанавливает параметры AllScope и ReadOnly для псевдонима "dir". В ней используется динамический параметр Options командлета Set- Item. Параметр Options доступен для Set-Item только при использовании с поставщиком Alias или Function. set-item -path alias:dir -options "AllScope,ReadOnly" -------------------------- ПРИМЕР 2 -------------------------- Эта команда использует командлет Set-Item для изменения псевдонима "gp" так, чтобы он представлял командлет Get-Process вместо командлета Get- ItemProperty. Параметр Force является обязательным, поскольку для значе ния параметра Options псевдонима "gp" установлен режим ReadOnly. Так ка к команда вводится при открытом диске Alias:, диск в пути не указываетс я. set-item -path gp -value get-process -force Это изменение затрагивает четыре свойства, определяющих связь между псе вдонимом и командой. Чтобы просмотреть влияние изменения, введите следу ющую команду: get-item -path gp | format-list -property * -------------------------- ПРИМЕР 3 -------------------------- Эта команда использует командлет Rename-Item для изменения имени псевдо нима "popd" на "pop". rename-item -path alias:popd -newname pop ЗАДАЧА: Копирование псевдонима -------------------------- ПРИМЕР 1 -------------------------- Эта команда копирует псевдоним "pushd", создавая новый псевдоним "push" для командлета Push-Location. copy-item -path alias:pushd -destination alias:push При создании нового псевдонима его свойство Description имеет значение "None". Его свойство Options также имеет значение "None". Если команда вводится при открытом диске Alias:, можно не указывать имя диска в значении параметра Path. ЗАДАЧА: Удаление псевдонима -------------------------- ПРИМЕР 1 -------------------------- Эта команда удаляет псевдоним "serv" из текущего сеанса. Эту команду мо жно использовать на любом диске Windows PowerShell. remove-item -path alias:serv Если диск Alias: уже открыт, имя этого диска в пути можно не указывать. -------------------------- ПРИМЕР 2 -------------------------- Эта команда удаляет псевдонимы, начинающиеся со знака "s". Она не удаля ет псевдонимы, доступные только для чтения. clear-item -path alias:s* -------------------------- ПРИМЕР 3 -------------------------- Эта команда удаляет все псевдонимы из текущего сеанса, кроме тех, котор ые содержат Constant в значении свойства Options. Если не задан парамет р Force, команда не удаляет псевдонимы со значением ReadOnly свойства O ptions. remove-item alias:* -force ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ -Options <System.Management.Automation.ScopedItemOptions> Определяет значение свойства Options псевдонима. None Без параметров. Это значение по умолчанию. Constant Невозможно удалить псевдоним и изменить его свойства. Значение "Constant" доступно только при создании псевдонима. Нельзя прис воить значение "Constant" параметру существующего псевдонима. Private Псевдоним виден только в текущей области, но не в дочерних обла стях. ReadOnly Свойства псевдонима изменить нельзя, если только не использоват ь параметр Force. Для удаления псевдонима воспользуйтесь команд летом Remove-Item. AllScope Псевдоним копируется во все новые создаваемые области. Поддерживаемые командлеты: New-Item, Set-Item ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ about_Aliases about_Providers cd.. cd.. cd\ cd\ Certificate ИМЯ ПОСТАВЩИКА Certificate ДИСКИ Cert: ОПИСАНИЕ Обеспечивает доступ к хранилищам сертификатов X.509 и сертификатам из оболо чки Windows PowerShell. ОПИСАНИЕ Политика безопасности оболочки Windows PowerShell позволяет использовать по дписи Authenticode для подписания скриптов с помощью цифровых сертификатов X.509 с открытым ключом. Функции подписывания Windows PowerShell не полны, но позволяют пользователям подписывать скрипты и позволяют оболочке Windows PowerShell распознавать подписанные и неподписанные скрипты и определять с крипты, исходящие из Интернета. Поставщик сертификатов Windows PowerShell позволяет перемещаться по простра нству имен сертификатов и просматривать хранилища сертификатов и сертификат ы. Он также позволяет копировать, перемещать и удалять сертификаты и хранил ища сертификатов и открывать оснастку "Сертификаты" в консоли управления (M MC). Поставщик сертификатов представляет пространство имен сертификатов в виде д иска Cert: в Windows PowerShell. Cert: имеет три описанных ниже уровня. Места хранения (Microsoft.PowerShell.Commands.X509StoreLocation), которые п редставляют собой контейнеры высокого уровня для группировки сертификатов т екущего пользователя и всех пользователей. Каждая система имеет место хране ния CurrentUser и LocalMachine (все пользователи). -- Хранилища сертификатов (System.Security.Cryptography.X509Certificates.X5 09Store), которые представляют собой физические хранилища для хранения и уп равления сертификатами. Сертификаты X.509 (System.Security.Cryptography.X509Certificates.X509Certif icate2), каждый из которых представляет сертификат X.509 в компьютере. Серт ификаты идентифицируются по их отпечаткам. Поставщик сертификатов Windows PowerShell поддерживает командлеты Set-Locat ion, Get-Location, Get-Item, Get-ChildItem и Invoke-Item. Кроме того, оснастка "Безопасность" в Windows PowerShell (Microsoft.PowerSh ell.Security), которая содержит поставщик сертификатов, также включает осна стки для получения и установки подписей Authenticode и получения сертификат ов. Чтобы получить список командлетов в оснастке "Безопасность", введите ко манду "get-command -module *security". ВОЗМОЖНОСТИ ЗАДАЧИ ЗАДАЧА: Перемещение по диску "Cert:" -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Set-Location, чтобы изменить текущее м естоположение диска "Cert:". set-location cert: -------------------------- ПРИМЕР 2 -------------------------- Эта команда использует команду Set-Location, чтобы изменить текущее мес тоположение хранилища корневого сертификата в месте хранения LocalMachi ne. Используйте обратную косую черту (\) или косую черту (/), чтобы пок азать уровень диска "Cert:". set-location -path LocalMachine\Root Если диск "Cert:" указывайте путь, начиная с имени диска. ЗАДАЧА: Отображение содержимого диска "Cert:". -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Get-ChildItem, чтобы показать хранилищ а сертификатов в месте хранения сертификатов CurrentUser. get-childitem -path cert:\CurrentUser Если текущим положением является диск "Cert:":, имя диска можно не указ ывать. -------------------------- ПРИМЕР 2 -------------------------- Эта команда использует командлет Get-ChildItem, чтобы показать сертифик аты в хранилище сертификатов "My". get-childitem -path cert:\CurrentUser\My Если текущим положением является диск "Cert:":, имя диска можно не указ ывать. -------------------------- ПРИМЕР 3 -------------------------- Эта команда использует командлет Get-Item, чтобы получить хранилище сер тификатов "My", а параметр Property командлета Format-List с подстаново чным знаком (*), чтобы показать все свойства хранилища. get-item -path cert:\CurrentUser\My | format-list * -------------------------- ПРИМЕР 4 -------------------------- Эта команда получает сертификат и показывает все его свойства. Она испо льзует командлет Get-ChildItem, чтобы получить сертификат, а параметр P roperty командлета Format-List с подстановочным знаком (*), чтобы показ ать все свойства сертификата. Сертификат идентифицируется своим отпечатком. get-childitem -path cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9 EA776CE66B | format-list -property * -------------------------- ПРИМЕР 5 -------------------------- Эта команда использует командлет Get-ChildItem, чтобы получить все серт ификаты в компьютере, и его динамический параметр CodeSigningCert, чтоб ы получить только сертификаты с заверителем подписи кода. get-childitem -path * -codesigningcert -recurse ЗАДАЧА: Открытие оснастки "Сертификаты" консоли управления (MMC) -------------------------- ПРИМЕР 1 -------------------------- Эта команда открывает оснастку "Сертификаты" консоли управления (MMC), чтобы управлять указанным сертификатом. invoke item cert:\CurrentUser\my\6B8223358119BB08840DEE50FD8AF9EA776CE6 6B ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ -CodeSigningCert <System.Management.Automation.SwitchParameter> Получает только сертификаты с заверителем подписи кода. Поддерживаемые командлеты: Get-Item, Get-ChildItem ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ about_Providers about_Signing Get-AuthenticodeSignature Set-AuthenticodeSignature Get-PfxCertificate Checkpoint-Computer ИМЯ Checkpoint-Computer ОПИСАНИЕ Создает точку восстановления системы на локальном компьютере. СИНТАКСИС Checkpoint-Computer [-Description] <string> [[-RestorePointType] <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Checkpoint-Computer создает точку восстановления системы на локал ьном компьютере. Этот командлет работает только в Windows Vista и Windows X P. ПАРАМЕТРЫ -Description <string> Задает описательное имя для точки восстановления. Это обязательный пара метр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RestorePointType <string> Задает тип точки восстановления. По умолчанию используется значение APP LICATION_INSTALL. Допустимые значения: APPLICATION_INSTALL, APPLICATION_UNINSTALL, DEVICE _DRIVER_INSTALL, MODIFY_SETTINGS и CANCELLED_OPERATION. Требуется? false Позиция? 2 Значение по умолчанию APPLICATION_INSTALL Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Checkpoint-Computer по конвейеру . ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ В этом командлете используется метод CreateRestorePoint класса SystemRe store с событием BEGIN_SYSTEM_CHANGE. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>checkpoint-computer -description "Install MyApp" Описание ----------- Эта команда создает точку восстановления системы с именем "Install MyApp". Используется тип точки восстановления по умолчанию APPLICATION_INSTALL. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>checkpoint-computer -description "ChangeNetSettings" -RestorePointTyp e MODIFY_SETTINGS Описание ----------- Эта команда создает точку восстановления системы типа MODIFY_SETTINGS с име нем "ChangeNetSettings". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135197 Add-Computer Remove-Computer Restart-Computer Restore-Computer Stop-Computer Test-Connection Clear-Content ИМЯ Clear-Content ОПИСАНИЕ Удаляет содержимое элемента без удаления самого элемента, например, удаляет текст из файла. СИНТАКСИС Clear-Content [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Excl ude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm ] [-WhatIf] [-UseTransaction] [<CommonParameters>] Clear-Content [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <st ring[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-Wha tIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Clear-Content удаляет содержимое элемента без удаления самого эле мента, например, удаляет текст из файла. В результате элемент существует, н о является пустым. Командлет Clear-Content действует аналогично командлету Clear-Item, но предназначен для работы с файлами, а не псевдонимами и перем енными. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету очистить содержимое файла, даже если файл доступен только для чтения. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Даже при использ овании параметра Force командлет не может переопределить ограничения бе зопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Очищает только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.t xt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к элементам, содержимое которых требуется удалить. В отличи е от значения параметра Path, значение параметра LiteralPath использует ся точно в том виде, в котором оно введено. Никакие символы не интерпре тируются как подстановочные знаки. Если путь включает escape-символы, е го нужно заключить в одиночные кавычки. Одиночные кавычки указывают обо лочке Windows PowerShell, что никакие символы не следует интерпретирова ть как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементам, содержимое которых требуется удалить. Подстано вочные знаки разрешены. Пути должны быть путями к элементам, а не конте йнерам. Например, нужно указать путь к одному или нескольким файлам, а не путь к каталогу. Подстановочные знаки разрешены. Этот параметр обяза телен, но его имя ("Path") можно не указывать. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Clear-Content по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Командлет Clear-Content также можно вызывать с помощью встроенного псев донима "clc". Дополнительные сведения см. в разделе About_Aliases. Если имя параметра -Path опущено, его значение в списке параметров кома нды должно быть указано первым. Например, "clear-content c:\mydir\*.txt ". Если указать имя параметра, можно приводить параметры в любом порядк е. Командлет Clear-Content можно использовать с поставщиком файловой систе мы оболочки Windows PowerShell, а также с другими поставщиками, работаю щими с содержимым. Чтобы очистить элементы, которые не считаются содерж имым, например элементы, управляемые поставщиками сертификатов и реестр а Windows PowerShell, используйте командлет Clear-Item. Командлет Clear-Content предназначен для работы с данными, предоставляе мыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PsProvider". Дополнительные сведен ия см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>clear-content ..\SmpUsers\*\init.txt Описание ----------- Эта команда удаляет все содержимое файлов с именем "init.txt", содержащихся во всех вложенных каталогах каталога SmpUsers. Содержимое файлов удаляется , при этом сами файлы остаются. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>clear-content -path * -filter *.log -force Описание ----------- Эта команда удаляет содержимое всех файлов из текущего каталога с расширени ем ".log", включая файлы с атрибутом "только для чтения". Звездочка (*) в п ути означает все элементы из текущего каталога. Параметр Force позволяет пр именять команду к файлам с атрибутом "только для чтения". Использование фил ьтра, чтобы задать применение команды только для файлов с расширением ".log " вместо указания "*.log" в пути, повышает быстродействие команды. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>clear-content c:\Temp\* -Include Smp* -Exclude *2* -whatif Описание ----------- Эта команда требует получить прогноз результатов выполнения команды: "clear -content c:\temp\* -include smp* -exclude *2*" Отображается список файлов, которые будут очищены. В данном случае это файлы из каталога Temp, имена ко торых начинаются с комбинации символов "Smp" и не содержат символ "2". Чтоб ы выполнить данную команду, запустите ее без указания параметра Whatif. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113282 about_Providers Get-Content Set-Content Add-Content Get-Item Clear-EventLog ИМЯ Clear-EventLog ОПИСАНИЕ Удаляет все записи из заданных журналов событий на локальном или удаленном компьютере. СИНТАКСИС Clear-EventLog [-LogName] <string[]> [[-ComputerName] <string[]>] [-Confirm ] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Clear-EventLog удаляет все записи из заданных журналов событий на локальном компьютере или на удаленных компьютерах. Чтобы использовать кома ндлет Clear-EventLog, необходимо быть членом группы "Администраторы" на ком пьютере, на котором очищаются журналы. Командлеты, в имени которых содержится существительное EventLog (командлеты EventLog), работают только с классическими журналами событий. Чтобы получа ть события из журналов, основанных на технологии журнала событий Windows (в Windows Vista и более поздних версиях Windows), используйте командлет Get- WinEvent. ПАРАМЕТРЫ -ComputerName <string[]> Задает удаленный компьютер. По умолчанию используется значение "Локальн ый компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-EventLog можно использовать, даж е если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? 2 Значение по умолчанию Локальный компьютер Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -LogName <string[]> Задает журналы событий. Введите имена (значение свойства Log; а не свой ства LogDisplayName) одного или нескольких журналов событий, разделенны е запятыми. Подстановочные знаки запрещены. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Clear-EventLog по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Чтобы использовать командлет Clear-EventLog в Windows Vista и более поз дних версиях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>clear-eventlog "Windows PowerShell" Описание ----------- Эта команда удаляет записи из журнала событий "Windows PowerShell" на локал ьном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>clear-eventlog -logname ODiag, OSession -computername localhost, Serv er02 Описание ----------- Эта команда удаляет все записи в журналах центра диагностики Microsoft Offi ce (ODiag) и сеансов Microsoft Office (OSession) на локальном компьютере и на удаленном компьютере Server02. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>clear-eventlog -log application, system -confirm Описание ----------- Эта команда запрашивает подтверждение перед удалением записей в заданных жу рналах событий. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>function clear-all-event-logs ($computerName="localhost") { $logs = get-eventlog -computername $computername -list | foreach {$_.Lo g} $logs | foreach {clear-eventlog -comp $computername -log $_ } get-eventlog -computername $computername -list } C:\PS> clear-all-event-logs -comp Server01 Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteAsNeeded 0 Application 15,168 0 OverwriteAsNeeded 0 DFS Replication 512 7 OverwriteOlder 0 DxStudio 20,480 0 OverwriteAsNeeded 0 Hardware Events 512 7 OverwriteOlder 0 Internet Explorer 20,480 0 OverwriteAsNeeded 0 Key Management Service 16,384 0 OverwriteAsNeeded 0 Microsoft Office Diagnostics 16,384 0 OverwriteAsNeeded 0 Microsoft Office Sessions 30,016 0 OverwriteAsNeeded 1 Security 15,168 0 OverwriteAsNeeded 2 System 15,360 0 OverwriteAsNeeded 0 Windows PowerShell Описание ----------- Эта функция очищает все журналы событий на указанных компьютерах и отобража ет результирующий список журналов событий. Обратите внимание, что в журналы System и Security было добавлено несколько записей после очистки журналов, но до их отображения. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135198 Get-EventLog Limit-EventLog New-EventLog Remove-EventLog Show-EventLog Write-EventLog Get-WinEvent Clear-History ИМЯ Clear-History ОПИСАНИЕ Удаляет записи из журнала сеанса. СИНТАКСИС Clear-History [[-Id] <Int32[]>] [[-Count] <int>] [-Newest] [-Confirm] [-Wha tIf] [<CommonParameters>] Clear-History [[-Count] <int>] [-CommandLine <string[]>] [-Newest] [-Confir m] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Clear-History удаляет команды из журнала команд, т. е. из списка команд, введенных за время текущего сеанса. При вызове без параметров командлет Clear-History удаляет из журнала сеанса все команды, однако для удаления определенных команд необходимо использова ть параметры командлета Clear-History. ПАРАМЕТРЫ -CommandLine <string[]> Удаляет команды, содержащие заданные текстовые строки. При вводе нескол ьких строк командлет Clear-History удалит команды, содержащие любую из введенных строк. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Count <int> Удаляет указанное число записей, начиная с наиболее старой записи, заре гистрированной в журнале. При использовании параметров Count и Id в одной команде командлет удали т количество записей, заданное параметром Count, начиная с записи, зада нной параметром Id. Например, если Count =10, а Id = 30, командлет Cle ar-History удалит записи 21-30 включительно. При использовании параметров Count и CommandLine в одной команде команд лет Clear-History удалит количество записей, заданное параметром Count, начиная с записи, заданной параметром CommandLine. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <Int32[]> Удаляет команды с указанными идентификаторами записи. Чтобы определить идентификатор записи команды, используйте команду Get- History. Требуется? false Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Newest [<SwitchParameter>] Удаляет последние записи из журнала сеанса. По умолчанию Clear-History удаляет из журнала сеанса наиболее старые записи. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Объекты невозможно передать командлету Clear-History по конвейеру. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Журнал сеанса представляет собой список команд, введенных за время сеан са. Можно просматривать журнал, добавлять и удалять команды, а также вы полнять команды, хранящиеся в журнале. Дополнительные сведения см. в ра зделе about_History. Удаление команды из журнала не приводит к изменению идентификаторов ост альных записей журнала команд. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>clear-history Описание ----------- Удаляет все команды в журнале сеанса. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>clear-history -id 23, 25 Описание ----------- Удаляет команды с идентификаторами записи, равными 23 и 25. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>clear-history -command *help*, *command Описание ----------- Удаляет команды, в которых содержится строка "help" или которые заканчивают ся словом "command". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>clear-history -count 10 -newest Описание ----------- Удаляет 10 последних команд из журнала. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>clear-history -id 10 -count 3 Описание ----------- Удаляет три наиболее старые команды, начиная с записи с идентификатором, ра вным 10. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135199 about_History Get-History Add-History Invoke-History Clear-Host Clear-Host Clear-Item ИМЯ Clear-Item ОПИСАНИЕ Удаляет содержимое элемента без удаления самого элемента. СИНТАКСИС Clear-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [ -WhatIf] [-UseTransaction] [<CommonParameters>] Clear-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <strin g[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Confirm] [-WhatIf ] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Clear-Item удаляет значение элемента без удаления самого элемента . Например, с помощью командлета Clear-Item можно удалить значение переменн ой, не удаляя саму переменную. Значение, используемое для представления очи щаемого элемента, определяется каждым поставщиком Windows PowerShell. Коман длет Clear-Item действует аналогично командлету Clear-Content, но предназна чен для работы с псевдонимами и переменными, а не с файлами. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету очистить элементы, которые не могут быть изменены другим образом, например псевдонимы только для чтения. Командлет не мож ет очищать константы. Реализация варьируется от поставщика к поставщику . Дополнительные сведения см. в разделе About_Providers. Даже при испол ьзовании параметра Force командлет не может переопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Очищает только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.t xt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к очищаемым элементам. В отличие от значения параметра Path , значение параметра LiteralPath используется точно в том виде, в котор ом оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночн ые кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, чт о никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к очищаемым элементам. Подстановочные знаки разрешены. Этот параметр обязателен, но его имя ("Path") можно не указывать. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать строку пути командлету Clear-Item по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Командлет Clear-Item поддерживается только несколькими поставщиками Win dows PowerShell, включая поставщиков Alias, Environment, Function, Regi stry и Variable. Поэтому командлет Clear-Item можно использовать для уд аления содержимого элементов в пространствах имен поставщиков. Командлет Clear-Item нельзя использовать для удаления содержимого файла , так как он не поддерживается поставщиком Windows PowerShell FileSyste m. Для очистки файлов используется командлет Clear-Content. Командлет Clear-Item также можно вызывать с помощью встроенного псевдон има "cli". Чтобы получить дополнительные сведения, введите команду "get -help about_Aliases". Командлет Clear-Item предназначен для работы с данными, предоставляемым и любым поставщиком. Чтобы получить список поставщиков, доступных в тек ущем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>clear-item Variable:TestVar1 Описание ----------- Эта команда удаляет значение переменной Testvar1. Переменная по-прежнему су ществует, однако ее значение равно Null. Имя переменной предваряется префиксом "Variable:" для указания того, что ее поставщиком является Windows PowerShell Variable. Аналогичный результат мо жно получить, переключившись в пространство имен поставщика Variable Window s PowerShell и выполнив команду Clear-Item. PS C:> Set-location Variable: PS Variable:\> clear-item Testvar1 -------------------------- ПРИМЕР 2 -------------------------- C:\PS>clear-item Alias:log* -include *1* -exclude *3* -whatif What if: Performing operation "Clear Item" on Target "Item: log1". Описание ----------- Эта команда спрашивает оболочку PowerShell о том, что произойдет при выполн ении команды "clear-item alias:log* -include *1* -exclude *3". В ответ обол очка Windows PowerShell сообщает, что будет удалено значение псевдонима log 1. Эта команда никак не повлияет на псевдонимы log, log2 и log13. Поставщик пс евдонимов не допускает наличия псевдонимов без значений, поэтому при очистк е псевдонима удаляется и сам псевдоним. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>clear-item registry::HKLM\Software\MyCompany\MyKey -confirm Описание ----------- Эта команда удаляет все записи реестра из подраздела MyKey. Для этого необх одимо ввести подтверждение. Эта команда не удаляет подраздел MyKey; другие разделы и записи реестра также не затрагиваются. Параметры Include и Exclud e можно использовать для задания определенных разделов реестра, однако их н ельзя использовать для задания записей реестра. Для удаления конкретных зап исей реестра используйте команду Remove-ItemProperty. Для удаления значения записи реестра используйте команду Clear-ItemProperty. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113283 about_Providers Copy-Item Get-Item Invoke-Item Move-Item Set-Item New-Item Remove-Item Rename-Item Clear-ItemProperty ИМЯ Clear-ItemProperty ОПИСАНИЕ Удаляет значение свойства без удаления самого свойства. СИНТАКСИС Clear-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonPar ameters>] Clear-ItemProperty [-Path] <string[]> [-Name] <string> [-Credential <PSCred ential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <strin g[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters >] ОПИСАНИЕ Командлет Clear-ItemProperty удаляет значение свойства, не удаляя само свой ство. Данный командлет можно использовать для удаления данных параметра рее стра. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt" и ли "s*". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету удалять свойства элементов, которые были бы недост упны пользователю другими способами. Реализация варьируется от поставщи ка к поставщику. Дополнительные сведения см. в разделе About_Providers. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Очищает только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.t xt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к очищаемому свойству. В отличие от значения параметра Path , значение параметра LiteralPath используется точно в том виде, в котор ом оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночн ые кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, чт о никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает имя очищаемого свойства, например имя раздела реестра. Подстанов очные знаки запрещены. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий очищенное свойство элемента. По умолч анию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к очищаемому свойству. Подстановочные знаки разрешены. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать строку пути командлету Clear-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSCustomObject Если задан параметр PassThru, командлет Clear-ItemProperty формирует об ъект PSCustomObject, представляющий очищенное свойство элемента. В прот ивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Clear-ItemProperty можно использовать для удаления данных из параметров реестра без удаления самих параметров. Если значение имеет т ип данных Binary или DWORD, то при его очистке ему присваивается значен ие "0". Для других типов данных очищаемому параметру присваивается пуст ое значение. Командлет Clear-ItemProperty также можно вызывать с помощью встроенного псевдонима "clp". Дополнительные сведения см. в разделе About_Aliases. Командлет Clear-ItemProperty предназначен для работы с данными, предост авляемыми любым поставщиком. Чтобы получить список поставщиков, доступн ых в текущем сеансе, введите команду "Get-PSProvider". Дополнительные с ведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>clear-itemproperty -path HKLM:\Software\MyCompany\MyApp -name Options Описание ----------- Эта команда удаляет данные из параметра реестра Options подраздела MyApp ра здела HKEY_LOCAL_MACHINE\Software\MyCompany. Так как команда запускается с диска файловой системы (C:), она содержит пол ный путь к диску HKLM: и подразделу Software\MyCompany\MyApp. Для задания з начения Options используется параметр Name. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113284 about_Providers Copy-ItemProperty New-ItemProperty Move-ItemProperty Rename-ItemProperty Get-ItemProperty New-ItemProperty Clear-Variable ИМЯ Clear-Variable ОПИСАНИЕ Удаляет значение переменной. СИНТАКСИС Clear-Variable [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonPara meters>] ОПИСАНИЕ Командлет Clear-Variable удаляет данные, хранящиеся в переменной, но не сам у переменную. В результате переменная получает значение NULL (пустое). Если переменная имеет указанный тип данных или объектный тип, командлет Clear-V ariable оставляет тип объекта, хранимого в переменной, прежним. ПАРАМЕТРЫ -Exclude <string[]> Исключает указанные элементы. Значение данного параметра определяет зна чение параметра Name. Введите часть имени или шаблон, например "s*". По дстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету очистить переменную, даже если она доступна только для чтения. Даже при использовании параметра Force командлет не может очистить константу. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Очищает только указанные элементы. Значение данного параметра определяе т значение параметра Name. Введите часть имени или шаблон, например "s* ". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает имя очищаемой переменной. Подстановочные знаки разрешены. Этот п араметр обязателен, но его имя ("Name") можно не указывать. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий очищенную переменную. По умолчанию эт от командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <string> Задает область действия псевдонима. Допустимые значения: "Global", "Loc al", "Script" или номер относительно текущей области (от 0 до количеств а областей, где 0 — текущая область, а 1 — ее родительская область). По умолчанию используется значение "Local". Дополнительные сведения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Clear-Variable по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSVariable Если задан параметр PassThru, командлет Clear-Variable создает объект S ystem.Management.Automation.PSVariable, представляющий очищенную переме нную. В противном случае этот командлет не формирует никаких выходных д анных. ПРИМЕЧАНИЯ Чтобы удалить переменную вместе со значением можно использовать командл еты Remove-Variable или Remove-Item. Командлет Clear-Variable не удаляет значения переменных, являющихся кон стантами или принадлежащих системе, даже если используется параметр -Fo rce. Если очищаемой переменной не существует, этот командлет не выполняет ни каких действий. Он не создает переменную со значением NULL. Командлет Clear-Variable также можно вызывать с помощью встроенного псе вдонима "clv". Дополнительные сведения см. в разделе About_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>clear-variable my* -global Описание ----------- Эта команда удаляет значения глобальных переменных, имена которых начинаютс я на "my". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$a=3 C:\PS>&{ clear-variable a } C:\PS>$a 3 Описание ----------- Эти команды показывают, что при очистке переменной в дочерней области значе ние в родительской области не удаляется. Первая команда присваивает перемен ной $a значение 3. Вторая команда использует оператор вызова (&) для выполн ения команды Clear-Variable в новой области. В результате в дочерней област и переменная очищается (хотя ее и не существовало), а в локальной — нет. Тр етья команда, получающая значение переменной $a, показывает, что значение 3 осталось неизменным. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>clear-variable -name processes Описание ----------- Эта команда удаляет значение переменной $processes. После этого переменная $processes продолжает существовать, но имеет значение NULL. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113285 Get-Variable Set-Variable New-Variable Remove-Variable Compare-Object ИМЯ Compare-Object ОПИСАНИЕ Сравнивает два набора объектов. СИНТАКСИС Compare-Object [-ReferenceObject] <PSObject[]> [-DifferenceObject] <PSObjec t[]> [-CaseSensitive] [-Culture <string>] [-ExcludeDifferent] [-IncludeEqua l] [-PassThru] [-Property <Object[]>] [-SyncWindow <int>] [<CommonParameter s>] ОПИСАНИЕ Командлет Compare-Object сравнивает два набора объектов. Один набор объекто в является эталонным, а другой — отличающимся. Результат сравнения позволяет узнать, было ли обнаружено значение свойства только в объекте из эталонного набора (символ <=), только в объекте из отли чающегося набора (символ =>) или, если указан параметр IncludeEqual, в обои х объектах (символ ==). ПАРАМЕТРЫ -CaseSensitive [<SwitchParameter>] Указывает, что сравнение должно выполняться с учетом регистра. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Culture <string> Задает культуру, используемую при сравнении. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DifferenceObject <PSObject[]> Задает объекты, которые будут сравниваться с эталонными. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -ExcludeDifferent [<SwitchParameter>] Отображает только совпадающие характеристики сравниваемых объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -IncludeEqual [<SwitchParameter>] Отображает совпадающие характеристики сравниваемых объектов. По умолчан ию отображаются только те характеристики, которые различаются в эталонн ом и отличающемся объектах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает по конвейеру различающиеся объекты. По умолчанию этот командле т не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Property <Object[]> Задает сравниваемые свойства эталонного и отличающегося объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ReferenceObject <PSObject[]> Объекты, используемые при сравнении в качестве эталона. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SyncWindow <int> Задает область поиска, в которой выполняется попытка повторной синхрони зации порядка при отсутствии совпадений. По умолчанию используется знач ение [Int32]::MaxValue. Требуется? false Позиция? named Значение по умолчанию [Int32]::MaxValue Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Можно передать объект DifferenceObject командлету Compare-Object по кон вейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или отличающиеся объекты Если задан параметр PassThru, командлет Compare-Object возвращает отлич ающиеся объекты. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>compare-object -referenceobject $(get-content C:\test\testfile1.txt) -differenceobject $(get-content C:\test\testfile2.txt) Описание ----------- Эта команда сравнивает содержимое двух текстовых файлов. Она выводит только те строки, которые имеются только в одном из двух файлов, но не в обоих. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>compare-object -referenceobject $(get-content C:\Test\testfile1.txt) -differenceobject $(get-content C:\Test\testfile2.txt) -includeequal Описание ----------- Эта команда построчно сравнивает содержимое двух текстовых файлов. Она выво дит все строки обоих файлов, указывая при этом для каждой строки, имеется л и она только в файле Textfile1.txt, файле Textfile2.txt или в обоих файлах. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$processes_before = get-process C:\PS> notepad C:\PS> $processes_after = get-process C:\PS> compare-object -referenceobject $processes_before -differenceobject $processes_after Описание ----------- Эти команды сравнивают два набора объектов процессов. Первая команда с помощью командлета Get-Process получает выполняющиеся на к омпьютере процессы. Они сохраняются в переменной $processes_before. Вторая команда запускает Блокнот (Notepad). В третьей команде снова используется командлет Get-Process и полученные про цессы сохраняются в переменной $processes_after. Четвертая команда с помощью командлета Compare-Object выполняет сравнение д вух наборов объектов процессов. Она выводит список различий между ними, в к оторый входит новый экземпляр Блокнота (Notepad). ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113286 Group-Object Measure-Object Sort-Object ForEach-Object New-Object Select-Object Tee-Object Where-Object Complete-Transaction ИМЯ Complete-Transaction ОПИСАНИЕ Фиксирует активную транзакцию. СИНТАКСИС Complete-Transaction [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Complete-Transaction фиксирует активную транзакцию. При фиксации транзакции ее команды завершаются и данные, на которые повлияли эти команды , изменяются. Для фиксации транзакции с несколькими подписчиками необходимо ввести по одн ой команде Complete-Transaction для каждой команды Start-Transaction. Командлет Complete-Transaction входит в набор командлетов, поддерживающих о бработку транзакций в Windows PowerShell. Дополнительные сведения см. в раз деле about_Transactions. ПАРАМЕТРЫ -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Complete-Transaction по конвейер у. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Невозможно откатить зафиксированную транзакцию и зафиксировать транзакц ию, откат которой был выполнен. Откатить можно только активную транзакцию. Чтобы откатить другую транза кцию, необходимо сначала зафиксировать или откатить активную транзакцию . По умолчанию, если невозможно зафиксировать какую-либо часть транзакции (например, когда выполнение команды в транзакции завершается ошибкой), выполняется откат всей транзакции. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany -UseTransaction PS HKCU:\software> dir m* Hive: HKEY_CURRENT_USER\software SKC VC Name Property --- -- ---- -------- 82 1 Microsoft {(default)} PS HKCU:\software> complete-transaction PS HKCU:\software> dir m* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 82 1 Microsoft {(default)} 0 0 MyCompany {} Описание ----------- В этом примере показан результат работы командлета Complete-Transaction, ис пользуемого для фиксации транзакции. Команда Start-Transaction запускает транзакцию. Команда New-Item использует параметр UseTransaction для включения команды в транзакцию. Результат выполнения первой команды "dir" (Get-ChildItem) показывает, что н овый элемент еще не добавлен в реестр. Команда Complete-Transaction фиксирует транзакцию, что ведет к изменению ре естра. Результат выполнения второй команды "dir" показывает, что реестр изм енен. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany -UseTransaction Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 0 0 MyCompany {} PS HKCU:\software> start-transaction PS HKCU:\Software> Get-Transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 2 Active PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value -Use Transaction MyKey ----- 123 PS HKCU:\software> complete-transaction PS HKCU:\software> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 1 Active PS HKCU:\software> dir m* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 82 1 Microsoft {(default)} PS HKCU:\software> complete-transaction PS HKCU:\software> dir m* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 82 1 Microsoft {(default)} 0 1 MyCompany {MyKey} Описание ----------- В этом примере показано, как использовать командлет Complete-Transaction дл я фиксации транзакции с несколькими подписчиками. Чтобы зафиксировать транзакцию, в которой участвует несколько подписчиков, необходимо выполнить по одной команде Complete-Transaction для каждой коман ды Start-Transaction. Данные изменяются только после выполнения последней к оманды Complete-Transaction. Для наглядности в этом примере команды вводятся в командной строке. На прак тике транзакции обычно запускаются в составе скрипта, где запуск следующей транзакции выполняется с помощью функции или вспомогательного скрипта, назы ваемого главным скриптом. В этом примере транзакция запускается командой Start-Transaction. Команда N ew-Item с параметром UseTransaction добавляет раздел MyCompany в раздел Sof tware. Несмотря на то что команда New-Item возвращает объект раздела, измен ения данных в реестре пока не происходит. Вторая команда Start-Transaction добавляет второго подписчика в существующу ю транзакцию. Команда Get-Transaction подтверждает, что количество подписчи ков равно 2. Команда New-ItemProperty с параметром UseTransaction добавляет запись реестра в новый раздел MyCompany. Как и в предыдущем случае, команд а возвращает значение, но реестр не изменяется. Первая команда Complete-Transaction уменьшает количество подписчиков на 1. Это подтверждается командой Get-Transaction. Однако изменения данных не про исходит, о чем свидетельствует результат выполнения команды "dir m*" (Get-C hildItem). Вторая команда Complete-Transaction фиксирует всю транзакцию и изменяет дан ные в реестре. Это подтверждается второй командой "dir m*", отображающей из менения. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany -UseTransaction PS HKCU:\software> dir m* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 82 1 Microsoft {(default)} PS HKCU:\software> dir m* -UseTransaction Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 82 1 Microsoft {(default)} 0 0 MyCompany {} PS HKCU:\software> complete-transaction Описание ----------- В этом примере показана полезность использования в транзакции команд Get-* и других команд, не изменяющих данные. При использовании в транзакции коман да Get-* получает объекты, являющиеся частью транзакции. Это позволяет узна ть, как будут выглядеть изменения до их фиксации. В этом примере выполняется запуск транзакции. Команда New-Item с параметром UseTransaction добавляет новый раздел реестра в составе транзакции. Новый раздел будет добавлен в реестр только после выполнения команды Comple te-Transaction, поэтому обычная команда "dir" (Get-ChildItem) отображает со держимое реестра без нового раздела. Однако если выполнить команду "dir" с параметром UseTransaction, эта команд а становится частью транзакции и получает элементы транзакции, даже если он и еще не добавлены к данным. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135200 about_Transactions Start-Transaction Get-Transaction Undo-Transaction Use-Transaction Connect-WSMan ИМЯ Connect-WSMan ОПИСАНИЕ Подключается к службе WinRM на удаленном компьютере. СИНТАКСИС Connect-WSMan [-ApplicationName <string>] [-ComputerName <string>] [-Port int>] [-UseSSL] [-Authentication <Authentication>] [-ComputerName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOption <hashtable>] [ CommonParameters>] Connect-WSMan [-ConnectionURI <Uri>] [-Authentication <Authentication>] [-C omputerName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionO ption <hashtable>] [<CommonParameters>] ОПИСАНИЕ Командлет Connect-WSMan подключается к службе WinRM на удаленном компьютере и открывает постоянное подключение к этому удаленному компьютеру. Этот ком андлет можно использовать в контексте поставщика WS-Management для подключе ния к службе WinRM на удаленном компьютере. Однако его также можно использо вать для подключения к службе WinRM на удаленном компьютере до перехода к п оставщику WS-Management. Удаленный компьютер будет присутствовать в корнево м каталоге поставщика WS-Management. Дополнительные сведения о том, как отключиться от службы WinRM на удаленном компьютере, см. в разделе Disconnect-WSMan. ПАРАМЕТРЫ -ApplicationName <string> Задает имя приложения для подключения. По умолчанию параметр Applicatio nName имеет значение "WSMAN". Полный идентификатор удаленной конечной т очки имеет следующий формат: <протокол>://<сервер>:<порт>/ Пример: http://server01:8080/WSMAN Службы IIS, которые обрабатывают сеанс, перенаправляют запросы с данной конечной точкой указанному приложению. Значение по умолчанию "WSMAN" п одходит для большинства случаев. Этот параметр предназначен для использ ования, когда большое число компьютеров устанавливают удаленные подключ ения к одному компьютеру, на котором работает Windows PowerShell. В это м случае для повышения эффективности веб-службы WS-Management размещают ся в службах IIS. Требуется? false Позиция? named Значение по умолчанию wsman Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <Authentication> Задает механизм проверки подлинности, используемый на сервере. Возможны е значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Default: использовать метод проверки подлинности, реализованный прото колом WS-Management. Это значение используется по умолчанию. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Kerberos: выполняется взаимная проверка подлинности компьютера и серв ера с использованием сертификатов Kerberos. - Negotiate: при использовании схемы Negotiate между компьютером и серв ером или прокси происходит обмен данными по принципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности . Например, это значение параметра разрешает согласование одного из дву х методов проверки подлинности: Kerberos или NTLM. - CredSSP: использовать проверку подлинности CredSSP (Credential Securi ty Service Provider), при которой пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускаю тся на одном удаленном компьютере, но собирают данные с других удаленны х компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Default Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Чтобы задать локальный компьютер, введите имя компьютера, "localhost " или точку (.). Локальный компьютер используется по умолчанию. Если по льзователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Значение этого параметра можно перед ать командлету по конвейеру. Требуется? false Позиция? named Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConnectionURI <Uri> Задает конечную точку соединения. Строка имеет следующий формат: <протокол>://<сервер>:<порт>/ Следующая строка представляет собой правильно отформатированное значени е для этого параметра: http://Server01:8080/WSMAN. Значение URI должно быть указано полно стью. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Domain.com". Или укажите объект PSCredential, наприме р возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OptionSet <hashtable> Передает службе набор параметров для изменения или уточнения запроса. П ередаваемые параметры похожи на параметры, используемые в оболочках ком андной строки, тем, что они зависят от конкретной службы. Можно задать произвольное количество параметров. В следующем примере показано синтаксическое выражение, позволяющее пере дать значения 1, 2 и 3 параметрам a, b и c соответственно: -OptionSet @{a=1;b=2;c=3} Требуется? Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Port <int> Задает порт, используемый клиентом для подключения к службе WinRM. Если в качестве транспорта выбран HTTP, по умолчанию используется порт 80. Если в качестве транспорта выбран HTTPS, по умолчанию используется порт 443. При использовании в качестве транспорта HTTPS значение параметра ComputerName должно соответствовать общему имени сертификата сервера. О днако, если в качестве элемента параметра SessionOption указан параметр SkipCNCheck, общее имя сертификата сервера не обязательно должно соотв етствовать имени узла сервера. Параметр SkipCNCheck следует использоват ь только в случае доверенных компьютеров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SessionOption <hashtable> Определяет расширенные параметры сеанса WS-Management. Введите объект S essionOption, созданный с помощью командлета New-WSManSessionOption. До полнительные сведения о доступных параметрах см. в разделе New-WSManSes sionOption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Указывает, что для установки подключения к удаленному компьютеру должен использоваться протокол SSL (Secure Sockets Layer). По умолчанию SSL н е используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. Параметр UseSSL позволяет указать, что необходимо испол ьзовать дополнительную меру защиты: протокол HTTPS вместо HTTP. Если ук азан этот параметр, однако используемый для подключения порт не поддерж ивает SSL, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Выполнять команды управления или запрашивать данные управления на удале нном компьютере можно без создания сеанса WS-Management. Это делается с помощью параметра ComputerName командлетов Invoke-WSManAction и Get-WS ManInstance. При использовании параметра ComputerName Windows PowerShel l создает временное подключение, которое используется для выполнения то лько одной команды. После выполнения команды подключение закрывается. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Connect-WSMan -computer server01 PS C:\Users\testuser> cd wsman: PS WSMan:\> PS WSMan:\> dir WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan ComputerName Type ------------ ---- localhost Container server01 Container Описание ----------- Эта команда создает подключение к удаленному компьютеру server01. Командлет Connect-WSMan обычно используется в контексте поставщика WS-Manag ement для подключения к удаленному компьютеру, в данном случае компьютеру s erver01. Однако с его помощью можно устанавливать подключения к удаленным к омпьютерам и до перехода к поставщику WS-Management. Эти подключения будут присутствовать в списке ComputerName. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$cred = Get-Credential Administrator Connect-WSMan -computer server01 -credential $cred PS C:\Users\testuser> cd wsman: PS WSMan:\> PS WSMan:\> dir WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan ComputerName Type ------------ ---- localhost Container server01 Container Описание ----------- Эта команда создает подключение к удаленному компьютеру server01 с использо ванием учетных данных администратора. Первая команда с помощью командлета Get-Credential получает учетные данные администратора и сохраняет их в переменной $cred. Командлет Get-Credential запрашивает у пользователя пароль из сочетания имени пользователя и пароля . Пользователь получает запрос в виде диалогового окна или в командной строке (в зависимости от параметров системного реестра). Вторая команда с помощью параметра Credential передает учетные данные, сохр аненные в переменной $cred, командлету Connect-WSMan. Командлет Connect-WSM an затем подключается к удаленному компьютеру server01, используя учетные д анные администратора. Командлет Connect-WSMan обычно используется в контексте поставщика WS-Manag ement для подключения к удаленному компьютеру (в данном случае server01). О днако с его помощью можно устанавливать подключения к удаленным компьютерам и до перехода к поставщику WS-Management, и эти подключения будут присутст вовать в списке ComputerName. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Connect-WSMan -computer server01 -port 80 PS C:\Users\testuser> cd wsman: PS WSMan:\> PS WSMan:\> dir WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan ComputerName Type ------------ ---- localhost Container server01 Container Описание ----------- Эта команда создает подключение к удаленному компьютеру server01 через порт 80. Командлет Connect-WSMan обычно используется в контексте поставщика WS-Manag ement для подключения к удаленному компьютеру, в данном случае компьютеру s erver01. Однако с его помощью можно устанавливать подключения к удаленным к омпьютерам и до перехода к поставщику WS-Management. Эти подключения будут присутствовать в списке ComputerName. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = New-WSManSessionOption -operationtimeout 30000 Connect-WSMan -computer server01 -sessionoption $a PS C:\Users\testuser> cd wsman: PS WSMan:\> PS WSMan:\> dir WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan ComputerName Type ------------ ---- localhost Container server01 Container Описание ----------- Эта команда создает подключение к удаленному компьютеру server01 с использо ванием параметров подключения, заданных командой New-WSManSessionOption. Первая команда с помощью командлета New-WSManSessionOption сохраняет набор параметров подключения в переменной $a. В данном случае параметры сеанса за дают время ожидания подключения, составляющее 30 секунд (30 000 миллисекунд ). Вторая команда с помощью параметра SessionOption передает параметры, сохран енные в переменной $a, командлету Connect-WSMan. Командлет Connect-WSMan за тем подключается к удаленному компьютеру server01, используя заданные парам етры сеанса. Командлет Connect-WSMan обычно используется в контексте поставщика WS-Manag ement для подключения к удаленному компьютеру, в данном случае компьютеру s erver01. Однако с его помощью можно устанавливать подключения к удаленным к омпьютерам и до перехода к поставщику WS-Management. Эти подключения будут присутствовать в списке ComputerName. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141437 Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Convert-Path ИМЯ Convert-Path ОПИСАНИЕ Преобразует путь Windows PowerShell в путь поставщика Windows PowerShell. СИНТАКСИС Convert-Path [-LiteralPath] <string[]> [-UseTransaction] [<CommonParameters >] Convert-Path [-Path] <string[]> [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Convert-Path преобразует путь Windows PowerShell в путь поставщик а Windows PowerShell. ПАРАМЕТРЫ -LiteralPath <string[]> Задает преобразуемый путь. Значение параметра LiteralPath используется точно в том виде, в котором оно введено. Никакие символы не интерпретир уются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболоч ке Windows PowerShell, что никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает преобразуемый путь Windows PowerShell. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Путь (но не литеральный путь) можно передать командлету Convert-Path по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.String Командлет Convert-Path возвращает строку с преобразованным путем. ПРИМЕЧАНИЯ Командлеты, в именах которых содержится существительное Path (командлет ы Path), оперируют именами путей и возвращают эти имена в сокращенном ф ормате, который поддерживается всеми поставщиками Windows PowerShell. О ни предназначены для использования в программах и скриптах, в которых т ребуется отображать имя пути или его часть в конкретном формате. Исполь зуйте их аналогично другим командам для работы с путями, таким как Dirn ame, Normpath, Realpath и Join. Командлеты для работы с путями можно использовать с несколькими поставщ иками, включая FileSystem, Registry и Certificate. Командлет Convert-Path предназначен для работы с данными, предоставляем ыми любым поставщиком. Чтобы получить список поставщиков, доступных в т екущем сеансе, введите команду "Get-PSProvider". Дополнительные сведени я см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>convert-path ~ Описание ----------- Эта команда позволяет развернуть текущий рабочий каталог. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>convert-path HKLM:\software\microsoft Описание ----------- Эта команда преобразует путь, заданный поставщиком Windows PowerShell, в ст андартный путь реестра. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113289 about_Providers Test-Path Split-Path Resolve-Path Join-Path ConvertFrom-CSV ИМЯ ConvertFrom-CSV ОПИСАНИЕ Преобразует свойства объекта из CSV-формата (с разделителями-запятыми) в CS V-версии исходных объектов. СИНТАКСИС ConvertFrom-CSV [[-Delimiter] <char>] [-InputObject] <PSObject[]> [-Header <string[]>] [<CommonParameters>] ConvertFrom-CSV -UseCulture [-InputObject] <PSObject[]> [-Header <string[]> ] [<CommonParameters>] ОПИСАНИЕ Командлет ConvertFrom-CSV создает объекты из CSV-строк переменной длины, со зданных с помощью командлета ConvertTo-CSV. Параметры командлета ConvertFrom-CSV позволяют задать строку заголовков сто лбцов, определяющую имена свойств конечных объектов, задать разделитель эле ментов или сделать так, чтобы командлет ConvertFrom-CSV использовал в качес тве разделителя значений установленный для текущей культуры разделитель эле ментов списков. Объекты, создаваемые командлетом ConvertFrom-CSV, являются CSV-версиями исх одных объектов. Значения свойств CSV-объектов являются строковыми версиями значений свойств исходных объектов. У CSV-версий объектов нет методов. Можно также преобразовывать объекты в строки CSV в файле и обратно, использ уя для этого командлеты Export-CSV и Import-CSV. Эти командлеты очень похож и на командлеты ConvertTo-CSV и ConvertFrom-CSV за тем лишь исключением, чт о они сохраняют CSV-строки в файл. ПАРАМЕТРЫ -Delimiter <char> Задает разделитель значений свойств в строках CSV. По умолчанию использ уется запятая (,). Введите символ, например двоеточие (:). Чтобы задать точку с запятой (;), заключите ее в кавычки. Если указать символ, отличный от разделителя, используемого в строках C SV, командлет ConvertFrom-CSV не сможет создать объекты из строк CSV. В место этого он возвращает строки. Требуется? false Позиция? 2 Значение по умолчанию ',' Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Header <string[]> Задает строку заголовков столбцов для импортируемой строки. Заголовки с толбцов определяют имена свойств объекта, создаваемого с помощью команд лета ConvertFrom-CSV. Введите список заголовков столбцов, разделенных запятыми. Заключите каж дый элемент в кавычки (одиночные или двойные). Не заключайте строку заг оловка в кавычки. Если количество введенных заголовков столбцов меньше, чем количество столбцов, у оставшихся столбцов не будет заголовков. Ес ли количество заголовков столбцов превышает количество столбцов, лишние заголовки игнорируются. При использовании параметра Header пропустите строку заголовков столбцо в из строк CSV. В противном случае командлет ConvertFrom-CSV создаст из элементов строки заголовков лишний объект. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <PSObject[]> Задает строки CSV для преобразования в объекты. Укажите переменную, сод ержащую строки CSV, либо введите команду или выражение, получающие их. Кроме того, можно передать CSV-строки командлету ConvertFrom-CSV по кон вейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -UseCulture [<SwitchParameter>] Использовать в качестве разделителя в строках разделитель элементов спи ска из текущей культуры. По умолчанию используется запятая (,). Чтобы найти разделитель элементов списка для текущей культуры, воспольз уйтесь следующей командой: (Get-Culture).TextInfo.ListSeparator. Если у казать символ, отличный от разделителя, используемого в строках CSV, ко мандлет ConvertFrom-CSV не сможет создать объекты из строк CSV. Вместо этого он возвращает строки. Требуется? true Позиция? named Значение по умолчанию Запятая Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строки CSV можно перенаправить в конвейер ConvertFrom-CSV. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Командлет ConvertFrom-CSV возвращает объекты, описываемые свойствами в строках CSV. ПРИМЕЧАНИЯ Поскольку импортируемые объекты являются CSV-версиями типа объекта, они не распознаются и не форматируются записями форматирования типов Windo ws PowerShell, которые используются для форматирования объектов данного типа, не являющихся CSV-версиями. В формате CSV каждый объект представляется списком разделенных запятыми значений свойств этого объекта. Значения свойств преобразуются в строк овый формат (с помощью метода ToString() объекта), поэтому они обычно п редставляются именами значений свойств. Командлет ConvertTo-Csv не эксп ортирует методы объекта. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$p = get-process | convertto-csv C:\PS> $p | convertfrom-csv Описание ----------- Эти команды преобразуют процессы на локальном компьютере в формат CSV, а за тем восстанавливают их в виде объектов. Первая команда с помощью командлета Get-Process получает выполняющиеся на л окальном компьютере процессы. С помощью оператора конвейера (|) они передаю тся командлету ConvertTo-CSV, который переводит объекты процессов в формат CSV. Строки CSV сохраняются в переменной $p. Вторая команда с помощью оператора конвейера передает строки CSV из перемен ной $p в командлет ConvertFrom-CSV. Этот командлет преобразует строки CSV в CSV-версии исходных объектов процессов. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$date = get-date | convertto-csv -delimiter ";" C:\PS> convertfrom-csv -inputobject $date -delimiter ";" Описание ----------- Эти команды преобразуют объект данных в формат CSV, а затем в формат CSV-об ъекта. Первая команда с помощью командлета Get-Date получает текущее значение даты и времени. Оператор конвейера (|) передает дату командлету ConvertTo-CSV, который преобразует объект даты в набор строк CSV. Параметр Delimiter испол ьзуется в этой команде для указания разделителя в виде точки с запятой. Стр оки сохраняются в переменной $date. Вторая команда использует командлет ConvertFrom-CSV, чтобы преобразовать ст роки CSV в переменной $date обратно в формат объекта. Команда использует па раметр InputObject, чтобы задать строки CSV, и параметр Delimiter, чтобы за дать разделитель в виде точки с запятой. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$j = start-job -scriptblock { get-process } | convertto-csv C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","F inished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Prog ress","Verbose","Debug","Warning","StateChanged" # Delete header from $j C:\PS> $j = $j[0], $j[2..($j.count - 1)] $j | convertfrom-csv -header $header MoreData : True StatusMessage : Location : localhost Command : get-process State : Running Finished : System.Threading.ManualResetEvent InstanceId : 6fcb6578-7f42-4d93-9f23-9937f6aac1a2 SessionId : 1 Name : Job1 ChildJobs : System.Collections.Generic.List`1[System.Management.Automat ion.Job] Output : System.Management.Automation.PSDataCollection`1[System.Mana gement.Automation.PSObject] Error : System.Management.Automation.PSDataCollection`1[System.Mana gement.Automation.ErrorRecord] Progress : System.Management.Automation.PSDataCollection`1[System.Mana gement.Automation.ProgressRecord] Verbose : System.Management.Automation.PSDataCollection`1[System.Stri ng] Debug : System.Management.Automation.PSDataCollection`1[System.Stri ng] Warning : System.Management.Automation.PSDataCollection`1[System.Stri ng] StateChanged : Описание ----------- В этом примере показано, как с помощью параметра Header командлета ConvertF rom-Csv изменять имена свойств в конечном импортированном объекте. Первая команда с помощью командлета Start-Job запускает на локальном компью тере фоновое задание, выполняющее команду Get-Process. С помощью оператора конвейера (|) полученный объект задания передается командлету ConvertTo-CSV , который преобразует его в формат CSV. С помощью оператора присваивания (= ) полученные данные CSV сохраняются в переменной $j. Вторая команда сохраняет заголовок в переменной $header. В отличие от загол овка по умолчанию, в этом заголовке вместо имени "HasMoreData" используется имя "MoreData", а вместо имени "JobStateInfo" — имя "State". Третья команда удаляет исходный заголовок (вторая строка) из строк CSV и во звращает его в переменную $j. Четвертая команда с помощью командлета ConvertFrom-CSV преобразует строки C SV в CSV-версию объекта задания. Команда пересылает содержимое переменной $ j в командлет ConvertFrom-CSV с помощью оператора конвейера (|). Полученный объект имеет свойства "MoreData" и "State", как и было указано в заголовке . -------------------------- ПРИМЕР 4 -------------------------- C:\PS>(get-culture).textinfo.listseparator C:\PS> ConvertFrom-Csv -inputobject $services -UseCulture Описание ----------- Команда использует командлет ConvertFrom-CSV, чтобы преобразовать строки CS V объекта-службы, которые были получены с помощью командлета ConvertTo-CSV. В этой команде параметр UseCulture используется для того, чтобы командлет ConvertFrom-CSV использовал в качестве разделителя значений разделитель эле ментов списка текущей культуры. При использовании параметра UseCulture необходимо проследить за тем, чтобы разделитель элементов списка текущей культуры совпадал с разделителем, испо льзуемым в строках CSV. В противном случае командлету ConvertFrom-CSV не уд астся создать объекты на основании строк CSV. В этом примере команда Get-Culture служит для проверки разделителя элементо в списка перед использованием команды ConvertFrom-CSV. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135201 ConvertTo-CSV Export-CSV Import-CSV ConvertFrom-SecureString ИМЯ ConvertFrom-SecureString ОПИСАНИЕ Преобразует защищенную строку в зашифрованную стандартную строку. СИНТАКСИС ConvertFrom-SecureString [-Key <Byte[]>] [-SecureString] <SecureString> [<C ommonParameters>] ConvertFrom-SecureString [[-SecureKey] <SecureString>] [-SecureString] <Sec ureString> [<CommonParameters>] ОПИСАНИЕ Командлет ConvertFrom-SecureString преобразует защищенную строку (System.Se curity.SecureString) в зашифрованную стандартную строку (System.String). В отличие от защищенной строки, зашифрованную стандартную строку можно сох ранить в файле для последующего использования. Зашифрованную стандартную ст року можно преобразовать обратно в защищенный строковый формат с использова нием командлета ConvertTo-SecureString. Если ключ шифрования задан с исполь зованием параметров Key или SecureKey, то используется алгоритм шифрования Rijndael. Длина указанного ключа должна составлять 128, 192 или 256 бит, та к как алгоритм шифрования Rijndael поддерживает только ключи такой длины. Е сли ключ не задан, то для шифрования стандартного представления строки испо льзуется интерфейс Windows Data Protection API (DPAPI). ПАРАМЕТРЫ -Key <Byte[]> Задает ключ шифрования как массив байтов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SecureKey <SecureString> Задает ключ шифрования как защищенную строку. Перед использованием в ка честве ключа значение защищенной строки преобразуется в массив байтов. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SecureString <SecureString> Задает защищенную строку для преобразования в зашифрованную стандартную строку. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Security.SecureString Можно передать объект SecureString командлету ConvertFrom-SecureString по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.String ConvertFrom-SecureString возвращает стандартный строковый объект. ПРИМЕЧАНИЯ Чтобы создать защищенную строку из символов, введенных в командной стро ке, используйте параметр AsSecureString командлета Read-Host. При использовании параметров Key или SecureKey для указания ключа его д лина должна быть допустимой. Например, 128-разрядный ключ может быть ук азан как массив байтов из 16 чисел. Аналогичным образом, 192-разрядный и 256-разрядный ключи соответствуют массивам байтов из 24 и 32 чисел. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$securestring = read-host -assecurestring Описание ----------- Эта команда создает защищенную строку из введенных в командной строке симво лов. После ввода команды введите строку, которую нужно сохранить как защище нную строку. При вводе каждого знака на экране будет отображаться звездочка (*). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$standardstring = convertfrom-securestring $securestring Описание ----------- Эта команда преобразует защищенную строку в переменной $securestring в заши фрованную стандартную строку. Полученная в результате зашифрованная стандар тная строка хранится в переменной $standardstring. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$key = (3,4,2,3,56,34,254,222,1,1,2,23,42,54,33,233,1,34,2,7,6,5,35,4 3) C:\PS> $standardstring = convertfrom-securestring $securestring -key $key Описание ----------- Эта команда преобразует защищенную строку, хранимую в переменной $securestr ing, в зашифрованную стандартную строку с использованием алгоритма Rijndael со 192-разрядным ключом. Полученная в результате зашифрованная стандартная строка хранится в переменной $standardstring. Первая команда сохраняет ключ в переменной $key. Ключ является массивом из 24 цифр, каждая из которых меньше 256. Поскольку каждая цифра представляет байт (8 битов), ключ состоит из 24 цифр — всего 192 разряда (8 x 24). Это допустимая длина ключа для алгоритма Rij ndael. Каждое отдельное значение меньше 256, так как это максимальное значе ние, которое может храниться в байте без знака. Вторая команда использует ключ в переменной $key для преобразования защищен ной строки в зашифрованную стандартную строку. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113287 ConvertTo-SecureString Read-Host ConvertFrom-StringData ИМЯ ConvertFrom-StringData ОПИСАНИЕ Преобразует строку, содержащую одну или несколько пар типа ключ-значение в хэш-таблицу. СИНТАКСИС ConvertFrom-StringData [-StringData] <string> [<CommonParameters>] ОПИСАНИЕ Командлет ConvertFrom-StringData преобразует строку, содержащую одну или не сколько пар ключ-значение в хэш-таблицу. Поскольку каждая пара ключ-значен ие должна располагаться в отдельной строке, в качестве формата ввода часто используются автономные строки. Командлет ConvertFrom-StringData считается безопасным командлетом, который можно использовать в разделе DATA скрипта или функции. При использовании в разделе DATA содержимое строки должно соответствовать правилам раздела DATA . Дополнительные сведения см. в разделе about_Data_Sections. ПАРАМЕТРЫ -StringData <string> Задает строку, подлежащую преобразованию. Можно использовать этот парам етр или передавать строку командлету ConvertFrom-StringData с помощью к онвейера. Имя параметра указывать необязательно. Значением этого параметра должна быть строка, заключенная в одиночные к авычки, или строка, заключенная в двойные кавычки, или автономная строк а, содержащая одну или несколько пар ключ-значение. Каждая пара ключ-зн ачение должна быть расположена на отдельной строке или отделена знаком новой строки (`n). В строку можно включать комментарии, но они не должны находиться на одн ой строке с парой ключ-значение. Комментарии не включаются в хэш-таблиц у. Автономная строка — это строка, содержащая одну или несколько строк с к авычками, которые интерпретируются посимвольно. Дополнительные сведения см. в разделе about_Quoting_Rules. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать строку, содержащую пару ключ-значение, командлету Conver tFrom-StringData по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Collections.Hashtable Командлет ConvertFrom-StringData возвращает хэш-таблицу, созданную из п ар ключ-значение. ПРИМЕЧАНИЯ Автономная строка — это строка, содержащая одну или несколько строк с к авычками, которые интерпретируются посимвольно. Дополнительные сведения см. в разделе about_Quoting_Rules. Командлет ConvertFrom-StringData может оказаться полезным в скриптах, п редполагающих отображение сообщений пользователей на нескольких языках. Хэш-таблицы, напоминающие словари, позволяют изолировать текстовые стр оки от кода, например в файлах ресурсов, и форматировать текстовые стро ки для использования в средствах перевода. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$here = @' Msg1 = The string parameter is required. Msg2 = Credentials are required for this command. Msg3 = The specified variable does not exist. '@ C:\PS> convertfrom-stringdata -stringdata $here Name Value ---- ----- Msg3 The specified variable does not exist. Msg2 Credentials are required for this command. Msg1 The string parameter is required. Описание ----------- Эти команды преобразуют автономные строки с сообщениями в одиночных кавычка х в хэш-таблицу. В строках с одиночными кавычками значения переменных не по дставляются и выражения не вычисляются. Первая команда создает автономную строку и сохраняет ее в переменной $here. Вторая команда использует командлет ConvertFrom-StringData, чтобы преобразо вать автономную строку из переменной $here в хэш-таблицу. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$p = @" ISE = Windows PowerShell Integrated Scripting Environment "@ C:\PS> $p | get-member TypeName: System.String Name MemberType Definition ---- ---------- ---------- Clone Method System.Object Clone() ... C:\PS> $hash = convertfrom-stringdata -stringdata $p C:\PS> $hash | get-member TypeName: System.Collections.Hashtable Name MemberType Definition ---- ---------- ---------- Add Method System.Void Add(Object key, Object ... Описание ----------- Эта команда показывает, что командлет ConvertFrom-StringData преобразовывае т автономную строку в хэш-таблицу. Первая команда создает заключенную в двойные кавычки автономную строку, сод ержащую одну пару ключ-значение, и сохраняет ее в переменной $p. Вторая команда с помощью оператора конвейера (|) передает переменную $p ком андлету Get-Member. Результат показывает, что переменная $p является строко й (System.String). Третья команда использует командлет ConvertFrom-StringData, чтобы преобразо вать автономную строку в переменной $p в хэш-таблицу. Эта команда сохраняет результат в переменной $hash. Последняя команда с помощью оператора конвейера (|) передает переменную $ha sh командлету Get-Member. Результат показывает, что содержимое переменной $ hash является хэш-таблицей (System.Collections.Hashtable). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>convertfrom-stringdata -stringdata @' Name = Disks.ps1 # Category is optional. Category = Storage Cost = Free '@ Name Value ---- ----- Cost Free Category Storage Name Disks.ps1 Описание ----------- Эта команда преобразует автономную строку с одиночными кавычками, содержащу ю несколько пар ключ-значение, в хэш-таблицу. В этой команде значением параметра StringData является автономная строка, а не переменная, содержащая автономную строку. Допустимы оба формата. Автономная строка содержит примечание об одной из строк. В строках можно ис пользовать примечания, при условии что они не расположены на одной строке с парой ключ-значение. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = convertfrom-stringdata -stringdata "Top = Red `n Bottom = Blue" C:\PS> "Top = " + $a.Top Top = Red C:\PS> "Bottom = " + $a.Bottom Bottom = Blue Описание ----------- В этом примере обычная заключенная в двойные кавычки строка (не автономная строка) преобразуется в хэш-таблицу и сохраняется в переменной $a. Чтобы выполнить требование о необходимости размещения каждой пары ключ-знач ение на отдельной строке, в нем для разделения пар используется знак новой строки Windows PowerShell (`n). Результатом является хэш-таблица входных строк. Оставшиеся команды служат д ля вывода результата. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$TextMsgs = DATA { ConvertFrom-StringData @' Text001 = The $Notebook variable contains the name of the user's sy stem notebook. Text002 = The $MyNotebook variable contains the name of the user's private notebook. '@ } C:\PS> $TextMsgs.Text001 The $Notebook variable contains the name of the user's system notebook. C:\PS> $TextMsgs.Text002 The $MyNotebook variable contains the name of the user's private notebook. Описание ----------- В этом примере показано использование команды ConvertFrom-StringData в разд еле DATA скрипта. Инструкции, расположенные ниже раздела DATA, служат для о тображения текста для пользователя. Поскольку текст содержит имена переменных, его необходимо заключить в одино чные кавычки, чтобы переменные интерпретировались как текст, и вместо них н е подставлялись значения. Использовать переменные в разделе DATA запрещаетс я. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$here = @' Msg1 = The string parameter is required. Msg2 = Credentials are required for this command. Msg3 = The specified variable does not exist. '@ C:\PS> $hash = $here | convertfrom-stringdata C:\PS> $hash Name Value ---- ----- Msg3 The specified variable does not exist. Msg2 Credentials are required for this command. Msg1 The string parameter is required. Описание ----------- В этом примере показано, что для передачи строки командлету ConvertFrom-Str ingData можно использовать оператор конвейера (|). Первая команда сохраняет автономную строку в переменной $here. Вторая коман да с помощью оператора конвейера (|) передает переменную $here командлету C onvertFrom-StringData. Эта команда сохраняет результат в переменной $hash. Последняя команда отображает значение переменной $hash. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113288 about_Data_Sections about_Quoting_Rules about_Script_Internationalization ConvertTo-CSV ИМЯ ConvertTo-CSV ОПИСАНИЕ Преобразует объекты Microsoft .NET Framework в набор строк переменной длины , содержащих разделенные запятыми значения (CSV). СИНТАКСИС ConvertTo-CSV [[-Delimiter] <char>] [-InputObject] <psobject> [-NoTypeInfor mation] [<CommonParameters>] ConvertTo-CSV [-UseCulture] [-InputObject] <psobject> [-NoTypeInformation] [<CommonParameters>] ОПИСАНИЕ Командлет ConvertTo-CSV возвращает набор строк переменной длины, содержащих разделенные запятыми значения (CSV), которые представляют отправляемые объ екты. С помощью командлета ConvertFrom-CSV можно воссоздавать объекты на ба зе строк CSV. В результате будут получаться объекты, которые являются CSV-в ерсиями исходных объектов и содержат строковые представления значений свойс тв, но не содержат методов. Можно также использовать командлеты Export-CSV и Import-CSV для преобразова ния объектов .NET Framework в строки CSV и обратно. Командлет Export-CSV ан алогичен командлету ConvertTo-CSV за исключением того, что он сохраняет стр оки CSV в файл. С помощью параметров командлета ConvertTo-CSV можно задать отличный от запя той разделитель или сделать так, чтобы командлет ConvertTo-CSV использовал разделитель по умолчанию для текущей культуры. Дополнительные сведения см. в описании командлета Export-CSV и раздел "Прим ечания". ПАРАМЕТРЫ -Delimiter <char> Задает разделитель значений свойств. По умолчанию используется запятая (,). Введите символ, например двоеточие (:). Чтобы задать точку с запятой (;), заключите ее в кавычки. В противном с лучае она будет интерпретироваться в качестве разделителя команд. Требуется? false Позиция? 2 Значение по умолчанию , (запятая) Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты для экспорта в формате строк CSV. Введите переменную, со держащую объекты, либо получающую их команду или выражение. Кроме того, можно передать объекты командлету ConvertTo-CSV по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -NoTypeInformation [<SwitchParameter>] Исключает из конечных результатов заголовок с типами данных. По умолчан ию строка результатов содержит элемент "#TYPE ", после которого указыва ется полное имя типа объекта .NET Framework. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseCulture [<SwitchParameter>] Использует в качестве разделителя данных разделитель элементов списка и з текущей культуры. По умолчанию используется запятая (,). Этот параметр бывает полезным в скриптах, которые распространяются сред и пользователей в разных странах мира. Чтобы найти разделитель элементо в списка для текущей культуры, воспользуйтесь следующей командой: (Get- Culture).TextInfo.ListSeparator. Требуется? false Позиция? named Значение по умолчанию Запятая Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект .NET Framework можно передать командлету ConvertTo-CSV по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.String Результат в формате CSV возвращается в виде коллекции строк. ПРИМЕЧАНИЯ В формате CSV каждый объект представляется списком разделенных запятыми значений его свойств. Значения свойств преобразуются в строковый форма т (с помощью метода ToString() объекта), поэтому они обычно представляю тся именами значений свойств. Командлет ConvertTo-CSV не экспортирует м етоды объекта. Получаемые в результате строки CSV имеют следующий формат. -- Первая строка содержит элемент "#TYPE", за которым следует полное им я типа объекта .NET Framework, например "#TYPE System.Diagnostics.Proce ss". Чтобы исключить из вывода эту строку, воспользуйтесь параметром No TypeInformation. -- Следующая строка представляет заголовки столбцов. Она содержит списо к разделенных запятыми имен всех свойств первого объекта. -- Оставшиеся строки содержат списки разделенных запятыми значений свой ств каждого из объектов. При передаче командлету ConvertTo-CSV нескольких объектов командлет Con vertTo-CSV формирует строки на основании свойств первого отправленного объекта. Если у оставшихся объектов нет одного из указанных свойств, то значение этого свойства для соответствующего объекта равно NULL, что о бозначается двумя последовательными запятыми. Если же у оставшихся объе ктов имеются дополнительные свойства, эти свойства игнорируются командл етом. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process powershell | convertto-csv #TYPE System.Diagnostics.Process "__NounName","Name","Handles","VM","WS","PM","NPM","Path","Company","CPU"," FileVersion","ProductVersion","Description", "Product","BasePriority","ExitCode","HasExited","ExitTime","Handle","Handle Count","Id","MachineName","MainWindowHandle" ,"MainWindowTitle","MainModule","MaxWorkingSet","MinWorkingSet","Modules"," NonpagedSystemMemorySize","NonpagedSystemMem orySize64","PagedMemorySize","PagedMemorySize64","PagedSystemMemorySize","P agedSystemMemorySize64","PeakPagedMemorySize ","PeakPagedMemorySize64","PeakWorkingSet","PeakWorkingSet64","PeakVirtualM emorySize","PeakVirtualMemorySize64","Priori tyBoostEnabled","PriorityClass","PrivateMemorySize","PrivateMemorySize64"," PrivilegedProcessorTime","ProcessName","Proc essorAffinity","Responding","SessionId","StartInfo","StartTime","Synchroniz ingObject","Threads","TotalProcessorTime","U serProcessorTime","VirtualMemorySize","VirtualMemorySize64","EnableRaisingE vents","StandardInput","StandardOutput","Sta ndardError","WorkingSet","WorkingSet64","Site","Container" "Process","powershell","216","597544960","60399616","63197184","21692","C:\ WINDOWS\system32\WindowsPowerShell\v1.0\powe rshell.exe","Microsoft Corporation","3.4788223","6.1.6587.1 (fbl_srv_powers hell(nigels).070711-0102)","6.1.6587.1","Win dows PowerShell","Microsoft® Windows® Operating System","8",,"False",,"860" ,"216","5132",".","5636936","Windows PowerSh ell 2.0 (04/17/2008 00:10:40)","System.Diagnostics.ProcessModule (powershel l.exe)","1413120","204800","System.Diagnosti cs.ProcessModuleCollection","21692","21692","63197184","63197184","320080", "320080","63868928","63868928","60715008","6 0715008","598642688","598642688","True","Normal","63197184","63197184","00: 00:00.2028013","powershell","15","True","1", "System.Diagnostics.ProcessStartInfo","4/21/2008 3:49:19 PM",,"System.Diagn ostics.ProcessThreadCollection","00:00:03.51 00225","00:00:03.3072212","597544960","597544960","False",,,,"60399616","60 399616",, Описание ----------- Эта команда преобразует один объект процесса в формат CSV. Команда с помощь ю командлета Get-Process получает выполняющийся на локальном компьютере про цесс PowerShell. С помощью оператора конвейера (|) результат выполнения это й команды передается в командлет ConvertTo-CSV, который преобразует его в н абор строк разделенных запятыми значений. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$date = get-date C:\PS> convertto-csv -inputobject $date -delimiter ";" -notypeinformation Описание ----------- Этот пример преобразует объект даты в формат CSV. Первая команда с помощью командлета Get-Date получает текущее значение даты . Оно сохраняется в переменной $date. Вторая команда использует командлет ConvertTo-CSV, чтобы преобразовать объе кт DateTime в переменной $date в формат CSV. Команда использует параметр In putObject, чтобы задать подлежащий преобразованию объект. Параметр Delimite r используется в этой команде для указания разделителя свойств объекта. Что бы исключить из вывода строку #TYPE, используется параметр NoTypeInformatio n. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-eventlog -log "windows powershell" | convertto-csv -useculture Описание ----------- Эта команда преобразует журнал событий Windows PowerShell на локальном комп ьютере в набор строк CSV. С помощью командлета Get-EventLog эта команда получает события из журнала W indows PowerShell. С помощью оператора конвейера (|) она передает события к омандлету ConvertTo-CSV, который преобразует события в формат CSV. В этой к оманде используется параметр UseCulture, указывающий, что в качестве раздел ителя значений должен использоваться разделитель элементов списка текущей к ультуры. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135203 Import-CSV Export-CSV ConvertFrom-CSV ConvertTo-Html ИМЯ ConvertTo-Html ОПИСАНИЕ Преобразует объекты Microsoft .NET Framework в код HTML, который может отоб ражаться в веб-браузере. СИНТАКСИС ConvertTo-Html [[-Head] <string[]>] [[-Title] <string>] [[-Body] <string[]> ] [-CssUri <Uri>] [[-Property] <Object[]>] [-As <string>] [-InputObject object>] [-PostContent <string[]>] [-PreContent <string[]>] [<CommonParamet ers>] ConvertTo-Html [-Fragment] [[-Property] <Object[]>] [-As <string>] [-InputO bject <psobject>] [-PostContent <string[]>] [-PreContent <string[]>] [ onParameters>] ОПИСАНИЕ Командлет ConvertTo-Html преобразует объекты .NET Framework в код HTML, кот орый может отображаться в веб-браузере. Этот командлет можно использовать д ля вывода результатов выполнения команды на веб-страницу. Параметры командлета ConvertTo-Html позволяют выбирать свойства объектов, з адавать формат таблиц или списков, определять заголовок HTML-страницы, доба влять текст перед объектом и после него, а также возвращать только фрагмент с таблицей или списком, а не полную страницу. При передаче командлету ConvertTo-Html нескольких объектов Windows PowerShe ll создает таблицу (или список) на основании свойств первого переданного об ъекта. Если у оставшихся объектов нет одного из указанных свойств, то значе нию этого свойства для такого объекта будет соответствовать пустая ячейка. Если же у оставшихся объектов имеются дополнительные свойства, значения эти х свойств будут проигнорированы. ПАРАМЕТРЫ -As <string> Определяет форматирование объекта — таблица или список. Допустимые знач ения: TABLE и LIST. По умолчанию используется значение TABLE. В случае указания значения TABLE создается таблица HTML, напоминающая ф ормат таблицы Windows PowerShell. В строке заголовка отображаются имена свойств. Каждая строка таблицы соответствует одному объекту и содержит значения всех свойств этого объекта. В случае указания значения LIST для каждого объекта создается таблица H TML из двух столбцов, напоминающая формат списка Windows PowerShell. В первом столбце отображается имя свойства, а во втором — его значение. Требуется? false Позиция? named Значение по умолчанию Таблица Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Body <string[]> Задает текст для добавления после открывающего тега <BODY>. По умолчани ю в этом месте нет текста. Требуется? false Позиция? 4 Значение по умолчанию Нет текста. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CssUri <Uri> Задает универсальный идентификатор ресурса (URI) каскадной таблицы стил ей (CSS), применяемой к HTML-файлу. URI включается в ссылку на таблицу стилей в выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Fragment [<SwitchParameter>] Создает только таблицу HTML. Теги HTML, HEAD, TITLE и BODY будут опущен ы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Head <string[]> Задает содержимое тега <HEAD>. По умолчанию используется код "<title>HT ML TABLE</title>". Если параметр Head задан, то параметр Title игнорир уется. Требуется? false Позиция? 2 Значение по умолчанию <title>HTML TABLE</title> Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты, которые должны быть представлены в коде HTML. Введите п еременную, содержащую объекты, либо получающую их команду или выражение . При задании с помощью этого параметра нескольких объектов, например при перечислении всех работающих на компьютере служб, командлет ConvertTo- Html создает таблицу, в которой отображаются свойства коллекции или мас сива объектов (System.Object[]). Чтобы создать таблицу из отдельных объ ектов, следует передавать их командлету ConvertTo-Html с помощью операт ора конвейера. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -PostContent <string[]> Задает текст для добавления после закрывающего тега </TABLE>. По умолча нию в этом месте нет текста. Требуется? false Позиция? named Значение по умолчанию Нет текста Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PreContent <string[]> Задает текст для добавления перед открывающим тегом <TABLE>. По умолчан ию в этом месте нет текста. Требуется? false Позиция? named Значение по умолчанию Нет текста Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Property <Object[]> Включает в код HTML заданные свойства объектов. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Title <string> Задает заголовок HTML-файла, т. е. текст, помещаемый между тегами <TITL E>. Требуется? false Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект .NET можно передать командлету ConvertTo-Html по конвейеру . ВЫХОДНЫЕ ДАННЫЕ System.String Командлет ConvertTo-Html возвращает набор строк, которые вместе составл яют корректный HTML-документ. ПРИМЕЧАНИЯ Чтобы использовать этот командлет, передайте ему один или несколько объ ектов с помощью конвейера или задайте объект с помощью параметра InputO bject. Если командлет получает несколько объектов, то результат примене ния этих двух подходов различается. -- Если несколько объектов передаются командлету по конвейеру, то Windo ws PowerShell отправляет объекты командлету по одному. В результате ком андлет ConvertTo-Html создает таблицу, в которой отображаются отдельные объекты. Например, если по конвейеру передать командлету ConvertTo-Htm l запущенные на компьютере процессы, то в полученной таблице будут соде ржатся все процессы. -- Если для передачи нескольких объектов используется параметр InputObj ect, командлет ConvertTo-Html получает эти объекты в виде коллекции или массива. В результате он создает таблицу, в которой содержится массив и его свойства, а не элементы массива. Например, если с помощью парамет ра InputObject передать командлету ConvertTo-Html запущенные на компьют ере процессы, то в таблице будет показан массив объектов (System.Object []) и его свойства. Для соответствия определению DTD-файла xhtml1-strict.dtd соответствующи м образом изменяется тег DOCTYPE: (</ /www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">) -------------------------- ПРИМЕР 1 -------------------------- C:\PS>convertto-html -inputobject (get-date) Описание ----------- Эта команда создает HTML-страницу, на которой отображаются свойства текущей даты. Параметр InputObject используется для передачи результатов выполнени я командлета Get-Date командлету ConvertTo-Html. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-alias | convertto-html > aliases.htm C:\PS> invoke-item aliases.htm Описание ----------- Эта команда создает HTML-страницу, на которой перечислены псевдонимы Window s PowerShell для текущей консоли. Команда получает псевдонимы с помощью командлета Get-Alias. Для передачи пс евдонимов командлету ConvertTo-Html, который создает HTML-страницу, использ уется оператор конвейера (|). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-eventlog -logname "Windows PowerShell | convertto-html > pslog.ht m Описание ----------- Эта команда создает HTML-страницу с именем pslog.htm, на которой отображают ся события, зарегистрированные в журнале событий Windows PowerShell на лока льном компьютере. Для получения событий из журнала Windows PowerShell, используется командлет Get-EventLog, а для передачи этих событий командлету ConvertTo-Html исполь зуется оператор конвейера (|). Кроме того, команда использует оператор перенаправления (>), чтобы переслат ь код HTML в файл pslog.htm. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process | convertto-html -property Name, Path, Company -title "Pr ocess Information" > proc.htm; ii proc.htm Описание ----------- Эти команды создают и открывают HTML-страницу, на которой перечислены значе ния имени, пути и компании для процессов на локальном компьютере. Первая команда с помощью командлета Get-Process получает объекты, которые п редставляют выполняющиеся на компьютере процессы. Команда передает объекты процессов в командлет ConvertTo-Html с помощью оператора конвейера (|). Команда использует параметр Property, чтобы выбрать три свойства объектов п роцессов для включения в таблицу. Параметр Title используется в команде для задания заголовка HTML-страницы. Кроме того, команда использует оператор п еренаправления (>), чтобы переслать полученный код HTML в файл Proc.htm. Вторая команда использует командлет Invoke-Item (псевдоним ii), чтобы откры ть файл Proc.htm в браузере по умолчанию. Две команды разделены точкой с за пятой (;). -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-service | convertto-html -CssUri "test.css" <//www. w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <title>HTML TABLE</title> <link rel="stylesheet" type="text/css" href="test.css" /> ... Описание ----------- Эта команда создает HTML-страницу для объектов-служб, возвращаемых командле том Get-Service. Чтобы указать каскадную таблицу стилей для HTML-страницы, в этой команде используется параметр CssUri. Параметр CssUri добавляет в итоговый HTML-документ дополнительный тег <link rel="stylesheet" type="text/css". Атрибут HREF в этом теге содержит имя та блицы стилей. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-service | convertto-html -as LIST > services.htm Описание ----------- Эта команда создает HTML-страницу для объектов-служб, возвращаемых командле том Get-Service. Параметр As используется в этой команде для указания форма та списка. Оператор перенаправления (>) передает полученный код HTML в файл Services.htm. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-date | cth -fragment <table> <colgroup>...</colgroup> <tr><th>DisplayHint</th> Week</th><th>DayOfYear</th> Kind</th><th>Millisecond</th> h>Ticks</th><th>TimeOfDay</th> /tr> <tr><td>DateTime</td> 12:00:00 AM</td><td>5</td> >126</td><td>10</td> d><td>633455808041237213</td><td>10:40:04.12 37213</td><td>2008</td> </table> Описание ----------- Эта команда с помощью командлета ConvertTo-Html создает таблицу HTML для те кущей даты. С помощью командлета Get-Date команда получает текущее значение даты. А затем с помощью оператора конвейера (|) результаты передаются кома ндлету ConvertTo-Html (обозначенному псевдонимом "cth"). Команда ConvertTo-Html включает параметр Fragment, который ограничивает выв од только таблицей HTML. В результате другие элементы HTML-страницы, наприм ер теги <HEAD> и <BODY>, пропускаются. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>get-eventlog -log "Windows PowerShell" | convertto-html -property id, level, task Описание ----------- Эта команда с помощью командлета Get-EventLog получает события из журнала с обытий Windows PowerShell. С помощью оператора конвейера (|) она передает события командлету ConvertTo -Html, который преобразует события в формат HTML. Команда ConvertTo-Html использует параметр Property, чтобы выбрать только с ледующие свойства события: ID, Level и Task. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-service A* | ConvertTo-Html -title "Windows Services: Server01" - body (get-date) -pre "<P>Generated by Corporate IT</P >" -post "For details, contact Corporate IT." > services.htm; ii services.h tm Описание ----------- Эта команда создает и открывает веб-страницу, на которой отображается списо к служб компьютера, имена которых начинаются на "A". Она использует парамет ры Title, Body, PreContent и PostContent командлета ConvertTo-Html, чтобы н астроить содержимое страницы. Первая часть команды получает начинающиеся на "A" службы компьютера с помощ ью командлета Get-Service. Затем результаты передаются в командлет ConvertT o-Html с помощью оператора конвейера (|). Кроме того, команда использует оп ератор перенаправления (>), чтобы переслать результат в файл Services.htm. Двоеточие (;) отделяет первую команду от второй, в которой с помощью команд лета Invoke-Item (псевдоним "ii") файл Services.htm открывается в браузере по умолчанию. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113290 ConvertTo-CSV ConvertTo-Xml ConvertTo-SecureString ИМЯ ConvertTo-SecureString ОПИСАНИЕ Преобразует зашифрованные стандартные строки в защищенные строки. Можно так же преобразовать обычный текст в защищенные строки. Используется с командле тами ConvertFrom-SecureString и Read-Host. СИНТАКСИС ConvertTo-SecureString [-Key <Byte[]>] [-String] <string> [<CommonParameter s>] ConvertTo-SecureString [[-AsPlainText]] [[-Force]] [-String] <string> [<Com monParameters>] ConvertTo-SecureString [[-SecureKey] <SecureString>] [-String] <string> [<C ommonParameters>] ОПИСАНИЕ Командлет ConvertTo-SecureString преобразует зашифрованные стандартные стро ки в защищенные строки. Можно также преобразовать обычный текст в защищенны е строки. Используется с командлетами ConvertFrom-SecureString и Read-Host. Защищенная строка, созданная командлетом, может использоваться с командлет ами или функциями, которые требует параметра типа SecureString. Защищенную строку можно преобразовать обратно в зашифрованную стандартную строку с исп ользованием командлета ConvertFrom-SecureString. Это позволит сохранить ее в файле для последующего использования. Если преобразуемая стандартная строка была зашифрована с помощью командлета ConvertFrom-SecureString с использованием указанного ключа, тот же ключ до лжен быть введен в качестве значения параметра Key или SecureKey командлета ConvertTo-SecureString. ПАРАМЕТРЫ -AsPlainText [<SwitchParameter>] Указывает обычную текстовую строку для преобразования в защищенную стро ку. Командлеты защищенной строки помогают защитить секретный текст. Те кст шифруется в целях конфиденциальности и после использования удаляетс я из памяти компьютера. Если этот параметр используется, чтобы обеспечи ть ввод обычного текста, то защита ввода таким образом невозможна. Что бы использовать этот параметр, необходимо также указать параметр Force. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Подтверждает, что пользователь понимает последствия использования парам етра AsPlainText и по-прежнему намерен использовать его. Требуется? false Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Key <Byte[]> Указывает ключ шифрования для преобразования защищенной строки в зашифр ованную стандартную строку. Допустимые значения длины ключа: 16, 24 и 3 2 байта. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SecureKey <SecureString> Указывает ключ шифрования для преобразования защищенной строки в зашифр ованную стандартную строку. Ключ должен быть предоставлен в формате защ ищенной строки. Перед использованием в качестве ключа защищенная строка преобразуется в массив байтов. Допустимые значения длины ключа: 16, 24 и 32 байта. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -String <string> Задает строку для преобразования в защищенную строку. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Стандартную зашифрованную строку можно передать командлету ConvertTo-Se cureString по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Security.SecureString ConvertTo-SecureString возвращает объект SecureString. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$secure = read-host -assecurestring C:\PS> $secure System.Security.SecureString C:\PS> $encrypted = convertfrom-securestring -securestring $secure C:\PS> $encrypted 01000000d08c9ddf0115d1118c7a00c04fc297eb010000001a114d45b8dd3f4aa11ad7c0abd ae9800000000002000000000003660000a8000000100000005df63cea84bfb7d70bd6842e7 efa79820000000004800000a000000010000000f10cd0f4a99a8d5814d94e0687d7430b1000 00008bf11f1960158405b2779613e9352c6d14000000e6b7bf46a9d485ff211b9b2a2df3bd 6eb67aae41 C:\PS> $secure2 = convertto-securestring -string $encrypted C:\PS> $secure2 System.Security.SecureString Описание ----------- В этом примере показано, как создать защищенную строку из введенных пользов ателем данных, преобразовать защищенную строку в зашифрованную стандартную строку, а затем преобразовать ее обратно в защищенную строку. Первая команда использует параметр AsSecureString командлета Read-Host, что бы создать защищенную строку. После ввода команды любые введенные символы п реобразуются в защищенную строку и сохраняются в переменную $secure. Вторая команда отображает значение переменной $secure. Поскольку переменная $secure содержит защищенную строку, Windows PowerShell отображает только т ип System.Security.SecureString. Третья команда использует ключ командлет ConvertFrom-SecureString для преоб разования защищенной строки в переменной $secure в зашифрованную стандартну ю строку. Эта команда сохраняет результат в переменной $encrypted. Четверта я команда отображает зашифрованную строку в значении переменной $encrypted. Пятая команда использует ключ командлет ConvertTo-SecureString для преобраз ования зашифрованной стандартной строки в переменной $encrypted обратно в з ащищенную строку. Эта команда сохраняет результат в переменной $secure2. Ше стая команда отображает значение переменной $secure2. Тип SecureString указ ывает на успешное выполнение команды. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$secure = read-host -assecurestring C:\PS> $encrypted = convertfrom-securestring -secureString $secure -key (1. .16) C:\PS> $encrypted | set-content encrypted.txt C:\PS> $secure2 = get-content encrypted.txt | convertto-securestring -key ( 1..16) Описание ----------- В этом примере показано, как создать защищенную строку из зашифрованной ста ндартной строки, сохраненной в файл. Первая команда использует параметр AsSecureString командлета Read-Host, что бы создать защищенную строку. После ввода команды любые введенные символы п реобразуются в защищенную строку и сохраняются в переменную $secure. Вторая команда использует ключ командлет ConvertFrom-SecureString для преоб разования защищенной строки в переменной $secure в зашифрованную стандартну ю строку, используя указанный ключ. Содержимое сохраняется в переменной $en crypted. Третья команда использует оператор конвейера (|) для отправки значения пере менной $encrypted командлету Set-Content, который сохраняет значение в файл е Encrypted.txt. Четвертая команда использует командлет Get-Content для извлечения зашифрова нной стандартной строки из файла Encrypted.txt. Команда использует оператор конвейера для отправки зашифрованной строки командлету ConvertTo-SecureStr ing, который преобразует ее в защищенную строку, используя указанный ключ. Результаты сохраняются в переменной $secure2. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$secure_string_pwd = convertto-securestring "P@ssW0rD" -asplaintext -force Описание ----------- Эта команда преобразует обычную текстовую строку "P@ssW0rD" в защищенную с троку и сохраняет результат в переменной $secure_string_pwd. Чтобы использо вать параметр AsPlainText, команда также должна содержать параметр Force. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113291 ConvertFrom-SecureString Read-Host ConvertTo-XML ИМЯ ConvertTo-XML ОПИСАНИЕ Создает XML-представление объекта. СИНТАКСИС ConvertTo-XML [-InputObject] <psobject> [-As <string>] [-Depth <int>] [-NoT ypeInformation] [<CommonParameters>] ОПИСАНИЕ Командлет ConvertTo-Xml создает XML-представление одного или нескольких объ ектов Microsoft .NET Framework. Чтобы использовать этот командлет, передайт е ему один или несколько объектов с помощью конвейера или задайте объект с помощью параметра InputObject. При передаче командлету ConvertTo-XML нескольких объектов с помощью конвейе ра или использовании для этого параметра InputObject командлет ConvertTo-XM L возвращает один XML-документ, содержащий представления всех объектов. Этот командлет похож на командлет Export-Clixml, за исключением того, что E xport-Clixml сохраняет полученный код XML в файл. Командлет ConvertTo-XML в озвращает код XML, чтобы его можно было далее обрабатывать с помощью Window s PowerShell. ПАРАМЕТРЫ -As <string> Определяет формат вывода. Допустимые значения: -- String: возвращает отдельную строку; -- Stream: возвращает массив строк; -- Document: возвращает объект XmlDocument. По умолчанию используется значение Stream. Требуется? false Позиция? named Значение по умолчанию Stream Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Depth <int> Задает число уровней вложенных объектов, которые включаются в XML-предс тавление. По умолчанию используется значение 1. Например, если свойства объекта также содержат объекты, то для сохранен ия XML-представления свойств этих вложенных объектов необходимо указать глубину, равную 2. Значение по умолчанию можно переопределить для типа объекта в файлах Ty pes.ps1xml. Дополнительные сведения см. в разделе about_Types.ps1xml. Требуется? false Позиция? named Значение по умолчанию 1 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объект, подлежащий преобразованию. Введите переменную, содержащу ю объекты, либо команду или выражение для получения объектов. Кроме тог о, можно передать объекты командлету ConvertTo-XML по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? true -NoTypeInformation [<SwitchParameter>] Исключает атрибут Type из узлов объектов. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету ConvertTo-XML по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.String или System.Xml.XmlDocument Значение параметра As определяет тип объекта, возвращаемого командлетом ConvertTo-XML. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-date | convertto-xml Описание ----------- Эта команда преобразует текущую дату (объект DateTime) в формат XML. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>convertto-xml -as Document -inputObject (get-process) -depth 3 Описание ----------- Эта команда преобразует объекты процессов, представляющие все процессы на к омпьютере, в XML-документ. Объекты расширяются до трех уровней. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135204 Export-Clixml Import-Clixml ConvertTo-Html ConvertTo-Csv Copy-Item ИМЯ Copy-Item ОПИСАНИЕ Копирует элемент из одного местоположения в другое внутри одного пространст ва имен. СИНТАКСИС Copy-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Container] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-For ce] [-Include <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-Use Transaction] [<CommonParameters>] Copy-Item [-Path] <string[]> [[-Destination] <string>] [-Container] [-Crede ntial <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-I nclude <string[]>] [-PassThru] [-Recurse] [-Confirm] [-WhatIf] [-UseTransac tion] [<CommonParameters>] ОПИСАНИЕ Командлет Copy-Item копирует элемент из одного местоположения в пространств е имен в другое. Командлет Copy-Item не удаляет копируемые элементы. Типы э лементов, которые может копировать командлет, определяются наличием поставщ иков Windows PowerShell. Например, при использовании командлета с поставщик ом FileSystem копируются файлы и папки, а при работе с поставщиком реестра копируются разделы и записи реестра. ПАРАМЕТРЫ -Container [<SwitchParameter>] Обеспечивает сохранность объектов-контейнеров во время копирования. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Destination <string> Задает путь к местоположению, в которое требуется скопировать элементы. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету копировать элементы, которые не могут быть изменен ы другим образом, например копировать файл или псевдоним только для чте ния. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Определяет только элементы, которые будут обработаны командлетом, и иск лючает все остальные. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к элементу. Значение параметра LiteralPath используется точ но в том виде, в котором оно введено. Никакие символы не интерпретируют ся как подстановочные знаки. Если путь включает escape-символы, его нуж но заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий каждый копируемый элемент. По умолчан ию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к копируемым элементам. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Recurse [<SwitchParameter>] Задает рекурсивную копию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Copy-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или объект, представляющий скопированный элемент. При использовании параметра PassThru командлет Copy-Item возвращает объ ект, представляющий скопированный элемент. В противном случае этот кома ндлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Copy-Item аналогичен командам "cp" или "copy" других оболочек . Командлет Copy-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в теку щем сеансе, введите команду "Get-PsProvider". Дополнительные сведения с м. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>copy-item C:\Wabash\Logfiles\mar1604.log.txt -destination C:\Presenta tion Описание ----------- Эта команда копирует файл mar1604.log.txt в каталог C:\Presentation. При вы полнении команды исходный файл не удаляется. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>copy-item C:\Logfiles -destination C:\Drawings -recurse Описание ----------- Эта команда копирует все содержимое папки Logfiles в каталог Drawings. При наличии в исходном каталоге вложенных каталогов с файлами они также копирую тся вместе со своими деревьями файлов. Параметр Container по умолчанию имее т значение true. Это сохраняет структуры каталогов. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>copy-item C:\Logfiles -destination C:\Drawings\Logs -recurse Описание ----------- Эта команда копирует содержимое каталога C:\Logfiles в каталог C:\Drawings\ Logs. Если вложенный каталог \Logs не существует, то он будет создан. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113292 about_Providers Clear-Item Get-Item Invoke-Item Move-Item Set-Item New-Item Remove-Item Rename-Item Copy-ItemProperty ИМЯ Copy-ItemProperty ОПИСАНИЕ Копирует свойство и его значение из одного указанного местоположения в друг ое. СИНТАКСИС Copy-ItemProperty [-LiteralPath] <string[]> [-Destination] <string> [-Name] <string> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter ng>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseT ransaction] [<CommonParameters>] Copy-ItemProperty [-Path] <string[]> [-Destination] <string> [-Name] <strin g> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [- Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransact ion] [<CommonParameters>] ОПИСАНИЕ Командлет Copy-ItemProperty копирует свойство и его значение из одного указ анного местоположения в другое. Например, командлет Copy-ItemProperty можно использовать для копирования одной или нескольких записей реестра из одног о раздела в другой. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Destination <string> Задает путь к целевому местоположению. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету переопределить ограничения, например ограничения п ереименования существующих файлов, если это не ставит под угрозу безопа сность. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Определяет только элементы, которые будут обработаны командлетом, и иск лючает все остальные. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к свойству элемента. Значение параметра LiteralPath использ уется точно в том виде, в котором оно введено. Никакие символы не интер претируются как подстановочные знаки. Если путь включает escape-символы , его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретир овать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает имя копируемого свойства. Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий скопированное свойство элемента. По у молчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к копируемому свойству. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Copy-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSCustomObject Если задан параметр Passthru, командлет Copy-ItemProperty создает объек т PsCustomObject, представляющий скопированное свойство элемента. В про тивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Copy-ItemProperty предназначен для работы с данными, предоста вляемыми любым поставщиком. Чтобы получить список поставщиков, доступны х в текущем сеансе, введите команду "Get-PSProvider". Дополнительные св едения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>copy-itemproperty -path MyApplication -destination HKLM:\Software\MyA pplicationRev2 -name MyProperty Описание ----------- Эта команда копирует свойство MyProperty из раздела реестра MyApplication в раздел MyApplicationRev2. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113293 about_Providers Clear-ItemProperty New-ItemProperty Move-ItemProperty Rename-ItemProperty Get-ItemProperty Set-ItemProperty Debug-Process ИМЯ Debug-Process ОПИСАНИЕ Отлаживает один или несколько процессов, выполняющихся на локальном компьют ере. СИНТАКСИС Debug-Process [-Name] <string[]> [-Confirm] [-WhatIf] [<CommonParameters>] Debug-Process [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>] Debug-Process -InputObject <Process[]> [-Confirm] [-WhatIf] [<CommonParamet ers>] ОПИСАНИЕ Командлет Debug-Process присоединяет отладчик к одному или нескольким проце ссам, выполняющимся на локальном компьютере. Процессы можно задать, указав их имена или идентификаторы (PID) либо передав объекты процессов по конвейе ру командлету Debug-Process. Командлет Debug-Process присоединяет отладчик, который в данный момент заре гистрирован для процесса. Перед использованием этого командлета проверьте, что отладчик загружен и правильно настроен. ПАРАМЕТРЫ -Id <Int32[]> Задает идентификаторы отлаживаемых процессов. Имя параметра ("-Id") ука зывать необязательно. Чтобы определить идентификатор процесса, введите команду "get-process". Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InputObject <Process[]> Задает объекты процессов, которые представляют отлаживаемые процессы. В ведите переменную, содержащую объекты процессов, либо команду, получающ ую объекты процессов, например Get-Process. Кроме того, можно передать объекты процессов командлету Debug-Process по конвейеру. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена отлаживаемых процессов. Если заданному имени соответствует несколько процессов, Debug-Process присоединяет отладчик ко всем проце ссам с этим именем. Имя параметра ("Name") указывать необязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Int32, System.Diagnostics.Process, System.String Идентификатор процесса (Int32), объект процесса (System.Diagnostics.Pro cess) или имя процесса (String) можно передать командлету Debug-Process по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Этот командлет использует метод AttachDebugger класса Win32_Process инс трументария управления Windows (WMI). Дополнительные сведения об этом м етоде см. в разделе "Метод AttachDebugger" библиотеки MSDN (Microsoft D eveloper Network) по адресу (на английском языке). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>debug-process -name powershell Описание ----------- Эта команда присоединяет отладчик к процессу PowerShell, выполняющемуся на данном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>debug-process -name sql* Описание ----------- Эта команда присоединяет отладчик ко всем процессам, имена которых начинают ся с комбинации символов "sql". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>debug-process winlogon, explorer, outlook Описание ----------- Эта команда присоединяет отладчик к процессам Winlogon, Explorer и Outlook. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>debug-process -id 1132, 2028 Описание ----------- Эта команда присоединяет отладчик к процессам с идентификаторами 1132 и 202 8. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-process powershell | debug-process Описание ----------- Эта команда присоединяет отладчик к процессам PowerShell на данном компьюте ре. Для получения процессов PowerShell на данном компьютере используется ко мандлет Get-Process, а для передачи этих процессов командлету Debug-Process используется оператор конвейера (|). Чтобы указать конкретный процесс PowerShell, используйте параметр ID команд лета Get-Process. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$pid | debug-process Описание ----------- Эта команда присоединяет отладчик к текущим процессам PowerShell на данном компьютере. В этой команде используется автоматическая переменная $pid, в которой содер жится идентификатор текущего процесса PowerShell. Идентификатор процесса пе редается командлету Debug-Process с помощью оператора конвейера (|). Дополнительные сведения об автоматической переменной $pid см. в разделе abo ut_Automatic_Variables. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-process -computername Server01, Server02 -name MyApp | debug-proc ess Описание ----------- Эта команда присоединяет отладчик к процессам MyApp, выполняющимся на компь ютерах Server01 и Server02. Для получения процессов MyApp, выполняющихся на компьютерах Server01 и Serv er02, используется командлет Get-Process. Для передачи процессов командлету Debug-Process, который присоединяет отладчики, используется оператор конве йера (|). -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$p = get-process powershell C:\PS> debug-process -inputobject $p Описание ----------- Эта команда присоединяет отладчик к процессам PowerShell на локальном компь ютере. Первая команда получает процессы PowerShell на локальном компьютере с помощ ью командлета Get-Process. Результирующий объект процесса сохраняется в пер еменной $p. Вторая команда с помощью параметра InputObject командлета Debug-Process пер едает хранящийся в переменной $p объект процесса командлету Debug-Process. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135206 Get-Process Start-Process Stop-Process Wait-Process Debug-Process Disable-ComputerRestore ИМЯ Disable-ComputerRestore ОПИСАНИЕ Отключает функцию восстановления системы на указанном диске файловой систем ы. СИНТАКСИС Disable-ComputerRestore [-Drive] <string[]> [-Confirm] [-WhatIf] [<CommonPa rameters>] ОПИСАНИЕ Командлет Disable-ComputerRestore отключает функцию восстановления системы на одном или нескольких дисках файловой системы. В результате операции восс тановления системы не применяются к указанному диску. Чтобы отключить функцию восстановления системы на любом диске, ее необходим о отключить на системном диске (предварительно или одновременно). Чтобы повторно включить функцию восстановления системы, используйте командл ет Enable-ComputerRestore. Чтобы определить состояние функции восстановлени я системы для каждого диска, используйте программу Rstrui.exe. ПАРАМЕТРЫ -Drive <string[]> Задает диски файловой системы. Введите одну или несколько букв дисков ф айловой системы, указывая после каждой буквы двоеточие и обратную косую черту и используя кавычки, например, "C:\" или "D:\". Это обязательны й параметр. С помощью этого командлета нельзя отключить функцию восстановления сист емы на удаленном сетевом диске, даже если он подключен к локальному ком пьютеру; кроме того, эту функцию нельзя отключить на дисках, не подходя щих для ее использования, например, на внешних дисках. Чтобы отключить функцию восстановления системы на любом диске, ее необх одимо отключить на системном диске (предварительно или одновременно). Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлеты Disable-ComputerRestore и Enable-ComputerRestore работают то лько в клиентских операционных системах, таких как Windows Vista и Wind ows XP. Чтобы использовать командлет Disable-ComputerRestore в Windows Vista и более поздних версиях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". Список дисков, подходящих для использования функции восстановления сист емы, см. на вкладке защиты системы ("Панель управления" > "Система"). Ч тобы открыть эту вкладку в Windows PowerShell, введите команду "SystemP ropertiesProtection". Этот командлет использует класс SystemRestore инструментария управления Windows (WMI). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>disable-computerrestore -drive "C:\" Описание ----------- Эта команда отключает функцию восстановления системы на диске "С:". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>disable-computerrestore "C:\", "D:\" Описание ----------- Эта команда отключает функцию восстановления системы на дисках "С:" и "D:". В этой команде используется параметр Drive, но имя параметра указывать нео бязательно, поэтому оно опущено. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135207 Enable-ComputerRestore Get-ComputerRestorePoint Restore-Computer Restart-Computer Disable-PSBreakpoint ИМЯ Disable-PSBreakpoint ОПИСАНИЕ Отключает точки останова для текущей консоли. СИНТАКСИС Disable-PSBreakpoint [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<Com monParameters>] Disable-PSBreakpoint [-Breakpoint] <Breakpoint[]> [-PassThru] [-Confirm] [- WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Disable-PSBreakpoint отключает точки останова, что означает, что они не будут использоваться при выполнении скрипта. С помощью этого командл ета можно отключить все точки останова или указать конкретные точки, задав объекты точек останова или их идентификаторы. Технически этот командлет изменяет значение свойства Enabled объекта точки останова на False. Чтобы заново включить точку останова, следует использова ть командлет Enable-PSBreakpoint. Точки останова по умолчанию включаются пр и их создании с помощью командлета Set-PSBreakpoint. Точка останова — это точка в скрипте, на которой выполнение временно остана вливается, чтобы можно было проверить инструкции скрипта. Disable-PSBreakpo int — это один из нескольких командлетов, предназначенных для отладки скрип тов Windows PowerShell. Дополнительные сведения об отладчике Windows PowerS hell см. в разделе about_Debuggers. ПАРАМЕТРЫ -Breakpoint <Breakpoint[]> Задает точки останова для отключения. Введите переменную, содержащую об ъекты точек останова, либо команду, получающую объекты точек останова, например Get-PSBreakpoint. Кроме того, объекты точек останова можно пер едать командлету Disable-PSBreakpoint по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Id <Int32[]> Отключает точки останова с указанными идентификаторами. Введите идентиф икаторы или переменную, которая их содержит. Идентификаторы невозможно передать командлету Disable-PSBreakpoint по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий включенные точки останова. По умолчан ию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.Breakpoint Объект точки останова можно передать командлету Disable-PSBreakpoint по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.Breakpoint При использовании параметра PassThru командлет Disable-PSBreakpoint воз вращает объект, представляющий отключенную точку останова. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$b = set-psbreakpoint -script sample.ps1 -variable name C:\PS> $b | disable-psbreakpoint Описание ----------- Эти команды отключают созданную перед этим точку останова. Первая команда использует командлет Set-PSBreakpoint, чтобы создать точку о станова на переменной Name в скрипте Sample.ps1. После этого она сохраняет в переменной $b объект точки останова. Вторая команда использует командлет Disable-PSBreakpoint, чтобы отключить э ту новую точку останова. С помощью оператора конвейера (|) она передает объ ект точки останова в переменной $b командлету Disable-PSBreakpoint. В результате выполнения этой команды свойство Enabled объекта точки останов а в переменной $b принимает значение False. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>disable-psbreakpoint -id 0 Описание ----------- Эта команда отключает точку останова с идентификатором 0. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>disable-psbreakpoint -breakpoint ($b = set-psbreakpoint -script sampl e.ps1 -line 5) C:\PS> $b Описание ----------- Эта команда создает новую точку останова, которая будет оставаться отключен ной, пока пользователь не включит ее. Чтобы отключить точку останова, она использует командлет Disable-PSBreakpoi nt. Значением параметра Breakpoint является команда Set-PSBreakpoint, котор ая устанавливает новую точку останова, создает объект точки останова и сохр аняет объект в переменной $b. Параметры командлета, принимающие в качестве значений объекты, могут принят ь также и переменную, которая содержит объект, или команду, которая получае т или создает объект. В данном случае, поскольку командлет Set-PSBreakpoint создает объект точки останова, его можно использовать в качестве значения параметра Breakpoint. Вторая команда выводит объект точки останова, хранящийся в переменной $b. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-psbreakpoint | disable-psbreakpoint Описание ----------- Эта команда отключает все точки останова для текущей консоли. Эту команду м ожно сократить следующим образом: "gbp | dbp". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113294 about_Debuggers Set-PSBreakpoint Get-PSBreakpoint Enable-PSBreakpoint Remove-PSBreakpoint Get-PSCallStack Disable-PSRemoting ИМЯ Disable-PSRemoting ОПИСАНИЕ Предотвращает получение компьютером удаленных команд Windows PowerShell. СИНТАКСИС Disable-PSRemoting [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Функция Disable-PSRemoting отключает все конфигурации сеанса на локальном к омпьютере путем добавления записи "deny all" в их дескрипторы безопасности. Это предотвращает получение локальным компьютером удаленных команд. Disable-PSRemoting не останавливает службу WinRM и не запрещает пользовател ям локального компьютера создавать сеансы, которые выполняют подключение к удаленным компьютерам или отправляют команды другим компьютерам. Чтобы повторно включить конфигурации сеанса, используйте командлет Enable-P SRemoting или Enable-PSSessionConfiguration. Чтобы выполнить эту функцию в Windows Vista, Windows Server 2008 и более по здних версиях Windows, необходимо запускать Windows PowerShell командой "За пуск от имени администратора". ПАРАМЕТРЫ -Force [<SwitchParameter>] Подавляет все запросы подтверждения. По умолчанию выдается запрос на по дтверждение каждой операции. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Конфигурация сеанса представляет собой группу параметров, определяющих среду сеанса. Конфигурации сеанса находятся на удаленном компьютере и и спользуются локальными и удаленными сеансами, выполняющими подключение к компьютеру. Каждый сеанс, осуществляющий подключение к компьютеру, должен использов ать одну из конфигураций сеанса, зарегистрированных на компьютере. Это относится как к постоянным сеансам, создаваемым с помощью командлетов N ew-PSSession или Enter-PSSession, так и к временным сеансам, создаваемы м Windows PowerShell при использовании параметра ComputerName в командл етах, использующих технологию удаленного взаимодействия WS-Management, например, Invoke-Command. Запрет доступа ко всем конфигурациям сеанса является эффективным способом предотвращения создания пользователями се ансов, выполняющих подключение к компьютеру. Disable-PSRemoting эквивалентно "Disable-PSSessionConfiguration -name * . -------------------------- ПРИМЕР 1 -------------------------- C:\PS>disable-psremoting Описание ----------- Эта команда удаляет с компьютера все конфигурации сеансов. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>disable-psremoting -force Описание ----------- Эта команда удаляет с компьютера все конфигурации сеансов, не выводя предуп реждение. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>disable-psremoting -force C:\PS> new-pssession -computername localhost [localhost] Connecting to remote server failed with the following error message : Access is denied. For more information, see the about_Remote_Trou b leshooting Help topic. + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace :RemoteRunspace) [], PSRemotingTransportException + FullyQualifiedErrorId : PSSessionOpenFailed C:\PS> new-pssession -computername Server01 Id Name ComputerName State Configuration Availability -- ---- ------------ ----- ------------- ------------ 1 Session1 Server01... Opened Microsoft.PowerShell Available C:\PS> enable-pssessionConfiguration -name * -force C:\PS> new-pssession -computername localhost Id Name ComputerName State Configuration Availability -- ---- ------------ ----- ------------- ------------ 1 Session1 localhost Opened Microsoft.PowerShell Available Описание ----------- В этом примере показан результат использования Disable-PSRemoting. Первая команда использует Disable-PSRemoting для отключения всех зарегистри рованных конфигураций сеансов на локальном компьютере. Вторая команда использует New-PSSession для создания удаленного сеанса для удаленного компьютера (также называется "замыкание на себя"). Поскольку кон фигурации сеанса, необходимые для этого сеанса, отключены, команда завершае тся ошибкой. Третья команда использует командлет New-PSSession для создания сеанса от ло кального компьютера к удаленному компьютеру Server01. Эта команда, использу ющая конфигурации сеанса на удаленном компьютере, успешно завершается. Четвертая команда использует командлет Enable-PSSessionConfiguration для по вторного включения всех конфигураций сеанса на локальном компьютере. Команд а использует значение * (все) в параметре Name. Пятая команда снова пытается создать сеанс с замыканием на себя, используя командлет New-PSSession. На этот раз команда завершается успешно, поскольку необходимая конфигурация сеанса включена. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>disable-psremoting -force C:\PS> get-psSessionConfiguration | format-table -property name, permission -auto Name Permission ---- ---------- microsoft.powershell Everyone AccessDenied, BUILTIN\Administrators Access Allowed microsoft.powershell32 Everyone AccessDenied, BUILTIN\Administrators Access Allowed C:\PS> enable-psremoting -force WinRM already is set up to receive requests on this machine. WinRM already is set up for remote management on this machine. C:\PS>> Get-PSSessionConfiguration | ft name, Permission -auto Name Permission ---- ---------- microsoft.powershell BUILTIN\Administrators AccessAllowed microsoft.powershell32 BUILTIN\Administrators AccessAllowed Описание ----------- В этом примере показано влияние на конфигурации сеанса использования Disabl e-PSRemoting и Enable-PSRemoting. Первая команда использует функцию Disable-PSRemoting для отключения всех за регистрированных конфигураций сеансов. Параметр Force подавляет все подтвер ждения пользователя. Вторая команда использует командлет Get-PSSessionConfiguration для отображе ния зарегистрированных конфигураций сеансов на локальном компьютере. Эта ко манда использует оператор конвейера для отправки результатов команде Format -Table, которая отображает только свойства Name и Permission конфигурации в таблице. В итоговой таблице показано, что разрешения для конфигурации запрещены. Третья команда использует командлет Enable-PSRemoting для повторного включе ния всех конфигураций сеанса на компьютере. Также можно использовать команд у "Enable-PsSessionConfiguration -name *". В команде используется параметр Force, чтобы подавить все сообщения пользователю и перезапустить службу Win RM без запроса подтверждения. Четвертая команда использует Get-PSSessionConfiguration и Format-Table для отображения имен и разрешений конфигураций сеанса. В результате показываетс я, что для членов группы "Администраторы" теперь открыт доступ к конфигурац иям сеанса. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144298 Enable-PSRemoting Disable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration WS-Management Provider Disable-PSSessionConfiguration ИМЯ Disable-PSSessionConfiguration ОПИСАНИЕ Запрещает доступ к конфигурациям сеанса на локальном компьютере. СИНТАКСИС Disable-PSSessionConfiguration [[-Name] <string[]>] [-Force] [-Confirm] [-W hatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Disable-PSSessionConfiguration запрещает всем пользователям компь ютера использовать конфигурацию сеанса для сеанса. Этот расширенный командл ет предназначен для использования системными администраторами и позволяет у правлять конфигурациями сеансов для пользователей. Командлет Disable-PSSessionConfiguration добавляет параметр "deny all" в де скриптор безопасности одной или нескольких зарегистрированных конфигураций сеанса. В результате можно отменять регистрацию, просматривать и изменять к онфигурации, однако использовать их в сеансе невозможно. Без параметров Disable-PSSessionConfiguration отключает конфигурацию Micros oft.PowerShell, которая является конфигурацией по умолчанию, используемой д ля сеансов. Пока пользователь не укажет другую конфигурацию, локальным и уд аленным пользователям запрещается создание каких-либо сеансов, выполняющих подключение к компьютеру. Чтобы отключить все конфигурации сеансов, используйте Disable-PSRemoting. ПАРАМЕТРЫ -Force [<SwitchParameter>] Подавляет все запросы подтверждения. По умолчанию выдается запрос на по дтверждение каждой операции. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает имена отключаемых конфигураций сеанса. Введите одно или нескольк о имен конфигурации. Подстановочные знаки разрешены. Строку, содержащую имя конфигурации или объект конфигурации сеанса, можно передать команд лету Disable-PSSessionConfiguration по конвейеру. Если этот параметр не указан, Disable-PSSessionConfiguration отключает конфигурацию сеанса Microsoft.PowerShell. Требуется? false Позиция? 1 Значение по умолчанию Microsoft.PowerShell Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfi guration, System.String Объект конфигурации сеанса или строку, содержащую имя конфигурации сеан са, можно передать командлету Disable-PSSessionConfiguration по конвейе ру. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запускать Windows PowerShel l командой "Запуск от имени администратора". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Disable-PSSessionConfiguration Описание ----------- Эта команда отключает конфигурацию сеанса Microsoft.PowerShell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>disable-pssessionConfiguration -name * Описание ----------- Эта команда удаляет с компьютера все зарегистрированные конфигурации сеансо в. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>disable-pssessionConfiguration -name Microsoft* -force Описание ----------- Эта команда отключает все конфигурации сеанса с именами, начинающимися с "M icrosoft". Команда использует параметр Force для подавления всех запросов п одтверждений от этой команды. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>Get-PSSessionConfiguration -name MaintenanceShell, AdminShell | Disab le-PSSessionConfiguration Описание ----------- Эта команда отключает конфигурации сеанса MaintenanceShell и AdminShell. Команда использует оператор конвейера (|) для отправки результатов команды Get-PSSessionConfiguration командлету Disable-PSSessionConfiguration. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>Get-PSSessionConfiguration | format-table -property Name, Permission -auto Name Permission ---- ---------- MaintenanceShell BUILTIN\Administrators AccessAllowed microsoft.powershell BUILTIN\Administrators AccessAllowed microsoft.powershell32 BUILTIN\Administrators AccessAllowed C:\PS> Disable-PSSessionConfiguration -name MaintenanceShell -force C:\PS> Get-PSSessionConfiguration | format-table -property Name, Permission -auto Name Permission ---- ---------- MaintenanceShell Everyone AccessDenied, BUILTIN\Administrators Access Allowed microsoft.powershell BUILTIN\Administrators AccessAllowed microsoft.powershell32 BUILTIN\Administrators AccessAllowed C:\PS> Set-PSSessionConfiguration -name MaintenanceShell -MaximumReceivedDa taSizePerCommandMB 60 ParamName ParamValue --------- ---------- psmaximumreceived... 60 "Restart WinRM service" WinRM service need to be restarted to make the changes effective. Do you wa nt to run the command "restart-service winrm"? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y C:\PS> new-pssession -computername localhost -configurationName Maintenance Shell [localhost] Connecting to remote server failed with the following error mes sage : Access is denied. For more information, see the about_Remote_Troubl eshooting Help topic. + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace :RemoteRunspace) [], PSRemotingTransportException + FullyQualifiedErrorId : PSSessionOpenFailed Описание ----------- В этом примере показан результат отключения конфигурации сеанса. Первая команда использует командлеты Get-SessionConfiguration и Format-Tabl e для отображения только свойств Name и Permission объектов конфигурации се анса. Этот табличный формат упрощает просмотр значений объектов. В результа те показывается, что членам группы "Администраторы" разрешено использование конфигураций сеанса. Вторая команда отключает конфигурацию сеанса MaintenanceShell с помощью ком андлета Disable-PSSessionConfiguration. Команда использует параметр Force д ля подавления всех запросов подтверждений. Третья команда идентична первой. В результате показывается, что по-прежнему можно получить объект, представляющий конфигурацию сеанса MaintenanceShell , даже если всем заблокирован к нему доступ. Запись "AccessDenied" приорите тна по отношению ко всем другим записям в дескрипторе безопасности. Четвертая команда использует командлет Set-PSSessionConfiguration для увели чения параметра MaximumDataSizePerCommandMB для конфигурации сеанса Mainten anceShell до 60. В результате команда завершается успешно, даже если всем з аблокирован доступ к конфигурации. Пятая команда пытается использовать конфигурацию сеанса MaintenanceShell в сеансе. Она использует командлет New-PSSession для создания нового сеанса и параметр ConfigurationName для указания конфигурации MaintenanceShell. В р езультате команда New-PSSession завершается ошибкой, поскольку пользователю запрещен доступ к конфигурации. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144299 about_Session_Configurations Enable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration WS-Management Provider Disable-WSManCredSSP ИМЯ Disable-WSManCredSSP ОПИСАНИЕ Отключает проверку подлинности поставщика услуг безопасности CredSSP на кли ентском компьютере. СИНТАКСИС Disable-WSManCredSSP [-Role] <string> [<CommonParameters>] ОПИСАНИЕ Командлет Disable-WSManCredSPP отключает проверку подлинности поставщика ус луг безопасности CredSSP на клиентском или серверном компьютере. При исполь зовании проверки подлинности CredSSP учетные данные пользователя передаются для проверки подлинности на удаленный компьютер. Этот тип проверки подлинн ости предназначен для команд, которые создают удаленный сеанс из другого уд аленного сеанса. Например, он используется в случаях, когда требуется запус тить фоновое задание на удаленном компьютере. Чтобы отключить с помощью этого командлета CredSSP на клиенте, необходимо у казать для параметра Role значение "Client". В этом случае командлет выполн яет следующие операции: - Отключает проверку подлинности CredSSP на клиенте. Параметру WS-Manag ement <localhost|имя_компьютера>\Client\Auth\CredSSP присваивается значение false. - Удаляет все значения WSMan/* из политики AllowFreshCredentials Window s CredSSP на клиенте. Чтобы отключить с помощью этого командлета CredSSP на сервере, необходимо у казать для параметра Role значение "Server". В этом случае командлет выполн яет следующие операции: - Отключает проверку подлинности CredSSP на сервере. Параметру WS-Manage ment <localhost|имя_компьютера>\Service\Auth\CredSSP присваивается значение false. Внимание При проверке подлинности CredSSP учетные данные пользователя деле гируются с локального компьютера на удаленный компьютер. Такой подход повыш ает угрозы безопасности удаленных операций. Если безопасность удаленного ко мпьютера нарушена, при передаче на него учетных данных эти данные могут быт ь использованы для управления сетевым сеансом. Для отключения проверки подлинности CredSSP используйте командлет Disable-W SManCredSSP. ПАРАМЕТРЫ -Role <string> Принимает одно из двух возможных значений: "Client" или "Server". Эти значения указывают, как следует отключить CredSSP — как клиент или как сервер. При использовании командлета для отключения CredSSP на клиенте (путем у казания для параметра Role значения "Client") командлет выполняет следу ющие операции: - Отключает проверку подлинности CredSSP на клиенте. Параметру WS-M anagement <localhost|имя_компьютера>\Client\Auth\CredSSP присваивается значение false. - Удаляет все значения WSMan/* из политики AllowFreshCredentials Wi ndows CredSSP на клиенте. При использовании командлета для отключения CredSSP на сервере (путем у казания для параметра Role значения "Server") командлет выполняет следу ющие операции: - Отключает проверку подлинности CredSSP на сервере. Параметру WS-Ma nagement <localhost|имя_компьютера>\Service\Auth\CredSSP присваивается значение false. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Для включения проверки подлинности CredSSP используйте командлет Enable -WSManCredSSP. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Disable-WSManCredSSP -Role Client Описание ----------- Эта команда отключает проверку подлинности CredSSP на клиенте, что предотвр ащает делегирование учетных данных серверам. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Disable-WSManCredSSP -Role Server Описание ----------- Эта команда отключает проверку подлинности CredSSP на сервере, что предотвр ащает делегирование учетных данных от клиентов. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141438 Connect-WSMan Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Disconnect-WSMan ИМЯ Disconnect-WSMan ОПИСАНИЕ Отключает клиент от службы WinRM на удаленном компьютере. СИНТАКСИС Disconnect-WSMan [-ComputerName <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Disconnect-WSMan отключает клиент от службы WinRM на удаленном ко мпьютере. Если сеанс WS-Management сохранен в переменной, объект сеанса ост ается в переменной, но состояние сеанса WS-Management изменяется на "Closed ". Этот командлет можно использовать в контексте поставщика WS-Management д ля отключения клиента от службы WinRM на удаленном компьютере. Однако его т акже можно использовать для отключения от службы WinRM на удаленных компьют ерах до перехода к поставщику WS-Management. Дополнительные сведения о том, как подключиться к службе WinRM на удаленном компьютере, см. в разделе Connect-WSMan. ПАРАМЕТРЫ -ComputerName <string> Задает компьютер, от которого нужно отключиться. Значение может быть по лным доменным именем, именем NetBIOS или IP-адресом. Чтобы задать локал ьный компьютер, введите имя компьютера, "localhost" или точку (.). Лока льный компьютер используется по умолчанию. Если пользователь и удаленны й компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Значение этого параметра можно передать командлету по кон вейеру. Примечание. Отключиться от локального узла (разорвать подключение по ум олчанию к локальному компьютеру) невозможно. Однако если к локальному к омпьютеру установлено отдельное подключение (например, путем использова ния имени компьютера), это подключение можно удалить с помощью командле та Disconnect-WSMan. Требуется? false Позиция? named Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Disconnect-WSMan -computer server01 C:\PS> cd WSMan: PS WSMan:\> PS WSMan:\> dir WSManConfig: Microsoft.WSMan.Management\WSMan::WSMan ComputerName Type ------------ ---- localhost Container Описание ----------- Эта команда удаляет подключение к удаленному компьютеру server01. Этот командлет обычно используется в контексте поставщика WS-Management для отключения от удаленного компьютера, в данном случае компьютера server01. Однако Disconnect-WSMan также можно использовать для удаления подключений к удаленным компьютерам до перехода к поставщику WSMan. Эти подключения исче знут из списка ComputerName. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141439 Connect-WSMan Disable-WSManCredSSP Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Enable-ComputerRestore ИМЯ Enable-ComputerRestore ОПИСАНИЕ Включает функцию восстановления системы на указанном диске файловой системы . СИНТАКСИС Enable-ComputerRestore [-Drive] <string[]> [-Confirm] [-WhatIf] [<CommonPar ameters>] ОПИСАНИЕ Командлет Enable-ComputerRestore включает функцию восстановления системы на одном или нескольких дисках файловой системы. В результате можно использов ать такие средства, как командлет Restore-Computer, для восстановления пред ыдущего состояния системы. По умолчанию функция восстановления системы включена на всех соответствующи х дисках, но ее можно отключить, например, с помощью командлета Disable-Com puterRestore. Чтобы включить (или повторно включить) функцию восстановления системы на любом диске, ее необходимо включить на системном диске (предвар ительно или одновременно). Чтобы определить состояние функции восстановлен ия системы для каждого диска, используйте программу Rstrui.exe. ПАРАМЕТРЫ -Drive <string[]> Задает диски файловой системы. Введите одну или несколько букв дисков ф айловой системы, указывая после каждой буквы двоеточие и обратную косую черту и используя кавычки, например, "C:\" или "D:\". Это обязательны й параметр. С помощью этого командлета нельзя включить функцию восстановления систе мы на удаленном сетевом диске, даже если он подключен к локальному комп ьютеру; кроме того, эту функцию нельзя включить на дисках, не подходящи х для ее использования, например, на внешних дисках. Чтобы включить функцию восстановления системы на любом диске, ее необхо димо включить на системном диске (предварительно или одновременно). Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлеты Disable-ComputerRestore и Enable-ComputerRestore работают то лько в клиентских операционных системах, таких как Windows Vista и Wind ows XP. Чтобы использовать командлет Enable-ComputerRestore в Windows Vista и б олее поздних версиях Windows, необходимо запускать Windows PowerShell к омандой "Запуск от имени администратора". Список дисков, подходящих для использования функции восстановления сист емы, см. на вкладке защиты системы ("Панель управления" > "Система"). Ч тобы открыть эту вкладку в Windows PowerShell, введите команду "SystemP ropertiesProtection". Этот командлет использует класс SystemRestore инструментария управления Windows (WMI). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>enable-computerrestore -drive "C:\" Описание ----------- Эта команда включает функцию восстановления системы на диске "С:" локальног о компьютера. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>enable-computerrestore -drive "C:\", "D:\" Описание ----------- Эта команда включает функцию восстановления системы на дисках "С:" и "D:" л окального компьютера. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135209 Disable-ComputerRestore Get-ComputerRestorePoint Restore-Computer Restart-Computer Enable-PSBreakpoint ИМЯ Enable-PSBreakpoint ОПИСАНИЕ Включает точки останова для текущей консоли. СИНТАКСИС Enable-PSBreakpoint [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<Comm onParameters>] Enable-PSBreakpoint [-Breakpoint] <Breakpoint[]> [-PassThru] [-Confirm] [-W hatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Enable-PSBreakpoint заново включает отключенные точки останова. С помощью этого командлета можно включить все точки останова или указать кон кретные точки, задав объекты точек останова или их идентификаторы. Точка останова — это точка в скрипте, на которой выполнение временно остана вливается, чтобы можно было проверить инструкции скрипта. Создаваемые точки останова включаются автоматически, однако их можно отключить с помощью ком андлета Disable-PSBreakpoint. Технически этот командлет изменяет значение свойства Enabled объекта точки останова на True. Enable-PSBreakpoint — это один из нескольких командлетов, предназначенных д ля отладки скриптов Windows PowerShell. Дополнительные сведения об отладчик е Windows PowerShell см. в разделе about_Debuggers. ПАРАМЕТРЫ -Breakpoint <Breakpoint[]> Задает точки останова для включения. Введите переменную, содержащую объ екты точек останова, либо команду, получающую объекты точек останова, н апример Get-PSBreakpoint. Кроме того, можно передать объекты точек оста нова командлету Enable-PSBreakpoint по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Нет. Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Id <Int32[]> Включает точки останова с указанными идентификаторами. По умолчанию исп ользуется значение "Все точки останова". Введите идентификаторы или пер еменную, которая их содержит. (Идентификаторы невозможно передать коман длету Enable-PSBreakpoint по конвейеру.) Чтобы определить идентификатор точки останова, используйте командлет Get-PSBreakpoint. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий включенную точку останова. По умолчан ию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Вывод отсутствует Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.Breakpoint Объект точки останова можно передать командлету Enable-PSBreakpoint по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.Breakpoint При использовании параметра PassThru командлет Enable-PSBreakpoint возв ращает объект точки останова, представляющий включенную точку останова. В противном случае этот командлет не формирует никаких выходных данных . ПРИМЕЧАНИЯ Командлет Enable-PSBreakpoint не возвращает ошибку при попытке включить уже включенную точку останова. Поэтому можно без проблем включать все точки останова сразу, даже если только некоторые из них были отключены. Точки останова включаются при их создании с помощью командлета Set-PSBr eakpoint. Нет необходимости включать вновь созданные точки останова. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-psbreakpoint | enable-psbreakpoint Описание ----------- Эта команда включает все точки останова для текущей консоли. Эту команду мо жно сократить следующим образом: "gbp | ebp". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>enable-psbreakpoint -id 0, 1, 5 Описание ----------- Эта команда включает точки останова с идентификаторами 0, 1 и 5. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$b = set-psbreakpoint -script sample.ps1 -variable Name C:\PS> $b | disable-psbreakpoint -passthru AccessMode : Write Variable : Name Action : Enabled : False HitCount : 0 Id : 0 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 C:\PS> $b | enable-psbreakpoint -passthru AccessMode : Write Variable : Name Action : Enabled : True HitCount : 0 Id : 0 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 Описание ----------- Эти команды заново включают ранее отключенную точку останова. Первая команда использует командлет Set-PSBreakpoint, чтобы создать точку о станова на переменной "Name" в скрипте Sample.ps1. После этого она сохраняе т в переменной $b объект точки останова. Вторая команда использует командлет Disable-PSBreakpoint, чтобы отключить э ту новую точку останова. С помощью оператора конвейера (|) объект точки ост анова в переменной $b передается командлету Disable-PSBreakpoint, и с помощ ью параметра PassThru командлета Disable-PSBreakpoint объект отключенной то чки останова выводится на экран. Это позволяет проверить, что свойство Enab led объекта точки останова имеет значение False. Третья команда использует командлет Enable-PSBreakpoint, чтобы заново включ ить эту точку останова. С помощью оператора конвейера (|) объект точки оста нова в переменной $b передается командлету Enable-PSBreakpoint, и с помощью параметра PassThru командлета Enable-PSBreakpoint объект точки останова вы водится на экран. Это позволяет проверить, что свойство Enabled объекта точ ки останова имеет значение True. Результаты показаны в следующем примере выходных данных. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$b = get-psbreakpoint -id 3, 5 C:\PS> enable-psbreakpoint -breakpoint $b Описание ----------- Эти команды включают набор точек останова путем указания соответствующих об ъектов точек останова. Первая команда с помощью командлета Get-PSBreakpoint получает точки останов а и сохраняет их в переменной $b. Вторая команда использует командлет Enable-PSBreakpoint с параметром Breakp oint, чтобы включить эти точки останова. Эта команда эквивалентна команде "enable-psbreakpoint -id 3, 5". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113295 about_Debuggers Set-PSBreakpoint Disable-PSBreakpoint Get-PSBreakpoint Remove-PSBreakpoint Get-PSCallStack Enable-PSRemoting ИМЯ Enable-PSRemoting ОПИСАНИЕ Настраивает компьютер для получения удаленных команд. СИНТАКСИС Enable-PSRemoting [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Enable-PSRemoting настраивает компьютер на получение удаленных ко манд Windows PowerShell, отправляемых с использованием технологии WS-Manage ment. Эту команду необходимо выполнить только один раз на каждом компьютере, кото рый будет получать команды. Ее не нужно выполнять на компьютерах, которые т олько отправляют команды. Поскольку конфигурация активирует прослушиватели, рекомендуется запускать ее только в случае необходимости. Командлет Enable-PSRemoting выполняет следующие операции. -- Выполняет Set-WSManQuickConfig командлет, который осуществляет следующие задачи. ----- Запускает службу WinRM. ----- Задает тип запуска службы WinRM как автоматический. ----- Создает прослушиватель, который принимает запросы на любой IP-адрес. ----- Разрешает исключение брандмауэра для связи WS-Management. -- Разрешает для всех зарегистрированных конфигураций сеанса Windows PowerS hell получение инструкций от удаленного компьютера. ----- Регистрирует конфигурацию сеанса "Microsoft.PowerShell", если она еще не зарегистрирована. ----- Регистрирует конфигурацию сеанса "Microsoft.PowerShell32" на компьюте рах с 64-разрядными ОС, если она еще не зарегистрирована. ----- Удаляет параметр "Deny Everyone" из дескриптора безопасности для всех зарегистрированных конфигураций сеанса. ----- Перезагружает службу WinRM, чтобы ранее внесенные изменения вступили в силу. Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и бо лее поздних версиях Windows, необходимо запускать Windows PowerShell команд ой "Запуск от имени администратора". ПАРАМЕТРЫ -Force [<SwitchParameter>] Подавляет все запросы подтверждения. По умолчанию выдается запрос на по дтверждение каждой операции. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.String Enable-PSRemoting возвращает строки, описывающие его результаты. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>enable-psremoting Описание ----------- Эта команда настраивает компьютер для получения удаленных команд. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>enable-psremoting -force Описание ----------- Эта команда настраивает компьютер для получения удаленных команд. Она испол ьзует параметр Force для подавления подтверждений. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144300 about_Remote about_Session_Configurations Disable-PSRemoting Get-PSSessionConfiguration Enable-PSSessionConfiguration Disable-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration WS-Management Provider Enable-PSSessionConfiguration ИМЯ Enable-PSSessionConfiguration ОПИСАНИЕ Разрешает доступ к конфигурациям сеанса на локальном компьютере. СИНТАКСИС Enable-PSSessionConfiguration [[-Name] <string[]>] [-Force] [-SecurityDescr iptorSDDL <string>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Enable-PSSessionConfiguration повторно включает зарегистрированны е конфигурации сеансов, которые были отключены с помощью командлета Disable -PSSessionConfiguration. Этот расширенный командлет предназначен для исполь зования системными администраторами и позволяет управлять конфигурациями се ансов для пользователей. Без параметров Enable-PSSessionConfiguration повторно включает конфигурацию Microsoft.PowerShell, которая является конфигурацией по умолчанию, использ уемой для сеансов. Этот командлет выполняет следующие операции для каждой включенной конфигура ции. -- Удаляет параметр "deny all" из дескриптора безопасности конфигурации или заменяет дескриптор безопасности одним из указанных. -- Включает прослушиватель, принимающий запросы по любому IP-адресу. -- Перезапускает службу WinRM. Командлет Enable-PSSessionConfiguration вызывает командлет Set-WSManQuickCo nfig. Однако его не следует использовать для обеспечения удаленного доступа к компьютеру. Вместо него следует использовать более сложный командлет Ena ble-PSRemoting. ПАРАМЕТРЫ -Force [<SwitchParameter>] Подавляет все запросы пользователю и перезапускает службу WinRM без зап роса подтверждения. Перезапуск службы обеспечивает вступление изменений конфигурации в силу. Чтобы предотвратить перезапуск и подавить запрос на перезапуск, использ уйте параметр NoServiceRestart. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает имена включаемых конфигураций сеанса. Введите одно или несколько имен конфигурации. Подстановочные знаки разрешены. Строку, содержащую имя конфигурации или объект конфигурации сеанса, мож но передать командлету Enable-PSSessionConfiguration по конвейеру. Если этот параметр не указан, Enable-PSSessionConfiguration включает ко нфигурацию сеанса Microsoft.PowerShell. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true -SecurityDescriptorSDDL <string> Заменяет дескриптор безопасности для конфигурации сеанса указанным деск риптором безопасности. Если этот параметр не указан, Enable-PSSessionConfiguration всего лишь удаляет элемент "deny all" из дескриптора безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfi guration, System.String Объект конфигурации сеанса или строку, содержащую имя конфигурации сеан са, можно передать командлету Enable-PSSessionConfiguration по конвейер у. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запускать Windows PowerShel l командой "Запуск от имени администратора". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Enable-PSSessionConfiguration Описание ----------- Эта команда повторно запускает конфигурацию сеансов Microsoft.PowerShell по умолчанию на компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Enable-PSSessionConfiguration -name MaintenanceShell, AdminShell Описание ----------- Эта команда повторно включает конфигурации сеанса MaintenanceShell и AdminS hell на компьютере. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Enable-PSSessionConfiguration -name * C:\PS> Get-PSSessionConfiguration | Enable-PSSessionConfiguration Описание ----------- Эти команды повторно включают все конфигурации сеансов на компьютере. Коман ды эквивалентны, поэтому можно использовать любую из них. Enable-PSSessionConfiguration не возвращает ошибки при включении уже включе нной конфигурации сеанса. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>Enable-PSSessionConfiguration -name MaintenanceShell -securityDescrip torSDDL "O:NSG:BAD:P(A;;GXGWGR;;;BA)(A;;GAGR;;;S-1-5-21-123456789-188441444 -3100496)S:P" Описание ----------- Эта команда повторно включает конфигурацию сеанса MaintenanceShell и задает для конфигурации новый дескриптор безопасности. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144301 about_Session_Configurations Disable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration WS-Management Provider Enable-WSManCredSSP ИМЯ Enable-WSManCredSSP ОПИСАНИЕ Включает проверку подлинности поставщика услуг безопасности CredSSP на клие нтском компьютере. СИНТАКСИС Enable-WSManCredSSP [-Role] <string> [[-DelegateComputer] <string>] [<Commo nParameters>] ОПИСАНИЕ Командлет Enable-WSManCredSPP включает проверку подлинности поставщика услу г безопасности CredSSP на клиентском или серверном компьютере. При использо вании проверки подлинности CredSSP учетные данные пользователя передаются д ля проверки подлинности на удаленный компьютер. Этот тип проверки подлиннос ти предназначен для команд, которые создают удаленный сеанс из другого удал енного сеанса. Например, он используется в случаях, когда требуется запусти ть фоновое задание на удаленном компьютере. Чтобы включить с помощью этого командлета CredSSP на клиенте, необходимо ук азать для параметра Role значение "Client". В этом случае командлет выполня ет следующие операции: - Включает проверку подлинности CredSSP на клиенте. Параметру WS-Manage ment <localhost|имя_компьютера>\Client\Auth\CredSSP присваивается значение true. - Присваивает политике AllowFreshCredentials Windows CredSSP на клиенте значение WSMan/Delegate. - Примечание. Эти значения параметров позволяют клиенту делегировать яв ные учетные данные серверу при проведении проверки подлинности сервера. Чтобы включить с помощью этого командлета CredSSP на сервере, необходимо ук азать для параметра Role значение "Server". В этом случае командлет выполня ет следующие операции: - Включает проверку подлинности CredSSP на сервере. Параметру WS-Managem ent <localhost|имя_компьютера>\Service\Auth\CredSSP присваивается значение true. - Примечание. Этот значение параметра политики позволяет серверу выступа ть в качестве делегата для клиентов. Внимание При проверке подлинности CredSSP учетные данные пользователя деле гируются с локального компьютера на удаленный компьютер. Такой подход повыш ает угрозы безопасности удаленных операций. Если безопасность удаленного ко мпьютера нарушена, при передаче на него учетных данных эти данные могут быт ь использованы для управления сетевым сеансом. Для отключения проверки подлинности CredSSP используйте командлет Disable-W SManCredSSP. ПАРАМЕТРЫ -DelegateComputer <string> Разрешает делегирование учетных данных клиента серверу или нескольким с ерверам, заданным данным параметром. Значением данного параметра должно быть полное доменное имя. Если параметр Role имеет значение "Client", параметр DelegateComputer я вляется обязательным. Если параметр Role имеет значение "Server", параметр DelegateComputer н е допускается. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Role <string> Принимает одно из двух возможных значений: "Client" или "Server". Эти значения указывают, как следует включить CredSSP — как клиент или как с ервер. Если параметр Role имеет значение "Client", командлет выполняет следующ ие операции: - Включает проверку подлинности CredSSP на клиенте. Параметру WS-Ma nagement <localhost|имя_компьютера>\Client\Auth\CredSSP присваивается з начение true. - Присваивает политике AllowFreshCredentials Windows CredSSP на кли енте значение WSMan/Delegate. - Примечание. Эти значения параметров позволяют клиенту делегироват ь явные учетные данные серверу при проведении проверки подлинности серв ера. Если параметр Role имеет значение "Server", командлет выполняет следующ ие операции: - Включает проверку подлинности CredSSP на сервере. Параметру WS-Man agement <localhost|имя_компьютера>\Service\Auth\CredSSP присваивается з начение true. - Примечание. Этот значение параметра политики позволяет серверу выс тупать в качестве делегата для клиентов. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ System.Xml.XmlElement Если проверка подлинности CredSSP успешно включена, этот командлет форм ирует объект XMLElement. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>enable-wsmancredssp -role client -delegatecomputer server02.accountin g.fabrikam.com cfg : http://schemas.microsoft.com/wbem/wsman/1/config/client/auth lang : en-US Basic : true Digest : true Kerberos : true Negotiate : true Certificate : true CredSSP : true Описание ----------- Эта команда разрешает делегирование учетных данных клиента компьютеру serve r02. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>enable-wsmancredssp -role client -delegatecomputer *.accounting.fabri kam.com cfg : http://schemas.microsoft.com/wbem/wsman/1/config/client/auth lang : en-US Basic : true Digest : true Kerberos : true Negotiate : true Certificate : true CredSSP : true Описание ----------- Эта команда разрешает делегирование учетных данных клиента всем компьютерам в домене "accounting.fabrikam.com". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>enable-wsmancredssp -role client -delegatecomputer server02.accountin g.fabrikam.com, server03.accounting.fabrikam.com, server04.accounting.fabri kam.com cfg : http://schemas.microsoft.com/wbem/wsman/1/config/client/auth lang : en-US Basic : true Digest : true Kerberos : true Negotiate : true Certificate : true CredSSP : true Описание ----------- Эта команда разрешает делегирование учетных данных клиента нескольким компь ютерам. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>enable-wsmancredssp -role server Описание ----------- Эта команда разрешает компьютеру выступать в качестве делегата для другого компьютера. Командлет Enable-WSManCredSSP (показанный в предыдущих примерах ) только включает проверку подлинности CredSSP на клиенте и задает удаленны е компьютеры, которые могут выступать от его имени. Чтобы удаленный компьют ер выступал в качестве делегата для клиента, элементу CredSSP в узле Servic e поставщика WSMan должно быть присвоено значение true. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>connect-wsman server02 set-item wsman:\server02\service\auth\credSSP -value $true Описание ----------- Эта команда разрешает компьютеру выступать в качестве делегата для другого компьютера. Показанные в предыдущих примерах команды Enable-WSManCredSSP вк лючают проверку подлинности CredSSP только на клиентском компьютере и задаю т удаленные компьютеры, которые могут выступать от имени клиентского компью тера. Чтобы удаленный компьютер выступал в качестве делегата для клиентског о компьютера, элементу CredSSP в каталоге Service поставщика WSMan должно б ыть присвоено значение true. В этом примере первая команда создает подключение к удаленному компьютеру s erver02. Вторая команда задает значение элемента credSSP на удаленном компьютере ser ver02, что позволяет компьютеру выступать в качестве делегата. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141442 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Enter-PSSession ИМЯ Enter-PSSession ОПИСАНИЕ Начинает интерактивный сеанс с удаленным компьютером. СИНТАКСИС Enter-PSSession [-ComputerName] <string> [-ApplicationName <string>] [-Auth entication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-CertificateThumbprint <string>] [-Configur ationName <string>] [-Credential <PSCredential>] [-Port <int>] [-SessionOpt ion <PSSessionOption>] [-UseSSL] [<CommonParameters>] Enter-PSSession [[-Id] <int>] [<CommonParameters>] Enter-PSSession [-InstanceId <Guid>] [<CommonParameters>] Enter-PSSession [-Name <string>] [<CommonParameters>] Enter-PSSession [[-Session] <PSSession>] [<CommonParameters>] Enter-PSSession [[-ConnectionURI] <Uri>] [-AllowRedirection] [-Authenticati on {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-CertificateThumbprint <string>] [-ConfigurationNam e <string>] [-Credential <PSCredential>] [-SessionOption <PSSessionOption>] [<CommonParameters>] ОПИСАНИЕ Командлет Enter-PSSession начинает интерактивный сеанс с одним удаленным ко мпьютером. В рамках этого сеанса вводимые команды выполняются на удаленном компьютере, как будто они вводятся непосредственно на удаленном компьютере. В любой момент времени может использоваться только один интерактивный сеан с. Обычно для этого командлета указывается параметр ComputerName, позволяющий задать имя удаленного компьютера. Также для создания интерактивного сеанса можно использовать сеанс, созданный с помощью командлета New-PSSession. Чтобы завершить интерактивный сеанс и отключиться от удаленного компьютера, используйте командлет Exit-PSSession или введите "exit". ПАРАМЕТРЫ -AllowRedirection [<SwitchParameter>] Разрешает перенаправление данного соединения на альтернативный универса льный код ресурса URI. При использовании параметра ConnectionURI удаленный узел может вернуть инструкцию с перенаправлением на другой URI. По умолчанию Windows Power Shell не перенаправляет соединения, но можно воспользоваться этим парам етром и разрешить перенаправление соединений. Разрешает перенаправление данного соединения на альтернативный URI. При использовании параметра ConnectionURI удаленный узел может вернуть инструкцию с перенаправлением на другой URI. По умолчанию Windows Power Shell не перенаправляет соединения, но можно воспользоваться параметром AllowRedirection и разрешить перенаправление соединений. Кроме того, можно ограничить число операций перенаправления подключения , присвоив соответствующее значение свойству MaximumConnectionRedirecti onCount привилегированной переменной $PSSessionOption или свойству Maxi mumConnectionRedirectionCount значения параметра SessionOption. Значени е по умолчанию равно 5. Дополнительные сведения см. в описании параметр а SessionOption, а также в разделе New-PSSessionOption. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ApplicationName <string> Задает сегмент имени приложения в URI подключения. Этот параметр служит для указания имени приложения, если в команде не используется параметр ConnectionURI. По умолчанию используется значение привилегированной переменной $PSSess ionApplicationName на локальном компьютере. Если эта привилегированная переменная не определена, используется значение по умолчанию "WSMAN". Э то значение подходит для большинства случаев. Дополнительные сведения с м. в разделе about_Preference_Variables. Служба WinRM использует имя приложения для выбора прослушивателя для об служивания запроса подключения. Значение этого параметра должно соответ ствовать значению свойства URLPrefix прослушивателя на удаленном компью тере. Требуется? false Позиция? named Значение по умолчанию WSMAN Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Authentication <AuthenticationMechanism> Задает механизм, используемый при проверке подлинности учетных данных п ользователя. Допустимые значения: "Default", "Basic", "Credssp", "Dig est", "Kerberos", "Negotiate" и "NegotiateWithImplicitCredential". По умолчанию используется значение "Default". Проверка подлинности CredSSP доступна только в Windows Vista, Windows S erver 2008 и более поздних версиях Windows. Сведения о значениях этого параметра см. в описании перечисления System .Management.Automation.Runspaces.AuthenticationMechanism в библиотеке M SDN по адресу http://go.microsoft.com/fwlink/?LinkId=144382 (на английс ком языке). Внимание Проверка подлинности CredSSP, при которой учетные данные поль зователя передаются на удаленный компьютер, предназначена для команд, к оторые должны пройти процедуру проверки подлинности на нескольких ресур сах, например при доступе к удаленному общему сетевому ресурсу. Такой м еханизм повышает угрозы безопасности удаленных операций. Если безопасно сть удаленного компьютера нарушена, передаваемые ему учетные данные мог ут использоваться для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CertificateThumbprint <string> Задает цифровой сертификат с открытым ключом (X509) учетной записи поль зователя, который располагает разрешением для выполнения этого действия . Введите отпечаток сертификата. Сертификаты используются при проверке подлинности на основе сертификата клиента. Их можно сопоставить только с учетными записями локальных пол ьзователей; они не работают с учетными записями доменов. Чтобы получить отпечаток сертификата, воспользуйтесь командой Get-Item или Get-ChildItem в Windows PowerShell на диске Cert:. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Начинает интерактивный сеанс с указанным удаленным компьютером. Необход имо ввести имя только одного компьютера. По умолчанию используется знач ение "Локальный компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескол ьких удаленных компьютеров. Кроме того, можно передать имя компьютера в Enter-PSSession с помощью конвейера. Для использования IP-адреса в значении параметра ComputerName в команду необходимо включить параметр Credential. Кроме того, необходимо настро ить компьютер на использование транспорта HTTPS или включить IP-адрес у даленного компьютера в список TrustedHosts WinRM на локальном компьютер е. Инструкции по добавлению имени компьютера в список TrustedHosts см. в статье "Добавление компьютера в список доверенных узлов" в разделе ab out_Remote_Troubleshooting. Примечание. Чтобы включить локальный компьютер в значение параметра Com puterName под управлением Windows Vista и более поздних версий Windows, необходимо запускать Windows PowerShell командой "Запуск от имени адми нистратора". Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -ConfigurationName <string> Задает конфигурацию сеанса используемого для интерактивного сеанса. Введите имя конфигурации или полный URI ресурса для конфигурации сеанса . Если указано только имя конфигурации, перед ним добавляется следующий URI схемы: http://schemas.microsoft.com/powershell. Конфигурация сеанса находится на удаленном компьютере. Если указанная к онфигурация сеанса не существует на удаленном компьютере, команда завер шается с ошибкой. По умолчанию используется значение привилегированной переменной $PSSess ionConfigurationName на локальном компьютере. Если значение этой привил егированной переменной не установлено, используется значение по умолчан ию "Microsoft.PowerShell". Дополнительные сведения см. в разделе about_ Preference_Variables. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -ConnectionURI <Uri> Задает универсальный идентификатор ресурса (URI), определяющий конечную точку соединения для интерактивного сеанса. Значение URI должно быть у казано полностью. Строка имеет следующий формат: <Транспорт>://<Имя_компьютера>:<Порт>/ По умолчанию используется следующее значение: http://localhost:80/WSMAN Допустимые значения сегмента транспорта в URI: HTTP и HTTPS. Если в ком анде не указан параметр ConnectionURI, для указания значений URI можно использовать параметры UseSSL, ComputerName, Port и ApplicationName. Если конечный компьютер перенаправляет соединение на другой URI, Window s PowerShell предотвращает перенаправление, если в команде не задан пар аметр AllowRedirection. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\User01" или "Use r@Domain.com", или введите объект PSCredential, например объект, возвра щаемый командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Id <int> Задает идентификатор существующего сеанса. Enter-PSSession использует у казанный сеанс для интерактивного сеанса. Чтобы определить идентификатор сеанса, используйте командлет Get-PSSess ion. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid> Указывает идентификатор экземпляра существующего сеанса. Enter-PSSessio n использует указанный сеанс для интерактивного сеанса. Значение идентификатора экземпляра представляет собой GUID. Чтобы опред елить идентификатор экземпляра сеанса, используйте командлет Get-PSSess ion. Также для указания существующего сеанса можно использовать парамет ры Session, Name и ID. Кроме того, для начала временного сеанса можно использовать параметр ComputerName. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Указывает понятное имя существующего сеанса. Enter-PSSession использует указанный сеанс для интерактивного сеанса. Если указанное имя соответствует нескольким сеансам, команда завершаетс я с ошибкой. Также для указания существующего сеанса можно использовать параметры Session, InstanceID и ID. Кроме того, для начала временного сеанса можно использовать параметр ComputerName. Для задания понятного имени сеанса используйте параметр Name командлета New-PSSession. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Port <int> Задает сетевой порт на удаленном компьютере, используемый для данной ко манды. По умолчанию используется значение "Порт 80" (HTTP-порт). Перед использованием альтернативного порта необходимо настроить прослуш иватель WinRM на удаленном компьютере на прослушивание этого порта. Для настройки прослушивателя используйте следующие команды: 1. winrm delete winrm/config/listener?Address=*+Transport=HTTP 2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port=" <номер-порта>"} Не используйте параметр Port, если этого можно избежать. Параметр порта , указанный в команде, распространяется на все компьютеры или сеансы, д ля которых используется эта команда. Параметр альтернативного порта мож ет позволить предотвратить выполнение этой команды на всех компьютерах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Session <PSSession> Задает сеанс Windows PowerShell (PSSession), который должен использоват ься для интерактивного сеанса. Этот параметр принимает объект сеанса. Т акже для указания PSSession можно использовать параметры Name, Instance ID и ID. Введите переменную, содержащую объект сеанса, или команду, создающую ил и получающую объект сеанса, например New-PSSession или Get-PSSession. К роме того, можно передать объект сеанса командлету Enter-PSSession по к онвейеру. С помощью данного параметра можно передать только один объект PSSession. Если во введенной переменной содержится несколько объектов PSSession, команда завершается с ошибкой. При вызове командлета Exit-PSSession или вводе ключевого слова EXIT инт ерактивный сеанс завершается, но созданный объект PSSession остается от крытым и доступен для использования в дальнейшем. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true -SessionOption <PSSessionOption> Устанавливает расширенные параметры сеанса. Введите объект SessionOptio n, созданный с помощью командлета New-PSSessionOption. Значения по умолчанию для параметров определяются значением привилегиро ванной переменной $PSSessionOption, если оно задано. В противном случае в сеансе используются системные значения по умолчанию. Описание параметров сеанса, включая значения по умолчанию, см. в раздел е New-PSSessionOption. Дополнительные сведения о привилегированной пере менной $PSSessionOption см. в разделе about_Preference_Variables. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Использует протокол SSL (Secure Sockets Layer) для установки подключени я к удаленному компьютеру. По умолчанию SSL не используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. UseSSL — это дополнительная мера защиты, которая позвол яет передавать данные по подключению HTTPS, а не по подключению HTTP. Если используется этот параметр, но установить SSL-соединение с портом, указанным в команде, не удается, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String или System.Management.Automation.Runspaces.PSSession Можно передать имя компьютера (строку) или объекта сеанса командлету En ter-PSSession по конвейеру. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ -- Чтобы подключиться к удаленному компьютеру, необходимо быть членом г руппы "Администраторы" на удаленном компьютере. -- Чтобы начать интерактивный сеанс с локальным компьютером под управле нием Windows Vista и более поздних версий Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". -- При использовании Enter-PSSession для интерактивного сеанса использу ется ваш профиль пользователя на удаленном компьютере. Команды, содержа щиеся в профиле пользователя на удаленном компьютере, включая команды д ля добавления оснасток Windows PowerShell и изменения командной строки, выполняются перед отображением командной строки удаленного компьютера. -- Для интерактивного сеанса Enter-PSSession использует культуру пользо вательского интерфейса, установленную на локальном компьютере. Чтобы оп ределить культуру пользовательского интерфейса, установленного на локал ьном компьютере, используйте автоматическую переменную $UICulture. -- Для выполнения команды Enter-PSSession требуются командлеты Get-Comm and, Out-Default и Exit-PSSession. Если эти командлеты не включены в ко нфигурацию сеанса на удаленном компьютере, команда Enter-PSSession заве ршается с ошибкой. -- В отличие от команды Invoke-Command, которая выполняет синтаксически й разбор и интерпретирует команды перед их отправкой на удаленный компь ютер, команда Enter-PSSession сразу отправляет команды на удаленный ком пьютер, не интерпретируя их. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Enter-PSSession LocalHost\PS> Описание ----------- Эта команда запускает на локальном компьютере интерактивный сеанс. Командна я строка изменяется, чтобы указать, что команды выполняются в рамках другог о сеанса. Команды, вводимые пользователей, запускаются в рамках нового сеанса, а резу льтаты возвращаются в сеанс по умолчанию в текстовом формате. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>enter-pssession -computer Server01 Server01\PS> get-process powershell > C:\ps-test\process.txt Server01\PS> exit-pssession C:\PS> C:\PS> dir C:\ps-test\process.txt Get-ChildItem : Cannot find path 'C:\ps-test\process.txt' because it does n ot exist. At line:1 char:4 + dir < c:\ps-test\process.txt Описание ----------- Эта команда демонстрирует работу с интерактивным сеансом с удаленным компью тером. Первая команда создает интерактивный сеанс с удаленным компьютером Server01 с использованием командлета Enter-PSSession. Когда сеанс будет создан, в к омандную строку будет включено имя компьютера. Вторая команда получает процесс PowerShell и перенаправляет вывод в файл Pr ocess.txt. Команда передается на удаленный компьютер, и файл сохраняется на удаленном компьютере. В третьей команде используется ключевое слово Exit для завершения интеракти вного сеанса и отключения от удаленного компьютера. Четвертая команда позволяет убедиться в том, что файл Process.txt сохранен на удаленном компьютере. Команда Get-ChildItem ("dir"), запущенная на локал ьном компьютере, не может найти файл. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s = new-pssession -computername Server01 C:\PS> Enter-PSSession -session $s Server01\PS> Описание ----------- Эти команды используют параметр Session команды Enter-PSSession для создани я интерактивного сеанса с помощью существующего сеанса Windows PowerShell ( PSSession). -------------------------- ПРИМЕР 4 -------------------------- C:\PS>Enter-PSSession -computername Server01 -port 90 -credential domain01\ user01 Server01\PS> Описание ----------- Эта команда создает интерактивный сеанс с компьютером Server01. В ней испол ьзуются параметр Port для указания порта и параметр Credential для указания учетной записи пользователя, который располагает разрешением для подключен ия к удаленному компьютеру. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>Enter-PSSession -computername Server01 Server01:\PS> Exit-PSSession C:\PS> Описание ----------- В этом примере демонстрируется создание и завершение интерактивного сеанса. Первая команда создает интерактивный сеанс с компьютером Server01 с исполь зованием командлета Enter-PSSession. Вторая команда использует командлет Exit-PSSession для завершения сеанса. Д ля завершения интерактивного сеанса также можно использовать ключевое слово Exit. Результаты использования Exit-PSSession и Exit совпадают. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135210 about_PSSessions about_Remote New-PSSession Get-PSSession Exit-PSSession Remove-PSSession Invoke-Command Environment ИМЯ ПОСТАВЩИКА Environment ДИСКИ Env: ОПИСАНИЕ Предоставляет доступ к переменным среды Windows. ОПИСАНИЕ Поставщик Windows PowerShell Environment позволяет извлекать, добавлять, из менять, очищать и удалять переменные среды Windows в Windows PowerShell. Поставщик Environment представляет собой плоское пространство имен, содержа щее только объекты, представляющие переменные среды. У данных переменных не т дочерних элементов. Каждая переменная среды является экземпляром класса System.Collections.Dict ionaryEntry. Имя переменной является ключом словаря. Значение переменной ср еды является значением словаря. Поставщик Environment отображает свое хранилище данных как диск Env:. Для р аботы с переменными среды перейдите на диск Env: ("set-location env:") или работайте с другого диска Windows PowerShell. Для ссылки на переменную сред ы из другого положения следует использовать в пути имя диска "Env:". Поставщик переменных среды поддерживает все командлеты, содержащие существи тельное Item, кроме Invoke-Item. Кроме того, он поддерживает командлеты Get -Content и Set-Content. Однако он не поддерживает командлеты, содержащие су ществительное ItemProperty, и не поддерживает параметр Filter в любом коман длете. Переменные среды должны именоваться в соответствии с обычными стандартами. Кроме того, имя не может содержать знак равенства (=). Все изменения в переменных среды затрагивают только текущий сеанс. Чтобы со хранить изменения, добавьте их в профиль Windows PowerShell или воспользуйт есь командлетом Export-Console для сохранения текущего сеанса. ВОЗМОЖНОСТИ ЗАДАЧИ ЗАДАЧА: Обращение к диску Env: -------------------------- ПРИМЕР 1 -------------------------- Эта команда меняет текущее положение на диск Env:. set-location env: Эту команду можно использовать с любого диска в оболочке Windows PowerS hell. Чтобы вернуться к диску файловой системы, введите имя диска. Напр имер, введите следующую команду: set-location c: ЗАДАЧА: Извлечение переменных среды -------------------------- ПРИМЕР 1 -------------------------- Эта команда возвращает список всех переменных среды в текущем сеансе: get-childitem -path env: Эту команду можно использовать с любого диска Windows PowerShell. -------------------------- ПРИМЕР 2 -------------------------- Это команда возвращает переменную среды WINDIR: get-childitem -path env:windir -------------------------- ПРИМЕР 3 -------------------------- Эта команда возвращает список всех переменных среды в текущем сеансе и сортирует их по имени: get-childitem | sort-object -property name По умолчанию переменные среды появляются в порядке их обнаружения в обо лочке Windows PowerShell. Эта команда выполняется на диске Env:. При запуске этой команды с другого диска добавьте параметр Path со знач ением Env:. ЗАДАЧА: Создание новой переменной среды -------------------------- ПРИМЕР 1 -------------------------- Эта команда создает переменную среды USERMODE со значением Non-Admin: new-item -path . -name USERMODE -value Non-Admin Так как текущим местоположением является диск Env:, значение параметра Path — точка (.). Точка обозначает текущее местоположение. Если текущем местоположением не является диск Env:, значением параметра Path должно быть Env:. ЗАДАЧА: Отображение свойств и методов переменных среды -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Get-ChildItem для получения всех перем енных среды: get-childitem -path env: | get-member Результаты с помощью оператора конвейера (|) передаются командлету Get- Member, который отображает методы и свойства объекта. При передаче командлету Get-Member по конвейеру коллекции объектов, нап ример коллекции переменных среды на диске Env:, командлет Get-Member об рабатывает каждый объект коллекции отдельно. Затем командлет Get-Member возвращает информацию о каждом найденном типе объекта. Если все объект ы принадлежат к одному типу, выводятся сведения о единственном типе объ екта. В данном случае все переменные среды являются объектами Dictionar yEntry. Для получения сведений о коллекции объектов DictionaryEntry используйте параметр InputObject командлета Get-Member. Например, введите следующу ю команду: get-member -inputobject (get-childitem env:) При использовании параметра InputObject командлет Get-Member выполняет оценку всей коллекции, а не отдельных объектов из нее. -------------------------- ПРИМЕР 2 -------------------------- Эта команда перечисляет значения свойств переменной среды WINDIR: get-item env:windir | format-list -property * Она использует командлет Get-Item для получения объекта, представляющег о переменную среды WINDIR. Оператор конвейера (|) передает результаты к оманде Format-List. Команда использует параметр Property с подстановочн ым знаком (*) для форматирования и отображения значений всех свойств пе ременной среды WINDIR. ЗАДАЧА: Изменение свойств переменной среды -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Rename-Item для изменения имени создан ной переменной среды USERMODE на USERROLE: rename-item -path env:USERMODE -newname USERROLE Это изменение затрагивает свойства Name, Key и PSPath объекта Dictionar yEntry. Не изменяйте имена переменных среды, используемых системой. Хотя эти из менения затрагивают только текущий сеанс, они могут привести к некоррек тному поведению системы или программы. -------------------------- ПРИМЕР 2 -------------------------- Эта команда использует командлет Set-Item для присвоения переменной сре ды USERROLE значения Administrator: set-item -path env:USERROLE -value Administrator ЗАДАЧА: Копирование переменной среды -------------------------- ПРИМЕР 1 -------------------------- Эта команда копирует значение переменной среды USERROLE в переменную ср еды USERROLE2: copy-item -path env:USERROLE -destination env:USERROLE2 ЗАДАЧА: Удаление переменной среды -------------------------- ПРИМЕР 1 -------------------------- Эта команда удаляет переменную среды USERROLE2 из текущего сеанса: remove-item -path env:USERROLE2 Эту команду можно использовать на любом диске Windows PowerShell. Если диск Env: уже открыт, имя диска в пути можно не указывать. -------------------------- ПРИМЕР 2 -------------------------- Эта команда удаляет переменную среды USERROLE. clear-item -path env:USERROLE ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ ПРИМЕЧАНИЯ Поставщик Environment не поддерживает динамические параметры. ССЫЛКИ ПО ТЕМЕ about_Providers Exit-PSSession ИМЯ Exit-PSSession ОПИСАНИЕ Завершает интерактивный сеанс с удаленным компьютером. СИНТАКСИС Exit-PSSession [<CommonParameters>] ОПИСАНИЕ Командлет Exit-PSSession завершает интерактивные сеансы, созданные с помощь ю командлета Enter-PSSession. Для завершения интерактивного сеанса также можно использовать ключевое слов о Exit. Результат использования ключевого слова не отличается от результата использования командлета Exit-PSSession. ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Объекты невозможно передать командлету Exit-PSSession по конвейеру. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Этот командлет принимает только общие параметры. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Enter-PSSession -computername Server01 Server01\PS> Exit-PSSession C:\PS> Описание ----------- Эти команды создают и затем завершают интерактивный сеанс с удаленным компь ютером Server01. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$s = new-pssession -computername Server01 C:\PS> Enter-PSSession -session $s Server01\PS> Exit-PSSession C:\PS> $s Id Name ComputerName State ConfigurationName -- ---- ------------ ----- ----------------- 1 Session1 Server01 Opened Microsoft.PowerShell Описание ----------- Эти команды создают и завершают интерактивный сеанс с компьютером Server01 с использованием сеанса Windows PowerShell (PSSession). Поскольку интерактивный сеанс создается с использованием сеанса Windows Pow erShell (PSSession), объект PSSession остается доступным после завершения и нтерактивного сеанса. При использовании параметра ComputerName Enter-PSSess ion создает временный сеанс, который завершается при завершении интерактивн ого сеанса. Первая команда использует командлет New-PSSession для создания сеанса PSSes sion на компьютере Server01. Команда сохраняет сеанс PSSession в переменной $s. Вторая команда создает интерактивный сеанс с использованием командлета Ente r-PSSession и сеанса PSSession, сохраненного в переменной $s. Третья команда завершает интерактивный сеанс с использованием командлета Ex it-PSSession. Последняя команда выводит сеанс PSSession, сохраненный в переменной $s. Зна чение свойства State указывает на то, что сеанс PSSession по-прежнему откры т и доступен для использования. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Enter-PSSession -computername Server01 Server01\PS> exit C:\PS> Описание ----------- Эта команда использует ключевое слово Exit для завершения интерактивного се анса, который был создан с использованием командлета Enter-PSSession. Резул ьтат использования ключевого слова Exit не отличается от результата использ ования командлета Exit-PSSession. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135212 about_PSSessions about_Remote Enter-PSSession New-PSSession Get-PSSession Remove-PSSession Invoke-Command Export-Alias ИМЯ Export-Alias ОПИСАНИЕ Экспортирует сведения об определенных на текущий момент псевдонимах в файл. СИНТАКСИС Export-Alias [-Path] <string> [[-Name] <string[]>] [-Append] [-As {Csv | Sc ript}] [-Description <string>] [-Force] [-NoClobber] [-PassThru] [-Scope <s tring>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Export-Alias экспортирует псевдонимы в текущем сеансе в файл. Есл и файл вывода не существует, этот командлет создаст его. Командлет Export-Alias позволяет экспортировать псевдонимы из отдельной обл асти или из всех областей. Кроме того, он может сформировать данные в форма те CSV или в виде набора команд Set-Alias, которые можно добавить в сеанс и ли в профиль Windows PowerShell. ПАРАМЕТРЫ -Append [<SwitchParameter>] Добавляет вывод в указанный файл вместо перезаписи содержимого этого фа йла. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -As <ExportAliasFormat> Определяет формат вывода. По умолчанию используется формат CSV. Допустимые значения: -- CSV: формат значений, разделенных запятыми (CSV); -- Script: создает команду Set-Alias для каждого экспортируемого псевдо нима. Если выходной файл имеет расширение PS1, его можно запускать в ка честве скрипта для добавления псевдонимов к любому сеансу. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Description <string> Добавляет описание в экспортируемый файл. Описание включается в начало файла после заголовка в виде комментария. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Перезаписывает выходной файл, даже если для него установлен атрибут "то лько чтение". По умолчанию командлет Export-Alias перезаписывает файлы без предупрежд ения, если для файла не установлен атрибут "только чтение" или "скрытый " или в команде используется параметр NoClobber. Параметр NoClobber име ет приоритет по отношению к параметру Force, если в команде указаны оба параметра. Параметр Force не делает возможной перезапись файлов с атрибутом "скрыт ый" с помощью командлета Export-Alias. Требуется? false Позиция? named Значение по умолчанию Не перезаписывать файлы, доступные только для чтения. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает имена экспортируемых псевдонимов. Подстановочные знаки разрешены . По умолчанию командлет Export-Alias экспортирует все псевдонимы в преде лах сеанса или области. Требуется? false Позиция? 2 Значение по умолчанию Экспорт всех псевдонимов Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -NoClobber [<SwitchParameter>] Предотвращает перезапись файлов командлетом Export-Alias, даже если в к оманде указан параметр Force. Если параметр NoClobber опущен, командлет Export-Alias перезапишет имею щийся файл без предупреждения, если только у этого файла нет атрибута " только чтение". Параметр NoClobber имеет приоритет по отношению к парам етру Force, который делает возможной перезапись файла с атрибутом "толь ко чтение" с помощью командлета Export-Alias. Параметр NoClobber не препятствует тому, чтобы содержимое добавлялось к имеющемуся файлу с помощью параметра Append. Требуется? false Позиция? named Значение по умолчанию Перезапись файлов, доступных тольк о для чтения. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объекты, представляющие экспортированные псевдонимы. По умол чанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Вывод отсутствует Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к выходному файлу. При этом можно использовать подстановочн ые знаки, но итоговый путь должен разрешаться в одно имя файла. Это обя зательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <string> Задает область, из которой должны быть экспортированы псевдонимы. Допустимые значения: "Global", "Local", "Script" или число относительно текущей области (от 0 до количества областей, где 0 — текущая область, а 1 — ее родительская область). По умолчанию используется значение "Lo cal". Дополнительные сведения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Local Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет. Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.AliasInfo Если задан параметр Passthru, командлет Export-Alias возвращает объект System.Management.Automation.AliasInfo, представляющий псевдоним. В про тивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Export-Alias можно применять только для экспорта в файл. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>export-alias -path alias.csv Описание ----------- Эта команда экспортирует текущие сведения о псевдонимах в файл Alias.csv, н аходящийся в текущем каталоге. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>export-alias -path alias.csv -noclobber Описание ----------- Эта команда экспортирует псевдонимы текущего сеанса в файл Alias.csv. Поскольку указан параметр NoClobber, выполнение команды закончится сбоем, е сли в текущем каталоге уже есть файл Alias.csv. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>export-alias -path alias.csv -append -description "Appended Aliases" -force Описание ----------- Эта команда добавляет псевдонимы текущего сеанса в файл Alias.csv. Чтобы добавить описание к комментариям в начале файла, в этой команде испол ьзуется параметр Description. Кроме того, команда использует параметр Force, чтобы перезаписать все имеющ иеся файлы Alias.csv, даже если у них есть атрибут "только чтение". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>export-alias -path alias.ps1 -as script C:\PS> add-content -path $profile -value (get-content alias.ps1) C:\PS> $s = new-pssession -computername Server01 C:\PS> invoke-command -session $s -filepath .\alias.ps1 Описание ----------- В этом примере показано, как использовать файл скрипта, создаваемый командл етом Export-Alias. Первая команда экспортирует псевдонимы текущего сеанса в файл Alias.ps1. В ней используется параметр As, имеющий значение Script, чтобы создаваемый фа йл содержал команду Set-Alias для каждого из псевдонимов. Вторая команда добавляет псевдонимы в файле Alias.ps1 к профилю CurrentUser -CurrentHost. (Путь к профилю сохраняется в переменной $profile.) Команда и спользует командлет Get-Content, чтобы получить псевдонимы из файла Alias.p s1, и командлет Add-Content, чтобы добавить их к профилю. Дополнительные св едения см. в разделе about_Profiles. Третья и четвертая команды добавляют псевдонимы из файла Alias.ps1 к удален ному сеансу на компьютере Server01. Третья команда создает сеанс с помощью командлета New-PSSession. Четвертая команда с помощью параметра FilePath ко мандлета Invoke-Command запускает файл Alias.ps1 в новом сеансе. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113296 Import-Alias Get-Alias New-Alias Set-Alias Export-Clixml ИМЯ Export-Clixml ОПИСАНИЕ Создает XML-представление объекта или объектов и сохраняет его в файле. СИНТАКСИС Export-Clixml [-Path] <string> -InputObject <psobject> [-Depth <int>] [-Enc oding <string>] [-Force] [-NoClobber] [-Confirm] [-WhatIf] [<CommonParamete rs>] ОПИСАНИЕ Командлет Export-Clixml создает XML-представление объекта или объектов и со храняет его в файле. После этого с помощью командлета Import-CLIXML можно в оссоздать сохраненный объект на основе содержимого этого файла. Этот командлет аналогичен командлету ConvertTo-XML, за исключением того, чт о Export-Clixml сохраняет полученный XML-код в файл. Командлет ConvertTo-XM L возвращает XML-код, чтобы его можно было далее обрабатывать с помощью Win dows PowerShell. ПАРАМЕТРЫ -Depth <int> Задает число уровней вложенных объектов, которые включаются в XML-предс тавление. По умолчанию используется значение 2. Значение по умолчанию можно переопределить для типа объекта в файлах Ty pes.ps1xml. Дополнительные сведения см. в разделе about_Types.ps1xml. Требуется? false Позиция? named Значение по умолчанию 2 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Encoding <string> Задает кодировку целевого файла. Допустимые значения: ASCII, UTF8, UTF7 , UTF32, Unicode, BigEndianUnicode, Default и OEM. По умолчанию использ уется значение UTF8. Требуется? false Позиция? named Значение по умолчанию UTF8 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Указывает командлету снять для файла вывода атрибут "только чтение", ес ли это необходимо. Когда выполнение команды завершится, командлет попы тается заново установить атрибут "только чтение". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объект, подлежащий преобразованию. Введите переменную, содержащу ю объекты, либо команду или выражение для получения объектов. Кроме тог о, можно передать объекты командлету Export-Clixml по конвейеру. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -NoClobber [<SwitchParameter>] Не позволяет командлету перезаписать содержимое существующего файла. По умолчанию если файл существует по указанному пути, командлет Export-Cl ixml перезаписывает файл без предупреждения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к файлу, в котором будет сохранено XML-представление объект а. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Export-Clixml по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.IO.FileInfo Командлет Export-Clixml создает файл, содержащий XML-код. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>"This is a test" | export-clixml sample.xml Описание ----------- Эта команда создает XML-файл, который содержит представление строки "This i s a test". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-acl C:\test.txt | export-clixml -Path fileacl.xml C:\PS> $fileacl = import-clixml fileacl.xml Описание ----------- В этом примере показано, как экспортировать объект в XML-файл, а затем созд ать объект путем импорта из XML-файла. В первой команде используется командлет Get-ACL, чтобы получить дескриптор безопасности файла Test.txt. С помощью оператора конвейера этот дескриптор безопасности передается командлету Export-Clixml, который сохраняет XML-пре дставление объекта в файле FileACL.xml. Во второй команде с помощью командлета Import-Clixml из XML-кода, содержаще гося в файле FileACL.xml, создается объект. После этого объект сохраняется в переменной $FileAcl. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113297 Import-Clixml ConvertTo-XML Export-Csv ConvertTo-Html Export-Console ИМЯ Export-Console ОПИСАНИЕ Экспортирует имена оснасток в текущем сеансе в файл консоли. СИНТАКСИС Export-Console [[-Path] <string>] [-Force] [-NoClobber] [-Confirm] [-WhatIf ] [<CommonParameters>] ОПИСАНИЕ Командлет Export-Console экспортирует имена оснасток Windows PowerShell (PS Snapin) в текущем сеансе в файл консоли Windows PowerShell (PSC1). Можно ис пользовать этот командлет, чтобы сохранить оснастки для использования в пос ледующих сеансах. Чтобы добавить оснастку в файл консоли PSC1 для сеанса, запустите Windows P owerShell (Powershell.exe) из командной строки с помощью Cmd.exe или другог о сеанса Windows PowerShell и воспользуйтесь параметром PSConsoleFile при в ызове Powershell.exe для указания файла консоли. Дополнительные сведения об оснастках Windows PowerShell см в разделе about_ PSSnapins. ПАРАМЕТРЫ -Force [<SwitchParameter>] Перезаписывает данные в файле консоли без предупреждения, даже если фай л имеет атрибут "только для чтения". Атрибут "только для чтения" изменя ется и не восстанавливается после завершения команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoClobber [<SwitchParameter>] Не будет перезаписывать существующий файл консоли (то есть заменять его содержимое). По умолчанию, если файл существует по указанному пути, ко мандлет Export-Console перезаписывает файл без предупреждения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Указывает путь и имя файла для файла консоли (*.psc1). Введите путь (не обязательно) и имя. Подстановочные знаки запрещены. Если введено только имя файла, командлет Export-Console создает файл с этим именем и расширением ".psc1" в текущем каталоге. Этот параметр является обязательным, если Windows PowerShell не был зап ущен с параметром PSConsoleFile или в течение текущего сеанса не экспор тировался файл консоли. Он также требуется, если для предотвращения пер езаписи текущего файла консоли используется параметр NoClobber. Если пропустить этот параметр, командлет Export-Console перезаписывает (заменяет содержимое) последнего файла консоли, использовавшегося во вр емя этого сеанса. Путь к последнему использовавшемуся файлу консоли сох раняется в автоматической переменной $ConsoleFilename. Дополнительные с ведения см. в разделе about_Automatic_Variables. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать строку пути командлету Export-Console по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.IO.FileInfo Export-Console создает файл, содержащий экспортированные псевдонимы. ПРИМЕЧАНИЯ Если для создания сеанса используется файл консоли (PSC1), имя файла ко нсоли автоматически сохраняется в автоматической переменной $ConsoleFil ename. При использовании параметра Path командлета Export-Console для указания нового файла консоли значение переменной $ConsoleFilename обно вляется. Если файл консоли не используется, значение переменной $Consol eFileName не определено ($null). Чтобы использовать файл консоли Windows PowerShell в новом сеансе, кома нда запуска Windows PowerShell должна иметь следующий формат: "powershell.exe -PsConsoleFile <файл консоли>.psc1". Можно также сохранить оснастки Windows PowerShell для использования в б удущих сеансах, добавив команду Add-PSSnapin в свой профиль Windows Pow erShell. Дополнительные сведения см. в разделе about_Profiles. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>export-console -path $pshome\Consoles\ConsoleS1.psc1 Описание ----------- Эта команда экспортирует имена оснасток Windows PowerShell в текущем сеансе в файл ConsoleS1.psc1 в подкаталоге Consoles каталога установки Windows Po werShell, $pshome. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>export-console Описание ----------- Эта команда экспортирует имена оснасток Windows PowerShell из текущего сеан са в файл консоли Windows PowerShell, который использовался во время текуще го сеанса последним. Содержимое файла будет перезаписано. Если экспорт консоли в текущем сеансе не производился, пользователю предлаг ается подтвердить выполнение команды, а затем ввести имя файла. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>add-pssnapin NewPSSnapin C:\PS> export-console -path NewPSSnapinConsole.psc1 C:\PS> powershell.exe -PsConsoleFile NewPsSnapinConsole.psc1 Описание ----------- Эти команды добавляют новую оснастку Windows PowerShell NewPSSnapin в текущ ий сеанс, экспортируют имена оснасток Windows PowerShell в текущем сеансе в файл консоли и запускают сеанс Windows PowerShell с использованием файла к онсоли. Первая команда добавляет новую оснастку NewPSSnapin в текущий сеанс при пом ощи командлета Add-PSSnapin. Добавлять можно только те оснастки Windows Pow erShell, которые зарегистрированы в данной системе. Вторая команда экспортирует имена оснасток Windows PowerShell в файл NewPSS napinConsole.psc1. Третья команда запускает Windows PowerShell с использованием файла NewPSSna pinConsole.psc1. Поскольку в файл консоли добавлено имя надстройки Windows PowerShell, в текущем сеансе можно использовать командлеты и поставщики, ко торые поддерживаются оснасткой. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>export-console -path Console01 C:\PS> notepad console01.psc1 <?xml version="1.0" encoding="utf-8"?> <PSConsoleFile ConsoleSchemaVersion="1.0"> <PSVersion>2.0</PSVersion> <PSSnapIns> <PSSnapIn Name="NewPSSnapin" /> </PSSnapIns> </PSConsoleFile> Описание ----------- Эта команда экспортирует имена оснасток Windows PowerShell в текущем сеансе в файл Console01.psc1 в текущем каталоге. Вторая команда отображает содержимое файла Console01.psc1 в "Блокноте". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>powershell.exe -PSConsoleFile Console01.psc1 C:\PS> add-pssnapin MySnapin C:\PS> export-console NewConsole.psc1 C:\PS> $consolefilename C:\PS> add-pssnapin SnapIn03 C:\PS> export-console Описание ----------- В этом примере демонстрируется использование автоматической переменной $Con soleFileName для определения файла консоли, который будет обновлен при вызо ве командлета Export-Console без параметра Path. В первой команде используется параметр PSConsoleFile файла PowerShell.exe, позволяющий запустить Windows PowerShell с файлом консоли Console01.psc1. Во второй команде оснастка MySnapin Windows PowerShell добавляется в текущи й сеанс с использованием командлета Add-PSSnapin. В третьей команде имена всех оснасток Windows PowerShell в сеансе экспортир уются в файл NewConsole.psc1 с использованием командлета Export-Console. В четвертой команде параметр $ConsoleFilename используется для отображения последнего использовавшегося файла консоли. Пример выходных данных показыва ет, что последним использовался файл NewConsole.ps1. В пятой команде в текущую консоль добавляется оснастка SnapIn03. В шестой команде выполняется вызов командлета ExportConsole без параметра P ath. Эта команда экспортирует имена всех оснасток Windows PowerShell в теку щем сеансе в последний использовавшийся файл NewConsole.psc1. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113298 Add-PSSnapin Get-PSSnapin Remove-PSSnapin Export-Counter ИМЯ Export-Counter ОПИСАНИЕ Командлет Export-Counter получает объекты PerformanceCounterSampleSet и экс портирует их в файлы журналов счетчиков. СИНТАКСИС Export-Counter [-Path] <string> -InputObject <PerformanceCounterSampleSet[] > [-Circular <switch>] [-FileFormat <string>] [-Force <switch>] [-MaxSize int>] [<CommonParameters>] ОПИСАНИЕ Командлет Export-Counter экспортирует данные счетчиков производительности ( объекты PerformanceCounterSampleSet) в файлы журналов в формате двоичного ж урнала производительности (BLG), значений, разделенных запятыми (CSV) и зна чений, разделенных табуляциями (TSV). Этот командлет можно использовать для записи и перезаписи в журнал данных счетчиков производительности. Командлет Export-Counter предназначен для экспорта данных, возвращаемых ком андлетами Get-Counter и Import-Counter. Примечание. Командлет Export-Counter работает только в Windows 7, Windows S erver 2008 R2 и последующих версиях Windows. ПАРАМЕТРЫ -Circular <switch> Указывает, что выходной файл должен быть циклическим файлом в формате " первым вошел, первым вышел" (FIFO). При использовании этого параметра т ребуется параметр MaxSize. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FileFormat <string> Задает формат вывода выходного файла журнала. Допустимые значения: CSV, TSV и BLG. По умолчанию используется значение BLG. Требуется? false Позиция? named Значение по умолчанию BLG Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force <switch> Перезаписывает и заменяет содержимое файла, если файл существует в мест оположении, указанном в параметре Path. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <PerformanceCounterSampleSet[]> Задает экспортируемые данные счетчика. Введите переменную, содержащую д анные, либо команду, получающую данные, например Get-Counter или Import -Counter. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -MaxSize <int> Задает максимальный размер выходного файла. Если задан параметр Circular, то в случае достижения заданного максимал ьного размера файла журнала самые старые записи будет удалены при добав лении новых записей. Если параметр Circular не задан, то при достижении заданного максимального размера файла журнала новые данные не будут до бавлены, а командлет возвратит некритическую ошибку. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь и имя выходного файла. Введите относительный или абсолютный путь на локальном компьютере или UNC-путь на удаленном компьютере, нап ример \\Computer\Share\file.blg. Это обязательный параметр. Примечание. Формат файла определяется значением параметра FileFormat, а не расширением имени файла в пути. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet Данные счетчиков производительности можно передать из командлета Get-Co unter или Import-Counter в командлет Export-Counter по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет ПРИМЕЧАНИЯ В генераторе файла журнала предполагается, что все входные объекты имею т одинаковый путь счетчика, а объекты упорядочены по возрастанию времен и. Тип и путь счетчика первого входного объекта определяют свойства, запис анные в файле журнала. Если у других входных объектов отсутствует значе ние записанного свойства, то поле свойства будет пустым. Если у объекто в имеются значения свойств, которые не были записаны, эти дополнительны е значения свойств игнорируются. Не все журналы, созданные командлетом Export-Counter, могут быть считан ы системным монитором. Например, для системного монитора требуется, что бы все объекты имели одинаковый путь и были разделены одинаковым времен ным интервалом. В командлете Import-Counter не предусмотрен параметр ComputerName. Одна ко, если компьютер настроен на удаленное взаимодействие в Windows Power Shell, с помощью командлета Invoke-Command можно запускать команду Impo rt-Counter на удаленном компьютере. -------------------------- ПРИМЕР 1 -------------------------- C:\PS># Export-Counter Описание ----------- Эта команда экспортирует данные счетчика в файл BLG. Команда с помощью командлета Get-Counter получает данные о загруженности пр оцессора. Данные передается командлету Export-Counter с помощью оператора к онвейера (|). Для указания выходного файла в команде Export-Counter использ уется параметр Path. C:\PS> get-counter "\Processor(*)\% Processor Time" -max 50 | export-counte r -path $home\counters.blg Так как объем этих данных может быть очень большим, эта команда передает да нные командлету Export-Counter по конвейеру. Если бы данные сохранялись в п еременной, команда могла бы использовать непропорционально большой объем па мяти. -------------------------- ПРИМЕР 2 -------------------------- C:\PS># Export-Counter Описание ----------- Эти команды преобразуют файл CSV в формат BLG данных счетчика. Первая команда использует встроенное средство преобразования Windows PowerS hell для сохранения значения 1 ГБ, выраженного в байтах, в переменной $1GBi nBytes. При вводе значения, сопровождаемого словом "K" (килобайт), "MB" (ме габайт) или "GB" (гигабайт), оболочка Windows PowerShell возвращает значени е в байтах. C:\PS> $1GBinBytes = 1GB Вторая команда с помощью командлета Import-Counter импортирует данные счетч иков производительности из файла Threads.csv. В этом примере предполагается , что файл ранее был экспортирован с помощью командлета Export-Counter. Импортированные данные передаются командлету Export-Counter с помощью опера тора конвейера (|). Команда использует параметр Path для указания местополо жения выходного файла. В ней используются параметры Circular и MaxSize, что бы командлет Export-Counter создал циклический журнал размером 1 ГБ. C:\PS> import-counter threads.csv | export-counter -path threadtest.blg -ci rcular -maxsize $1GBinBytes -------------------------- ПРИМЕР 3 -------------------------- C:\PS># Export-Counter Описание ----------- В этом примере показано, как получать данные счетчиков производительности и сохранять их в файле на удаленном компьютере. Первая команда с помощью командлета Get-Counter собирает данные счетчика ра бочего набора от удаленного компьютера Server01. Команда сохраняет данные в переменной $c. C:\PS> $c = get-counter -computername Server01 -counter "\Process(*)\Workin g Set - Private" -maxSamples 20 Вторая команда с помощью оператора конвейера (|) передает данные, сохраненн ые в переменной $c, командлету Export-Counter, который сохраняет их в файле Workingset.blg в общей папке Perf на компьютере Server01. C:\PS> $c | export-counter -path \\Server01\Perf\WorkingSet.blg -------------------------- ПРИМЕР 4 -------------------------- C:\PS># Export-Counter Описание ----------- В этом примере показано, как использовать командлеты Import-Counter и Expor t-Counter для повторной регистрации существующих данных в журнале. Первая команда с помощью командлета Import-Counter импортирует данные счетч иков производительности из журнала DiskSpace.blg. Данные сохраняются в пере менной $all. Этот файл содержит выборки счетчика "LogicalDisk\% Free Space" , полученные от более чем 200 удаленных компьютеров. C:\PS> $all = import-counter DiskSpace.blg Вторая команда с помощью свойства CounterSamples объекта набора выборок, со храненного в переменной $all, и командлета Where-Object (псевдоним "where") выбирает объекты, у которых значение свойства CookedValues меньше 15 (секу нд). Результаты сохраняются в переменной $lowSpace. C:\PS> $lowSpace = $all.countersamples | where {$_.cookedvalues -lt 15} Третья команда с помощью оператора конвейера (|) передает данные из перемен ной $lowSpace в командлет Export-Counter. Параметр path указывает, что выбр анные данные необходимо регистрировать в файле LowDiskSpace.blg. C:\PS> $lowSpace | export-counter -path LowDiskSpace.blg ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=138337 Get-Counter Import-Counter Export-CSV ИМЯ Export-CSV ОПИСАНИЕ Преобразует объекты Microsoft .NET Framework в набор строк переменной длины , содержащих разделенные запятыми значения (CSV), и сохраняет эти строки в CSV-файл. СИНТАКСИС Export-CSV [[-Delimiter] <char>] [-Path] <string> -InputObject <psobject> [ -Encoding <string>] [-Force] [-NoClobber] [-NoTypeInformation] [-Confirm] [ -WhatIf] [<CommonParameters>] Export-CSV [-UseCulture] [-Path] <string> -InputObject <psobject> [-Encodin g <string>] [-Force] [-NoClobber] [-NoTypeInformation] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Export-CSV создает файл из CSV-строк переменной длины, который пр едставляет заданные объекты. С помощью командлета Import-CSV можно воссоздавать объекты из CSV-строк в ф айлах. В результате будут получаться объекты, которые являются CSV-версиями исходных объектов и содержат строковые представления значений свойств, но не содержат методов. Можно также использовать командлеты ConvertTo-CSV и ConvertFrom-CSV для пре образования объектов .NET Framework в строки CSV и обратно. Командлет Expor t-CSV аналогичен командлету ConvertTo-CSV за исключением того, что он сохра няет строки CSV в файл. С помощью параметров командлета Export-CSV можно задать отличный от запятой разделитель или сделать так, чтобы командлет Export-CSV использовал раздел итель по умолчанию для текущей культуры. При передаче командлету Export-CSV нескольких объектов командлет Export-CSV формирует файл на основании свойств первого отправленного объекта. Если у оставшихся объектов нет одного из указанных свойств, то значение этого свой ства для соответствующего объекта равно NULL, что обозначается двумя послед овательными запятыми. Если же у оставшихся объектов имеются дополнительные свойства, значения этих свойств будут проигнорированы. Дополнительные сведения см. в описании командлета Export-CSV и раздел "Прим ечания". ПАРАМЕТРЫ -Delimiter <char> Задает разделитель значений свойств. По умолчанию используется запятая (,). Введите символ, например двоеточие (:). Чтобы задать точку с запят ой (;), заключите ее в кавычки. Требуется? false Позиция? 2 Значение по умолчанию , (запятая) Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Encoding <string> Задает кодировку экспортируемого CSV-файла. Допустимые значения: Unicod e, UTF7, UTF8, ASCII, UTF32, BigEndianUnicode, Default и OEM. По умолча нию используется значение ASCII. Требуется? false Позиция? named Значение по умолчанию ASCII Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Перезаписывает файл по указанному пути, не выводя предупреждение. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты для экспорта в формате строк CSV. Введите переменную, со держащую объекты, либо получающую их команду или выражение. Кроме того, можно передать объекты командлету Export-CSV по конвейеру. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -NoClobber [<SwitchParameter>] Не перезаписывать существующий файл (то есть не заменять его содержимое ). По умолчанию если файл существует по указанному пути, командлет Expo rt-CSV перезаписывает файл без предупреждения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoTypeInformation [<SwitchParameter>] Исключает из CSV-файла сведения о типах. По умолчанию первая строка CSV -файла содержит элемент "#TYPE ", после которого указывается полное имя типа объекта .NET Framework. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к выходному CSV-файлу. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseCulture [<SwitchParameter>] Использовать в качестве разделителя записей разделитель элементов списк а из текущей культуры. По умолчанию используется запятая (,). Этот параметр бывает полезным в скриптах, которые распространяются сред и пользователей в разных странах мира. Чтобы найти разделитель элементо в списка для текущей культуры, воспользуйтесь следующей командой: (Get- Culture).TextInfo.ListSeparator. Требуется? false Позиция? named Значение по умолчанию Запятая Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект .NET Framework можно передать командлету Export-CSV по кон вейеру. ВЫХОДНЫЕ ДАННЫЕ System.String Список CSV отправляется в файл, указанный в параметре Path. ПРИМЕЧАНИЯ Командлет Export-CSV преобразует заданные объекты в набор CSV-строк пер еменной длины и сохраняет эти строки в указанном текстовом файле. Коман длет Export-CSV позволяет сохранить объекты в CSV-файле, а затем с помо щью командлета Import-CSV создать объекты на основании содержимого этог о CSV-файла. В CSV-файле каждый объект представляется списком разделенных запятыми з начений свойств этого объекта. Значения свойств преобразуются в строков ый формат (с помощью метода ToString() объекта), поэтому они обычно пре дставляются именами значений свойств. Командлет Export-CSV не экспортир ует методы объекта. Получаемый в результате экспорта файл имеет следующий формат. -- Первая строка CSV-файла содержит элемент "#TYPE", за которым следует полное имя типа объекта .NET Framework, например "#TYPE System.Diagnos tics.Process". Чтобы исключить из вывода эту строку, воспользуйтесь пар аметром NoTypeInformation. -- Следующая строка CSV-файла представляет заголовки столбцов. Она соде ржит список разделенных запятыми имен всех свойств первого объекта. -- Оставшиеся строки файла содержат списки разделенных запятыми значени й свойств каждого из объектов. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process wmiprvse | select-object basePriority,ID,SessionID,Workin gSet | export-csv -path data.csv Описание ----------- Эта команда выбирает несколько свойств процесса wmiprvse и экспортирует их в CSV-файл с именем data.csv. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process | export-csv processes.csv C:\PS> get-process | export-csv processes.csv # In processes.csv #TYPE System.Diagnostics.Process __NounName,Name,Handles,VM,WS,PM,NPM,Path,Company,CPU,FileVersion,... Process,powershell,626,201666560,76058624,61943808,11960,C:\WINDOWS... Process,powershell,257,151920640,38322176,37052416,7836,C:\WINDOWS\... Описание ----------- Эта команда экспортирует объекты, представляющие процессы компьютера, в фай л Processes.csv в текущем каталоге. Поскольку в команде не указан разделите ль, для отделения друг от друга полей в файле используется запятая (,). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | export-csv processes.csv -Delimiter ";" # In processes.csv #TYPE System.Diagnostics.Process __NounName;Name;Handles;VM;WS;PM;NPM;Path;Company;CPU;FileVersion;... Process;powershell;626;201666560;76058624;61943808;11960;C:\WINDOWS... Process;powershell;257;151920640;38322176;37052416;7836;C:\WINDOWS\... Описание ----------- Эта команда экспортирует объекты, представляющие процессы компьютера, в фай л Processes.csv в текущем каталоге. Параметр Delimiter используется в этой команде для указания разделителя в виде точки с запятой (;). В результате п оля в файле разделены знаком точки с запятой. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process | export-csv processes.csv -UseCulture Описание ----------- Эта команда экспортирует объекты, представляющие процессы компьютера, в фай л Processes.csv в текущем каталоге. В этой команде параметр UseCulture испо льзуется для того, чтобы командлет Export-CSV использовал в качестве раздел ителя значение свойства ListSeparator текущей культуры. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-process | export-csv processes.csv -NoTypeInformation C:\PS> get-process | export-csv processes.csv -NoTypeInformation # In processes.csv __NounName,Name,Handles,VM,WS,PM,NPM,Path,Company,CPU,FileVersion,... Process,powershell,626,201666560,76058624,61943808,11960,C:\WINDOWS... Process,powershell,257,151920640,38322176,37052416,7836,C:\WINDOWS\... Описание ----------- Эта команда экспортирует объекты, представляющие процессы компьютера, в фай л Processes.csv в текущем каталоге. Чтобы исключить из файла вывода сведени я о типе, используется параметр NoTypeInformation. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113299 Import-CSV ConvertTo-CSV ConvertFrom-CSV Export-FormatData ИМЯ Export-FormatData ОПИСАНИЕ Сохраняет данные форматирования текущего сеанса в файле форматирования. СИНТАКСИС Export-FormatData [-Force] [-IncludeScriptBlock] [-InputObject <ExtendedTyp eDefinition[]>] [-NoClobber] [-Path <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Export-FormatData создает файлы форматирования Windows PowerShell (format.ps1xml) из объектов форматирования в текущем сеансе. Он принимает объекты ExtendedTypeDefinition, возвращаемые командлетом Get-FormatData, и сохраняет их в файле в формате XML. На основе данных из файлов форматирования (format.ps1xml) Windows PowerShel l создает способ отображения объектов Microsoft .NET Framework в сеансе, ис пользуемый по умолчанию. Файлы форматирования можно просматривать и изменят ь, а с помощью командлета Update-FormatData можно добавлять в сеанс данные форматирования. Дополнительные сведения о файлах форматирования в Windows PowerShell см. в разделе about_Format.ps1xml. ПАРАМЕТРЫ -Force [<SwitchParameter>] Перезаписывает существующий выходной файл, даже если для него установле н атрибут "только чтение". Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -IncludeScriptBlock [<SwitchParameter>] Определяет, экспортируются ли блоки скриптов, содержащиеся в данных фор матирования. Поскольку блоки скриптов содержат выполняемый код и могут использоватьс я для вредоносных целей, по умолчанию они не экспортируются. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ExtendedTypeDefinition[]> Задает экспортируемые объекты форматирования данных. Введите переменную , содержащую объекты, либо команду, получающую объекты, например Get-Fo rmatData. Кроме того, можно передать объекты командлету Export-FormatDa ta от командлета Get-FormatData по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -NoClobber [<SwitchParameter>] Запрещает командлету перезаписывать существующие файлы. По умолчанию ко мандлет Export-FormatData без предупреждения перезаписывает файлы, для которых не задан атрибут "только чтение". Чтобы задать командлету Export-FormatData принудительную перезапись фай лов с атрибутом "только чтение", используйте параметр Force. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает расположение выходного файла. Укажите путь (необязательно) и им я файла с расширением format.ps1xml. Если путь не указан, командлет Exp ort-FormatData создает файл в текущем каталоге. Если используется расширение, отличное от PS1XML, командлет Update-Form atData не распознает файл. Если указан существующий файл, командлет Export-FormatData перезаписыва ет имеющийся файл без предупреждения, если этому файлу не задан атрибут "только чтение". Чтобы перезаписать файл с атрибутом "только чтение", используйте параметр Force. Чтобы запретить перезапись существующих фай лов, используйте параметр NoClobber. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.ExtendedTypeDefinition Кроме того, можно передать объекты ExtendedTypeDefinition командлету Ex port-FormatData от командлета Get-FormatData по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Export-FormatData не возвращает никаких объектов. Он создает файл и сохраняет его по указанному пути. ПРИМЕЧАНИЯ Чтобы использовать любой файл форматирования, в том числе экспортирован ный, необходимо, чтобы в политике выполнения для сеанса было разрешено выполнение скриптов и файлов конфигурации. Дополнительные сведения см. в разделе about_Execution_Policies. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-formatdata -typename * | export-formatdata -path allformat.ps1xml -IncludeScriptBlock Описание ----------- Эта команда экспортирует все данные форматирования из сеанса в файл AllForm at.ps1xml. Эта команда получает все данные форматирования из сеанса с помощью командле та Get-FormatData. Оператор "*", используемый в качестве значения параметра TypeName, предписывает командлету получить все данные из сеанса. В этой команде с помощью оператора конвейера (|) данные форматирования пере даются от командлета Get-FormatData командлету Export-FormatData, экспортир ующему все данные форматирования в файл AllFormat.ps1. В команде Export-FormatData используется параметр IncludeScriptBlock, чтобы включить все блоки скриптов в данных форматирования в файле. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$f = get-formatdata -typename helpinfoshort C:\PS> export-formatdata -inputObject $f -path c:\test\help.format.ps1xml - IncludeScriptBlock Описание ----------- Эти команды экспортируют данные форматирования для типа HelpInfoShort в фай л Help.format.ps1xml. Первая команда получает данные форматирования для типа HelpInfoShort с помо щью командлета Get-FormatData и сохраняет их в переменной $f. Вторая команда с помощью командлета Export-FormatData с параметром InputObj ect вводит данные форматирования, сохраненные в переменной $f. В ней также используется параметр IncludeScriptBlock, включающий блоки скриптов в выход ные данные. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-formatdata -typename System.Diagnostics.Process | export-FormatDa ta -path process.format.ps1xml C:\PS> Update-FormatData -prependPath .\process.format.ps1xml C:\PS> get-process p* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 323 5600 powershell 336 3900 powershell_ise 138 4076 PresentationFontCache Описание ----------- В этом примере показан результат выполнения команды Export-FormatData без п араметра IncludeScriptBlock. В первой команде с помощью командлета Get-FormatData получаются данные форм атирования для объекта System.Diagnostics.Process, возвращаемого командлето м Get-Process. С помощью оператора конвейера (|) объекты форматирования пер едаются командлету Export-FormatData, который экспортирует их в файл Proces s.format.ps1xml в текущем каталоге. В данном случае командлет Export-FormatData используется без параметра Incl udeScriptBlock. Во второй команде с помощью командлета Update-FormatData файл Process.forma t.ps1xml добавляется в текущий сеанс. В этой команде используется параметр PrependPath, обеспечивающий, что данные форматирования для объектов процесс ов, содержащиеся в файле Process.format.ps1xml, обнаруживаются раньше станд артных данных форматирования для объектов процессов. Третья команда показывает результат этого изменения. В ней используется ком андлет Get-Process для получения процессов с именами, начинающимися с симво ла "P". По выходным данным видно, что значения свойств, вычисляемые с испол ьзованием блоков скриптов, не отображаются. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144302 Get-FormatData Update-FormatData Export-ModuleMember ИМЯ Export-ModuleMember ОПИСАНИЕ Задает экспортируемые элементы модуля. СИНТАКСИС Export-ModuleMember [[-Function] <string[]>] [-Alias <string[]>] [-Cmdlet string[]>] [-Variable <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Export-ModuleMember указывает элементы модуля (командлеты, функци и, переменные и псевдонимы), которые могут быть экспортированы из файлы мод уля скрипта (PSM1) или из динамического модуля, созданного с помощью команд лета New-Module. Этот командлет может использоваться только в файле модуля скрипта или в динамическом модуле. Если в модуль скрипта не входит команда Export-ModuleMember, то из модуля с крипта могут экспортироваться только функции (экспорт переменных и псевдони мов невозможен). Если в модуль скрипта входит команда Export-ModuleMember, то экспортироваться могут только те элементы, которые указаны в команде Exp ort-ModuleMember. Если в модуле скрипта содержится несколько команд Export-ModuleMember, то э кспортироваться могут только те элементы, указанные в команде Export-Module Member. Команда Export-ModuleMember также позволяет экспортировать элементы, импорт ируемые модулем скрипта из других модулей. ПАРАМЕТРЫ -Alias <string[]> Задает псевдонимы, экспортируемые из файла модуля скрипта. Введите имен а псевдонимов. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Cmdlet <string[]> Задает командлеты, экспортируемые из файла модуля скрипта. Введите имен а командлетов. Подстановочные знаки разрешены. В файле модуля скрипта нельзя создавать командлеты, но можно импортиров ать командлеты из двоичного модуля в модуль скрипта и экспортировать их из модуля скрипта. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Function <string[]> Задает функции, экспортируемые из файла модуля скрипта. Введите имена ф ункций. Подстановочные знаки разрешены. Кроме того, можно передать имен а функций в Export-ModuleMember с помощью конвейера. Требуется? false Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true -Variable <string[]> Задает переменные, экспортируемые из файла модуля скрипта. Введите имен а переменных (без знака доллара). Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать имена функций в Export-ModuleMember с помощью конвейера. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Чтобы исключить элемент из списка экспортируемых элементов, добавьте ко манду Export-ModuleMember, содержащую перечисление всех элементов, кром е тех, которые необходимо исключить. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Export-ModuleMember -function * -alias * Описание ----------- Эта команда экспортирует псевдонимы и функции, определенные в модуле скрипт а. Чтобы экспортировать псевдонимы, которые не экспортируются по умолчанию, не обходимо также явно указать функции. В противном случае будут экспортирован ы только псевдонимы. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Export-ModuleMember -function Get-Test, New-Test, Start-Test -alias g tt, ntt, stt Описание ----------- Эта команда экспортирует три псевдонима и три функции, определенные в модул е скрипта. Можно использовать формат этой команды для указания имен элементов модуля. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Export-ModuleMember Описание ----------- Эта команда указывает, что экспорт элементов, определенных в модуле скрипта , запрещен. Эта команда запрещает экспорт элементов модуля, но не скрывает элементы. По льзователи могут читать и копировать элементы модуля и использовать операто р вызова (&) для обращения к неэкспортируемым элементам модуля. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>Export-ModuleMember -variable increment Описание ----------- Эта команда экспортирует из модуля скрипта только переменную $increment. Ос тальные элементы не экспортируются. Если необходимо экспортировать переменную в дополнение к экспорту функций в модуле, команда Export-ModuleMember должна содержать имена всех функций и имя переменной. -------------------------- ПРИМЕР 5 -------------------------- C:\PS># From TestModule.psm1 function new-test { <function code> } export-modulemember -function new-test function validate-test { <function code> } function start-test { <function code> } set-alias stt start-test export-modulemember -function *-test -alias stt Описание ----------- Эти команды демонстрируют обработку нескольких команд Export-ModuleMember, содержащихся в файле модуля скрипта (PSM1). Эта команда создает три функции и один псевдоним и экспортирует две функции и псевдоним. Если бы команда Export-ModuleMember не использовалась, то экспортировались бы все три функции, а псевдоним бы не экспортировался. При использовании ко манд Export-ModuleMember экспортируются функции Get-Test и Start-Test и псе вдоним STT. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>new-module -script {function SayHello {"Hello"}; set-alias Hi SayHel lo; Export-ModuleMember -alias Hi -function SayHello} Описание ----------- Эта команда демонстрирует использование Export-ModuleMember в динамическом модуле, созданном с помощью командлета New-Module. В этом примере Export-ModuleMember используется в динамическом модуле для э кспорта псевдонима "Hi" и функции "Say Hello". -------------------------- ПРИМЕР 7 -------------------------- C:\PS>function export { param ( [parameter(mandatory=$true)] [validateset("function","variable")] $ type, [parameter(mandatory=$true)] $name, [parameter(mandatory=$true)] $value ) if ($type -eq "function") { Set-item "function:script:$name" $value Export-ModuleMember $name } else { Set-Variable -scope Script $name $value Export-ModuleMember -variable $name } } export function New-Test { ... } function helper { ... } export variable interval 0 $interval = 2 Описание ----------- Этот пример содержит функцию под названием Export, которая объявляет функци ю или создает переменную, а затем записывает команду Export-ModuleMember дл я функции или переменной. Это позволяет объявлять и экспортировать функцию или переменную в одной команде. Чтобы использовать функцию Export, включите ее в модуль скрипта. Чтобы эксп ортировать функцию, введите "Export" до ключевого слова "Function". Чтобы экспортировать переменную, используйте следующий формат для объявлени я переменной и задания ее значения: export variable <имя_переменной> <значение> В примере показан правильный формат команд. В этом примере экспортируются т олько функция New-Test и переменная $Interval. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141551 Import-Module Get-Module Remove-Module about_Modules Export-PSSession ИМЯ Export-PSSession ОПИСАНИЕ Импортирует команды из другого сеанса и сохраняет их в модуле Windows Power Shell. СИНТАКСИС Export-PSSession [-Session] <PSSession> [-OutputModule] <string> [[-Command Name] <string[]>] [[-FormatTypeName] <string[]>] [-AllowClobber] [-Argument List <Object[]>] [-CommandType {Alias | Function | Filter | Cmdlet | Extern alScript | Application | Script | All}] [-Encoding <string>] [-Force] [-Mod ule <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Export-PSSession получает командлеты, функции, псевдонимы и коман ды других типов из другого сеанса PSSession на локальном или удаленном комп ьютере и сохраняет их в модуле Windows PowerShell. Чтобы добавить команды и з модуля в текущий сеанс, воспользуйтесь командлетом Import-Module. В отличие от командлета Import-PSSession, который импортирует команды из др угого сеанса PSSession в текущий сеанс, командлет Export-PSSession сохраняе т команды в модуле. Эти команды не импортируются в текущий сеанс. Прежде чем экспортировать команды, необходимо помощью командлета New-PSSess ion создать сеанс PSSession, содержащий команды, которые требуется экспорти ровать. Затем необходимо с помощью командлета Export-PSSession экспортирова ть нужные команды. По умолчанию командлет Export-PSSession экспортирует все команды, кроме уже имеющихся в текущем сеансе, однако с помощью параметра CommandName можно задать конкретные команды для экспорта. Командлет Export-PSSession использует функцию косвенного удаленного взаимод ействия Windows PowerShell. При импорте команд в текущий сеанс они косвенно выполняются в исходном сеансе или в аналогичном сеансе на исходном компьют ере. ПАРАМЕТРЫ -AllowClobber [<SwitchParameter>] Экспортирует указанные команды, даже если их имена совпадают с именами команд в текущем сеансе. В случае импорта команды, имя которой совпадает с именем команды в теку щем сеансе, импортируемая команда скрывает или заменяет исходную. Допол нительные сведения см. в разделе about_Command_Precedence. Командлет Export-PSSession не импортирует команды, имена которых совпад ают с именами команд в текущем сеансе. Поведение по умолчанию предотвра щает конфликты имен команд. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ArgumentList <Object[]> Экспорт варианта команды, получаемого при использовании заданных аргуме нтов (значений параметров). Например, чтобы экспортировать вариант команды Get-Item на диске сертиф икатов (Cert:) в сеансе $s, введите команду "export-pssession -session $s -command get-item -argumentlist cert:". Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CommandName <string[]> Экспортировать только команды с заданными именами или шаблонами имен. П одстановочные знаки разрешены. Используйте имя "CommandName" или псевдо ним "Name". По умолчанию командлет Export-PSSession экспортирует из сеанса PSSessio n все команды, кроме тех, имена которых совпадают с именами команд в те кущем сеансе. Это позволяет избежать скрытия и замены команд в текущем сеансе импортируемыми командами. Чтобы экспортировать все команды, даже те, которые скрывают или заменяют другие команды, следует использовать параметр AllowClobber. Если используется параметр CommandName, файлы форматирования команд не экспортируются, если не используется параметр FormatTypeName. Аналогичн о, если используется параметр FormatTypeName, ни одна из команд не эксп ортируется, если не используется параметр CommandName. Требуется? false Позиция? 3 Значение по умолчанию Все команды в сеансе. Принимать входные данные конвейера? false Принимать подстановочные знаки? true -CommandType <CommandTypes> Экспортирует командные объекты только указанных типов. Используйте "Com mandType" или псевдоним "Type". Допустимые значения: -- Alias: все псевдонимы Windows PowerShell в текущем сеансе. -- All: команды всех типов. Эквивалентно "get-command *". -- Application: все файлы за исключением файлов Windows PowerShell, кот орые присутствуют в путях, указанных в переменной среды Path ($env:path ), в том числе файлы TXT, EXE и DLL. -- Cmdlet: командлеты в текущем сеансе. По умолчанию используется значе ние "Cmdlet". -- ExternalScript: все файлы PS1, которые присутствуют в путях, указанн ых в переменной среды Path ($env:path). -- Filter и Function: все функции Windows PowerShell. -- Script: блоки скриптов в текущем сеансе. Требуется? false Позиция? named Значение по умолчанию Все команды в сеансе. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Encoding <string> Задает кодировку выходных файлов. Допустимые значения: "Unicode", "UTF7 ", "UTF8", "ASCII", "UTF32", "BigEndianUnicode", "Default" и "OEM". По умолчанию используется значение "UTF-8". Требуется? false Позиция? named Значение по умолчанию UTF-8 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Перезаписывает существующий выходной файл (или файлы), даже если для не го установлен атрибут "только чтение". Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FormatTypeName <string[]> Экспортирует инструкции по форматированию только для заданных типов Mic rosoft .NET Framework. Введите имена типов. По умолчанию команда Export -PSSession экспортирует инструкции по форматированию для всех типов .NE T Framework, не принадлежащих к пространству имен System.Management.Aut omation. Значением этого параметра должно быть имя типа, возвращаемое командой G et-FormatData в сеансе, из которого импортируются команды. Чтобы получи ть все данные форматирования в удаленном сеансе, введите *. Если используется параметр FormatTypeName, ни одна из команд не экспорт ируется, если не используется параметр CommandName. Аналогично, если используется параметр CommandName, файлы форматировани я команд не экспортируются, если не используется параметр FormatTypeNam e. Требуется? false Позиция? 4 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Module <string[]> Экспортирует только команды из заданных оснасток и модулей Windows Powe rShell. Введите имена оснасток и модулей. Подстановочные знаки запрещен ы. Дополнительные сведения см. в разделах about_PSSnapins и Import-Module. Требуется? false Позиция? named Значение по умолчанию Все команды в сеансе. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OutputModule <string> Задает путь (указывать который не обязательно) и имя модуля, создаваемо го командой Export-PSSession. Путь по умолчанию: $home\Documents\Window sPowerShell\Modules. Это обязательный параметр. Если подкаталог модуля или любой из файлов, создаваемых командой Export -PSSession, уже существует, команда завершается с ошибкой. Чтобы переза писать существующие файлы, используйте параметр Force. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Session <PSSession> Задает сеанс PSSession, из которого экспортируются команды. Введите пер еменную, содержащую объект сеанса, или команду, получающую объект сеанс а, например Get-PSSession. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Export-PSSession по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.IO.FileInfo Командлет Export-PSSession возвращает список файлов, из которых состоит созданный им модуль. ПРИМЕЧАНИЯ Командлет Export-PSSession использует инфраструктуру удаленного взаимод ействия Windows PowerShell. Чтобы использовать этот командлет, компьюте р должен быть настроен для удаленного взаимодействия. Дополнительные св едения см. в разделе about_Remote_Requirements. К помощью командлета Export-PSSession нельзя экспортировать поставщик W indows PowerShell. Экспортированные команды косвенно выполняются в сеансе PSSession, из ко торого они экспортированы. Впрочем, все тонкости, связанные с удаленным выполнением команд, полностью обрабатывает Windows PowerShell. Пользов атель выполняет экспортированные команды в точности так же, как локальн ые. Командлет Export-Module получает сведения о сеансе PSSession и сохраняе т их в экспортируемом модуле. Если во время импортирования модуля закры т сеанс PSSession, из которого экспортированы команды, и на том же комп ьютере нет активных сеансов PSSession, команды в модуле пытаются воссоз дать сеанс PSSession. Если воссоздать сеанс PSSession не удается, экспо ртированные команды не выполняются. В сведения о сеансе, получаемые и сохраняемые командлетом Export-Module в модуле, не входят параметры сеанса, в том числе указанные в автомати ческой переменной $PSSessionOption или с помощью параметров SessionOpti on для командлетов New-PSSession, Enter-PSSession и Invoke-Command. Есл и во время импорта модуля исходный сеанс PSSession закрыт, используется другой сеанс PSSession на том же компьютере, если он имеется. Чтобы об еспечить выполнение импортированных команд в правильно настроенном сеан се, создайте сеанс PSSession с нужными параметрами, прежде чем импортир овать модуль. Чтобы найти команды для экспорта, командлет Export-PSSession с помощью командлета Invoke-Command запускает в сеансе PSSession команду Get-Comm and. Для получения и сохранения данных форматирования для команд исполь зуются командлеты Get-FormatData и Export-FormatData. При выполнении ко манды Export-PSSession могут появляться сообщения об ошибках командлето в Invoke-Command, Get-Command, Get-FormatData и Export-FormatData. Кром е того, командлет Export-PSSession не позволяет экспортировать команды из сеанса, в котором отсутствуют командлеты Get-Command, Get-FormatData , Select-Object и Get-Help. Командлет Export-PSSession использует для отображения хода выполнения к оманды командлет Write-Progress. Во время выполнения команды отображает ся индикатор выполнения. На экспортированные команды накладываются те же ограничения, что и на д ругие удаленные команды, включая невозможность запускать программы с по льзовательским интерфейсом, например "Блокнот". Поскольку профили Windows PowerShell не выполняются в сеансах PSSession , команды, добавляемые в сеанс через профиль, недоступны командлету Exp ort-PSSession. Чтобы экспортировать команды из профиля, необходимо с по мощью команды Invoke-Command вручную запустить профиль в сеансе PSSessi on, прежде чем экспортировать команды. Модуль, создаваемый командлетом Export-PSSession, может включать файл ф орматирования, даже если команда не импортирует данные форматирования. Если команда не импортирует данные форматирования, ни один из создаваем ых файлов форматирования не будет содержать данных форматирования. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$s = new-pssession -computerName Server01 C:\PS> export-pssession -session $s -outputModule Server01 Описание ----------- Команда в этом примере экспортирует все команды из сеанса PSSession на комп ьютере Server01 в модуль Server01 на локальном компьютере, за исключением т ех, имена которых совпадают с именами команд в текущем сеансе. Она также эк спортирует данные форматирования для команд. Первая команда создает на компьютере Server01 сеанс PSSession. Вторая коман да экспортирует все команды и данные форматирования из сеанса в модуль Serv er01. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$s = new-pssession -ConnectionUri http://exchange.microsoft.com/mailb ox -credential exchangeadmin01@hotmail.com -authentication negotiate C:\PS> export-pssession -session $r -module exch* -commandname get-*, set-* -formattypename * -outputModule $pshome\Modules\Exchange -encoding ASCII Описание ----------- Эти команды экспортируют команды Get и Set из оснастки Microsoft Exchange S erver на удаленном компьютере в модуль Exchange в каталоге $pshome\Modules на локальном компьютере. Размещение модуля в каталоге $pshome\Module делает его доступным для всех п ользователей этого компьютера. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s = new-pssession -computerName Server01 -credential Server01\User01 C:\PS> export-pssession -session $s -outputModule TestCmdlets -type cmdlet -commandname *test* -formattypename * C:\PS> remove-pssession $s C:\PS> import-module TestCmdlets C:\PS> get-help test* C:\PS> test-files Описание ----------- Эти команды экспортируют командлеты из сеанса PSSession на удаленном компью тере и сохраняют их в модуле на локальном компьютере. Затем они добавляют к омандлеты из модуля в текущий сеанс, чтобы их можно было использовать. Первая команда создает сеанс PSSession на компьютере Server01 и сохраняет е го в переменной $s. Вторая команда экспортирует командлеты с именами, начинающимися со слова "T est", из сеанса PSSession в переменной $s в модуль TestCmdlets на локальном компьютере. Третья команда использует командлет Remove-PSSession для удаления сеанса PS Session в переменной $s из текущего сеанса. Эта команда показывает, что ком анды, импортированные из сеанса PSSession, можно использовать, даже если эт от сеанс неактивен. Четвертая команда, которую можно выполнить в любой момент в любом сеансе, с помощью командлета Import-Module добавляет в текущий сеанс командлеты из м одуля TestCmdlets. Пятая команда с помощью командлета Get-Help получает справку по командлетам , имена которых начинаются со слова "Test". После добавления команд из моду ля в текущий сеанс можно с помощью командлетов Get-Help и Get-Command получ ать информацию об импортированных командах, как и для любых других команд в сеансе. Шестая команда использует командлет Test-Files, экспортированный с компьюте ра Server01 и добавленный в сеанс. Хоть это и не очевидно, команда Test-Files на самом деле выполняется в удал енном сеансе на компьютере, с которого она импортирована. Windows PowerShel l создает сеанс из информации, сохраненной в модуле. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>export-pssession -session $s -AllowClobber -outputModule AllCommands Описание ----------- Эта команда экспортирует все команды и данные форматирования из сеанса PSSe ssion в переменной $s в текущий сеанс. В команде указан параметр AllowClobb er, разрешающий экспорт команд, имена которых совпадают с именами команд в текущем сеансе. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$options = New-PSSessionOption -NoMachineProfile C:\PS> $s = new-pssession -computername Server01 -sessionoption $options C:\PS> export-pssession -session $s -outputModule Server01 C:\PS> remove-pssession $s C:\PS> new-pssession -computername Server01 -sessionoption $options C:\PS> import-module Server01 Описание ----------- В этом примере показано, как выполнить экспортированные команды в сеансе с определенными параметрами, если сеанс PSSession, из которого они экспортиро ваны, закрыт. При использовании командлета Export-PSSession информация об исходном сеансе PSSession сохраняется в созданном модуле. Если исходный сеанс удаленного в заимодействия закрыт, при импорте этого модуля используется любой открытый сеанс удаленного взаимодействия с исходным компьютером. Если в текущем сеансе отсутствует сеанс удаленного взаимодействия с исходны м компьютером, содержащиеся в этом модуле команды заново устанавливают тако й сеанс. Впрочем, командлет Export-PSSession не сохраняет в модуле специаль ные параметры, например задаваемые параметром SessionOption командлета New- PSSession. Поэтому если требуется выполнить экспортированные команды в удаленном сеанс е с определенными параметрами, необходимо создать удаленный сеанс с нужными параметрами, прежде чем импортировать модуль. Первая команда с помощью командлета New-PSSessionOption создает объект PSSe ssionOption и сохраняет его в переменной $options. Вторая команда создает сеанс PSSession с указанными параметрами. В ней испо льзуется командлет New-PSSession для создания сеанса PSSession на компьютер е Server01. С помощью параметра SessionOption указывается объект параметров , сохраненный в переменной $options. Третья команда с помощью командлета Export-PSSession экспортирует команды и з сеанса PSSession, сохраненного в переменной $s, в модуль Server01. Четвертая команда использует командлет Remove-PSSession для удаления сеанса PSSession, сохраненного в переменной $s. Пятая команда с помощью командлета New-PSSession создает новый сеанс PSSess ion, подключенный к компьютеру Server01. Этот сеанс PSSession также использ ует параметры, сохраненные в переменной $options. Шестая команда импортирует команды из модуля Server01 с помощью командлета Import-Module. Команды, содержащиеся в этом модуле, выполняются в сеансе PS Session на компьютере Server01. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135213 about_Command_Precedence Import-PSSession New-PSSession Import-Module Invoke-Command about_PSSessions FileSystem ИМЯ ПОСТАВЩИКА FileSystem ДИСКИ C, D ОПИСАНИЕ Предоставляет доступ к файлам и каталогам. ОПИСАНИЕ Поставщик Windows PowerShell FileSystem позволяет извлекать, добавлять, изм енять, очищать и удалять файлы и каталоги в Windows PowerShell. Поставщик FileSystem отображает диски Windows PowerShell, соответствующие л огическим дискам, настроенным на компьютере, в том числе дискам, сопоставле нным с общими сетевыми ресурсами. Например, компьютер с одним дисководом дл я гибких дисков, одним жестким диском и одним подключенным общим сетевым ка талогом может иметь диски с именами A, C и Z. Поставщик FileSystem отобража ет диски Windows PowerShell, напрямую соответствующие A, C и Z, что позволя ет ссылаться на них из оболочки Windows PowerShell. Например, чтобы сослать ся на диск C, необходимо указать "C:", как показано в следующем примере: get-childitem c: Эта команда возвращает все содержимое диска C, в том числе файлы и каталоги . Чтобы сослаться на определенный каталог или файл через поставщик FileSyst em, требуется предоставить данные, необходимые для определения этого катало га или файла. Это значит, что в некоторых случаях необходимо указать полное имя. Полное имя включает имя диска (с двоеточием), любые имена каталогов и подкаталогов и имя файла (если это необходимо). Например, в следующем прим ере показано полное имя файла Shell.dll, расположенного в подкаталоге Syste m32 каталога Windows на диске C:. c:\windows\system32\shell.dll Видно, что все элементы полного имени разделены обратной косой чертой (\). Оболочка Windows PowerShell позволяет также использовать прямую косую черту (/) для совместимости с некоторыми другими командными интерпретаторами. В некоторых случаях полное имя необязательно при ссылке на файл или каталог . Например, если требуется доступ к файлу в текущем рабочем положении, дост аточно указать только имя файла. Если текущим рабочим положением является c :\windows, список всех DLL-файлов в этом каталоге можно просмотреть при пом ощи следующей команды: get-childitem *.dll Если рабочий каталог отличен от c:\windows, например c:\program files\Windo ws PowerShell, то команда должна включать полное имя: get-childitem c:\windows\*.dll В некоторых случаях можно использовать относительные ссылки на положение. Е сли рабочим положением является c:\windows, и необходимо просмотреть список DLL-файлов в каталоге c:\windows\system32, можно использовать следующую ко манду: get-childitem .\system32\*.dll Точка перед \system32 представляет текущее рабочее положение. В некоторых ситуациях текущее рабочее положение находится на диске, отлично м от диска FileSystem. В этом случае необходимо включить в ссылку имя целев ого диска. Например, предположим, что текущим рабочим положением является д иск "env:". Для просмотра содержимого диска C необходимо использовать следу ющую команду: get-childitem c: ВОЗМОЖНОСТИ ЗАДАЧИ ЗАДАЧА: Просмотр файловой системы -------------------------- ПРИМЕР 1 -------------------------- Эта команда извлекает текущее местоположение: get-location Командлет Get-Location предлагает функциональность команд, подобных "cd " в командной строке Windows и "pwd" в UNIX. Чтобы получить дополнитель ные сведения, введите следующую команду: get-help get-location -------------------------- ПРИМЕР 2 -------------------------- Эта команда задает текущее местоположение: set-location C: ЗАДАЧА: Получение сведений о файлах и каталогах -------------------------- ПРИМЕР 1 -------------------------- Эта команда возвращает все файлы и каталоги из текущего каталога: get-childitem По умолчанию командлет Get-ChildItem не выполняет рекурсию. Если при за пуске этой команды в текущем каталоге имеются файлы и папки, будут возв ращены объекты System.IO.FileInfo и System.IO.DirectoryInfo. -------------------------- ПРИМЕР 2 -------------------------- Эта команда возвращает все файлы и каталоги из текущего каталога с помо щью командлета Get-ChildItem: get-childitem | where-object {$_.psiscontainer} Она передает результаты работы по конвейеру командлету Where-Object, ко торый просматривает свойство PSIsContainer и пропускает по конвейеру то лько объекты, которые не () являются контейнерами. -------------------------- ПРИМЕР 3 -------------------------- Эта команда возвращает все файлы и каталоги из текущего каталога с помо щью командлета Get-ChildItem. Она передает результаты работы по конвейе ру командлету Where-Object, который просматривает свойство PSIsContaine r и пропускает по конвейеру только те объекты, которые являются контейн ерами. get-childitem | where-object {$_.psiscontainer} -------------------------- ПРИМЕР 4 -------------------------- Эта команда возвращает все файлы и каталоги из текущего каталога с помо щью командлета Get-ChildItem: get-item -path a | format-list * Она передает результаты работы по конвейеру командлету Where-Object, ко торый просматривает свойство PSIsContainer и пропускает по конвейеру то лько объекты, которые являются контейнерами. -------------------------- ПРИМЕР 5 -------------------------- Эта команда использует командлет Get-Item, чтобы получить сведения о фа йле Test.txt. get-item -path test.txt | format-list * Командлет Format-List используется для отображения всех свойств конечно го объекта. ЗАДАЧА: Копирование файлов и каталогов -------------------------- ПРИМЕР 1 -------------------------- Эта команда копирует файл A.txt из каталога C:\A в каталог C:\A\Bb: copy-item -path C:\a\a.txt -destination C:\a\bb\a.txt Файлы в каталоге назначения переписываются без запроса подтверждения. -------------------------- ПРИМЕР 2 -------------------------- Эта команда копирует все файлы в каталоге C:\A\Bb, имеющие расширение T XT, в каталог C:\A\Cc\Ccc\: copy-item -path C:\a\bb\*.txt -destination C:\a\cc\ccc\ Используются исходные имена файлов. Эта команда переписывает существующ ие файлы в каталоге назначения без запроса подтверждения. -------------------------- ПРИМЕР 3 -------------------------- Копирует все каталоги и файлы из каталога C:\a в каталог C:\c. Если как ие-либо копируемые каталоги уже существуют в целевом каталоге, то коман да завершится с ошибкой, если не указан параметр Force. copy-item -path C:\a\* -destination C:\c -recurse ЗАДАЧА: Перемещение файлов и каталогов -------------------------- ПРИМЕР 1 -------------------------- Эта команда перемещает файл C.txt из каталога C:\A в каталог C:\A\Aa. move-item -path C:\a\c.txt -destination C:\a\aa Команда не перезапишет автоматически существующий файл с тем же именем. Для принудительной перезаписи существующего файла необходимо передать командлету параметр Force. -------------------------- ПРИМЕР 2 -------------------------- Эта команда перемещает каталог C:\A и все его содержимое в каталог C:\B . move-item -path C:\a -destination C:\b Нельзя перемещать каталог, если он является текущим положением. ЗАДАЧА: Управление содержимым файла -------------------------- ПРИМЕР 1 -------------------------- Эта команда добавляет строку "test content" в файл Test.txt: add-content -path test.txt -value "test content" Существующее содержимое файла Test.txt не удаляется. -------------------------- ПРИМЕР 2 -------------------------- Эта команда получает содержимое файла Test.txt и отображает его в консо ли. get-content -path test.txt Содержимое файла можно передать другому командлету по конвейеру. Наприм ер, следующая команда считывает содержимое файла Test.txt и передает ег о в качестве входных данных командлету ConvertTo-HTML: get-content -path test.txt | convertto-html -------------------------- ПРИМЕР 3 -------------------------- Эта команда заменяет содержимое файла Test.txt на строку "test content" : set-content -path test.txt -value "test content" Она перезаписывает содержимое файла Test.txt. Параметр Value командлета New-Item можно использовать для добавления содержимого в файл при его создании. ЗАДАЧА: Управление дескрипторами безопасности -------------------------- ПРИМЕР 1 -------------------------- Эта команда возвращает объект System.Security.AccessControl.FileSecurit y: get-acl -path test.txt | format-list -property * Чтобы получить дополнительные сведения об этом объекте, передайте по ко нвейеру результаты выполнения этой команды командлету Get-Member. Либо см. раздел "Класс FileSecurity" (FileSecurity Class) в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=145718 (на английском языке). -------------------------- ПРИМЕР 2 -------------------------- Эта команда возвращает объект System.Security.AccessControl.DirectorySe curity: get-acl -path test_directory | format-list -property * Чтобы получить дополнительные сведения об этом объекте, передайте по ко нвейеру результаты выполнения этой команды командлету Get-Member. Либо см. раздел "Класс DirectorySecurity" (DirectorySecurity Class) в библио теке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=145736 (на а нглийском языке). ЗАДАЧА: Создание файлов и каталогов -------------------------- ПРИМЕР 1 -------------------------- Эта команда создает каталог Logfiles на диске C: new-item -path c:\ -name logfiles -type directory -------------------------- ПРИМЕР 2 -------------------------- Эта команда создает файл с именем Log2.txt в каталоге C:\Logfiles и доб авляет в файл строку "test log". new-item -path c:\logfiles -name log.txt -type file -------------------------- ПРИМЕР 3 -------------------------- Создает файл с именем Log2.txt в каталоге C:\logfiles и добавляет в фай л строку "test log". new-item -path c:\logfiles -name log2.txt -type file -value "test log" ЗАДАЧА: Переименование файлов и каталогов -------------------------- ПРИМЕР 1 -------------------------- Эта команда переименовывает файл A.txt в каталоге C:\A в B.txt: rename-item -path c:\a\a.txt -newname b.txt -------------------------- ПРИМЕР 2 -------------------------- Эта команда переименовывает каталог C:\A\Cc в C:\A\Dd: rename-item -path c:\a\cc -newname dd ЗАДАЧА: Удаление файлов и каталогов -------------------------- ПРИМЕР 1 -------------------------- Эта команда удаляет файл Test.txt в текущем каталоге: remove-item -path test.txt -------------------------- ПРИМЕР 2 -------------------------- Эта команда удаляет в текущем каталоге все файлы с расширением XML: remove-item -path *.xml ЗАДАЧА: Запуск программы при вызове связанного файла -------------------------- ПРИМЕР 1 -------------------------- Первая команда использует командлет Get-Service, чтобы получить сведени я о локальных службах. Она передает информацию по конвейеру командлету Export-Csv и сохраняет эту информацию в файле Services.csv. Вторая команда использует командлет Invoke-Item, чтобы открыть файл Ser vices.csv в программе, связанной с расширением файла CSV: get-service | export-csv -path services.csv invoke-item -path services.csv ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ -Encoding <Microsoft.PowerShell.Commands.FileSystemCmdletProviderEncoding> Unknown Тип кодировки неизвестен или недопустим. Данные можно рассматри вать как двоичные. String Используется тип кодировки для строки. Unicode Кодирует в формате UTF-16 с обратным порядком байтов. Byte Кодирует набор знаков в последовательность байтов. BigEndianUnicode Кодирует в формате UTF-16 с прямым порядком байтов. UTF8 Кодирует в формате UTF-8. UTF7 Кодирует в формате UTF-7. ASCII Используется кодировка для набора знаков ASCII (7-bit). Поддерживаемые командлеты: Add-Content, Get-Content, Set-Content -Delimiter <System.String> Указывает разделитель, используемый при чтении файла. По умолчанию "\n" (конец строки). Поддерживаемые командлеты: Get-Content -Wait <System.Management.Automation.SwitchParameter> Ожидает содержимое для добавления в файл. Если содержимое добавлено, во звращает добавленное содержимое. Если содержимое не изменилось, возвращ ает весь файл. Во время ожидания командлет Get-Content проверяет файл раз в секунду, п ока не будет прерван, например, нажатием сочетания клавиш CTRL+C. Поддерживаемые командлеты: Get-Content ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ about_Providers ForEach-Object ИМЯ ForEach-Object ОПИСАНИЕ Выполняет операцию для каждого из последовательности объектов ввода. СИНТАКСИС ForEach-Object [-Process] <ScriptBlock[]> [-Begin <scriptblock>] [-End <scr iptblock>] [-InputObject <psobject>] [<CommonParameters>] ОПИСАНИЕ Командлет ForEach-Object выполняет операцию для каждого из последовательнос ти объектов ввода. Объекты ввода можно передать командлету по конвейеру или указать в параметре InputObject. Выполняемая операция описывается в блоке скрипта, который передается команд лету в качестве значения параметра Process. Блок скрипта может содержать лю бой скрипт Windows PowerShell. В пределах блока скрипта текущий объект ввода представлен переменной $_. Кроме блока скрипта, который описывает операции, выполняемые над каждым объ ектом ввода, можно задать два дополнительных блока скрипта. Один из них, за даваемый значением параметра Begin, запускается перед обработкой первого об ъекта ввода. Другой, задаваемый значением параметра End, запускается после обработки последнего объекта ввода. Результаты выполнения всех блоков скрипта, в том числе блоков Begin и End, передаются по конвейеру. ПАРАМЕТРЫ -Begin <scriptblock> Указывает блок скрипта, который будет запущен перед обработкой какого-л ибо объекта ввода. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -End <scriptblock> Указывает блок скрипта, который будет запущен после обработки всех объе ктов ввода. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Принимает объект, к которому будет применен блок скрипта, указанный в п араметре процесса. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Process <ScriptBlock[]> Указывает блок скрипта, применяемый к каждому входному объекту. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету ForEach-Object по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты, возвращаемые ForEach-Object, определяются путем ввода. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>30000,56798,12432 | foreach-object -process {$_/1024} Описание ----------- Эта команда принимает массив целых чисел, делит каждое из них на 1024 и ото бражает результаты. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-childitem C:\ | foreach-object -process { $_.length / 1024 } Описание ----------- Эта команда извлекает файлы и каталоги в корневом каталоге диска C:, а зате м возвращает и отображает размер каждого из них. Для каталогов, для которых не удалось определить размеры файлов, отображаются нули. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$events = get-eventlog -logname system -newest 1000 C:\PS> $events | foreach-object -begin {get-date} -process {out-file -filep ath events.txt -append -inputobject $_.message} -end {get-date} Описание ----------- Эта команда извлекает 1000 последних событий из системного журнала и сохран яет их в переменной $events. После этого они передаются по конвейеру команд лету ForEach-Object. Параметр Begin отображает текущие дату и время. Затем параметр Process при помощи командлета Out-File создает текстовый файл с им енем events.txt и сохраняет свойство сообщения для каждого события в этом ф айле. Наконец, параметр End отображает дату и время по окончании обработки. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-itemproperty -path hkcu:\Network\* | foreach-object {set-itemprop erty -path $_.pspath -name RemotePath -value $_.RemotePath.ToUpper();} Описание ----------- Эта команда изменяет регистр символов для всех значений записей реестра Rem otePath во всех подразделах раздела HKEY_CURRENT_USER\Network на верхний. М ожно использовать формат этой команды для изменения формы или содержания зн ачения записи регистра. Каждый подраздел раздела Network представляет собой подключенный сетевой ди ск, который переподключается при входе в систему. В записи RemotePath содер жится UNC-путь к подключенному диску. Например, при сопоставлении диска E: папке \\Server\Share, в разделе HKEY_CURRENT_USER\Network будет создан подр аздел E, и в качестве значения записи реестра RemotePath в подразделе E буд ет использоваться "\\Server\Share". Эта команда использует командлет Get-ItemProperty для считывания всех подра зделов раздела Network и командлет Set-ItemProperty для изменения значения записи реестра RemotePath во всех подразделах. В команде Set-ItemProperty п уть задается как значение свойства PSPath раздела реестра. (Это свойство об ъекта Microsoft .NET Framework, представляющего раздел реестра; это свойств о не является записью реестра.) Команда использует метод ToUpper() значения RemotePath, принадлежащего к типу "строка" (REG_SZ). Поскольку Set-ItemProperty изменяет свойство каждого ключа, для получения д оступа к свойству требуется командлет ForEach-Object. ССЫЛКИ ПО ТЕМЕ Online version: 0http://go.microsoft.com/fwlink/?LinkID=113300 Format-Custom ИМЯ Format-Custom ОПИСАНИЕ Использует пользовательское представление для форматирования вывода. СИНТАКСИС Format-Custom [[-Property] <Object[]>] [-Depth <int>] [-DisplayError] [-Exp and <string>] [-Force] [-GroupBy <Object>] [-InputObject <psobject>] [-Show Error] [-View <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Format-Custom форматирует выходные данные команды в соответствии альтернативными с правилами представления. Format-Custom позволяет задать н естандартное отображение данных, отличное от простых таблиц и списков. Можн о использовать представления, определенные в файлах *format.PS1XML в катало ге Windows PowerShell, или создать собственные представления в новых файлах PS1XML и добавить их в Windows PowerShell с помощью командлета Update-Form atData. ПАРАМЕТРЫ -Depth <int> Задает число столбцов в отображаемых данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DisplayError [<SwitchParameter>] Выводит сообщения об ошибках в командной строке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Expand <string> Форматирует объект коллекции, а также объекты, содержащиеся в коллекции . Этот параметр служит для форматирования объектов, поддерживающих инте рфейс ICollection (System.Collections). По умолчанию используется значе ние "EnumOnly". Допустимые значения: -- EnumOnly: отображаются свойства объектов, содержащихся в коллекции; -- CoreOnly: отображаются свойства объекта коллекции; -- Both: отображаются свойства объекта коллекции и свойства объектов, с одержащихся в коллекции. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Приводит к отображению командлетом полных сведений об ошибках. Использу ется с параметром DisplayError или ShowError. По умолчанию при записи о бъекта ошибки в поток ошибок или поток отображения отображаются только некоторые сведения об ошибке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -GroupBy <Object> Форматирует вывод в группы на основе общего свойства или значения. Введ ите выражение или свойство вывода. Значение параметра GroupBy может быть новым вычисляемым свойством. Чтоб ы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые клю чи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> -- FormatString <строка> Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты, подлежащие форматированию. Введите переменную, содержащ ую объекты, либо получающую их команду или выражение. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Property <Object[]> Задает свойства объекта, которые будут включены в вывод, и порядок их в ывода. Подстановочные знаки разрешены. Если этот параметр не указан, включаемые в вывод свойства зависят от от ображаемого объекта. Имя параметра ("Property") указывать необязательно . Использовать параметры Property и View в одной команде нельзя. Значение параметра Property может быть новым вычисляемым свойством. Что бы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые кл ючи: -- Expression <строка> или <блок скрипта> -- Depth <int32> Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ShowError [<SwitchParameter>] Отправляет ошибки по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -View <string> Задает имя альтернативного формата ("представления"). Если этот парамет р не указан, командлет Format-Custom выбирает пользовательское представ ление по умолчанию. Использовать параметры Property и View в одной кома нде нельзя. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Format-Custom по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.Internal.Format Командлет Format-Custom возвращает объекты формата, представляющие отоб ражение данных. ПРИМЕЧАНИЯ Командлет Format-Custom позволяет задать нестандартное отображение данн ых, отличное от простых таблиц и списков. Для вывода альтернативного пр едставления в виде таблицы используйте командлет Format-Table. Для выво да альтернативного представления в виде списка используйте командлет Fo rmat-List. Командлет Format-Custom также можно вызывать с помощью встроенного псев донима "fc". Дополнительные сведения см. в разделе about_Aliases. При указании параметра GroupBy предполагается, что объекты отсортирован ы. Перед группировкой объектов с помощью командлета Format-Custom выпол ните командлет Sort-Object, чтобы отсортировать их. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-command start-transcript | format-custom -view MyView Описание ----------- Эта команда представляет сведения о командлете Start-Transcript в формате п ользовательского представления MyView. Чтобы эта команда выполнилась без ош ибок, нужно создать новый файл PS1XML, определить представление MyView, а з атем добавить файл PS1XML в Windows PowerShell с помощью команды Update-For matData. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process Winlogon | format-custom Описание ----------- Эта команда представляет сведения о процессе Winlogon в формате альтернатив ного пользовательского представления. Так как она не содержит параметр View , для форматирования данных с помощью командлета Format-Custom используется пользовательское представление по умолчанию. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113301 Format-List ИМЯ Format-List ОПИСАНИЕ Форматирует вывод как список свойств, в котором каждое свойство выводится н а новой строке. СИНТАКСИС Format-List [[-Property] <Object[]>] [-DisplayError] [-Expand <string>] [-F orce] [-GroupBy <Object>] [-InputObject <psobject>] [-ShowError] [-View <st ring>] [<CommonParameters>] ОПИСАНИЕ Командлет Format-List форматирует вывод команды как список свойств, в котор ом каждое свойство отображается на отдельной строке. Командлет Format-List можно использовать для форматирования и отображения всех или выбранных свой ств объекта в виде списка (format-list *). В списке каждому элементу отводится больше места, чем в таблице, что позвол яет Windows PowerShell отобразить больше свойств объекта и уменьшает вероят ность обрезки их значений. ПАРАМЕТРЫ -DisplayError [<SwitchParameter>] Выводит сообщения об ошибках в командной строке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Expand <string> Форматирует объект коллекции, а также объекты, содержащиеся в коллекции . Этот параметр служит для форматирования объектов, поддерживающих инте рфейс ICollection (System.Collections). По умолчанию используется значе ние "EnumOnly". Допустимые значения: -- EnumOnly: отображаются свойства объектов, содержащихся в коллекции; -- CoreOnly: отображаются свойства объекта коллекции; -- Both: отображаются свойства объекта коллекции и свойства объектов, с одержащихся в коллекции. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Приводит к отображению командлетом полных сведений об ошибках. Использу ется с параметром DisplayError или ShowError. По умолчанию при записи о бъекта ошибки в поток ошибок или поток отображения отображаются только некоторые сведения об ошибке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -GroupBy <Object> Форматирует вывод в группы на основе общего свойства или значения. Введ ите выражение или свойство вывода. Значение параметра GroupBy может быть новым вычисляемым свойством. Чтоб ы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые клю чи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> -- FormatString <строка> Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты, подлежащие форматированию. Введите переменную, содержащ ую объекты, либо получающую их команду или выражение. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Property <Object[]> Задает свойства объекта, которые будут включены в вывод, и порядок их в ывода. Подстановочные знаки разрешены. Если этот параметр не указан, включаемые в вывод свойства зависят от от ображаемого объекта. Имя параметра ("Property") указывать необязательно . Использовать параметры Property и View в одной команде нельзя. Значение параметра Property может быть новым вычисляемым свойством. Что бы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые кл ючи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> -- FormatString <строка> Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ShowError [<SwitchParameter>] Отправляет ошибки по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -View <string> Задает имя альтернативного формата списка ("представления"). Использова ть параметры Property и View в одной команде нельзя. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Format-List по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.Internal.Format Командлет Format-List возвращает объекты формата, представляющие список . ПРИМЕЧАНИЯ Командлет Format-List также можно вызывать с помощью встроенного псевдо нима "FL". Дополнительные сведения см. в разделе about_Aliases. Командлеты форматирования, такие как Format-List, выполняют упорядочени е данных, но не отображают их. Для отображения данных предназначены сре дства вывода Windows PowerShell и командлеты с именами, содержащими гла гол "Out", такие как Out-Host, Out-File и Out-Printer. Если командлет форматирования не используется, оболочка Windows PowerSh ell отображает каждый объект в формате по умолчанию. При указании параметра GroupBy предполагается, что объекты отсортирован ы. Перед группировкой объектов с помощью командлета Format-Custom выпол ните командлет Sort-Object, чтобы отсортировать их. Параметр View позволяет задать альтернативный формат таблицы. Можно исп ользовать представления, определенные в файлах *.format.PS1XML в катало ге Windows PowerShell, или создать собственные представления в новых фа йлах PS1XML и включить их в Windows PowerShell с помощью командлета Upd ate-FormatData. Альтернативное представление, которое определяется параметром View, дол жно иметь формат списка, в противном случае команда завершится с ошибко й. Если альтернативное представление является таблицей, используйте ком андлет Format-Table. Если альтернативное представление не является ни с писком, ни таблицей, используйте командлет Format-Custom. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-service | format-list Описание ----------- Эта команда форматирует сведения о службах на компьютере в виде списка. По умолчанию сведения о службах форматируются в виде таблицы. Командлет Get-Se rvice получает объекты, представляющие службы на компьютере. Оператор конве йера (|) передает результаты по конвейеру команде Format-List. После этого команда Format-List форматирует сведения о службах в виде списка и отправля ет их в командлет вывода по умолчанию. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$a = get-childitem $pshome\*.ps1xml Описание ----------- Эти команды отображают сведения о файлах PS1XML, находящихся в каталоге Win dows PowerShell, в виде списка. Первая команда получает объекты, представля ющие файлы, и сохраняет их в переменной $a. Вторая команда с помощью команд лета Format-List форматирует сведения об объектах, сохраненных в переменной $a. Эта команда с помощью параметра InputObject передает переменную команд лету Format-List, который отправляет отформатированные выходные данные кома ндлету вывода по умолчанию. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | format-list -property name, basepriority, priorityclass Описание ----------- Эта команда отображает имя, базовый приоритет и класс приоритета каждого пр оцесса на компьютере. Для получения объектов, представляющих процессы, испо льзуется командлет Get-Process. Оператор конвейера (|) передает объекты про цессов командлету Format-List. Командлет Format-List форматирует процессы в виде списка с указанными свойствами. Имя параметра "Property" указывать не обязательно. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process winlogon | format-list -property * Описание ----------- Эта команда отображает все свойства процесса Winlogon. Для получения объект а, представляющего процесс Winlogon, используется командлет Get-Process. Оп ератор конвейера (|) передает объект процесса Winlogon по конвейеру командл ету Format-List. Параметр Property используется в этой команде для выбора с войств, а звездочка (*) указывает, что нужно выбрать все свойства. Имя пара метра Property указывать не обязательно, поэтому данную команду можно ввест и следующим образом: "format-list *". Командлет Format-List автоматически о тправляет результаты командлету вывода по умолчанию. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113302 Format-Table ИМЯ Format-Table ОПИСАНИЕ Форматирует вывод в виде таблицы. СИНТАКСИС Format-Table [[-Property] <Object[]>] [-AutoSize] [-DisplayError] [-Expand <string>] [-Force] [-GroupBy <Object>] [-HideTableHeaders] [-InputObject <p sobject>] [-ShowError] [-View <string>] [-Wrap] [<CommonParameters>] ОПИСАНИЕ Командлет Format-Table форматирует выходные данные команды в виде таблицы, столбцы которой содержат выбранные свойства объекта. Формат по умолчанию и свойства, отображаемые в каждом столбце, зависят от типа объекта, однако с помощью параметра Property можно выбрать нужные свойства. Можно также использовать хэш-таблицу, чтобы добавлять к объекту вычисляемые свойства, прежде чем выводить их, и чтобы задавать заголовки столбцов в та блице. Чтобы добавить вычисляемое свойство, используйте параметр Property и ли GroupBy. ПАРАМЕТРЫ -AutoSize [<SwitchParameter>] Настраивает размер и количество столбцов на основе ширины данных. По ум олчанию размер и число столбцов определяются представлением. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DisplayError [<SwitchParameter>] Выводит сообщения об ошибках в командной строке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Expand <string> Форматирует объект коллекции, а также объекты, содержащиеся в коллекции . Этот параметр служит для форматирования объектов, поддерживающих инте рфейс ICollection (System.Collections). По умолчанию используется значе ние "EnumOnly". Допустимые значения: -- EnumOnly: отображаются свойства объектов, содержащихся в коллекции; -- CoreOnly: отображаются свойства объекта коллекции; -- Both: отображаются свойства объекта коллекции и свойства объектов, с одержащихся в коллекции. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Приводит к отображению командлетом полных сведений об ошибках. Использу ется с параметром DisplayError или ShowError. По умолчанию при записи о бъекта ошибки в поток ошибок или поток отображения отображаются только некоторые сведения об ошибке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -GroupBy <Object> Разбивает отсортированные результаты по нескольким таблицам в зависимос ти от значения свойства. Например, с помощью параметра GroupBy службы м ожно поместить в отдельные таблицы в зависимости от их состояния. Введите выражение или свойство вывода. Перед отправкой результатов кома ндлету Format-Table они должны быть отсортированы. Значение параметра GroupBy может быть новым вычисляемым свойством. Чтоб ы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые клю чи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> -- FormatString <строка> Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -HideTableHeaders [<SwitchParameter>] Исключает из таблицы заголовки столбцов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты, подлежащие форматированию. Введите переменную, содержащ ую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Property <Object[]> Задает свойства объекта, которые будут включены в вывод, и порядок их в ывода. Введите одно или несколько имен свойств (разделенных запятыми) и ли воспользуйтесь хэш-таблицей, чтобы вывести вычисляемое свойство. Под становочные знаки разрешены. Если этот параметр не указан, включаемые в вывод свойства зависят от от ображаемого объекта. Имя параметра ("Property") указывать необязательно . Использовать параметры Property и View в одной команде нельзя. Значение параметра Property может быть новым вычисляемым свойством. Что бы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые кл ючи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> -- FormatString <строка> -- Width <int32> -- Alignment (значение может быть "Left", "Center" или "Right") Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ShowError [<SwitchParameter>] Отправляет ошибки по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -View <string> Задает имя альтернативного табличного формата ("представления"). Исполь зовать параметры Property и View в одной команде нельзя. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Wrap [<SwitchParameter>] Отображает текст, длина которого превышает ширину столбца, на следующей строке. По умолчанию текст, выходящий за пределы столбца, обрезается. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Format-Table по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.Internal.Format Командлет Format-Table возвращает объекты формата, представляющие табли цу. ПРИМЕЧАНИЯ Командлет Format-Table также можно вызывать с помощью встроенного псевд онима "FT". Дополнительные сведения см. в разделе About_Aliases. При указании параметра GroupBy предполагается, что объекты отсортирован ы. Перед группировкой объектов с помощью командлета Format-Custom выпол ните командлет Sort-Object, чтобы отсортировать их. Параметр View позволяет задать альтернативный формат таблицы. Можно исп ользовать представления, определенные в файлах *.format.PS1XML в катало ге Windows PowerShell, или создать собственные представления в новых фа йлах PS1XML и включить их в Windows PowerShell с помощью командлета Upd ate-FormatData. Альтернативное представление, которое определяется параметром View, дол жно иметь табличный формат, в противном случае команда завершится ошибк ой. Если альтернативное представление является списком, используйте ком андлет Format-List. Если альтернативное представление не является ни сп иском, ни таблицей, используйте командлет Format-Custom. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-pssnapin | format-table -auto Описание ----------- Эта команда форматирует сведения об оснастках оболочки Windows PowerShell в виде таблицы. По умолчанию эти сведения форматируются как список. Командле т Get-PSSnapin возвращает объекты, представляющие оснастки. Оператор конвей ера (|) передает объект команде Format-Table. Команда Format-Table форматир ует объекты в таблице. Параметр Autosize настраивает ширину столбцов так, ч тобы свести к минимуму обрезку значений. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process | sort-object -property basepriority | format-table -grou pby basepriority -wrap Описание ----------- Эта команда отображает процессы на компьютере, группируя их по базовому при оритету. Командлет Get-Process получает объекты, представляющие процессы на компьюте ре. Объекты с помощью оператора конвейера (|) передаются командлету Sort-Ob ject, который сортирует их по базовому приоритету. Другой оператор конвейера передает результаты команде Format-Table. Парамет р GroupBy объединяет данные о процессах в группы на основе значения их свой ства BasePriority. Параметр Wrap защищает эти данные от усечения. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | sort-object starttime | format-table -view starttime Описание ----------- Эта команда отображает сведения о процессах на компьютере, группируя их по дате запуска процесса. Для получения объектов, представляющих процессы на к омпьютере, используется командлет Get-Process. Оператор конвейера (|) перед ает выходные данные командлета Get-Process командлету Sort-Object, который сортирует их на основе свойства StartTime. Другой оператор конвейера переда ет отсортированные результаты командлету Format-Table. Параметр View используется для выбора представления StartTime, определенног о в файле форматирования DotNetTypes.format.ps1xml для объектов System.Diag nostics.Process, например объектов, возвращаемых командлетом Get-Process. Э то представление преобразует время запуска (StartTime) процессов в краткий формат даты, а затем группирует процессы по дате запуска. Файл форматирования DotNetTypes.format.ps1xml содержит также представление процессов Priority. Кроме того, можно создавать собственные файлы format.ps 1xml с пользовательскими представлениями. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-service | format-table -property Name, DependentServices Описание ----------- Эта команда отображает все службы на компьютере в таблице с двумя столбцами — Name и DependentServices. Для получения всех служб на компьютере в этой команде используется командлет Get-Service. С помощью оператора конвейера ( |) результаты передаются командлету Format-Table, который форматирует выход ные данные в виде таблицы. Параметр Property определяет свойства, представл яемые в таблице в виде столбцов. Имя параметра Property является необязател ьным, поэтому его можно не указывать ("format-table name, dependentservices "). Property и DependentServices — это только два свойства объектов служб. Чтоб ы просмотреть все свойства, введите "get-service | get-member". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-process notepad | format-table ProcessName, ` @{Label="TotalRunningTime"; Expression={(get-date) - $_.StartTime}} Описание ----------- Эта команда демонстрирует использование вычисляемых свойств в таблице. Она отображает таблицу с именем процесса и общим временем выполнения всех проце ссов "Notepad" на локальном компьютере. Для определения общего времени выпо лнения процессов время запуска каждого процесса вычитается из текущего врем ени. Для получения всех процессов с именем "Notepad" на локальном компьютере в э той команде используется командлет Get-Process. Оператор конвейера (|) пере дает результаты командлету Format-Table, который отображает таблицу с двумя столбцами: ProcessName (стандартное свойство процессов) и TotalRunningTime (вычисляемое свойство). Свойство TotalRunningTime определяется хэш-таблицей с двумя ключами — Label и Expression. Имя свойства назначается ключу Label. Вычисляемое выражение назначается ключу Expression. Это выражение получает значение свойства Star tTime каждого объекта-процесса и вычитает его из результата выполнения кома нды Get-Date, которая возвращает текущую дату (и время). -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$processes = get-wmiobject -ComputerName Server01 win32_process -filt er "name='notepad.exe'" C:\PS> $processes | format-table ProcessName, @{ Label = "Total Running Ti me"; ` Expression={(get-date) - $_.ConvertToDateTime($_.CreationDate)}} Описание ----------- Эти команды аналогичны предыдущей команде, только в них используются команд лет Get-WmiObject и класс Win32_Process для отображения сведений о процесса х "Notepad" на удаленном компьютере. В первой команде командлет Get-WmiObject получает экземпляры класса Win32_P rocess инструментария управления Windows (WMI), описывающего все процессы N otepad.exe на компьютере Server01. Сведения о процессах сохраняются данной командой в переменной $processes. Во второй команде оператор конвейера (|) передает сведения о процессах, сох раненные в переменной $processes, командлету Format-Table, который отобража ет имя каждого процесса и значение нового вычисляемого свойства. Имя нового вычисляемого свойства (Total Running Time) назначается данной ко мандой ключу Label. Блок скрипта, назначенный ключу "Expression", вычисляет время выполнения процесса, вычитая дату создания процесса из текущей даты. Командлет Get-Date получает текущую дату. Метод ConvertToDateTime преобраз ует свойство CreationDate объекта Win32_Process из WMI-объекта CIM_DATETIME в объект Microsoft .NET Framework DateTime, который можно сравнить с выход ными данными командлета Get-Date. После этого преобразованная дата создания процесса вычитается из текущей даты. Результат — значение "Total Running T ime". Открывающая кавычка (`) является знаком продолжения строки. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113303 Format-List Format-Wide Format-Custom Format-Wide ИМЯ Format-Wide ОПИСАНИЕ Форматирует объекты в виде широкой таблицы, в которой отображается только о дно свойство каждого объекта. СИНТАКСИС Format-Wide [[-Property] <Object>] [-AutoSize] [-Column <int>] [-DisplayErr or] [-Expand <string>] [-Force] [-GroupBy <Object>] [-InputObject <psobject >] [-ShowError] [-View <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Format-Wide форматирует объекты в виде широкой таблицы, в которой отображается только одно свойство каждого объекта. Чтобы узнать, какое сво йство отображается, используйте параметр Property. ПАРАМЕТРЫ -AutoSize [<SwitchParameter>] Настраивает размер и количество столбцов на основе ширины данных. По ум олчанию размер и число столбцов определяются представлением. Использова ть параметры AutoSize и Column в одной команде нельзя. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Column <int> Задает число столбцов в отображаемых данных. Использовать параметры Aut oSize и Column в одной команде нельзя. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DisplayError [<SwitchParameter>] Выводит сообщения об ошибках в командной строке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Expand <string> Форматирует объект коллекции, а также объекты, содержащиеся в коллекции . Этот параметр служит для форматирования объектов, поддерживающих инте рфейс ICollection (System.Collections). По умолчанию используется значе ние "EnumOnly". Допустимые значения: -- EnumOnly: отображаются свойства объектов, содержащихся в коллекции; -- CoreOnly: отображаются свойства объекта коллекции; -- Both: отображаются свойства объекта коллекции и свойства объектов, с одержащихся в коллекции. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Переопределяет ограничения, препятствующие выполнению команды, не ставя под угрозу безопасность. Например, параметр Force позволяет переопреде лить атрибут "только чтение" или создать дополнительные каталоги в пути к файлу без изменения разрешений на доступ к файлам. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -GroupBy <Object> Форматирует вывод в группы на основе общего свойства или значения. Введ ите выражение или свойство вывода. Значение параметра GroupBy может быть новым вычисляемым свойством. Чтоб ы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые клю чи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> -- FormatString <строка> Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты, подлежащие форматированию. Введите переменную, содержащ ую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Property <Object> Задает свойства объекта, которые будут включены в вывод, и порядок их в ывода. Подстановочные знаки разрешены. Если этот параметр не указан, включаемые в вывод свойства зависят от от ображаемого объекта. Имя параметра ("Property") указывать необязательно . Использовать параметры Property и View в одной команде нельзя. Значение параметра Property может быть новым вычисляемым свойством. Что бы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые кл ючи: -- Expression <строка> или <блок скрипта> -- FormatString <строка> Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ShowError [<SwitchParameter>] Отправляет ошибки по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -View <string> Задает имя альтернативного табличного формата ("представления"). Исполь зовать параметры Property и View в одной команде нельзя. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Format-Wide по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.Internal.Format Командлет Format-Wide возвращает объекты формата, представляющие таблиц у. ПРИМЕЧАНИЯ Командлет Format-Wide также можно вызывать с помощью встроенного псевдо нима "fw". Дополнительные сведения см. в разделе About_Aliases. При указании параметра GroupBy предполагается, что объекты отсортирован ы. Перед группировкой объектов с помощью командлета Format-Custom выпол ните командлет Sort-Object, чтобы отсортировать их. Параметр -View позволяет задать альтернативный формат таблицы. Можно ис пользовать представления, определенные в файлах *.format.PS1XML в катал оге Windows PowerShell, или создать собственные представления в новых ф айлах PS1XML и включить их в Windows PowerShell с помощью командлета Up date-FormatData. Альтернативное представление, которое определяется параметром View, дол жно иметь табличный формат, в противном случае команда завершится ошибк ой. Если альтернативное представление является списком, используйте ком андлет Format-List. Если альтернативное представление не является ни сп иском, ни таблицей, используйте командлет Format-Custom. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-childitem | format-wide -column 3 Описание ----------- Эта команда отображает имена файлов в текущем каталоге, выводя их на экран в трех столбцах. Командлет Get-ChildItem получает объекты, представляющие в се файлы в каталоге. Оператор конвейера (|) передает объекты файлов по конв ейеру командлету Format-Wide, который форматирует их, подготавливая к вывод у. Параметр Column определяет количество столбцов. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-childitem HKCU:\software\microsoft | format-wide -property pschil dname -autosize Описание ----------- Эта команда отображает имена разделов реестра в разделе HKEY_CURRENT_USER\S oftware\Microsoft. Командлет Get-ChildItem получает объекты, представляющие разделы реестра. Путь указывается как "HKCU:" (один из дисков, предоставля емых поставщиком реестра Windows PowerShell), после чего следует путь к раз делу. Оператор конвейера (|) передает объекты разделов реестра по конвейеру командлету Format-Wide, который форматирует их, подготавливая к выводу. Па раметр Property определяет имя свойства, а параметр AutoSize изменяет разме р столбцов, чтобы данные в них было удобнее читать. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113304 Function ИМЯ ПОСТАВЩИКА Function ДИСКИ Function: ОПИСАНИЕ Предоставляет доступ к функциям, определенным в Windows PowerShell. ОПИСАНИЕ Поставщик Windows PowerShell Function позволяет извлекать, добавлять, измен ять, очищать и удалять функции и фильтры в Windows PowerShell. Функция представляет собой именованный блок кода, выполняющий некоторое дей ствие. Если набрать имя функции, выполняется код этой функции. Фильтр предс тавляет собой именованный блок кода, устанавливающий условия выполнения нек оторого действия. Имя фильтра можно ввести вместо условия, например в коман де Where-Object. На диске Function: функции предварены меткой "Function", а фильтры предваре ны меткой "Filter", но правильная работа в корректном контексте обеспечивае тся независимо от метки. Поставщик Function представляет собой плоское пространство имен, содержащее только объекты функций и фильтров. Ни функции, ни фильтры не имеют дочерни х элементов. Каждая функция является экземпляром класса System.Management.Automation.Fun ctionInfo. Каждый фильтр является экземпляром класса System.Management.Auto mation.FilterInfo. Примеры в данном разделе иллюстрируют управление функциями, но те же методы применимы и к фильтрам. Поставщик Function отображает свое хранилище данных как диск Function:. Для работы с функциями можно изменить свое положение на диск Function: ("set-l ocation function:"). Можно также работать в оболочке Windows PowerShell с д ругого диска. Для ссылки на функцию из другого положения следует использова ть в пути имя диска (Function:). Поставщик Function поддерживает все командлеты, в именах которых содержится существительное Item (командлеты Item), кроме Invoke-Item. Кроме того, он поддерживает командлеты Get-Content и Set-Content. Однако он не поддерживае т командлеты, в именах которых содержится существительное ItemProperty (ком андлеты ItemProperty), и не поддерживает параметр Filter в любом командлете . Все изменения в функциях затрагивают только текущую консоль. Добавьте функц ию в профиль Windows PowerShell, чтобы сохранить изменения, либо используйт е командлет Export-Console, чтобы сохранить текущее состояние консоли. ВОЗМОЖНОСТИ ЗАДАЧИ ЗАДАЧА: Обращение к диску Function: -------------------------- ПРИМЕР 1 -------------------------- Изменение текущего положения на диск Function:. Эту команду можно испол ьзовать с любого диска в оболочке Windows PowerShell. Чтобы вернуться к диску файловой системы, введите имя диска. Например, введите команду " set-location c:". set-location function: ЗАДАЧА: Извлечение функций -------------------------- ПРИМЕР 1 -------------------------- Эта команда возвращает список всех функций в текущем сеансе. Эту команд у можно использовать с любого диска Windows PowerShell. get-childitem -path function: -------------------------- ПРИМЕР 2 -------------------------- Эта команда извлекает функцию "man" с диска Function:. Для извлечения ф ункции используется командлет Get-Item. Оператор конвейера (|) передает результаты командлету Format-Table. Параметр Wrap переводит текст, не умещающийся на строке, на следующую с троку. Параметр Autosize подгоняет ширину столбцов таблицы под размер т екста. get-item -path man | format-table -wrap -autosize Если вы находитесь на другом диске, добавьте в путь имя диска (Function :). -------------------------- ПРИМЕР 3 -------------------------- Обе эти команды извлекают функцию с именем "c:". Первую команду можно и спользовать на любом диске. Вторая команда используется на диске Functi on:. Поскольку имя функции оканчивается двоеточием, то есть имеет синтаксис имени диска, необходимо указать в пути имя диска. Находясь на диске Fun ction:, можно использовать любой из форматов. Во второй команде точка ( .) представляет текущее положение. c:\PS> get-item -path function:c: PS Function> get-item -path .\c: ЗАДАЧА: Создание функции -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет New-Item для создания функции с именем "HKLM:". Выражение в фигурных скобках представляет собой блок скрипта, который представлен именем функции. new-item -path function:hklm: -value {set-location hklm:} Создать функцию также можно, набрав ее в командной строке Windows Power Shell. Например, введите "function:hklm: {set-location hklm:}". Если те кущим положением является диск Function:, имя диска можно не указывать. Поскольку невозможно указать метку "Filter" в командлете New-Item, филь тры помечаются как функции, но правильная работа возможна с любой метко й. Для создания фильтра с меткой "Filter" наберите фильтр в командной с троке. Например, введите "filter:Running {$_.Status -eq "Running"}". -------------------------- ПРИМЕР 2 -------------------------- Эта команда использует командлет New-Item для создания функции с именем Csrss. Динамический параметр Options используется для указания значени я ReadOnly в свойстве Options функции. new-item -path function: -name csrss -options readonly -value {get-proc ess csrss} Эта команда работает из любого положения. Если диск Function: уже откры т, для задания пути можно использовать точку (.). Точка обозначает теку щее местоположение. ЗАДАЧА: Удаление функции -------------------------- ПРИМЕР 1 -------------------------- Эта команда удаляет функцию "hklm:" из текущего сеанса. remove-item function:hklm: -------------------------- ПРИМЕР 2 -------------------------- Эта команда удаляет все функции из текущего сеанса, кроме функций, в св ойстве Options которых содержится значение Constant. Если не задан пара метр Force, команда не удаляет функции со значением ReadOnly свойства O ptions. remove-item function:* -force При удалении всех функций изменяется приглашение в командной строке, по скольку удаляется функция приглашения, определяющая содержимое приглаше ния в командной строке. ЗАДАЧА: Отображение свойств и методов функций -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Get-Item для получения всех функций. Р езультаты с помощью оператора конвейера передаются командлету Get-Membe r, который отображает методы и свойства объекта. get-item -path function:* | get-member При передаче командлету Get-Member по конвейеру коллекции объектов (нап ример коллекции функций на диске Function:) командлет Get-Member обраба тывает каждый объект коллекции отдельно и возвращает информацию о каждо м найденном типе объекта. Если все объекты принадлежат к одному типу, в ыводятся сведения о единственном типе объекта. В данном случае все функ ции являются объектами FunctionInfo. Для получения сведений о коллекции объектов FunctionInfo используйте па раметр InputObject командлета Get-Member. Например, введите "get-member -InputObject (get-item function:*)". При использовании параметра Input Object командлет Get-Member выполняет оценку всей коллекции, а не отдел ьных объектов из нее. -------------------------- ПРИМЕР 2 -------------------------- Эта команда перечисляет значения свойств функции "prompt". Она использу ет командлет Get-Item для получения объекта, представляющего функцию "p rompt". Оператор конвейера (|) передает результаты команде Format-List. Команда Format-List использует параметр Property с подстановочным знак ом (*) для форматирования и отображения значений всех свойств функции " prompt". get-item function:prompt | format-list -property * ЗАДАЧА: Изменение свойств функции -------------------------- ПРИМЕР 1 -------------------------- Для изменения свойства Options функции можно использовать командлет Set -Item с динамическим параметром Options. Эта команда задает значения параметров AllScope и ReadOnly для функции "prompt". В ней используется динамический параметр Options командлета S et-Item. Параметр Options доступен для Set-Item только при использовани и с поставщиком Alias или Function. set-item -path function:prompt -options "AllScope,ReadOnly" -------------------------- ПРИМЕР 2 -------------------------- В этой команде командлет Set-Item используется для изменения функции "p rompt" таким образом, чтобы перед значением пути отображалось время. set-item -path function:prompt -value {'PS '+ $(Get-Date -format t) + " " + $(Get-Location) + '> '} Это изменение затрагивает как свойство Definition объекта FunctionInfo, так и свойство ScriptBlock. Чтобы увидеть результаты изменения, набери те "get-item -path function:prompt | format-list -property *". -------------------------- ПРИМЕР 3 -------------------------- Эта команда использует командлет Rename-Item для изменения имени функци и "help" на "gh". rename-item -path function:help -newname gh ЗАДАЧА: Копирование функции -------------------------- ПРИМЕР 1 -------------------------- Эта команда копирует функцию "prompt" в "oldPrompt", в результате чего создается новое имя для блока скрипта, связанного с функцией prompt. Та ким образом можно сохранить исходную функцию prompt, если планируется и зменить ее. Свойство Options новой функции имеет значение None. Чтобы изменить знач ение свойства Options, используйте командлет Set-Item. copy-item -path function:prompt -destination function:oldPrompt ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ -Options <System.Management.Automation.ScopedItemOptions> Определяет значение свойства Options функции. None Без параметров. По умолчанию используется "None". Constant Функцию нельзя удалить, и ее свойства нельзя изменить. Значение Constant доступно только при создании функции. Этому параметру существующей функции нельзя задать значение Constant. Private Функция видна только в текущей области (не в дочерних областях) . ReadOnly Свойства функции не могут быть изменены. Исключение составляет параметр Force. Для удаления функции можно использовать командл ет Remove-Item. AllScope Функция копируется во все создаваемые новые области. Поддерживаемые командлеты: New-Item, Set-Item ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ about_Functions about_Providers Get-Acl ИМЯ Get-Acl ОПИСАНИЕ Получает дескриптор безопасности для ресурса, такого как файл или раздел ре естра. СИНТАКСИС Get-Acl [[-Path] <string[]>] [-Audit] [-Exclude <string[]>] [-Filter <strin g>] [-Include <string[]>] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Acl получает объекты, которые представляют дескриптор безопас ности файла или ресурса. Дескриптор безопасности содержит списки управления доступом (ACL) ресурса. Список ACL содержит разрешения, необходимые пользо вателям и группам пользователей для доступа к ресурсу. ПАРАМЕТРЫ -Audit [<SwitchParameter>] Получает данные аудита для дескриптора безопасности из системного списк а управления доступом (SACL). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Извлекает только указанные элементы. Значение этого параметра определяе т значение параметра Path. Введите элемент пути или шаблон, например "* .txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к ресурсу. Командлет Get-Acl получает дескриптор безопаснос ти ресурса, заданного значением пути. Подстановочные знаки разрешены. Е сли пропустить параметр Path, то командлет Get-Acl получает дескриптор безопасности текущего каталога. Имя параметра ("Path") указывать необязательно. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Get-Acl по конвейеру . ВЫХОДНЫЕ ДАННЫЕ System.Security.AccessControl Командлет Get-Acl возвращает объект, представляющий получаемое им ACL. Тип объекта зависит от типа ACL. ПРИМЕЧАНИЯ По умолчанию командлет Get-Acl отображает путь Windows PowerShell к рес урсу (<поставщик>::<путь_к_ресурсу>), владельца ресурса и список (масси в) записей управления доступом из дискреционного списка управления дост упом (DACL) ресурса. Список DACL управляется владельцем ресурса. При форматировании результата в виде списка, ("get-acl | format-list"), помимо пути, владельца и списка доступа оболочка Windows PowerShell от ображает следующие поля: Group: группа безопасности владельца. Audit: список (массив) записей в системном списке управления доступом ( SACL). Список SACL указывает типы попыток доступа, для которых Windows формирует записи аудита. Sddl: дескриптор безопасности ресурса, отображаемый в одной текстовой с троке в формате языка определения дескрипторов безопасности (SDDL). Обо лочка Windows PowerShell использует метод GetSddlForm дескрипторов безо пасности, чтобы получить эти данные. Get-Acl поддерживается поставщиками реестра и файловой системы, поэтому Get-Acl можно использовать для просмотра списка управления доступом об ъектов файловой системы, таких как файлы и каталоги, и объектов реестра , таких как параметры и разделы реестра. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-acl C:\windows Описание ----------- Эта команда получает дескриптор безопасности каталога "C:Windows". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-acl C:\Windows\k*.log | format-list -property PSPath, Sddl Описание ----------- Эта команда получает путь Windows PowerShell и значение SDDL для всех LOG-ф айлов в каталоге "C:\Windows", имена которых начинаются с "k". Команда использует Get-Acl, чтобы получить объекты, представляющие дескрипт оры безопасности каждого файла журнала. Результаты передаются командлету Fo rmat-List с помощью оператора конвейера (|). Команда использует параметр Pr operty командлета Format-List, чтобы вывести только свойства PsPath и SDDL каждого из объектов дескриптора безопасности. В оболочке Windows PowerShell часто используются списки, так как длинные зн ачения в таблицах усекаются. Значения SDDL полезны для системных администраторов, так как это простые те кстовые строки, содержащие все данные в дескрипторе безопасности. Их просто передавать и хранить, а при необходимости просто разобрать. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-ACL c:/windows/k*.log -Audit | foreach-object { $_.Audit.Count } Описание ----------- Эта команда получает дескрипторы безопасности для всех LOG-файлов в каталог е "C:\ Windows", имена которых начинаются с "k". Для извлечения записей ауд ита из SACL в дескрипторе безопасности команда использует параметр Audit. З атем параметр For-EachObject используется для подсчета числа записей аудита , связанных с каждым файлом. Результат — список чисел, представляющих число записей аудита в каждом файле журнала. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-acl -path hklm:\system\currentcontrolset\control | format-list Описание ----------- Эта команда использует Get-Acl, чтобы получить дескриптор безопасности подр аздела реестра Control (HKLM\SYSTEM\CurrentControlSet\Control). Параметр Path указывает подраздел Control. Оператор конвейера (|) передает дескриптор безопасности, извлеченный командлетом Get-Acl, в команду Format- List, которая форматирует свойства дескриптора безопасности в виде списка, чтобы облегчить чтение. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113305 Set-Acl Get-Alias ИМЯ Get-Alias ОПИСАНИЕ Возвращает псевдонимы, действительные в ходе текущего сеанса. СИНТАКСИС Get-Alias [[-Name] <string[]>] [-Exclude <string[]>] [-Scope <string>] [ mmonParameters>] Get-Alias [-Definition <string[]>] [-Exclude <string[]>] [-Scope <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Alias получает псевдонимы (альтернативные имена команд и испо лняемых файлов), действительные в рамках текущего сеанса. В их число входят встроенные псевдонимы, псевдонимы, заданные или импортированные пользовате лем, а также добавленные пользователем в его профиль Windows PowerShell. По умолчанию командлет Get-Alias принимает псевдоним и возвращает имя коман ды. При использовании параметра Definition командлет Get-Alias принимает им я команды и возвращает ее псевдонимы. ПАРАМЕТРЫ -Definition <string[]> Получает псевдонимы для заданного элемента. Введите имя командлета, фун кции, скрипта, файла или исполняемого файла. Этот параметр называется Definition, поскольку он позволяет выполнить п оиск по имени элемента в свойстве Definition объекта псевдонима. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Exclude <string[]> Исключает указанные элементы. Значение данного параметра определяет зна чения параметров Name и Definition. Введите имя, определение или шаблон , например "s*". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает псевдонимы, которые нужно получить. Подстановочные знаки разреше ны. По умолчанию командлет Get-Alias возвращает все псевдонимы, определ енные для текущего сеанса. Имя параметра ("Name") указывать необязатель но. Кроме того, можно передать имена псевдонимов в Get-Alias с помощью конвейера. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Scope <string> Получает только псевдонимы в заданной области. Допустимые значения: "Gl obal", "Local", "Script" или номер относительно текущей области (от 0 д о количества областей, где 0 — текущая область, а 1 — ее родительская о бласть). По умолчанию используется значение "Local". Дополнительные све дения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать имена псевдонимов в Get-Alias с помощью конвейера. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.AliasInfo Командлет Get-Alias возвращает объект, представляющий каждый из псевдон имов. ПРИМЕЧАНИЯ Псевдоним — это альтернативное имя командлета, функции или исполняемого файла. Для выполнения командлета, функции или исполняемого файла можно использовать как его полное имя, так и любой его псевдоним. Дополнител ьные сведения см. в разделе About_Aliases. Для создания нового псевдонима используйте командлет Set-Alias или New- Alias. Для удаления псевдонима используйте командлет Remove-Item. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-alias Описание ----------- Эта команда получает все псевдонимы в текущем сеансе. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-alias -name g*, s* -exclude get-* Описание ----------- Эта команда получает все псевдонимы, имена которых начинаются на "g" или "s ", кроме псевдонимов, начинающихся на "get-". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-alias -definition Get-ChildItem Описание ----------- Эта команда получает псевдонимы для командлета Get-ChildItem. По умолчанию командлет Get-Alias получает имя элемента, если известен псевд оним. Параметр Definition позволяет получить псевдоним, если известно имя э лемента. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-alias | where-object {$_.Options -match "ReadOnly"} Описание ----------- Эта команда возвращает все псевдонимы, в которых свойство Options имеет зна чение ReadOnly. Она позволяет быстро найти псевдонимы, встроенные в Windows PowerShell, потому что они имеют параметр ReadOnly. Options — это только одно из свойств объектов AliasInfo, получаемых командл етом Get-Alias. Чтобы найти все свойства и методы объектов AliasInfo, введи те команду "get-alias | get-member". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-alias -definition "*-pssession" -exclude e* -scope global Описание ----------- Этот пример получает псевдонимы команд, имена которых заканчиваются на "-ps session", кроме команд, начинающихся на "e". Для применения команды в глобальной области используется параметр Scope ком анды. Это бывает полезно в скриптах, в которых требуется получить псевдоним ы в сеансе. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113306 about_Aliases Set-Alias New-Alias Export-Alias Import-Alias Alias Provider Get-AuthenticodeSignature ИМЯ Get-AuthenticodeSignature ОПИСАНИЕ Получает сведения о подписи Authenticode в файле. СИНТАКСИС Get-AuthenticodeSignature [-FilePath] <string[]> [<CommonParameters>] ОПИСАНИЕ Командлет Get-AuthenticodeSignature собирает сведения о подписи Authenticod e в файле. Если файл не подписан, то сведения извлекаются, но поля остаются пустыми. ПАРАМЕТРЫ -FilePath <string[]> Задает путь к проверяемому файлу. Подстановочные знаки разрешены, но он и должны приводить к единственному файлу. Имя параметра ("FilePath") не обязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь к файлу, можно передать командлету Get-Authenti codeSignature по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.Signature Командлет Get-AuthenticodeSignature возвращает объект подписи для каждо й получаемой подписи. ПРИМЕЧАНИЯ Чтобы получить сведения о подписях Authenticode в оболочке Windows Powe rShell, см. раздел About_Signing. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-AuthenticodeSignature -filepath C:\Test\NewScript.ps1 Описание ----------- Эта команда получает сведения о подписи Authenticode в файле NewScript.ps1. Параметр FilePath используется, чтобы указать файл. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-authenticodesignature test.ps1, test1.ps1, sign-file.ps1, makexml .ps1 Описание ----------- Эта команда получает сведения о подписи Authenticode в четырех файлах, пере численных в командной строке. В этой команде пропущено необязательное имя п араметра FilePath. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-childitem $pshome\*.* | foreach-object {Get-AuthenticodeSignature $_} | where {$_.status -eq "Valid"} Описание ----------- Эта команда составляет список всех файлов в каталоге $pshome, у которых име ется действительная подпись Authenticode. Автоматическая переменная $pshome содержит путь к каталогу установки Windows PowerShell. Команда с помощью командлета Get-ChildItem получает файлы в каталоге $pshom e. Она использует шаблон ., чтобы исключить из результатов каталоги (хотя п ри этом также исключаются файлы, имена которых не содержат точки). Команда использует оператор конвейера (|), чтобы передать файлы в каталоге $pshome командлету Foreach-Object, после чего для каждого файла вызывается командлет Get-AuthenticodeSignature. Результаты выполнения команды Get-AuthenticodeSignature передаются команде Where-Object, которая выбирает только те объекты подписей, которые имеют со стояние "Valid". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113307 about_Signing about_Execution_Policies Set-AuthenticodeSignature Get-ExecutionPolicy Set-ExecutionPolicy Get-ChildItem ИМЯ Get-ChildItem ОПИСАНИЕ Извлекает элементы и их потомки из заданных местоположений. СИНТАКСИС Get-ChildItem [[-Path] <string[]>] [[-Filter] <string>] [-Exclude <string[] >] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<Co mmonParameters>] Get-ChildItem [-LiteralPath] <string[]> [[-Filter] <string>] [-Exclude <str ing[]>] [-Force] [-Include <string[]>] [-Name] [-Recurse] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Get-ChildItem получает элементы из заданных местоположений. Если элемент является контейнером, данный командлет получает из контейнера элеме нты, которые называются дочерними элементами. Для извлечения элементов из в сех дочерних контейнеров можно использовать параметр Recurse. Местоположение может являться расположением в файловой системе, например ка талогом, либо расположением, предоставляемым другим поставщиком, например к устом реестра или хранилищем сертификатов. ПАРАМЕТРЫ -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету получать элементы, которые недоступны пользователю другими способами, например скрытые или системные файлы. Реализация ва рьируется от поставщика к поставщику. Дополнительные сведения см. в раз деле About_Providers. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Извлекает только указанные элементы. Значение этого параметра определяе т значение параметра Path. Введите элемент пути или шаблон, например "* .txt". Подстановочные знаки разрешены. Параметр Include действует только в том случае, если команда включает п араметр Recurse или путь указывает на содержимое каталога, например "C: \Windows\*", где подстановочный знак определяет содержимое каталога "C: \Windows". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к одному или нескольким местоположениям. В отличие от значе ния параметра Path, значение параметра LiteralPath используется точно в том виде, в котором оно введено. Никакие символы не интерпретируются к ак подстановочные знаки. Если путь включает escape-символы, его нужно з аключить в одиночные кавычки. Одиночные кавычки указывают оболочке Wind ows PowerShell, что никакие символы не следует интерпретировать как esc ape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name [<SwitchParameter>] Извлекает только имена элементов, содержащихся в соответствующих местоп оложениях. Если вывод этой команды передать по конвейеру другой команде , будут переданы только имена элементов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к одному или нескольким местоположениям. Подстановочные зна ки разрешены. Местоположением по умолчанию является текущий каталог (.) . Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Recurse [<SwitchParameter>] Получает элементы, содержащиеся в указанных местоположениях и во всех д очерних элементах этих местоположений. Параметр Recurse работает только в том случае, если путь указывает на к онтейнер с дочерними элементами, например "C:\Windows" или "C:\Windows\ *", и не работает, если путь указывает на элементы без дочерних элемент ов, например "C:\Windows\*.exe". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Get-ChildItem по кон вейеру. ВЫХОДНЫЕ ДАННЫЕ Объект. Тип объекта, возвращаемого командлетом Get-ChildItem, определяется испо льзуемым поставщиком. ПРИМЕЧАНИЯ Командлет Get-ChildItem также можно вызывать с помощью встроенных псевд онимов "ls", "dir" и "gci". Дополнительные сведения см. в разделе About _Aliases. По умолчанию командлет Get-ChildItem не возвращает скрытые элементы. Чт обы получить скрытые элементы, используйте параметр -Force. Командлет Get-ChildItem предназначен для работы с данными, предоставляе мыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PsProvider". Дополнительные сведен ия см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-childitem Описание ----------- Эта команда извлекает дочерние элементы, расположенные в текущем местополож ении. Если текущее местоположение является каталогом файловой системы, кома нда извлекает файлы и вложенные каталоги данного каталога. Если элемент не имеет потомков, то после выполнения команды ничего не показывается. По умолчанию для каждого файла отображаются следующие сведения: режим (атри буты), время последней записи, размер файла (длина) и имя. Допустимыми знач ениями режима являются: d (каталог), a (архивный), r (только чтение), h (ск рытый) и s (системный). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-childitem . -include *.txt -recurse -force Описание ----------- Эта команда извлекает все файлы с расширением ".txt" из текущего каталога и вложенных в него каталогов. Точка (.) представляет текущий каталог, а пара метр Include задает расширение файла. Параметр Recurse включает в Windows P owerShell режим рекурсивного извлечения объектов, а также показывает, что к оманда применяется к указанному каталогу и его содержимому. Параметр Force добавляет скрытые файлы в набор отображаемых данных. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-childitem c:\windows\logs\* -include *.txt -exclude A* Описание ----------- Эта команда выдает список всех TXT-файлов вложенного каталога Logs, за искл ючением тех, имена которых начинаются с буквы "A". Для обозначения содержим ого вложенного каталога Logs используется подстановочный знак (*). В команд е Get-ChildItem не указан параметр Recurse, поэтому автоматическое включени е содержимого каталога не выполняется. Содержимое необходимо задать вручную . -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-childitem registry::hklm\software Описание ----------- Эта команда извлекает все подразделы из раздела реестра HKEY_LOCAL_MACHINE\ SOFTWARE на локальном компьютере. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-childitem -name Описание ----------- Эта команда извлекает только имена элементов из текущей папки. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-childitem cert:\. -recurse -codesigningcert Описание ----------- Эта команда извлекает все сертификаты из хранилища сертификатов, для которы х выдано разрешение на подписывание кода. В команде используется командлет Get-ChildItem. Путь задает диск Cert:, пре доставляемый поставщиком сертификатов Windows PowerShell. Знак обратной кос ой черты (\) задает подкаталог хранилища сертификатов, а точка (.) означает текущий каталог, который является корневым каталогом хранилища сертификато в. Параметр Recurse задает рекурсивный поиск. CodeSigningCertificate является динамическим параметром, обеспечивающим изв лечение только сертификатов для подписывания кода. Чтобы получить дополните льные сведения, введите команду "get-help certificate". -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-childitem * -include *.exe Описание ----------- Эта команда извлекает все файлы с расширением ".exe"в текущем каталоге. Под становочный знак (*) обозначает содержимое текущего каталога (не контейнера ). При использовании параметра Include без параметра Recurse, задаваемый пу ть должен указывать на содержимое, а не на контейнер. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113308 about_Providers Get-Item Get-Alias Get-Location Get-Process Get-Command ИМЯ Get-Command ОПИСАНИЕ Возвращает базовые сведения о командлетах и о других элементах команд Windo ws PowerShell. СИНТАКСИС Get-Command [[-Name] <string[]>] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript | Application | Script | All}] [[-ArgumentList] <O bject[]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParame ters>] Get-Command [-Noun <string[]>] [-Verb <string[]>] [[-ArgumentList] <Object[ ]>] [-Module <string[]>] [-Syntax] [-TotalCount <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Command возвращает базовые сведения о командлетах и других эл ементах команд Windows PowerShell в сеансе, таких как псевдонимы, функции, фильтры, скрипты и приложения. Get-Command получает данные непосредственно из кода командлета, функции, ск рипта или псевдонима в отличие от Get-Help, который получает информацию из файлов справки. При вызове без параметров Get-Command получает все командлеты и функции в т екущем сеансе. "Get-Command *" получает все элементы Windows PowerShell и в се файлы, не относящиеся к Windows-PowerShell, в переменной среды Path ($en v:path). Он группирует файлы в команде типа "Application". Для поиска команд, добавленных в сеанс путем добавления оснастки Windows Po werShell или импорта модуля, можно использовать параметр Module Get-Command . ПАРАМЕТРЫ -ArgumentList <Object[]> Получает данные о командлете или функции, используемых с указанными пар аметрами ("аргументами"), такими как путь. Псевдоним ArgumentList — Ar gs. Для определения параметров, добавленных к командлету при его использова нии с определенным провайдером, установите значение ArgumentList равным пути на диске поставщика, например "HKEY_LOCAL_MACHINE\Software" или " cert:\my". Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CommandType <CommandTypes> Получает только команды указанных типов. Используйте "CommandType" или псевдоним "Type". По умолчанию командлет Get-Command получает командлет ы и функции. Допустимые значения: -- Alias: все псевдонимы Windows PowerShell в текущем сеансе. -- All: команды всех типов. Эквивалентно "get-command *". -- Application: все файлы, отличные от файлов Windows PowerShell, котор ые присутствуют в путях, указанных в переменной среды Path ($env:path), в том числе файлы TXT, EXE и DLL. -- Cmdlet: командлеты в текущем сеансе. По умолчанию используется значе ние "Cmdlet". -- ExternalScript: все файлы PS1, которые присутствуют в путях, указанн ых в переменной среды Path ($env:path). -- Filter и Function: все функции Windows PowerShell. -- Script: блоки скриптов в текущем сеансе. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Module <string[]> Получает команды, которые поставляются с определенными модулями или осн астками. Введите имена модулей или оснасток или введите объекты оснасто к или модулей. Можно обращаться к этому параметру по его имени (Module) или его псевдо ниму (PSSnapin). Выбранное имя параметра не влияет на результаты выполн ения команды или ее выходные данные. Этот параметр принимает строковые значения, но также можно предоставить объект PSModuleInfo или PSSnapinInfo, например объекты, возвращаемые G et-Module, Get-PSSnapin и Import-PSSession. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Получает сведения только о командлетах или элементах команды с указанны м именем. <Строка> представляет целое имя или часть имени командлета ил и элемента команды. Подстановочные знаки разрешены. Для перечисления команд с одинаковыми именами в порядке выполнения введ ите имя команды без подстановочных знаков. Дополнительные сведения см. в разделе "Примечания". Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Noun <string[]> Получает командлеты или функции с именами, в которых содержится указанн ое существительное. <Строка> представляет одно или несколько существите льных или шаблонов существительных, таких как "process" или "*item*". П одстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Syntax [<SwitchParameter>] Получает только указанные данные об элементе команды. * Для псевдонимов извлекается стандартное имя. * Для командлетов извлекается синтаксис. * Для функций и фильтров извлекается определение функции. * Для скриптов и приложений (файлов) извлекаются путь и имя файла. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -TotalCount <int> Получает только указанное количество элементов команды. Этот параметр п озволяет ограничить объем выходных данных команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Verb <string[]> Получает данные о командлетах и функциях с именами, в которых содержитс я указанный глагол. <Строка> представляет один или несколько глаголов и ли шаблонов глаголов, таких как "remove" или "*et". Подстановочные знак и разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Командлету Get-Command можно передать по конвейеру указанные свойства-с уществительные "Name", "Command" и "Verb" или строковый объект. ВЫХОДНЫЕ ДАННЫЕ Object Тип возвращаемого объекта зависит от типа извлеченного элемента команды . Например, для командлета Get-Command возвращается объект CmdletInfo, а для DLL Get-Command возвращается объект ApplicationInfo. ПРИМЕЧАНИЯ При вызове без параметров команда "Get-Command" возвращает сведения о к омандлетах и функциях Windows PowerShell. Для точного указания возвраща емых элементов воспользуйтесь параметрами. В отличие от команды Get-Help, которая отображает содержимое разделов X ML-файлов справки, команда Get-Command получает информацию о командлета х непосредственно из кода командлетов, установленных в системе. Командлет Get-Command возвращает команды в алфавитном порядке. Когда в сеансе имеется более одной команды с одним и тем же именем, командлет G et-Command возвращает команды в порядке их выполнения. Первой возвраща емой командой является команда, выполняемая при вводе имени команды без указания ее полного имени. Дополнительные сведения см. в разделе about _Command_Precedence. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-command Описание ----------- Эта команда получает сведения обо всех командлетах и функциях Windows Power Shell. На экране по умолчанию указывается тип команды ("Cmdlet", "Function" или "F ilter"), имя командлета или функции и синтаксис или определение функции. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-command -verb set | format-list Description ----------- Эта команда получает сведения обо всех командлетах и функциях, содержащих г лагол "set", и отображает список, содержащий часть этих сведений. В формате списка содержатся поля, которые пропущены в отображении этой табл ицы, в том числе полный синтаксис вызова. Для отображения всех полей (всех свойств объекта) введите команду "get-command -verb set | format-list *". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-command -type cmdlet | sort-object noun | format-table -group nou n Description ----------- Эта команда извлекает все командлеты, производит алфавитную сортировку по с уществительному в имени командлета и отображает их, группируя по существительному. Такой способ отображения поможет найти командлеты, пре дназначенные для определенной задачи. По умолчанию командлет Get-Command отображает элементы в порядке их обнаруж ения системой. В этом же порядке они выбираются для запуска, если команда з апуска допускает неоднозначное толкование. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-command -module Microsoft.PowerShell.Security, TestModule Description ----------- Эта команда получает команды из оснастки Microsoft.PowerShell.Security и мо дуля Test-Module. Параметр Module позволяет получить команды, которые были добавлены при импо рте модулей или добавлении оснасток Windows PowerShell. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-command get-childitem -args cert: -syntax Description ----------- Эта команда извлекает сведения о командлете Get-ChildItem при использовании Get-ChildItem с поставщиком Windows PowerShell Certificate. При сравнении отображаемого в результате синтаксиса вызова с синтаксисом вы зова, который отображается, если пропустить параметр Args (ArgumentList), м ожно видеть, что при вызове командлета Get-ChildItem поставщик Certificate динамически добавляет параметр CodeSigningCert. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>(get-command get-childitem -ArgumentList cert:).parametersets[0].para meters | where-object { $_.IsDynamic } Description ----------- Эта команда извлекает только параметры, динамически добавляемые при вызове командлета Get-ChildItem поставщиком Windows PowerShell Certificate. Этот м етод альтернативен методу из предыдущего примера. В данном случае сначала выполняется команда "get-command get-childitem -Arg umentList cert:". При помощи командлета Get-Command она извлекает данные о командлете Get-ChildItem при его использовании совместно с поставщиком Cert ificate. Конструкция ".parametersets[0]" выбирает первую последовательность параметров (последовательность 0) из результатов вызова "get-childitem -ar gumentList cert:", а конструкция ".parameters" выбирает параметры в этой по следовательности параметров. Полученные в результате параметры передаются п о конвейеру командлету Where-Object для проверки каждого параметра ("$_.") при помощи его свойства IsDynamic. Для нахождения свойств объектов в команд е воспользуйтесь командлетом Get-Member. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-command * Description ----------- Эта команда получает информацию о командлетах, функциях, фильтрах, скриптах и псевдонимах Windows PowerShell в текущей консоли. Она также получает информацию обо всех файлах, которые присутствуют в путях , указанных в переменной среды Path ($env:path). Для каждого файла возвраща ется объект ApplicationInfo (System.Management.Automation.ApplicationInfo), а не объект FileInfo (System.IO.FileInfo) -------------------------- ПРИМЕР 8 -------------------------- C:\PS>get-command | where-object {$_.definition -like "*first*"} CommandType Name Definition ----------- ---- --------- Cmdlet Select-Object Select-Object [[-Property] Description ----------- Эта команда находит командлет или функцию на основании имени одного из пара метров. Эту команду можно использовать для определения командлета или функц ии, если удается вспомнить только имя одного из параметров. В данном примере известно, что у одного командлета или функции есть парамет р First, который позволяет получить первые "n" объектов в списке, но неизве стно имя командлета. В команде используется командлет Get-Command, позволяющий получить объект C mdletInfo, который представляет все командлеты и функции в сеансе. У объект а CmdletInfo есть свойство Definition, в котором содержится синтаксис коман длета или функции с указанием всех параметров. Оператор конвейера (|) используется для передачи объекта CmdletInfo командл ету Where-Object, который анализирует определение (синтаксис) каждого объек та ($_) и выполняет поиск значения "first". Результат выполнения команды показывает, что параметр First принадлежит ком андлету Select-Object. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-command dir | format-list Name : dir CommandType : Alias Definition : Get-ChildItem ReferencedCommand : Get-ChildItem ResolvedCommand : Get-ChildItem Description ----------- В этом примере показано, как использовать командлет Get-Command для псевдон има. Хотя командлет Get-Command обычно используется для командлетов, он так же отображает информацию о коде в скриптах, функциях, псевдонимах и исполня емых файлах. Эта команда удаляет отображает псевдоним "dir" в текущей консоли. Результат передается по конвейеру командлетам Format-List. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>get-command notepad CommandType Name Definition ----------- ---- ---------- Application notepad.exe C:\WINDOWS\system32\notepad.exe Application NOTEPAD.EXE C:\WINDOWS\NOTEPAD.EXE Description ----------- В этом примере показано, как использовать командлет Get-Command для определ ения команды, выполняемой Windows PowerShell в случае, если доступны нескол ько команд с одинаковым именем. При использовании параметра Name без подста новочных знаков командлет Get-Command перечисляет команды с указанным имене м в порядке выполнения. Это команда показывает, какая программа Notepad будет запущена Windows Powe rShell при вводе "Notepad" без полного пути. В команде используется парамет р Name без подстановочных знаков. Пример выходных данных показывает команды с именем "Notepad" в текущей конс оли. Из приведенных данных можно сделать вывод, что Windows PowerShell запу стит экземпляр Notepad.exe из каталога C:\Windows\System32. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>(get-command get-date).pssnapin C:\PS> (get-command remove-gpo).module Description ----------- Эти команды показывают, как найти оснастку или модуль, к которому принадлеж ит определенный командлет. В первой команде для определения оснастки, добавившей командлет Get-Date, и спользуется свойство PSSnapin объекта CmdletInfo. Во второй команде для определения модуля, добавившего командлет Remove-GPO, используется свойство Module объекта CmdletInfo. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113309 about_Command_Precedence Get-Help Get-PSDrive Get-Member Import-PSSession Export-PSSession Get-ComputerRestorePoint ИМЯ Get-ComputerRestorePoint ОПИСАНИЕ Получает точки восстановления системы на локальном компьютере. СИНТАКСИС Get-ComputerRestorePoint [[-RestorePoint] <Int32[]>] [<CommonParameters>] Get-ComputerRestorePoint -LastStatus [<CommonParameters>] ОПИСАНИЕ Командлет Get-ComputerRestorePoint получает точки восстановления системы на локальном компьютере. С помощью этого командлета также можно определить со стояние последней операции восстановления системы на локальном компьютере. Возвращаемую командлетом Get-ComputerRestorePoint информацию можно использо вать для выбора точки восстановления; в частности, можно использовать поряд ковый номер, чтобы определить точку восстановления для командлета Restore-C omputer. ПАРАМЕТРЫ -LastStatus [<SwitchParameter>] Получает состояние последней операции восстановления системы. Требуется? true Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RestorePoint <Int32[]> Получает точки восстановления с указанными порядковыми номерами. Введит е порядковые номера точек восстановления. По умолчанию командлет Get-Co mputerRestorePoint возвращает все точки восстановления системы на локал ьном компьютере. Требуется? false Позиция? 1 Значение по умолчанию Все точки восстановления Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.ManagementObject#root\default\SystemRestore или String. Get-ComputerRestore возвращает объект SystemRestore, который является э кземпляром класса SystemRestore WMI. При использовании параметра LastSt atus этот командлет возвращает строку. ПРИМЕЧАНИЯ Чтобы использовать командлет Get-ComputerRestorePoint в Windows Vista и более поздних версиях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". Этот командлет использует класс SystemRestore инструментария управления Windows (WMI). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-computerrestorepoint Описание ----------- Эта команда получает все точки восстановления системы на локальном компьюте ре. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-computerrestorepoint -restorepoint 232, 240, 245 Описание ----------- Эта команда получает точки восстановления с порядковыми номерами 232, 240 и 245. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-computerrestorepoint -laststatus The last restore failed. Описание ----------- Эта команда отображает состояние последней операции восстановления системы на локальном компьютере. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-computerrestorepoint | format-table SequenceNumber, @{Label="Date "; Expression={$_.ConvertToDateTime($_.CreationTime)}}, Description -auto SequenceNumber Date Description -------------- ---- ----------- 253 8/5/2008 3:19:20 PM Windows Update 254 8/6/2008 1:53:24 AM Windows Update 255 8/7/2008 12:00:04 AM Scheduled Checkpoint ... Описание ----------- Эта команда отображает точки восстановления в таблице для удобного чтения. Команда Format-Table включает вычисляемое свойство, использующее метод Conv ertToDateTime для преобразования значения свойства CreationTime из формата WMI в объект DateTime. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>((get-computerrestorepoint)[-1]).sequencenumber Описание ----------- Эта команда получает порядковый номер последней созданной на компьютере точ ки восстановления. Для получения последнего элемента массива, возвращенного командлетом Get-Co mputerRestorePoint, используется индекс -1. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135215 Enable-ComputerRestore Disable-ComputerRestore Restore-Computer Restart-Computer Get-Content ИМЯ Get-Content ОПИСАНИЕ Извлекает содержимое элемента, находящегося в заданном местоположении. СИНТАКСИС Get-Content [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclud e <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-ReadCount <Int64>] [-TotalCount <Int64>] [-UseTransaction] [<CommonParameters>] Get-Content [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <stri ng[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-ReadCount <Int64 >] [-TotalCount <Int64>] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Content возвращает содержимое элемента, находящегося в заданн ом путем местоположении, например текст из файла. Командлет построчно считы вает содержимое и возвращает объект для каждой строки. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиков. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Переопределяет ограничения, препятствующие выполнению команды, не ставя под угрозу безопасность. Например, параметр Force позволяет переопреде лить атрибут "только чтение" или создать дополнительные каталоги в пути к файлу без изменения разрешений на доступ к файлам. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Извлекает только указанные элементы. Значение этого параметра определяе т значение параметра Path. Введите элемент пути или шаблон, например "* .txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к элементу. В отличие от значения параметра Path, значение параметра LiteralPath используется точно в том виде, в котором оно введ ено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие с имволы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементу. Для извлечения содержимого используется командл ет Get-Content. Подстановочные знаки разрешены. Имя параметра ("Path" и ли "FilePath") указывать необязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -ReadCount <Int64> Задает количество строк содержимого, передаваемых по конвейеру за один раз. По умолчанию используется значение 1. Если задать значение 0, все содержимое будет передано за один раз. Этот параметр не изменяет отображаемое содержимое, но влияет на время е го отображения. При увеличении значения параметра ReadCount время, необ ходимое для возврата первой строки, возрастает, но общее время выполнен ия операции сокращается. В случае очень больших элементов разница может оказаться довольно значительной. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -TotalCount <Int64> Задает количество извлекаемых строк содержимого. По умолчанию используе тся значение -1 (все строки). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету Get-Content по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Object Командлет Get-Content возвращает объекты, представляющие получаемое им содержимое. Тип объекта зависит от типа содержимого. ПРИМЕЧАНИЯ Командлет Get-Content также можно вызвать с помощью его псевдонимов "ca t", "type" и "gc". Дополнительные сведения см. в разделе About_Aliases. Командлет Get-Content предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-content -Path C:\Chapters\chapter1.txt Описание ----------- Эта команда отображает содержимое файла Chapter1.txt в консоли. Для задания имени элемента используется параметр Path. Командлет Get-Content фактическ и передает содержимое дальше по конвейеру, однако из-за отсутствия в конвей ере других элементов данные форматируются и отображаются на консоли. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-content c:\Logs\Log060912.txt -totalcount 50 | set-content sample .txt Описание ----------- Эта команда извлекает первые 50 строк файла Log060912.txt и сохраняет их в файле sample.txt. Для извлечения текста из файла в данной команде используе тся командлет Get-Content. (Имя параметра Path является необязательным и оп ущено.) Извлечение данных останавливается после считывания первых 50 строк, как задано значением параметра TotalCount. Оператор конвейера (|) пересыла ет результат командлету Set-Content, который помещает его в файл sample.txt . -------------------------- ПРИМЕР 3 -------------------------- C:\PS>(get-content cmdlets.txt -totalcount 5)[-1] Описание ----------- Эта команда получает пятую строку текстового файла Cmdlets.txt. Параметр To talCount используется для получения первых пяти строк; затем используется и ндекс массива "-1" для получения результирующего набора. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113310 about_Providers Add-Content Set-Content Clear-Content Get-Counter ИМЯ Get-Counter ОПИСАНИЕ Получает данные счетчиков производительности на локальном компьютере и удал енных компьютерах. СИНТАКСИС Get-Counter [-Counter] <string[]> [-ComputerName <string[]>] [-Continuous] [-MaxSamples <Int64>] [-SampleInterval <int>] [<CommonParameters>] Get-Counter -ListSet <string[]> [-ComputerName <string[]>] [<CommonParamete rs>] ОПИСАНИЕ Командлет Get-Counter в режиме реального времени получает данные счетчиков производительности непосредственно из средств наблюдения за производительно стью Windows. Его можно использовать для получения данных о производительн ости локального компьютера и удаленных компьютеров через заданный интервал времени. При вызове без параметров команда "Get-Counter" возвращает данные для набор а системных счетчиков. С помощью параметров командлета Get-Counter можно задавать один или несколь ко компьютеров, перечислять наборы счетчиков производительности и счетчики, входящие в такие наборы, а также задавать размер и интервал выборки. ПАРАМЕТРЫ -ComputerName <string[]> Получает данные от указанных компьютеров. Введите NetBIOS-имя, IP-адрес или полные доменные имена компьютеров. По умолчанию используется значе ние "Локальный компьютер". Примечание. Командлет Get-Counter не использует удаленное взаимодействи е Windows PowerShell. Параметр ComputerName командлета Get-Counter можн о использовать, даже если компьютер не настроен на удаленное взаимодейс твие в Windows PowerShell. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Continuous [<SwitchParameter>] Непрерывное получение выборок до тех пор, пока не будут нажаты клавиши CTRL+C. По умолчанию командлет Get-Counter получает только одну выборку счетчика. Для задания интервала непрерывного получения выборок можно и спользовать параметр SampleInterval. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Counter <string[]> Получает данные от заданных счетчиков производительности. Введите один или несколько путей счетчиков. Подстановочные знаки разрешается использ овать только в значении Instance. Кроме того, строки путей счетчиков мо жно по конвейеру передать в Get-Counter. Путь счетчика имеет следующий формат: "[\\<ComputerName>]\<CounterSet>(<Instance>)\ Пример: "\\Server01\Processor(2)\% User Time". Элемент <ComputerName> указывать не обязательно. Если он не указан, ком андлет Get-Counter использует значение параметра ComputerName. Примечание. Чтобы получить пути счетчиков в нужном формате, следует исп ользовать параметр ListSet для получения набора счетчиков производитель ности. Свойства Paths и PathsWithInstances каждого набора счетчиков про изводительности содержат пути отдельных счетчиков в формате строки. Стр оки путей счетчиков можно сохранить в переменной. Также можно передать строку по конвейеру непосредственно другой команде Get-Counter. Порядок использования см. в примерах. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? true -ListSet <string[]> Получает заданные наборы счетчиков производительности на компьютерах. В ведите имена наборов счетчиков. Подстановочные знаки разрешены. Кроме т ого, можно передать имена наборов счетчиков в Get-Counter с помощью кон вейера. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true -MaxSamples <Int64> Задает число выборок, получаемых для каждого счетчика. Значение по умол чанию: 1 выборка. Для непрерывного получения выборок (без ограничения м аксимального размера выборки) используйте параметр Continuous. Для сбора очень больших наборов данных следует использовать команду Get -Counter в качестве фонового задания Windows PowerShell. Дополнительные сведения см. в разделах about_Jobs и Start-Job. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SampleInterval <int> Задает интервал между выборками в секундах. Минимальное значение (и зна чение по умолчанию) —1 секунда. Требуется? false Позиция? named Значение по умолчанию 1 Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String[] Пути счетчиков и имена наборов счетчиков (ListSet) можно передать в Get -Counter с помощью конвейера. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.C ommands.GetCounter.PerformanceCounterSampleSet, Microsoft.PowerShell.Comman ds.GetCounter.PerformanceCounterSample Параметр ListSet возвращает объекты Microsoft.PowerShell.Commands.GetCo unter.CounterSet. Параметр Counter возвращает объекты Microsoft.PowerSh ell.Commands.GetCounter.PerformanceCounterSampleSet. Значением каждого счетчика является объект Microsoft.PowerShell.Commands.GetCounter.Perfo rmanceCounterSample. ПРИМЕЧАНИЯ Для защиты счетчиков производительности часто используются списки управ ления доступом (ACL). Чтобы получить все доступные счетчики производите льности, необходимо запускать Windows PowerShell командой "Запуск от им ени администратора". По умолчанию командлет Get-Counter получает одну выборку в течение одно секундного интервала выборки. Чтобы это изменить, воспользуйтесь параме трами MaxSamples и Continuous. Заданные значения параметров MaxSamples и SampleInterval применяются в отношении всех счетчиков на всех компьютерах, указанных в команде. Чтоб ы задать различные значения для разных счетчиков, следует использовать отдельные команды Get-Counter для каждого счетчика. -------------------------- ПРИМЕР 1 -------------------------- C:\PS># Get-Counter Описание ----------- Эта команда возвращает все наборы счетчиков на локальном компьютере. C:\PS> get-counter -ListSet * Поскольку многие наборы счетчиков защищены с помощью списков управления дос тупом (ACL), то прежде чем использовать команду Get-Counter, необходимо зап устить Windows PowerShell командой "Запуск от имени администратора". -------------------------- ПРИМЕР 2 -------------------------- C:\PS># Get-Counter Описание ----------- Эта команда возвращает текущие суммарные значения счетчика "% Processor Tim e" для всех процессоров на локальном компьютере. Сбор данных выполняется ка ждые две секунды, пока не будут получены три значения. C:\PS> get-counter -Counter "\Processor(_Total)\% Processor Time" -SampleIn terval 2 -MaxSamples 3 -------------------------- ПРИМЕР 3 -------------------------- C:\PS># Get-Counter Описание ----------- Эта команда возвращает список имен всех наборов счетчиков на локальном комп ьютере в алфавитном порядке. C:\PS> get-counter -listset * | sort-object countersetname | format-table countersetname -------------------------- ПРИМЕР 4 -------------------------- C:\PS># Get-Counter Описание ----------- В этих командах свойство Path набора счетчиков используется для определения путей счетчиков производительности в необходимом формате. Аналогичные кома нды можно использовать для получения путей счетчиков в правильном формате. Первая команда возвращает пути счетчиков производительности в наборе счетчи ков "Memory" на локальном компьютере. C:\PS> (get-counter -listset memory).paths \Memory\Page Faults/sec \Memory\Available Bytes \Memory\Committed Bytes \Memory\Commit Limit \Memory\Write Copies/sec \Memory\Transition Faults/sec \Memory\Cache Faults/sec \Memory\Demand Zero Faults/sec \Memory\Pages/sec \Memory\Pages Input/sec ... Вторая команда возвращает пути, содержащие слово "cache". C:\PS> (get-counter -listset memory).paths | where {$_ -like "*cache*"} \Memory\Cache Faults/sec \Memory\Cache Bytes \Memory\Cache Bytes Peak \Memory\System Cache Resident Bytes \Memory\Standby Cache Reserve Bytes \Memory\Standby Cache Normal Priority Bytes \Memory\Standby Cache Core Bytes -------------------------- ПРИМЕР 5 -------------------------- C:\PS># Get-Counter Описание ----------- Эти команды возвращают данные счетчика "Disk Reads/sec" на компьютерах Serv er01 и Server02. Первая команда сохраняет путь счетчика "Disk Reads/sec" в переменной $diskr eads. C:\PS> $diskreads = "\LogicalDisk(C:)\Disk Reads/sec" Вторая команда с помощью оператора конвейера (|) передает путь счетчика из переменной $diskreads в командлет Get-Counter. Параметр MaxSamples, использ уемый в команде, ограничивает число выводимых выборок до 10. C:\PS> $diskreads | get-counter -computer Server01, Server02 -maxsamples 10 -------------------------- ПРИМЕР 6 -------------------------- C:\PS># Get-Counter Описание ----------- Эта команда возвращает в необходимом формате пути счетчиков производительно сти "PhysicalDisk", включая экземпляры имен. C:\PS> (get-counter -list physicaldisk).pathswithinstances -------------------------- ПРИМЕР 7 -------------------------- C:\PS># Get-Counter Описание ----------- Эти команды возвращают значение счетчика производительности "% DPC Time" дл я 50 случайным образом выбранных компьютеров предприятия. Первая команда использует командлет Get-Content для получения списка всех с ерверов предприятия из файла Servers.txt. В ней используется командлет Get- Random для получения 50 имен серверов, выбранных случайным образом из файла Servers.txt. Результаты сохраняются в переменной $servers. C:\PS> $servers = get-random (get-content servers.txt) -count 50 Вторая команда сохраняет путь счетчика "% DPC Time" в переменной $Counter. Путь счетчика содержит подстановочный знак в имени экземпляра, чтобы получа ть данные со всех процессоров на каждом из компьютеров. C:\PS> $counter = "\Processor(*)\% DPC Time" Третья команда использует командлет Get-Counter для получения значений счет чика. В ней используется параметр Counter для задания счетчиков и параметр ComputerName для задания компьютеров, сохраненных в переменной $servers. C:\PS> get-counter -Counter $counter -computername $servers -------------------------- ПРИМЕР 8 -------------------------- C:\PS># Get-Counter Описание ----------- Эти команды возвращают одно значение для всех счетчиков производительности в наборе счетчиков памяти на локальном компьютере. Первая команда получает пути счетчиков и сохраняет их в переменной $memCoun ters. C:\PS> $memCounters = (get-counter -list memory).paths Вторая команда использует командлет Get-Counter для получения данных каждог о счетчика. Для задания счетчиков в переменной $memCounters используется па раметр Counter. C:\PS> get-counter -counter $memCounters -------------------------- ПРИМЕР 9 -------------------------- C:\PS># Get-Counter Описание ----------- В этом примере показаны значения свойств объекта PerformanceCounterSample, представляющего каждую выборку данных. Первая команда сохраняет путь счетчика в переменной $counter. C:\PS> $counter = "\\SERVER01\Process(Idle)\% Processor Time" Вторая команда использует командлет Get-Counter для получения одной выборки значений счетчика. Результат сохраняется в переменной $data. C:\PS> $data = get-counter $counter Третья команда использует командлет Format-List для отображения в виде спис ка всех свойств свойства CounterSamples объекта набора выборки. C:\PS> $data.countersamples | format-list -property * Path : \\SERVER01\process(idle)\% processor time InstanceName : idle CookedValue : 198.467899571389 RawValue : 14329160321003 SecondValue : 128606459528326201 MultipleCount : 1 CounterType : Timer100Ns Timestamp : 15.07.2008 18:39:12 Timestamp100NSec : 128606207528320000 Status : 0 DefaultScale : 0 TimeBase : 10000000 Свойства объекта CounterSamples можно использовать для проверки, выбора, уп орядочения и группирования данных. -------------------------- ПРИМЕР 10 -------------------------- C:\PS># Get-Counter Описание ----------- Эта команда запускает команду Get-Counter в качестве фонового задания. Допо лнительные сведения см. в разделе Start-Job. C:\PS> $counters = "\LogicalDisk(_Total)\% Free Space" C:\PS> start-job -scriptblock {get-counter -counter $counters -maxsamples 1 000) -------------------------- ПРИМЕР 11 -------------------------- C:\PS># Get-Counter Описание ----------- Эта команда использует командлеты Get-Counter и Get-Random для определения процентной доли свободного места на диске на 50 компьютерах, выбранных случ айным образом из файла Servers.txt. C:\PS> get-counter -computername (get-random servers.txt -count 50) -counte r "\LogicalDisk(*)\% Free Space" -------------------------- ПРИМЕР 12 -------------------------- C:\PS># Get-Counter Описание ----------- В этом примере показано, как сопоставить данные счетчика с компьютером, к к оторому он относится, и как работать с данными. Первая команда с помощью командлета Get-Counter получает значение счетчика "LogicalDisk\% Free Space" для двух удаленных компьютеров S1 и S2. Эта кома нда сохраняет результат в переменной $a. $a = get-counter "\LogicalDisk(_Total)\% Free Space" -comp s1, s2 Вторая команда отображает результаты, сохраненные в переменной $a. Все данн ые сохраняются в объекте, однако это неочевидно из этой формы. C:\PS> $a Counter Paths: \\s1\\logicaldisk(c:)\% free space, \\s1\\logicaldisk(d:)\% free space, \\s1\\logicaldisk(_total)\% free space, \\s2\\logicaldisk(c:)\% free space, \\s2\\logicaldisk(_total)\% free space Timestamp : 15.07.2008 17:09:08 Cooked Values : "0.327058823529412", "17.8952248493278", "12.9994033060778" , "75.0754805595626", "75.0754805595626" Третья команда отображает таблицу значений свойства CounterSamples объекта PerformanceCounterSampleSet, возвращаемого командлетом Get-Counter. (Чтобы просмотреть все свойства и методы этого объекта, передайте его по конвейеру командлету Get-Member.) C:\PS> $a.countersamples | format-table -auto Path InstanceName CookedValue ---- ------------ ----------- \\s1\\logicaldisk(c:)\% free space c: 0.327058823529412 \\s1\\logicaldisk(d:)\% free space d: 17.8952248493278 \\s1\\logicaldisk(_total)\% free space _total 12.9994033060778 \\s2\\logicaldisk(c:)\% free space c: 75.0754805595626 \\s2\\logicaldisk(_total)\% free space _total 75.0754805595626 Свойство CounterSamples содержит объект PerformanceCounterSample, имеющий с обственные свойства и методы. В четвертой команде используется индекс масси ва для получения выборки от первого счетчика и оператор конвейера для перед ачи объекта выборки счетчика командлету Format-List, который отображает все свойства и методы объекта в виде списка. При этом отображается множество д анных для каждого объекта выборки счетчика. В четвертой команде показано, как выбирать данные из выборок счетчика. Она использует командлет Where-Object для получения только тех выборок счетчика , у которых значение параметра CookedValue меньше 15. C:\PS> $a.countersamples | where {$_.cookedvalue -lt 15} Path InstanceName CookedValue ---- ------------ ----------- \\s1\\logicaldisk(c:)\% free space c: 0.327058823529412 \\s1\\logicaldisk(_total)\% free space _total 12.9994033060778 -------------------------- ПРИМЕР 13 -------------------------- C:\PS># Get-Counter Описание ----------- В этом примере показано, как сортировать извлеченные данные счетчика произв одительности. В данном примере на компьютере обнаруживаются процессы, котор ые обеспечивают наибольшую загруженность процессора во время выборки. Первая команда получает данные счетчика "Process\% Processor Time" для всех процессов, выполняющихся на компьютере. Результаты сохраняются в переменно й $p. C:\PS> $p = get-counter '\Process(*)\% Processor Time' Вторая команда извлекает свойство CounterSamples объекта набора выборок, ук азанного в переменной $p. Кроме того, выполняется сортировка выборок в поря дке убывания значения выборки с обработкой. Команда использует командлет Fo rmat-Table с параметром AutoFormat для отображения столбцов в виде таблицы. C:\PS> $p.CounterSamples | sort-object -property CookedValue -Descending | format-table -auto Path InstanceName CookedV alue ---- ------------ ------- ---- \\server01\process(_total)\% processor time _total 200.006410 42078 \\server01\process(idle)\% processor time idle 200.006410 42078 \\server01\process(explorer#1)\% processor time explorer 0 \\server01\process(dwm#1)\% processor time dwm 0 \\server01\process(taskeng#1)\% processor time taskeng 0 \\server01\process(taskhost#1)\% processor time taskhost 0 \\server01\process(winlogon)\% processor time winlogon 0 \\server01\process(csrss)\% processor time csrss 0 -------------------------- ПРИМЕР 14 -------------------------- C:\PS># Get-Counter Описание ----------- Эти команды обнаруживают выполняемые на компьютере процессы с наибольшими р абочими наборами. Процессы перечисляются в порядке убывания размера рабочег о набора процесса. Первая команда получает по одной выборке данных счетчика "Process\Working S et - Private" для каждого процесса. Команда сохраняет данные счетчика в пер еменной $ws. C:\PS> $ws = get-counter "\Process(*)\Working Set - Private" Вторая команда с помощью оператора конвейера (|) передает данные, содержащи еся в свойстве CounterSamples, командлету Sort-Object, который упорядочивае т данные процессов по убыванию значения свойства CookedValue. Другой операт ор конвейера передает упорядоченные данные командлету Format-Table, который выводит данные в виде таблицы со столбцами InstanceName и CookedValue. C:\PS> $ws.countersamples | sort-object -property cookedvalue -descending | format-table -property InstanceName, CookedValue -auto InstanceName CookedValue ------------ ----------- _total 162983936 svchost 40370176 powershell 15110144 explorer 14135296 svchost 10928128 svchost 9027584 ... -------------------------- ПРИМЕР 15 -------------------------- C:\PS># Get-Counter Описание ----------- Эта команда получает последовательность выборок счетчика Processor\% Proces sor Time с односекундным интервалом по умолчанию. Чтобы остановить выполнен ие команды, нажмите сочетание клавиш CTRL+C. C:\PS> get-counter -counter "\processor(_total)\% processor time" -continuo us ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=138335 Import-Counter Export-Counter Get-Credential ИМЯ Get-Credential ОПИСАНИЕ Получает объект хранения учетных данных на основе имени пользователя и паро ля. СИНТАКСИС Get-Credential [-Credential] <PSCredential> [<CommonParameters>] ОПИСАНИЕ Командлет Get-Credential создает объект хранения учетных данных для указанн ых имени пользователя и пароля. Объект хранения учетных данных можно исполь зовать в операциях, связанных с безопасностью. Командлет запрашивает у пользователя пароль или имя пользователя и пароль. Пользователи получают запрос с помощью диалогового окна или командной строк и (в зависимости от параметров системного реестра). ПАРАМЕТРЫ -Credential <PSCredential> Указывает имя пользователя для учетных данных, например "User01" или "D omain01\User01". Имя параметра ("Credential") необязательно. При отправке команды появляется запрос на ввод пароля. Если ввести имя пользователя без указания домена, командлет Get-Credent ial вставит перед именем обратную косую черту. Если параметр пропущен, программа просит ввести имя пользователя и паро ль. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSCredential Get-Credential возвращает объект хранения учетных данных. ПРИМЕЧАНИЯ Созданный с помощью Get-Credential объект PSCredential можно использова ть в командлетах, которые запрашивают проверку подлинности пользователя , в частности, которые используют параметр Credential. Параметр Credential не поддерживается поставщиками, которые поставляютс я с Windows PowerShell. Однако можно использовать параметр Credential с Get-WmiObject, так как он напрямую вызывает Microsoft .NET Framework. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$c = Get-Credential Описание ----------- Эта команда получает объект хранения учетных данных и сохраняет его в перем енной $c. При вводе команды на экране появляется диалоговое окно с запросом имени пол ьзователя и пароля. Когда запрошенные данные введены, командлет создает объ ект PSCredential, представляющий учетные данные пользователя, и сохраняет е го в переменной $c. Объект можно использовать в качестве входного для командлетов, которые запр ашивают проверку подлинности пользователя, в частности, которые используют параметр Credential. Однако поставщики, поставляемые с Windows PowerShell, не поддерживают параметр Credential. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$c = Get-Credential C:\PS>Get-WmiObject Win32_DiskDrive -ComputerName Server01 -Credential $c Описание ----------- Эти команды используют объект хранения учетных данных из Get-Credential для проверки подлинности пользователя удаленного компьютера, чтобы они могли и спользовать инструментарий управления Windows (WMI) для управления компьюте ром. Первая команда получает объект хранения учетных данных и сохраняет его в пе ременной $c. Вторая команда использует объект хранения учетных данных в ком анде Get-WmiObject. Эта команда получает данные о дисковых накопителях на к омпьютере Server01. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>C:\PS>Get-WmiObject Win32_BIOS -ComputerName Server01 ' -Credential (get-credential Domain01\User01) Описание ----------- Эта команда показывает, как включить команду Get-Credential в команду Get-W miObject. Эта команда использует командлет Get-WmiObject, чтобы получить данные о BIO S компьютера Server01. Она использует параметр Credential для проверки подл инности пользователя, Domain01\User01, и команду Get-Credential в качестве значения параметра Credential. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$c = Get-Credential -credential User01 C:\PS>$c.Username \User01 Описание ----------- В этом примере создаются учетные данные, включающие имя пользователя без им ени домена. Она показывает, что командлет Get-Credential вставляет перед им енем пользователя обратную косую черту. Первая команда получает учетные данные, включающие имя пользователя User01, и сохраняет их в переменной $c. Вторая команда выводит значение свойства Username полученного объекта хране ния учетных данных. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$credential = $host.ui.PromptForCredential("Need credentials", "Pleas e enter your user name and password.", "", "NetBiosUserName") Описание ----------- Эта команда с помощью метода PromptForCredential выдает пользователю запрос на ввод имени пользователя и пароля. Эта команда сохраняет полученные учет ные данные в переменной $credential. PromptForCredential — это альтернатива использованию командлета Get-Credent ial. При использовании метода PromptForCredential можно задать заголовок, с ообщения, а также имя пользователя, появляющиеся в окне сообщения. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>Set-ItemProperty 'HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds' Con solePrompting $true Описание ----------- По умолчанию запрос у пользователя имени пользователя и пароля осуществляет ся с помощью диалогового окна. Чтобы выполнить этот запрос с помощью команд ной строки, измените реестр, от имени администратора выполнив данную команд у Windows PowerShell. Чтобы запрос выводился с помощью диалогового окна, выполните ту же команду, изменив значение параметра на "ConsolePrompting $false". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113311 Get-Culture ИМЯ Get-Culture ОПИСАНИЕ Получает текущее значение культуры, установленное в операционной системе. СИНТАКСИС Get-Culture [<CommonParameters>] ОПИСАНИЕ Командлет Get-Culture получает сведения о параметрах текущей культуры. Они включают информацию об установленных в данный момент в системе настройках, связанных с языком, например о раскладке клавиатуры и о формате отображения таких элементов, как числа, валюта и даты. Можно также использовать командлет Get-UICulture, который получает информац ию о текущей культуре пользовательского интерфейса системы. Культура пользо вательского интерфейса определяет текстовые строки, которые используются в качестве элементов пользовательского интерфейса, например меню и сообщений. ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Globalization.CultureInfo Командлет Get-Culture возвращает объект, представляющий текущую культур у. ПРИМЕЧАНИЯ Кроме того, можно использовать переменные $PsCulture и $PsUICulture. В переменной $PsCulture хранится имя текущей культуры, а в переменной $Ps UICulture — имя текущей культуры пользовательского интерфейса. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-culture Описание ----------- Эта команда отображает сведения о региональных параметрах компьютера. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$c = get-culture C:\PS> $c | format-list -property * Parent : en LCID : 1033 KeyboardLayoutId : 1033 Name : en-US IetfLanguageTag : en-US DisplayName : English (United States) NativeName : English (United States) EnglishName : English (United States) TwoLetterISOLanguageName : en ThreeLetterISOLanguageName : eng ThreeLetterWindowsLanguageName : ENU CompareInfo : CompareInfo - 1033 TextInfo : TextInfo - 1033 IsNeutralCulture : False CultureTypes : SpecificCultures, InstalledWin32Cultures, FrameworkCultures NumberFormat : System.Globalization.NumberFormatInfo DateTimeFormat : System.Globalization.DateTimeFormatInfo Calendar : System.Globalization.GregorianCalendar OptionalCalendars : {System.Globalization.GregorianCalendar, S ystem.Globalization.GregorianCalendar} UseUserOverride : True IsReadOnly : False C:\PS> $c.calendar MinSupportedDateTime : 1/1/0001 12:00:00 AM MaxSupportedDateTime : 12/31/9999 11:59:59 PM AlgorithmType : SolarCalendar CalendarType : Localized Eras : {1} TwoDigitYearMax : 2029 IsReadOnly : False C:\PS> $c.datetimeformat AMDesignator : AM Calendar : System.Globalization.GregorianCalendar DateSeparator : / FirstDayOfWeek : Sunday CalendarWeekRule : FirstDay FullDateTimePattern : dddd, MMMM dd, yyyy h:mm:ss tt LongDatePattern : dddd, MMMM dd, yyyy LongTimePattern : h:mm:ss tt MonthDayPattern : MMMM dd PMDesignator : PM RFC1123Pattern : ddd, dd MMM yyyy HH':'mm':'ss 'GMT' ShortDatePattern : M/d/yyyy ShortTimePattern : h:mm tt SortableDateTimePattern : yyyy'-'MM'-'dd'T'HH':'mm':'ss TimeSeparator : : UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z' YearMonthPattern : MMMM, yyyy AbbreviatedDayNames : {Sun, Mon, Tue, Wed...} ShortestDayNames : {Su, Mo, Tu, We...} DayNames : {Sunday, Monday, Tuesday, Wednesday...} AbbreviatedMonthNames : {Jan, Feb, Mar, Apr...} MonthNames : {January, February, March, April...} IsReadOnly : False NativeCalendarName : Gregorian Calendar AbbreviatedMonthGenitiveNames : {Jan, Feb, Mar, Apr...} MonthGenitiveNames : {January, February, March, April...} C:\PS> $c.datetimeformat.firstdayofweek Sunday Описание ----------- Этот пример показывает, как много различных данных хранится в объекте культ уры. Он также показывает, как отображать основные и дочерние свойства объек та. Первая команда использует командлет Get-Culture для получения параметров те кущей культуры компьютера. Полученный объект культуры сохраняется в перемен ной $c. Вторая команда отображает все свойства объекта культуры. С помощью оператор а конвейера (|) она передает объект культуры в переменной $c командлету For mat-List. Чтобы показать все (*) свойства объекта, используется параметр Pr operty. (Эту команду можно сократить следующим образом: "$c | fl *".) Оставшиеся команды выводят значения свойств объекта культуры, используя для этого точечное обозначение. Такая нотация позволяет отобразить значение лю бого свойства объекта. В третьей команде используется точечное обозначение для отображения значени я свойства Calendar объекта культуры. В четвертой команде используется точечное обозначение для отображения значе ния свойства DataTimeFormat объекта культуры. У многих свойств объекта имеются собственные свойства. В пятой команде испо льзуется точечное обозначение для отображения значения свойства FirstDayOfW eek свойства DateTimeFormat. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113312 Get-Date ИМЯ Get-Date ОПИСАНИЕ Получает текущие значение даты и времени. СИНТАКСИС Get-Date [-Format <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHint {Date | Time | DateTime}] [-Hour <int>] [-Minute <int>] [-Month <int>] [-S econd <int>] [-Year <int>] [<CommonParameters>] Get-Date [-UFormat <string>] [[-Date] <DateTime>] [-Day <int>] [-DisplayHin t {Date | Time | DateTime}] [-Hour <int>] [-Minute <int>] [-Month <int>] [- Second <int>] [-Year <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Date получает объект DateTime, содержащий текущую или заданну ю дату. Он позволяет выводить дату и время в различных форматах Windows и U NIX. С помощью командлета Get-Date можно создать текстовую строку с датой и ли временем, а затем передать ее другим командлетам или программам. ПАРАМЕТРЫ -Date <DateTime> Задает дату и время. По умолчанию команда Get-Date возвращает текущие з начения системной даты и времени. Введите дату в формате, определенном локалью системы, например dd-MM-yy yy (Немецкий [Германия]) или MM/dd/yyyy (Английский [США]). Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Day <int> Задает отображаемое значение числа месяца. Введите значение от 1 до 31. Это значение будет отображаться вместо текущего числа. Если указать значение, превышающее число дней в месяце, оболочка Window s PowerShell прибавит соответствующее значение к количеству дней в меся це и выведет полученный результат. Например, результатом выполнения ком анды "get-date -month 2 -day 31" будет "3 марта", а не "31 февраля". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DisplayHint <DisplayHintType> Определяет, какие элементы даты и времени будут отображаться. Допустимые значения: -- Date: отображается только дата; -- Time: отображается только время; -- DateTime: отображаются дата и время. По умолчанию используется значение DateTime. Этот параметр не влияет на объект DateTime, возвращаемый командой Get-D ate. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Format <string> Отображает дату и время в формате Microsoft .NET Framework, указанном о писателем формата. Введите описатель формата. Список доступных описател ей формата см. в разделе "DateTimeFormatInfo Class" библиотеки MSDN (Mi crosoft Developer Network) по адресу http://go.microsoft.com/fwlink/?Li nkId=143638. При использовании параметра Format оболочка Windows PowerShell возвраща ет только те свойства объекта DateTime, которые требуются для отображен ия даты в указанном формате. В результате некоторые свойства и методы о бъектов DateTime могут оказаться недоступными. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Hour <int> Задает отображаемое значение часа. Введите значение от 1 до 23. Это зна чение будет отображаться вместо текущего часа. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Minute <int> Задает отображаемое значение минуты. Введите значение от 1 до 59. Это з начение будет отображаться вместо текущей минуты. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Month <int> Задает отображаемое значение месяца. Введите значение от 1 до 12. Это з начение будет отображаться вместо текущего месяца. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Second <int> Задает отображаемое значение секунды. Введите значение от 1 до 59. Это значение будет отображаться вместо текущей секунды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UFormat <string> Отображает дату и время в формате UNIX. Список описателей формата см. в разделе "Примечания". При использовании параметра UFormat оболочка Windows PowerShell возвращ ает только те свойства объекта DateTime, которые требуются для отображе ния даты в указанном формате. В результате некоторые свойства и методы объектов DateTime могут оказаться недоступными. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Year <int> Задает отображаемое значение года. Введите значение от 1 до 9999. Это з начение будет отображаться вместо текущего года. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.DateTime или System.String При использовании параметров Format и UFormat выходной объект — System. String. ПРИМЕЧАНИЯ По умолчанию дата и время отображаются в определенном локалью системы п олном формате даты и полном формате времени. При передаче даты по конвейеру командлету, принимающий строковые значен ия, например командлету Add-Content, оболочка Windows PowerShell преобр азует объект DateTime в строку, прежде чем добавить его в файл. По умол чанию метод ToString() использует короткий формат даты и полный формат времени. Чтобы указать другой формат, воспользуйтесь параметрами Format или UFormat командлета Get-Date. Значения Uformat: Параметр UFormat может иметь следующие значения. Формат команды таков: get-date -uformat %<значение> Например: get-date -uformat %d Дата и время: Дата и время — полный формат (по умолчанию) (Пятница, 16 июня 2006 г. 10:31:27) c Дата и время — сокращенный формат (Пт 16 июн 2006 10:31:27) Дата: D Дата в формате мм/дд/гг (06/14/06) x Дата в стандартном формате локали (09/12/07 в случае американского варианта английского стандарта) Год: C Век (в случае 2006 года — 20) Y Год в четырехзначном формате (2006) y Год в двузначном формате (06) G То же, что и "Y" g То же, что и "y" Месяц: b Сокращенное название месяца (Янв) B Полное название месяца (Январь) h То же, что и "b" m Номер месяца (06) Неделя: W Неделя года (00–52) V Неделя года (01–53) U То же, что и "W" День: a Сокращенное название дня недели (Пн) A Полное название дня недели (Понедельник) u Номер дня недели (понедельник = 1) d День месяца — двузначный формат (05) e День месяца — однозначное число, которому предшествует пробел ( 5) j День года (1–366) w То же, что и "u" Время: p AM или PM (до полудня или после полудня) r Время в 12-часовом формате (09:15:36 AM) R Время в 24-часовом формате без секунд (17:45) T Время в 24-часовом формате (17:45:52) X То же, что и "T" Z Сдвиг часового пояса от всеобщего скоординированного времени (UTC) (-07) Час: H Час в 24-часовом формате (17) I Час в 12-часовом формате (05) k То же, что и "H" l То же, что и "I" ("L" в нижнем регистре) Минуты и секунды: M Минуты (35) S Секунды (05) s Число секунд, прошедших с 00 часов 00 минут 00 секунд 1 января 1970 года (1150451174.95705) Специальные знаки: n Знак новой строки (\n) t Знак табуляции (\t) -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-date -DisplayHint date Tuesday, June 13, 2006 Описание ----------- Эта команда возвращает объект DateTime, но отображает только дату. Параметр DisplayHint указывает, что должна отображаться только дата. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-date -format g 6/13/2006 12:43 PM Описание ----------- Эта команда возвращает текущие дату и время, форматируя их в кратком формат е даты и времени. Для указания формата в ней используется принятый в .NET F ramework описатель формата "g" (General [краткий формат даты и краткий форм ат времени]). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-date -uformat "%Y / %m / %d / %A / %Z" 2006 / 06 / 13 / Tuesday / -07 Описание ----------- Эта команда возвращает текущие дату и время, форматируя их так, как указано в команде. В данном случае выводится номер года в полном формате (%Y), ном ер месяца в двузначном формате (%m), номер дня в двузначном формате (%d), н азвание дня недели в полном формате (%A) и смещение от времени UTC ("Zulu") . -------------------------- ПРИМЕР 4 -------------------------- C:\PS>(get-date -year 2000 -month 12 -day 31).dayofyear 366 Описание ----------- Эта команда отображает номер текущего дня года. Например, 31 декабря — это 365 день 2006 года, но 366 день 2000 года. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$a = get-date C:\PS> $a.IsDaylightSavingTime() True Описание ----------- Эта команда сообщает, корректируются ли текущие дата и время с учетом перех ода на летнее и зимнее время в используемой локали. Первая команда создает переменную с именем $a, после чего присваивает ей об ъект, возвращенный командлетом Get-Date. После этого для объекта в переменн ой $a вызывается метод IsDaylightSavingTime. Чтобы узнать свойства и методы объекта DateTime, введите: "get-date | get-member". -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$a = get-date C:\PS> $a.ToUniversalTime() Tuesday, June 13, 2006 8:09:19 PM Описание ----------- Эти команды преобразуют текущие дату и время в формат времени UTC. Первая команда создает переменную с именем $a, после чего присваивает ей об ъект, возвращенный командлетом Get-Date. После этого для объекта в переменн ой $a вызывается метод ToUniversalTime. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>$a = get-wmiobject win32_bios -computer server01 $a | format-list -property Name, @{Label="BIOS Age"; ` Expression={(get-date) - $_.ConvertToDateTime($_.ReleaseDate)}} Name : Default System BIOS BIOS Age : 1345.17:31:07.1091047 Описание ----------- В инструментарии управления Windows (WMI) используется объект даты-времени, отличный от аналогичного объекта .NET Framework, возвращаемого командлетом Get-Date. Чтобы использовать такие объекты WMI в одной команде с данными о дате и времени, возвращенными командлетом Get-Date, нужно вызвать метод Co nvertToDateTime для преобразования WMI-объектов CIM_DATETIME в объекты Date Time платформы .NET Framework. Команды в данном примере отображают название BIOS на удаленном компьютере S erver01 и время, прошедшее с момента выпуска BIOS. Первая команда с помощью командлета Get-WmiObject получает экземпляр класса Win32_BIOS на компьютере Server01, после чего сохраняет его в переменной $ a. Во второй команде WMI-объект, сохраненный в переменной $a, с помощью операт ора конвейера (|) передается командлету Format-List. Параметр Property кома ндлета Format-List указывает два свойства, которые будут отображаться в спи ске: "Name" и "BIOS Age". Свойство "BIOS Age" определено в хэш-таблице. Эта таблица содержит ключи Label и Expression, которые определяют, соответстве нно, имя свойства и выражение, на основе которого вычисляется время, прошед шее с момента выпуска BIOS. Для преобразования каждого экземпляра класса Re leaseDate в объект DateTime платформы .NET Framework в выражении использует ся метод ConvertToDateTime. Затем полученное значение вычитается из значени я, возвращенного командлетом Get-Date, который при отсутствии параметров во звращает текущую дату. Открывающая кавычка (`) в Windows PowerShell является знаком продолжения ст роки. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>get-date Tuesday, June 13, 2006 12:43:42 PM Описание ----------- Эта команда получает объект DateTime и выводит текущие дату и время в форма те длинной даты и длинного времени для локали системы, как если бы была вве дена команда "get-date -format F". -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-date C:\PS> Tuesday, September 26, 2006 11:25:31 AM c:\PS>(get-date).ToString() 9/26/2006 11:25:31 AM C:\PS>get-date | add-content test.txt # Adds 9/26/2006 11:25:31 AM C:\PS>get-date -format F | add-content test.txt # Adds Tuesday, September 26, 2006 11:25:31 AM Описание ----------- В этих командах показано, как использовать командлет Get-Date с командлетом Add-Content и другими командлетами, которые преобразуют объект DateTime, в озвращаемый командлетом Get-Date, в строку. Первая команда показывает, что по умолчанию командлет get-date выводит резу льтат в полном формате даты и времени. Вторая команда показывает, что по умолчанию метод ToString() объекта DateTi me возвращает дату и время в коротком формате. Третья команда с помощью оператора конвейера передает объект DateTime коман длету Add-Content, который добавляет содержимое в файл Test.txt. Поскольку командлет Add-Content использует метод ToString() объекта DateTime, добавля емая дата имеет короткий формат даты и времени. Четвертая команда использует параметр Format командлета Get-Date, чтобы зад ать формат. При использовании параметров Format и UFormat командлет Get-Dat e создает строку, а не объект DateTime. Затем, когда строка передается кома ндлету Add-Content, эта строка добавляется в файл Test.txt без изменений. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113313 Set-Date New-TimeSpan Get-Event ИМЯ Get-Event ОПИСАНИЕ Получает события из очереди событий. СИНТАКСИС Get-Event [-EventIdentifier] <int> [<CommonParameters>] Get-Event [[-SourceIdentifier] <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Event получает события из очереди событий Windows PowerShell текущего сеанса. Можно получить все события или воспользоваться параметром EventIdentifier или SourceIdentifier, чтобы задать конкретные события. Когда событие происходит, оно добавляется в очередь событий. Очередь событи й содержит события, на получение которых зарегистрирован пользователь, собы тия, созданные с помощью командлета New-Event, а также события, возникающие при выходе из Windows PowerShell. Для получения этих событий служат команд леты Get-Event и Wait-Event. Этот командлет не получает событий из журналов средства просмотра событий. Для получения этих событий служат командлеты Get-WinEvent и Get-EventLog. ПАРАМЕТРЫ -EventIdentifier <int> Получает только события с указанным идентификатором события. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -SourceIdentifier <string> Получает только события с указанными идентификаторами источника. По умо лчанию командлет получает все события в очереди событий. Подстановочные знаки запрещены. Требуется? false Позиция? 1 Значение по умолчанию All events Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSEventArgs Командлет Get-Event возвращает объект PSEventArgs для каждого события. Чтобы просмотреть описание этого объекта, введите "get-help get-event - full" и обратитесь к подразделу "Примечания" раздела справки. ПРИМЕЧАНИЯ События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. Командлет Get-Event возвращает объект PSEventArgs (System.Management.Au tomation.PSEventArgs) со следующими свойствами. -- ComputerName: имя компьютера, на котором произошло событие. Это знач ение свойства заполняется, только когда событие передается с удаленного компьютера. -- RunspaceId: GUID, однозначно идентифицирующий сеанс, в котором произ ошло событие. Это значение свойства заполняется, только когда событие п ередается с удаленного компьютера. -- EventIdentifier: целое число (Int32), однозначно идентифицирующее ув едомление о событии в текущем сеансе. -- Sender: объект, создавший событие. В значении параметра Action объек т отправителя содержится в автоматической переменной $Sender. -- SourceEventArgs: первый параметр, который наследуется от EventArgs ( если существует). Например, в событии, время которого истекло по таймер у, где сигнатура имеет форму "Object sender, Timers.ElapsedEventArgs e" , свойство SourceEventArgs содержит Timers.ElapsedEventArgs. В значении параметра Action это значение содержится в автоматической переменной $ SourceEventArgs. -- SourceArgs: все параметры сигнатуры исходного события. Для стандартн ой сигнатуры события переменная $args[0] представляет отправителя, а пе ременная $args[1] — свойство SourceEventArgs. В значении параметра Acti on это значение содержится в автоматической переменной $SourceArgs. -- SourceIdentifier: строка, идентифицирующая подписку на событие. В зн ачении параметра Action это значение содержится в свойстве SourceIdenti fier автоматической переменной $Event. -- TimeGenerated: объект DateTime, представляющий время, когда было соз дано событие. В значении параметра Action это значение содержится в сво йстве TimeGenerated автоматической переменной $Event. --MessageData: данные, связанные с подпиской на событие. Пользователи у казывают эти данные, когда они регистрируют событие. В значении парамет ра Action это значение содержится в свойстве MessageData автоматической переменной $Event. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-event Описание ----------- Эта команда получает все события из очереди событий. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-event -sourceIdentifier "PowerShell.ProcessCreated" Описание ----------- Эта команда получает события, у которых свойство SourceIdentifier имеет зна чение "PowerShell.ProcessCreated". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$events = get-event C:\PS> $events[0] | format-list -property * ComputerName : RunspaceId : c2153740-256d-46c0-a57c-b805917d1b7b EventIdentifier : 1 Sender : System.Management.ManagementEventWatcher SourceEventArgs : System.Management.EventArrivedEventArgs SourceArgs : {System.Management.ManagementEventWatcher, System.Manage ment.EventArrivedEventArgs} SourceIdentifier : ProcessStarted TimeGenerated : 11/13/2008 12:09:32 PM MessageData : C:\PS> get-event | where {$_.TimeGenerated -ge "11/13/2008 12:15:00 PM"} ComputerName : RunspaceId : c2153740-256d-46c0-a57c-b8059325d1a0 EventIdentifier : 1 Sender : System.Management.ManagementEventWatcher SourceEventArgs : System.Management.EventArrivedEventArgs SourceArgs : {System.Management.ManagementEventWatcher, System.Manage ment.EventArrivedEventArgs} SourceIdentifier : ProcessStarted TimeGenerated : 11/13/2008 12:15:00 PM MessageData : Описание ----------- В этом примере показано, как получать события, используя свойства, отличные от SourceIdentifier. Первая команда получает все события в очереди событий и сохраняет их в пере менной $events. Вторая команда использует синтаксис работы с массивами, чтобы получить перв ое событие (индекс 0) из массива в перемененной $events. Команда с помощью оператора конвейера (|) передает событие командлету Format-List, который от ображает все свойства события в виде списка. Это позволяет узнать свойства каждого объекта события. В третьей команде показано, как с помощью командлета Where-Object получить событие на основании времени его создания. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-event -eventIdentifier 2 Описание ----------- Эта команда получает событие с идентификатором 2. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113453 Register-ObjectEvent Register-EngineEvent Register-WmiEvent Unregister-Event New-Event Remove-Event Wait-Event Get-EventLog ИМЯ Get-EventLog ОПИСАНИЕ Получает события, зарегистрированные в журнале событий, или список журналов событий, находящихся на локальном или удаленном компьютере. СИНТАКСИС Get-EventLog [-AsString] [-ComputerName <string[]>] [-List] [<CommonParamet ers>] Get-EventLog [-LogName] <string> [[-InstanceId] <Int64[]>] [-After <DateTim e>] [-AsBaseObject] [-Before <DateTime>] [-ComputerName <string[]>] [-Entry Type <string[]>] [-Index <Int32[]>] [-Message <string>] [-Newest ource <string[]>] [-UserName <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-EventLog получает события, зарегистрированные в журнале событ ий, или список журналов событий, находящихся на локальном компьютере или на удаленных компьютерах. С помощью параметров командлета Get-EventLog можно искать события по значен иям их свойств. Командлет Get-EventLog возвращает только те события, которы е соответствуют всем указанным значениям свойств. Командлеты, в имени которых содержится существительное EventLog (командлеты EventLog) работают только с классическими журналами событий. Чтобы получат ь события из журналов, основанных на технологии журнала событий Windows (в Windows Vista и более поздних версиях Windows), используйте командлет Get-W inEvent. ПАРАМЕТРЫ -After <DateTime> Получает только события, произошедшие позднее указанных даты и времени. Укажите объект DateTime, например один из объектов, возвращенных коман длетом Get-Date. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsBaseObject [<SwitchParameter>] Возвращает стандартный объект System.Diagnostics.EventLogEntry для кажд ого события. Если этот параметр не задан, командлет Get-EventLog возвра щает расширенный объект PSObject с дополнительными свойствами EventLogN ame, Source и InstanceId. Чтобы просмотреть результат применения этого параметра, передайте событ ия по конвейеру командлету Get-Member и проверьте значение TypeName в н аборе результатов. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsString [<SwitchParameter>] Возвращает выходные данные в виде строк, а не объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Before <DateTime> Получает только события, произошедшие раньше указанных даты и времени. Укажите объект DateTime, например один из объектов, возвращенных команд летом Get-Date. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает удаленный компьютер. По умолчанию используется значение "Локальн ый компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-EventLog можно использовать, даж е если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EntryType <string[]> Получает только события с указанным типом записи. Допустимые значения: Error, Information, FailureAudit, SuccessAudit и Warning. По умолчанию возвращаются все события. Требуется? false Позиция? named Значение по умолчанию Все события Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Index <Int32[]> Получает только события с указанными индексами. Требуется? false Позиция? named Значение по умолчанию Все события Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InstanceId <Int64[]> Получает только события с указанными идентификаторами экземпляров. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -List [<SwitchParameter>] Получает список журналов событий, находящихся на компьютере. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LogName <string> Задает журнал событий. Введите имя (значение свойства Log; а не свойст ва LogDisplayName) одного журнала событий. Подстановочные знаки запреще ны. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Message <string> Получает события, в сообщениях которых содержится указанная строка. Это свойство можно использовать для поиска сообщений, в которых содержатся определенные слова или фразы. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Newest <int> Задает максимальное число извлекаемых событий. Командлет Get-EventLog в озвращает указанное число событий, начиная с самого последнего события, зарегистрированного в журнале. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Source <string[]> Получает события, записанные в журнал указанными источниками. Подстанов очные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -UserName <string[]> Получает только события, связанные с указанными именами пользователей. Введите имена или шаблоны имен, например User01, User* или Domain01\Use r*. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет. Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.Strin g Если указан параметр LogName, выходными данными является коллекция объе ктов EventLogEntry (System.Diagnostics.EventLogEntry). Если указан только параметр List, выходными данными является коллекция объектов EventLog (System.Diagnostics.EventLog). Если указаны параметры List и AsString, выходными данными является колл екция объектов String (System.String). ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-eventlog -list Описание ----------- Эта команда отображает сведения о журналах событий на компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-eventlog -newest 5 -logname application Описание ----------- Эта команда отображает пять последних записей в журнале событий Application . -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$events = get-eventlog -logname system -newest 1000 C:\PS> $events | group-object -property source -noelement | sort-object -pr operty count -descending Count Name ----- ---- 75 Service Control Manager 12 Print 6 UmrdpService 2 DnsApi 2 DCOM 1 Dhcp 1 TermDD 1 volsnap Описание ----------- В этом примере показано, как найти все источники, представленные в 1000 пос ледних записях журнала системных событий. Первая команда извлекает 1000 последних записей из журнала системных событи й и сохраняет их в переменной $events. Вторая команда с помощью оператора конвейера (|) передает события, сохранен ные в переменной $events, командлету Group-Object, который группирует запис и по значению переменной Source. Второй оператор конвейера используется ком андой для передачи сгруппированных событий командлету Sort-Object, который сортирует их в порядке убывания; таким образом, наиболее часто фигурирующий источник отображается в списке первым. Source является лишь свойством записей журнала событий. Чтобы просмотреть в се свойства записи журнала событий, передайте события по конвейеру командле ту Get-Member. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-eventlog -logname System -EntryType Error Описание ----------- Эта команда извлекает из журнала системных событий только события типа "Оши бка". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-eventlog -logname System -instanceID 3221235481 -Source "DCOM" Описание ----------- Эта команда извлекает из журнала системных событий только события, свойства InstanceID и Source которых имеют значения 3221235481 и "DCOM" соответстве нно. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-eventlog -logname "Windows PowerShell" -computername localhost, S erver01, Server02 Описание ----------- Эта команда извлекает события из журналов событий "Windows PowerShell", нах одящихся на трех компьютерах: Server01, Server02 и "localhost" (локальный к омпьютер). -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-eventlog -logname "Windows PowerShell" -message "*failed*" Описание ----------- Эта команда извлекает все события из журнала событий Windows PowerShell, в сообщениях которых содержится слово "failed". -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$a = get-eventlog -log System -newest 1 C:\PS> $a | format-list -property * EventID : 7036 MachineName : Server01 Data : {} Index : 10238 Category : (0) CategoryNumber : 0 EntryType : Information Message : The description for Event ID Source : Service Control Manager ReplacementStrings : {WinHTTP Web Proxy Auto-Disco InstanceId : 1073748860 TimeGenerated : 4/11/2008 9:56:05 PM TimeWritten : 4/11/2008 9:56:05 PM UserName : Site : Container : Описание ----------- В этом примере показано, как отобразить значения всех свойств события. Первая команда извлекает последнее событие из журнала системных событий и с охраняет его в переменной $a. Вторая команда с помощью оператора конвейера (|) передает событие, сохранен ное в переменной $a, команде Format-List, которая отображает все (*) свойст ва события. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-eventlog -log application -source outlook | where {$_.eventID -eq 34} Описание ----------- Эта команда извлекает из журнала событий Application только события, у кото рый свойство Source имеет значение Outlook, а свойство EventID — значение 3 4. Командлет Get-EventLog не имеет параметра EventID, однако можно использо вать командлет Where-Object, позволяющий выбирать события на основе значени я любого свойства события. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>get-eventlog -log system -username NT* | group-object -property usern ame -noelement | format-table Count, Name -auto Count Name ----- ---- 6031 NT AUTHORITY\SYSTEM 42 NT AUTHORITY\LOCAL SERVICE 4 NT AUTHORITY\NETWORK SERVICE Описание ----------- Эта команда возвращает события журнала системных событий, сгруппированные п о значениям свойства UserName. В команде Get-EventLog используется параметр UserName для извлечения только событий, в которых имя пользователя начинае тся с комбинации символов "NT". -------------------------- ПРИМЕР 11 -------------------------- C:\PS>$May31 = get-date 5/31/08 C:\PS> $July1 = get-date 7/01/08 C:\PS> get-eventlog -log "Windows PowerShell" -entrytype Error -after $may3 1 -before $july1 Описание ----------- Эта команда извлекает из журнала событий Windows PowerShell все сообщения о б ошибках, произошедших в июне 2008 года. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113314 Get-WinEvent Clear-EventLog Limit-EventLog New-EventLog Remove-EventLog Show-EventLog Write-EventLog Get-WinEvent Get-EventSubscriber ИМЯ Get-EventSubscriber ОПИСАНИЕ Получает подписчики на события в текущем сеансе. СИНТАКСИС Get-EventSubscriber [-SubscriptionId] <int> [[-Force]] [<CommonParameters>] Get-EventSubscriber [[-SourceIdentifier] <string>] [[-Force]] [<CommonParam eters>] ОПИСАНИЕ Командлет Get-EventSubscriber получает подписчики на события в текущем сеан се. При подписке на событие с помощью командлета регистрации событий в сеанс Wi ndows PowerShell добавляется подписчик на событие, а события, на которые по дписался пользователь, добавляются в очередь событий по мере возникновения. Чтобы отменить подписку на событие, необходимо удалить подписчик с помощью командлета Unregister-Event. ПАРАМЕТРЫ -Force [<SwitchParameter>] Получает все подписчики на события, включая подписчики на события, кото рые скрыты с помощью параметра SupportEvent командлетов Register-Object Event, Register-WmiEvent и Register-EngineEvent. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SourceIdentifier <string> Получает только подписчики на события с заданным значением свойства Sou rceIdentifier. По умолчанию командлет Get-EventSubscriber получает все подписчики на события в сеансе. Подстановочные знаки запрещены. Этот па раметр указывается с учетом регистра. Требуется? false Позиция? 1 Значение по умолчанию Все подписчики на события Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -SubscriptionId <int> Получает только заданный идентификатор подписки. По умолчанию командлет Get-EventSubscriber получает все подписчики на события в сеансе. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSEventSubscriber Командлет Get-EventSubscriber возвращает объект, представляющий каждый подписчик на события. ПРИМЕЧАНИЯ Командлет New-Event, создающий пользовательское событие, не создает под писчик. Поэтому командлет Get-EventSubscriber не сможет обнаружить объе кт подписчика для таких событий. Но если подписаться на пользовательско е событие с помощью командлета Register-EngineEvent (чтобы перенаправит ь событие или задать действие), командлет Get-EventSubscriber обнаружит подписчик, созданный командлетом Register-EngineEvent. События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$timer = New-Object Timers.Timer C:\PS> $timer | Get-Member -Type Event C:\PS> Register-ObjectEvent -inputObject $timer -EventName Elapsed -SourceI dentifier Timer.Elapsed C:\PS> Get-EventSubscriber C:\PS> $timer = New-Object Timers.Timer C:\PS> $timer | Get-Member -Type Event TypeName: System.Timers.Timer Name MemberType Definition ---- ---------- ---------- Disposed Event System.EventHandler Disposed(System.Object, System.Even tArgs) Elapsed Event System.Timers.ElapsedEventHandler Elapsed(System.Object , System.Timers.ElapsedEventArgs) C:\PS> Register-ObjectEvent -InputObject $timer -EventName Elapsed -SourceI dentifier Timer.Elapsed C:\PS> Get-EventSubscriber SubscriptionId : 4 SourceObject : System.Timers.Timer EventName : Elapsed SourceIdentifier : Timer.Elapsed Action : HandlerDelegate : SupportEvent : False ForwardEvent : False Описание ----------- В этом примере используется команда Get-EventSubscriber для получения подпи счика на событие таймера. Первая команда создает экземпляр объекта таймера с помощью командлета New-O bject. Новый объект таймера сохраняется в переменной $timer. Вторая команда отображает события, доступные для объектов таймера, с помощь ю командлета Get-Member. В этой команде используется параметр Type командле та Get-Member со значением Event. Третья команда регистрирует событие Elapsed объекта таймера с помощью коман длета Register-ObjectEvent. Четвертая команда использует командлет Get-EventSubscriber для получения по дписчика на событие Elapsed. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$timer = New-Object Timers.Timer C:\PS> $timer.Interval = 500 C:\PS> Register-ObjectEvent -inputObject $timer -eventName Elapsed -sourceI dentifier Timer.Random -Action { $random = Get-Random -Min 0 -Max 100 } Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 3 Timer.Random NotStarted False $random = Get-Random . .. C:\PS> $timer.Enabled = $true C:\PS> $subscriber = Get-EventSubcriber -sourceIdentifer Timer.Random C:\PS> ($subscriber.action).gettype().fullname PSEventJob C:\PS> $subscriber.action | format-list -property * State : Running Module : __DynamicModule_6b5cbe82-d634-41d1-ae5e-ad7fe8d57fe0 StatusMessage : HasMoreData : True Location : Command : $random = Get-Random -Min 0 -Max 100 JobStateInfo : Running Finished : System.Threading.ManualResetEvent InstanceId : 88944290-133d-4b44-8752-f901bd8012e2 Id : 1 Name : Timer.Random ChildJobs : {} ... C:\PS> & $subscriber.action.module {$random} 96 C:\PS> & $subscriber.action.module {$random} 23 Описание ----------- В этом примере показано использование динамического модуля в объекте PSEven tJob свойства Action подписчика на событие. Первая команда с помощью командлета New-Object создает объект таймера. Втор ая команда устанавливает интервал времени таймера равным 500 (миллисекундам ). Третья команда регистрирует событие Elapsed объекта таймера с помощью коман длета Register-ObjectEvent. Она содержит действие, обрабатывающее событие. Когда интервал времени таймера истекает, появляется событие, и выполняются команды, содержащиеся в действии. В этом случае командлет Get-Random создае т случайное число от 0 до 100 и сохраняет его в переменной $random. Идентиф икатор источника события — Timer.Random. При использовании параметра Action в команде Register-ObjectEvent эта коман да возвращает объект PSEventJob, представляющий действие. Четвертая команда включает таймер. Пятая команда использует командлет Get-EventSubscriber для получения подпис чика на событие Timer.Random. Она сохраняет объект подписчика на событие в переменной $subscriber. Шестая команда показывает, что свойство Action объекта подписчика на событи е содержит объект PSEventJob. Фактически, оно содержит тот же объект PSEven tJob, который возвращен командой Register-ObjectEvent. Седьмая команда использует командлет Format-List для отображения всех свойс тв объекта PSEventJob в свойстве Action в списке. Результат показывает, что объект PSEventJob имеет свойство Module, содержащее динамический модуль ск рипта, который реализует действие. В остальных командах используется оператор вызова (&) для вызова команды в модуле и отображения значения переменной $random. Оператор вызова можно исп ользовать для вызова любой команды в модуле, включая команды, которые не эк спортируются. В этом случае команды показывают случайное число, создаваемое при появлении события Elapsed. Дополнительные сведения о модулях см. в разделе about_Modules. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135155 Register-ObjectEvent Register-EngineEvent Register-WmiEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event Get-ExecutionPolicy ИМЯ Get-ExecutionPolicy ОПИСАНИЕ Получает политики выполнения для текущего сеанса. СИНТАКСИС Get-ExecutionPolicy [[-Scope] {Process | CurrentUser | LocalMachine | UserP olicy | MachinePolicy}] [-List] [<CommonParameters>] ОПИСАНИЕ Командлет Get-ExecutionPolicy получает политики выполнения для текущего сеа нса. Политика выполнения определяется политиками выполнения, которые задаются с помощью командлета Set-ExecutionPolicy и параметров групповой политики для политики выполнения Windows PowerShell. По умолчанию используется значение "Restricted". Без указания параметров Get-ExecutionPolicy получает политику выполнения, д ействующую в сеансе. С помощью параметра List можно получить все политики в ыполнения, влияющие на сеанс, а с помощью параметра Scope можно получить по литику выполнения для определенной области. Дополнительные сведения см. в разделе about_Execution_Policies. ПАРАМЕТРЫ -List [<SwitchParameter>] Получает все значения политики выполнения для сеанса, указанного в поря дке приоритета. По умолчанию Get-ExecutionPolicy получает только дейст вующую политику выполнения. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <ExecutionPolicyScope> Получает политику выполнения в указанной области. По умолчанию Get-Exe cutionPolicy получает действующую политику выполнения для текущего сеан са. Допустимые значения: MachinePolicy: политика выполнения, заданная групповой политикой для вс ех пользователей компьютера. UserPolicy: политика выполнения, заданная групповой политикой для текущ его пользователя компьютера. Process: политика выполнения, заданная для текущего процесса Windows Po werShell. CurrentUser: политика выполнения, заданная для текущего пользователя. LocalMachine: политика выполнения, заданная для всех пользователей комп ьютера. Требуется? false Позиция? 1 Значение по умолчанию Действующая политика выполнения Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.ExecutionPolicy Get-ExecutionPolicy возвращает объект для каждой получаемой политики вы полнения. ПРИМЕЧАНИЯ Командлет Get-ExecutionPolicy нельзя использовать для получения конкрет ных политик выполнения, настроенных для конкретной области, или для пол учения политики выполнения, настроенной с помощью групповой политики. К омандлет Get-ExecutionPolicy позволяет получать только действующую поли тику выполнения, составленную из всех правил приоритета. Политика выполнения — часть стратегии безопасности оболочки Windows Pow erShell. Она определяет, можно ли загружать файлы конфигурации (в том ч исле профиль Windows PowerShell) и выполнять скрипты, и определяет, для выполнения каких скриптов, если такие имеются, требуется цифровая подп ись. Действующая политика выполнения определяется политиками, заданными с по мощью командлета Set-ExecutionPolicy и групповых политик "Включить выпо лнение скриптов" для компьютеров и пользователей. Очередность выполнени я: групповая политика компьютера > групповая политика пользователя > по литика выполнения процесса (сеанса) > политика выполнения пользователя > политика выполнения компьютера. Чтобы получить дополнительные сведения о политике выполнения Windows Po werShell, в том числе определения политик Windows PowerShell, см. разде л about_Execution_Policies. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-executionpolicy Restricted Описание ----------- Эта команда получает текущую политику выполнения для оболочки. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-executionpolicy RemoteSigned; get-executionPolicy RemoteSigned Описание ----------- Эти команды задают новую настройку пользователя для политики выполнения обо лочки, а затем отображают действующую политику выполнения. Команды разделен ы точкой с запятой (;). В этом примере из-за отсутствия параметра групповой политики, действующей политикой для оболочки являются пользовательские нас тройки. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-executionpolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser AllSigned LocalMachine RemoteSigned C:\PS> get-executionpolicy AllSigned Описание ----------- Эти команды получают все политики выполнения в текущем сеансе и действующую политику выполнения. Первая команда получает все политики выполнения, влияющие на текущий сеанс. Ниже они указаны в порядке приоритета. Вторая команда получает только действующую политику выполнения, которая зад ана в области CurrentUser. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113315 Set-ExecutionPolicy Get-AuthenticodeSignature Set-AuthenticodeSignature about_Execution_Policies about_Signing Get-FormatData ИМЯ Get-FormatData ОПИСАНИЕ Получает данные форматирования для текущего сеанса. СИНТАКСИС Get-FormatData [[-TypeName] <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-FormatData возвращает данные форматирования для текущего сеан са. Данные форматирования сеанса содержат данные форматирования из файлов форма тирования Format.ps1xml (например, файлов в каталоге $pshome), данные форма тирования для модулей, импортируемых в сеанс, и данные форматирования для к оманд, импортируемых в сеанс с помощью командлета Import-PSSession. Этот командлет можно использовать для проверки данных форматирования. Затем можно с помощью командлета Export-FormatData сериализовать объекты (преобр азовать их в XML) и сохранить их в файлах Format.ps1xml. Дополнительные сведения о файлах форматирования в Windows PowerShell см. в разделе about_Format.ps1xml. ПАРАМЕТРЫ -TypeName <string[]> Получает только данные форматирования с указанными именами типов. Введи те имена типов. Подстановочные знаки разрешены. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.ExtendedTypeDefinition ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-formatdata Описание ----------- Эта команда возвращает все данные форматирования в текущем сеансе. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-formatdata -typename Microsoft.Wsman* Описание ----------- Эта команда возвращает элементы данных форматирования с именами, начинающим ися с "Microsoft.Wsman". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$f = get-formatdata -typename helpinfoshort C:\PS> $f TypeName FormatViewDefinition -------- -------------------- HelpInfoShort {help , TableControl} C:\PS> $f.FormatViewDefinition[0].control Headers Rows ------- ---- {System.Management.Automation.TableControlColumnHeader, System.Manageme... {System.Management.Automation.TableControlRow} C:\PS> $f.FormatViewDefinition[0].control.headers Label Alignment Width ----- --------- ----- Name Left 33 Category Left 9 Undefined 0 Описание ----------- В этом примере показано, как получить объект данных форматирования и провер ить его свойства. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = get-formatdata C:\PS> import-module bitstransfer C:\PS> $b = get-formatdata C:\PS> compare-object $a $b InputObject SideIndicator ----------- ------------- Microsoft.BackgroundIntelligentTransfer.Management.BitsJob => C:\PS> get-formatdata *bits* | export-formatdata -filepath c:\test\bits.for mat.ps1xml C:\PS> get-content c:\test\bits.format.ps1xml <?xml version="1.0" encoding="utf-8"?><Configuration><ViewDefinitions> <View><Name>Microsoft.BackgroundIntelligentTransfer.Management.BitsJob</Nam e> ... Описание ----------- В этом примере показано использование командлетов Get-FormatData и Export-F ormatData для экспорта данных форматирования, которые добавляются модулем. В первых четырех командах используются командлеты Get-FormatData, Import-Mo dule и Compare-Object для идентификации типа формата, который модуль BitsTr ansfer добавляет в сеанс. В пятой команде используется командлет Get-FormatData для получения типа фо рмата, добавляемого модулем BitsTransfer. Эта команда с помощью оператора к онвейера (|) передает объект типа формата командлету Export-FormatData, кот орый преобразует его обратно в XML и сохраняет в заданном файле format.ps1x ml. Последняя команда показывает выборку содержимого файла format.ps1xml. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144303 Export-FormatData Update-FormatData Get-Help ИМЯ Get-Help ОПИСАНИЕ Отображает сведения о командах и концепциях Windows PowerShell. СИНТАКСИС Get-Help [-Full] [[-Name] <string>] [-Category <string[]>] [-Component <str ing[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <stri ng[]>] [<CommonParameters>] Get-Help [-Detailed] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role string[]>] [<CommonParameters>] Get-Help [-Examples] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role string[]>] [<CommonParameters>] Get-Help [-Parameter <string>] [[-Name] <string>] [-Category <string[]>] [- Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string> ] [-Role <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Help выводит сведения о командах и концепциях Windows PowerSh ell, в том числе командлетах, поставщиках, функциях и скриптах. Чтобы просм отреть полный список разделов справки по командлетам, введите команду "get- help *". Если команда "Get-Help" введена с указанием точного имени раздела справки и ли слова, являющегося уникальным признаком раздела справки, команда Get-Hel p отобразит содержимое указанного раздела справки. Если введено слово или ш аблон слова, которому соответствуют несколько заголовков разделов справки, Get-Help отобразит список соответствующих заголовков. Если введено слово, к оторое не используется ни в одном из заголовков разделов справки, Get-Help отобразит список соответствующих разделов, в содержимом которых встречается это слово. Кроме команды "get-help", можно вводить команды "help" или "man", позволяющ ие просматривать справку по экранам, или команду "<cmdlet-name> -?", котора я полностью соответствует команде Get-Help, но распространяется только на к омандлеты. Можно отобразить весь файл справки или некоторые его разделы, например синт аксис, параметры или примеры. Для отображения интернет-версии файла справки по командлету в браузере можно использовать параметр Online. Эти параметры не влияют на отображение разделов справки по основным понятиям. Разделы справки по основным понятиям Windows PowerShell начинаются с префик са "about_", например " about_Comparison_Operators". Чтобы просмотреть спис ок всех разделов "about_", введите команду "get-help about_*". Чтобы просмо треть определенный раздел, введите команду "get-help about_<имя_раздела>", например "get-help about_Comparison_Operators". ПАРАМЕТРЫ -Category <string[]> Отображает справку по элементам в указанной категории. Допустимые значе ния: Alias, Cmdlet, Provider и HelpFile. Разделы основных сведений прин адлежат к категории HelpFile. Категория является свойством объекта MamlCommandHelpInfo, возвращаемого командлетом Get-Help. Этот параметр не влияет на отображение справки п о основным понятиям ("about_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Component <string[]> Отображает список средств с заданным значением компонента, таким как "E xchange". Введите имя компонента. Подстановочные знаки разрешены. Компонент является свойством объекта MamlCommandHelpInfo, возвращаемого командлетом Get-Help. Этот параметр не влияет на отображение справки п о основным понятиям ("About_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Detailed [<SwitchParameter>] Добавляет описания параметров и примеры к отображаемой базовой справке. Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Examples [<SwitchParameter>] Отображает только имя, краткое описание и примеры. Чтобы отобразить тол ько примеры, введите команду "(get-help <имя_командлета>).examples". Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Full [<SwitchParameter>] Отображает весь файл справки по командлету, включая описания параметров и атрибуты, примеры, сведения о типах входных и выходных объектов, а т акже дополнительные примечания. Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Functionality <string[]> Отображает справку для элементов с указанной функциональностью. Введите функциональность. Подстановочные знаки разрешены. Функциональность является свойством объекта MamlCommandHelpInfo, возвра щаемого командлетом Get-Help. Этот параметр не влияет на отображение сп равки по основным понятиям ("About_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Запрашивает справку по указанному средству или раздел основных сведений . Введите имя командлета, поставщика, скрипта или функции, например Get- Member, имя раздела основных сведений, например "about_Objects", или пс евдоним, например "ls". Подстановочные знаки можно использовать в имена х командлетов и поставщиков, но их нельзя использовать при поиске разде лов справки для функций и скриптов. Чтобы получить справку для скрипта, который не расположен в папке, указ анной в переменной среды Path, введите путь и имя файла скрипта. Если введено точное название раздела справки, Get-Help отобразит содерж имое раздела. Если введено слово или шаблон слова, которому соответству ют несколько заголовков разделов справки, Get-Help отобразит список соо тветствующих заголовков. Если введено слово, которое не соответствует н и одному из заголовков разделов справки, Get-Help отобразит список соот ветствующих разделов, в содержимом которых встречается это слово. Имена разделов основных сведений, например about_Objects, должны указыв аться на английском языке даже в версиях Windows PowerShell, отличных о т английской. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Online [<SwitchParameter>] Отображает интернет-версию раздела справки в браузере по умолчанию. Это т параметр допустим только для разделов справки, посвященных командлета м, функциям и скриптам. Get-Help использует адрес в Интернете (URI), который указан в первом эл ементе раздела "Ссылки по теме" описания командлета, функции или скрипт а в справочной системе. Этот параметр работает, только если раздел спра вки включает URI, начинающийся на "Http" или "Https", и в системе устан овлен браузер. Сведения о поддержке этой функции в собственных разделах справки см. в разделе about_Comment_Based_Help и в документе "Написание справки для к омандлетов" (http://go.microsoft.com/fwlink/?LinkID=123415) в библиотек е MSDN. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Parameter <string> Отображает только подробные описания указанных параметров. Подстановочн ые знаки разрешены. Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Получает справку, в которой поясняется работа командлета по заданному п ути поставщика. Введите путь к поставщику Windows PowerShell. Этот параметр получает адаптированную версию раздела справки по командл ету, в котором описано, как этот командлет работает по указанному пути поставщика Windows PowerShell. Этот параметр можно использовать только для получения справки о командлете поставщика, и только если поставщик включил пользовательскую версию раздела справки по командлету поставщик а. Чтобы открыть справку по пользовательскому командлету для пути поставщи ка, перейдите по пути поставщика и введите команду Get-Help, или в любо м расположении воспользуйтесь параметром Path команды Get-Help, чтобы з адать путь поставщика. Дополнительные сведения см. в разделе About_Prov iders. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Role <string[]> Отображает специальную справку по указанной роли пользователя. Введите роль. Подстановочные знаки разрешены. Введите роль, которую пользователь выполняет в организации. Некоторые к омандлеты отображают различный текст в файлах справки в зависимости от значения этого параметра. Этот параметр не влияет на справку по основны м командлетам. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.String или MamlCommandHelpInfo Команда Get-Help возвращает раздел основных сведений в форме строки. Ес ли задано имя командлета, функции или скрипта, она возвращает объект Ma mlCommandHelpInfo. В противном случае команда Get-Help возвращает форма тированные представления, заданные в файле Help.Format.ps1xml каталога $pshome. ПРИМЕЧАНИЯ При вызове без параметров команда "Get-Help" отображает сведения о спра вочной системе оболочки Windows PowerShell. Полное представление справки (-full) включает таблицу со сведениями о п араметрах. В таблице содержатся следующие поля. -- Необходимый. Показывает, является ли параметр необходимым (да) или н еобязательным (нет). -- Позиция. Показывает, используется ли параметр как именованный или по зиционный (под номером). Позиционные параметры должны появляться в указ анном месте команды. -- "Именованный" означает, что параметру необходимо имя, но такой парам етр может появляться в любом месте команды. -- <Число> означает, что имя параметра необязательно, но при его отсутс твии параметр должен располагаться в месте, определяемом этим числом. Н апример, "2" означает, что при отсутствии имени параметра этот параметр должен быть вторым (2) или единственным неименованным параметром коман ды. Если используется имя параметра, параметр может располагаться в люб ом месте команды. -- Значение по умолчанию. Значение параметра, используемое оболочкой Wi ndows PowerShell, если параметр не включен в команду. -- Принимает вход с конвейера. Показывает, можно ли (да) или нельзя (не т) посылать объекты в этот параметр по конвейеру. "По имени свойства" о значает, что конвейеризованный объект должен иметь свойство с тем же им енем, что и имя данного параметра. -- Принимает подстановочные знаки. Показывает, может ли значение параме тра включать подстановочные знаки, такие как "*" и "?". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-help Description ----------- Эта команда отображает справку по справочной системе оболочки Windows Power Shell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-help * Description ----------- Эта команда отображает список всех файлов справки в справочной системе обол очки Windows PowerShell. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-help get-alias C:\PS>help get-alias C:\PS>get-alias -? Description ----------- Эта команда отображает базовые сведения о командлете get-alias. Команды "Ge t-Help" и "-?" выводят сведения на одной странице. Команда "Help" отображае т сведения постранично. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-help about_* Description ----------- Эта команда выводит список разделов основных сведений, содержащихся в справ ке для оболочки Windows PowerShell. Все эти разделы начинаются со строки "a bout_". Для вывода конкретного файла справки введите команду "get-help <имя _раздела>, например "get-help about_signing". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-help ls -detailed Description ----------- Эта команда выводит подробную справку по командлету Get-ChildItem, заданном у одним из своих псевдонимов "ls". Параметр Detailed требует подробного пре дставления файла справки, включая описания параметров и примеры. Для просмо тра полного файла справки по командлету воспользуйтесь параметром Full. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-help format-string -full Description ----------- Эта команда выводит полное представление справки по командлету Format-Strin g. Полное представление справки включает описание параметров, примеры и таб лицу технических сведений о параметрах. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-help start-service -examples Description ----------- Эта команда выводит примеры использования командлета start-service в команд ах Windows PowerShell. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>get-help get-childitem -parameter f* Description ----------- Эта команда выводит описания параметров командлета Get-ChildItem, которые н ачинаются с буквы "f" (filter и force). Чтобы просмотреть описания всех пар аметров, введите команду "get-help get-childitem parameter*". -------------------------- ПРИМЕР 9 -------------------------- C:\PS>(get-help write-output).syntax Description ----------- Эта команда выводит только синтаксис вызова командлета Write-Output. Синтаксис является одним из свойств объектов справки. Также доступны описан ие, дополнительные сведения, примеры и параметры. Чтобы определить все свой ства и методы объектов справки, введите команду "get-help <имя_командлета> | get-member", например "get-help start-service | get member". -------------------------- ПРИМЕР 10 -------------------------- C:\PS>(get-help trace-command).alertset Description ----------- Эта команда отображает примечания о командлете. Примечания сохраняются в св ойстве alertSet объекта справки. В примечания включаются основные сведения и советы по использованию командл ета. По умолчанию примечания отображаются только при использовании параметр а Full команды Get-Help, но их также можно отобразить с помощью свойства al ertSet. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>get-help add-member -full | out-string -stream | select-string -patte rn clixml Description ----------- В этом примере показано, как выполнить поиск слова в определенном разделе с правки по командлету. Эта команда выполняет поиск слова "clixml" в полной в ерсии раздела справки по командлету Add-Member. Поскольку командлет Get-Help создает объект MamlCommandHelpInfo, а не строк у, необходимо использовать команду, преобразующую содержимое раздела в стро ку, например Out-String или Out-File. -------------------------- ПРИМЕР 12 -------------------------- C:\PS>get-help get-member -online Description ----------- Эта команда отображает интернет-версию раздела справки по командлету Get-Me mber. -------------------------- ПРИМЕР 13 -------------------------- C:\PS>get-help remoting Description ----------- Эта команда выводит список разделов, в содержимом которых встречается слово "remoting". Если введено слово, которое не используется ни в одном из разделов справки, Get-Help отобразит список разделов, в содержимом которых встречается это с лово. -------------------------- ПРИМЕР 14 -------------------------- C:\PS>get-help get-item -path SQLSERVER:\DataCollection NAME Get-Item SYNOPSIS Gets a collection of Server objects for the local computer and any comp uters to which you have made a SQL Server PowerShell connection. ... C:\PS> cd SQLSERVER:\DataCollection C:\PS> SQLSERVER:\DataCollection> get-help get-item NAME Get-Item SYNOPSIS Gets a collection of Server objects for the local computer and any comp uters to which you have made a SQL Server PowerShell connection. ... C:\PS> Get-Item NAME Get-Item SYNOPSIS Gets the item at the specified location. ... Description ----------- В этом примере показано, как получить справку по командлету Get-Item, в кот орой поясняется использование командлета в узле DataCollection поставщика S QL Server Windows PowerShell. В примере демонстрируются два способа получение специальной справки по Get- Item. В первой команде используется параметр Path командлета Get-Help для задания пути поставщика. Эта команда может вводиться в любом местоположении. Во второй команде используется командлет Set-Location (псевдоним "cd") для перехода в путь поставщика. Из этого местоположения команда Get-Help возвра тит специальную справку по пути поставщика даже без использования параметра Path. Третья команда демонстрирует, что при использовании Get-Help в пути файлово й системы без указания параметра Path будет возвращена стандартная справка по командлету Get-Item. -------------------------- ПРИМЕР 15 -------------------------- C:\PS>get-help c:\ps-test\MyScript.ps1 Description ----------- Эта команда возвращает справку по скрипту MyScript.ps1. Информацию о написа нии разделов справки для функций и скриптов см. в разделе about_Comment_Bas ed_Help. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113316 about_Comment_Based_Help Get-Command Get-PSDrive Get-Member Get-History ИМЯ Get-History ОПИСАНИЕ Возвращает список команд, введенных за время текущего сеанса. СИНТАКСИС Get-History [[-Id] <Int64[]>] [[-Count] <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-History возвращает журнал сеанса, в котором содержится список команд, введенных за время текущего сеанса. Windows PowerShell автоматичес ки ведет журнал команд в каждом сеансе. Сохранить журнал сеанса можно в фор мате XML или CSV. По умолчанию файлы журнала сохраняются в корневом каталог е, но можно сохранить файл и в другом месте. ПАРАМЕТРЫ -Count <int> Отображает заданное количество последних записей журнала. Значение по у молчанию — 32. Если в команде используются и параметр Count, и параметр Id, то отображение заканчивается командой, указанной параметром Id. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <Int64[]> Задает идентификационный номер команды в журнале сеанса. Get-History по лучает только указанную команду. Если используются Id и Count, командле т Get-History извлекает последние команды, заканчивая командой, указанн ой параметром Id. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Int64 Идентификатор записи журнала можно передать командлету Get-History по к онвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.HistoryInfo Командлет Get-History возвращает объект журнала для каждого получаемого элемента журнала. ПРИМЕЧАНИЯ Журнал сеанса представляет собой список команд, введенных за время сеан са, вместе с идентификатором. В журнале сеанса представлен порядок выпо лнения, состояние, время начала и завершения выполнения команды. При вв оде каждой команды Windows PowerShell добавляет ее в журнал, чтобы обес печить возможность ее повторного использования. Дополнительные сведения о журнале команд см. в разделе "about_History". При вызове командлета Get-History можно использовать его встроенные псе вдонимы "h", "history" и "ghy". Дополнительные сведения см. в разделе A bout_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-history Description ----------- Эта команда возвращает 32 последние введенные команды. По умолчанию выводит ся каждая команда и ее идентификатор, показывающий порядок выполнения. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-history | where-object {$_.commandLine -like "*service*"} Description ----------- Эта команда возвращает записи журнала команд, содержащие слово "service". П ервая команда возвращает 32 последних записи в журнале сеанса. Оператор кон вейера (|) передает результаты командлету Where-Object, который выбирает то лько команды, содержащие слово "service". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-history -id 7 -count 5 | export-csv history.csv Description ----------- Эта команда возвращает 5 последних записей журнала, заканчивая записью 7. О ператор конвейера (|) передает результат командлету Export-Csv, который фор матирует журнал в виде текста, разделенного запятыми, и сохраняет его в фай ле History.csv. Этот файл включает данные, отображаемые при форматировании журнала в виде списка, в том числе статус и время начала и завершения коман ды. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-history -count 1 Description ----------- Эта команда возвращает последнюю (наиболее свежую) команду в журнале команд . Для вывода только одной команды используется параметр Count. По умолчанию командлет Get-History выводит последние команды. Команда может быть сокращ ена до "h -c 1" и эквивалентна нажатию клавиши "вверх". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-history -count $MaximumHistoryCount Description ----------- Эта команда выводит все команды, сохраненные в журнале сеанса. По умолчанию переменная $MaximumHistoryCount равна 64, так что эту команду можно сократ ить до "h -c 64". -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-history | format-list Description ----------- Эта команда выводит все свойства записей в журнале сеанса. Оператор конвейе ра (|) передает результат командлету Format-List, который отображает все св ойства каждой записи журнала, в том числе идентификатор, статус и время нач ала и завершения команды. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113317 about_history Invoke-History Add-History Clear-History Get-Host ИМЯ Get-Host ОПИСАНИЕ Получает объект, представляющий текущую основную программу. Отображает такж е версию Windows PowerShell и региональные сведения по умолчанию. СИНТАКСИС Get-Host [<CommonParameters>] ОПИСАНИЕ Командлет Get-Host получает объект, представляющий программу, для которой з апущена оболочка Windows PowerShell. По умолчанию отображается номер версии Windows PowerShell, а также текущие языковые и региональные параметры основной программы. Однако объект основно й программы содержит и другую информацию, включая подробные сведения о верс ии запущенной оболочки Windows PowerShell, текущей культуре и культуре поль зовательского интерфейса Windows PowerShell. Кроме того, с помощью этого ко мандлета можно настроить пользовательский интерфейс основной программы, нап ример цвета текста и фона. ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.Internal.Host.InternalHost Командлет Get-Host возвращает объект System.Management.Automation.Inter nal.Host.InternalHost. ПРИМЕЧАНИЯ Автоматическая переменная $host содержит тот же объект, который возвращ ает командлет Get-Host, поэтому ее можно использовать так же, как и дан ный командлет. Аналогично автоматические переменные $PSCulture и $PSUI Culture содержат те же объекты, что и свойства CurrentCulture и Current UICulture объекта основной программы. Эти элементы можно использовать н а равных основаниях. Дополнительные сведения см. в разделе about_Automatic_Variables. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-host Name : ConsoleHost Version : 2.0 InstanceId : e4e0ab54-cc5e-4261-9117-4081f20ce7a2 UI : System.Management.Automation.Internal.Host.InternalHostU serInterface CurrentCulture : en-US CurrentUICulture : en-US PrivateData : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy IsRunspacePushed : False Runspace : System.Management.Automation.Runspaces.LocalRunspace Описание ----------- Эта команда отображает сведения о консоли Windows PowerShell, которая являе тся основной программой для сеанса Windows PowerShell в этом примере. Они в ключают имя основной программы, запущенную версию Windows PowerShell, а так же текущую культуру и культуру пользовательского интерфейса. Свойства Version, UI, CurrentCulture, CurrentUICulture, PrivateData и Runsp ace содержат объекты со свойствами, которые могут оказаться очень полезными . Эти свойства будут рассмотрены в последующих примерах. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$h = get-host C:\PS> $win = $h.ui.rawui.windowsize C:\PS> $win.height = 10 C:\PS> $win.width = 10 C:\PS> $h.ui.rawui.set_windowsize($win) Описание ----------- Эта команда изменяет размеры окна оболочки Windows PowerShell, делая его вы соту и ширину равной 10 пикселям. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>(get-host).version | format-list -property * Major : 2 Minor : 0 Build : -1 Revision : -1 MajorRevision : -1 MinorRevision : -1 Описание ----------- Эта команда получает подробные сведения о версии Windows PowerShell, запуще нной в основной программе. Эти значения можно просматривать, но их нельзя и зменить. Свойство Version командлета Get-Host содержит объект System.Version. Эта ко манда передает объект версии в командлет Format-List с помощью оператора ко нвейера (|). Команда Format-List использует параметр Property со значением * (все) для отображения всех свойств и значений объекта версии. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>(get-host).currentculture | format-list -property * Parent : en LCID : 1033 KeyboardLayoutId : 1033 Name : en-US IetfLanguageTag : en-US DisplayName : English (United States) NativeName : English (United States) EnglishName : English (United States) TwoLetterISOLanguageName : en ThreeLetterISOLanguageName : eng ThreeLetterWindowsLanguageName : ENU CompareInfo : CompareInfo - 1033 TextInfo : TextInfo - 1033 IsNeutralCulture : False CultureTypes : SpecificCultures, InstalledWin32Cultures, FrameworkCultures NumberFormat : System.Globalization.NumberFormatInfo DateTimeFormat : System.Globalization.DateTimeFormatInfo Calendar : System.Globalization.GregorianCalendar OptionalCalendars : {System.Globalization.GregorianCalendar, S ystem.Globalization.GregorianCalendar} UseUserOverride : True IsReadOnly : False Описание ----------- Эта команда получает подробные сведения о текущей культуре, которая установ лена для оболочки Windows PowerShell, запущенной в основной программе. Эта же информация возвращается при запуске командлета Get-Culture. (Аналогично свойство CurrentUICulture возвращает тот же объект, что и коман длет Get-UICulture.) Свойство CurrentCulture объекта основной программы содержит объект System.G lobalization.CultureInfo. С помощью оператора конвейера (|) эта команда пер едает объект CultureInfo командлету Format-List. Командлет Format-List испо льзует параметр Property со значением * (все) для отображения всех свойств и значений объекта CultureInfo. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>(get-host).currentculture.DateTimeFormat | format-list -property * AMDesignator : AM Calendar : System.Globalization.GregorianCalendar DateSeparator : / FirstDayOfWeek : Sunday CalendarWeekRule : FirstDay FullDateTimePattern : dddd, MMMM dd, yyyy h:mm:ss tt LongDatePattern : dddd, MMMM dd, yyyy LongTimePattern : h:mm:ss tt MonthDayPattern : MMMM dd PMDesignator : PM RFC1123Pattern : ddd, dd MMM yyyy HH':'mm':'ss 'GMT' ShortDatePattern : M/d/yyyy ShortTimePattern : h:mm tt SortableDateTimePattern : yyyy'-'MM'-'dd'T'HH':'mm':'ss TimeSeparator : : UniversalSortableDateTimePattern : yyyy'-'MM'-'dd HH':'mm':'ss'Z' YearMonthPattern : MMMM, yyyy AbbreviatedDayNames : {Sun, Mon, Tue, Wed...} ShortestDayNames : {Su, Mo, Tu, We...} DayNames : {Sunday, Monday, Tuesday, Wednesday...} AbbreviatedMonthNames : {Jan, Feb, Mar, Apr...} MonthNames : {January, February, March, April...} IsReadOnly : False NativeCalendarName : Gregorian Calendar AbbreviatedMonthGenitiveNames : {Jan, Feb, Mar, Apr...} MonthGenitiveNames : {January, February, March, April...} Описание ----------- Эта команда возвращает подробные сведения о формате даты и времени текущей культуры, которая используется в Windows PowerShell. Свойство CurrentCulture объекта основной программы содержит объект CultureI nfo, у которого имеется множество полезных свойств. Среди них свойство Date TimeFormat, содержащее объект DateTimeFormatInfo, в котором хранится большо е число различных полезных сведений. Чтобы выяснить тип объекта, хранящегося в свойстве объекта, воспользуйтесь командлетом Get-Member. Чтобы отобразить значения свойств объекта, воспольз уйтесь командлетом Format-List. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>(get-host).ui.rawui | format-list -property * ForegroundColor : DarkYellow BackgroundColor : DarkBlue CursorPosition : 0,390 WindowPosition : 0,341 CursorSize : 25 BufferSize : 120,3000 WindowSize : 120,50 MaxWindowSize : 120,81 MaxPhysicalWindowSize : 182,81 KeyAvailable : False WindowTitle : Windows PowerShell 2.0 (04/11/2008 00:08:14) Описание ----------- Эта команда выводит свойства RawUI объекта основной программы. Изменение эт их значений позволяет изменить внешний вид окна основной программы. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>(get-host).ui.rawui.backgroundcolor = "Black" C:\PS> cls Описание ----------- Эти команды изменяют цвет фона консоли Windows PowerShell на черный. Команд а "cls" является псевдонимом функции Clear-Host, которая очищает экран и из меняет цвет всего экрана. Это изменение действует только в рамках текущего сеанса. Чтобы изменить цве т фона консоли для всех сеансов, добавьте эту команду в профиль Windows Pow erShell. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$host.privatedata.errorbackgroundcolor = "white" Описание ----------- Эта команда изменяет цвет фона сообщений об ошибках на белый. Команда использует автоматическую переменную $host, в которой хранится объе кт текущей основной программы. Командлет Get-Host возвращает тот же объект, который хранится в переменной $host, поэтому их можно использовать на равн ых основаниях. Эта команда использует свойство PrivateData переменной $host в качестве сво его свойства ErrorBackgroundColor. Чтобы получить список всех свойств объек та, хранящегося в свойстве $host.privatedata, введите команду "$host.privat edata | format-list * ". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113318 Read-Host Out-Host Write-Host Get-HotFix ИМЯ Get-HotFix ОПИСАНИЕ Получает исправления, примененные на локальном компьютере или на удаленных компьютерах. СИНТАКСИС Get-HotFix [[-Id] <string[]>] [-ComputerName <string[]>] [-Credential <PSCr edential>] [<CommonParameters>] Get-HotFix [-Description <string[]>] [-ComputerName <string[]>] [-Credentia l <PSCredential>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Hotfix возвращает исправления, примененные на локальном компь ютере или на удаленных компьютерах с помощью компонентной модели CBS. ПАРАМЕТРЫ -ComputerName <string[]> Задает удаленный компьютер. По умолчанию используется значение "Локальн ый компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-Hotfix можно использовать, даже если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию Локальный компьютер Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Требуется? false Позиция? named Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Description <string[]> Получает только исправления с указанными описаниями. Подстановочные зна ки разрешены. По умолчанию возвращаются все исправления, примененные на компьютере. Требуется? false Позиция? named Значение по умолчанию Все исправления Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Id <string[]> Получает только исправления с указанными идентификаторами. По умолчанию возвращаются все исправления, примененные на компьютере. Требуется? false Позиция? 1 Значение по умолчанию Все исправления Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету Get-HotFix по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.ManagementObject#root\CIMV2\Win32_QuickFixEngineering Командлет Get-Hotfix возвращает объекты, представляющие исправления на компьютере. ПРИМЕЧАНИЯ Этот командлет использует класс Win32_QuickFixEngineering WMI, представ ляющий небольшие системные обновления операционной системы. Начиная с W indows Vista, этот класс возвращает только обновления, предоставленные компонентной моделью CBS. Обновления, предоставленные установщиком Micr osoft Windows (MSI) или сайтом обновлений Windows, не включаются в резу льтаты. Дополнительные сведения см. в разделе, посвященном классу Win32 _QuickFixEngineering, в документации Microsoft .NET Framework SDK по ад ресу http://go.microsoft.com/fwlink/?LinkID=145071. Выходные данные, получаемые в результате выполнения этого командлета, м огут различаться в зависимости от используемой операционной системы. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-hotfix Описание ----------- Эта команда получает все исправления, примененные на локальном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-hotfix -description Security* -computername Server01, Server02 -c red Server01\admin01 Описание ----------- Эта команда получает все исправления, которые были применены на компьютерах Server01 и Server02 и имеют описание, начинающееся со слова "Security". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$a = get-content servers.txt C:\PS> $a | foreach { if ((get-hotfix -id KB957095 -computername $_)) { ad d-content $_ -path Missing-kb953631.txt }} Описание ----------- Команды в этом примере создают текстовый файл со списком имен компьютеров, на которых не установлено указанное обновление для системы безопасности. Командлет Get-Hotfix используется для получения информации о наличии устано вленного обновления для системы безопасности KB957095 на всех компьютерах, имена которых перечислены в файле Servers.txt. Если на компьютере не установлено указанное обновление, командлет Add-Conte nt записывает имя этого компьютера в файл Missing-KB953631.txt. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>(get-hotfix | sort installedon)[-1] Описание ----------- Эта команда получает последнее исправление, примененное на компьютере. Команда получает исправления, сортирует их по значению свойства InstalledOn , а затем использует указанный индекс массива для выбора последнего элемент а массива. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135217 Get-ComputerRestorePoint Get-Item ИМЯ Get-Item ОПИСАНИЕ Получает элемент, находящийся в заданном местоположении. СИНТАКСИС Get-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-UseTransacti on] [<CommonParameters>] Get-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string[ ]>] [-Filter <string>] [-Force] [-Include <string[]>] [-UseTransaction] [<C ommonParameters>] ОПИСАНИЕ Командлет Get-Item возвращает элемент из заданного местоположения. Извлечен ие содержимого заданного элемента производится только при запросе всего сод ержимого с помощью подстановочного знака (*). Командлет Get-Item используется поставщиками Windows PowerShell для перемещ ения по хранилищам данных разных типов. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Параметр Exclude действует только в том случае, если команда включает с одержимое элемента, например "C:\Windows\*", где подстановочный знак оп ределяет содержимое каталога "C:\Windows". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету получать элементы, которые недоступны другими спос обами, например скрытые элементы. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Да же при использовании параметра Force командлет не может переопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Извлекает только указанные элементы. Значение этого параметра определяе т значение параметра Path. Введите элемент пути или шаблон, например "* .txt". Подстановочные знаки разрешены. Параметр Include действует только в том случае, если команда включает с одержимое элемента, например "C:\Windows\*", где подстановочный знак оп ределяет содержимое каталога "C:\Windows". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к элементу. В отличие от значения параметра Path, значение параметра LiteralPath используется точно в том виде, в котором оно введ ено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие с имволы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементу. Для получения элемента, находящегося в указанно м местоположении, используется командлет Get-Item. Подстановочные знаки разрешены. Этот параметр обязателен, но его имя ("Path") можно не указ ывать. Для указания текущего местоположения используйте точку (.). Для указани я всех элементов в текущем местоположении используйте подстановочный зн ак (*). Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Get-Item по конвейер у. ВЫХОДНЫЕ ДАННЫЕ Object Командлет Get-Item возвращает получаемые им объекты. Тип определяется т ипом объектов пути. ПРИМЕЧАНИЯ Командлет Get-Item также можно вызывать с помощью встроенного псевдоним а "gi". Дополнительные сведения см. в разделе About_Aliases. Командлет Get-Item не имеет параметра Recurse, так как он извлекает тол ько элемент, а не его содержимое. Для рекурсивного извлечения содержимо го элемента используется командлет Get-ChildItem. При работе с реестром для извлечения разделов реестра используется кома ндлет Get-Item, а для извлечения параметров и значений реестра использу ется командлет Get-ItemProperty. Параметры реестра являются свойствами раздела реестра. Командлет Get-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущ ем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см . в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-item . Directory: C:\ Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 7/26/2006 10:01 AM ps-test Описание ----------- Эта команда извлекает текущий каталог. Точка (.) обозначает элемент в текущ ем местоположении (но не его содержимое). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-item * Directory: C:\ps-test Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 7/26/2006 9:29 AM Logs d---- 7/26/2006 9:26 AM Recs -a--- 7/26/2006 9:28 AM 80 date.csv -a--- 7/26/2006 10:01 AM 30 filenoext -a--- 7/26/2006 9:30 AM 11472 process.doc -a--- 7/14/2006 10:47 AM 30 test.txt Описание ----------- Эта команда извлекает все элементы из текущего каталога. Подстановочный зна к (*) обозначает все содержимое текущего элемента. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-item C:\ Описание ----------- Эта команда возвращает текущий каталог диска C:. Извлекаемый объект предста вляет только каталог, но не его содержимое. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-item C:\* Описание ----------- Эта команда возвращает элементы диска C:. Подстановочный знак (*) обозначае т не только сам контейнер, но и все его элементы. Для отображения всего содержимого в оболочке Windows PowerShell используетс я одиночная звездочка (*) вместо традиционного сочетания "*.*". Шаблон инте рпретируется посимвольно, поэтому при использовании сочетания "*.*" не буду т извлекаться каталоги и файлы с именами, не содержащими точки. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>(get-item C:\Windows).LastAccessTime Описание ----------- Эта команда извлекает свойство LastAccessTime каталога C:\Windows. LastAcce ssTime является одним из свойств каталогов файловой системы. Чтобы отобрази ть полный список свойств каталога, введите команду "(Get-Item <имя_ папки>) | Get-Member". -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-item hklm:\software\microsoft\powershell\1\shellids\microsoft.pow ershell\* Описание ----------- Эта команда отображает содержимое раздела реестра Microsoft.PowerShell. При использовании поставщика Registry Windows PowerShell для извлечения раздел ов и вложенных разделов реестра можно использовать командлет Get-Item, одна ко для извлечения параметров и значений реестра нужно использовать командле т Get-ItemProperty. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-item c:\Windows\* -include *.* -exclude w* Описание ----------- Эта команда извлекает элементы каталога Windows, имена которых включают точ ку (.) и не начинаются с буквы "w". Эта команда может использоваться только в том случае, когда для указания содержимого элемента в путь включается по дстановочный знак (*). ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113319 about_Providers Clear-Item Copy-Item Invoke-Item Move-Item Set-Item New-Item Remove-Item Rename-Item Get-ItemProperty ИМЯ Get-ItemProperty ОПИСАНИЕ Получает свойства заданного элемента. СИНТАКСИС Get-ItemProperty [-LiteralPath] <string[]> [[-Name] <string[]>] [-Credentia l <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include g[]>] [-UseTransaction] [<CommonParameters>] Get-ItemProperty [-Path] <string[]> [[-Name] <string[]>] [-Credential <PSCr edential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [ -UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Get-ItemProperty получает свойства заданных элементов. Например, командлет Get-ItemProperty можно использовать для получения значения свойст ва LastAccessTime объекта файла. Командлет Get-ItemProperty можно также исп ользовать для просмотра записей реестра и их значений. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Включает заданные элементы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к свойству элемента. Значение параметра LiteralPath использ уется точно в том виде, в котором оно введено. Никакие символы не интер претируются как подстановочные знаки. Если путь включает escape-символы , его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретир овать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Задает имена извлекаемых свойств. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементам. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Get-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Object Командлет Get-ItemProperty возвращает объект для каждого получаемого св ойства элемента. Тип объекта зависит от извлекаемого объекта. ПРИМЕЧАНИЯ Командлет Get-ItemProperty предназначен для работы с данными, предостав ляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PSProvider". Дополнительные све дения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-itemproperty C:\Windows Описание ----------- Эта команда получает сведения о каталоге "C:\Windows". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-itemproperty C:\Test\Weather.xls | format-list Описание ----------- Эта команда извлекает свойства файла C:\Test\Weather.xls. Результат передае тся по конвейеру командлету Format-List, который отображает его в виде спис ка. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersio n Описание ----------- Эта команда отображает имя параметра и значение для каждой записи реестра, содержащейся в подразделе реестра CurrentVersion. Обратите внимание, что ко манда требует наличия диска Windows PowerShell с именем HKLM:, который соот ветствует кусту реестра HKEY_LOCAL_MACHINE. Диск с указанным именем и привя зкой доступен в Windows PowerShell по умолчанию. Путь к указанному подразде лу реестра может быть задан и другим способом. Необходимо ввести путь, начи нающийся с имени поставщика и двойного двоеточия, как показано ниже: Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersio n ` -name "ProgramFilesDir" Описание ----------- Эта команда получает имя и данные значения записи реестра ProgramFilesDir, содержащейся в подразделе реестра CurrentVersion. Параметр Path используетс я для задания подраздела, а параметр Name — для задания имени значения запи си. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\PowerShell\1\PowerShe llEngine ApplicationBase : C:\Windows\system32\WindowsPowerShell\v1.0\ ConsoleHostAssemblyName : Microsoft.PowerShell.ConsoleHost, Version=1.0.0.0 , Culture=neutral, PublicKeyToken=31bf3856ad 364e35, ProcessorArchitecture=msil PowerShellVersion : 2.0 RuntimeVersion : v2.0.50727 CTPVersion : 5 PSCompatibleVersion : 1.0,2.0 Описание ----------- Эта команда получает имена и данные значений записей реестра, содержащихся в разделе реестра PowerShellEngine. Результаты показаны в следующем примере выходных данных. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds \Microsoft.PowerShell Path ExecutionPolicy ---- --------------- C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe RemoteSigned C:\PS>get-itemproperty -path HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds \Microsoft.PowerShell | format-list -property * PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\So ftware\Microsoft\PowerShell\1\ShellIds\Micro soft.PowerShell PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\So ftware\Microsoft\PowerShell\1\ShellIds PSChildName : Microsoft.PowerShell PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry Path : C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe ExecutionPolicy : RemoteSigned Описание ----------- В этом примере показано, как отформатировать выходные данные команды Get-It emProperty в виде списка для удобного просмотра значений и данных реестра д ля простоты интерпретации результатов. Первая команда с помощью командлета Get-ItemProperty извлекает записи реест ра из раздела Microsoft.PowerShell. В этом подразделе хранятся параметры об олочки Windows PowerShell по умолчанию. Результаты показаны в следующем при мере выходных данных. Выходные данные показывают, что существует две записи реестра: Path и Execu tionPolicy. Если в разделе реестра содержится меньше пяти записей, по умолч анию его содержимое отображается в виде таблицы, однако отображение в виде списка зачастую является более удобным для просмотра. Во второй команде используется тот же самый командлет Get-ItemProperty. Одн ако на этот раз применяется оператор конвейера (|), с помощью которого резу льтаты выполнения команды передаются командлету Format-List. В команде Form at-List используется параметр Property со значением * (все) для отображения всех свойств объектов в списке. Результаты показаны в следующем примере в ыходных данных. Выходными данными являются записи реестра Path и ExecutionPolicy, а также н есколько менее известных свойств объекта раздела реестра. Другие свойства, имеющие префикс "PS", являются свойствами пользовательских объектов Windows PowerShell, таких как объекты, представляющие разделы реестра. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113320 about_Providers Set-ItemProperty Clear-ItemProperty Copy-ItemProperty Move-ItemProperty New-ItemProperty Remove-ItemProperty Rename-ItemProperty Get-Job ИМЯ Get-Job ОПИСАНИЕ Получает фоновые задания Windows PowerShell, активные в текущем сеансе. СИНТАКСИС Get-Job [-Command <string[]>] [<CommonParameters>] Get-Job [[-InstanceId] <Guid[]>] [<CommonParameters>] Get-Job [[-Name] <string[]>] [<CommonParameters>] Get-Job [[-Id] <Int32[]>] [<CommonParameters>] Get-Job [-State {NotStarted | Running | Completed | Failed | Stopped | Bloc ked}] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Job получает объекты, представляющие фоновые задания, которые запушены в текущем сеансе. Командлет Get-Job можно использовать для получе ния фоновых заданий, запущенных с использованием командлета Start-Job или п араметра AsJob любого командлета. При вызове без параметров команда "Get-Job" возвращает все задания в текуще м сеансе. С помощью параметров командлета Get-Job можно получать конкретные задания. Объект задания, возвращаемый командлетом Get-Job, содержит полезные сведени я о задании, но не содержит результатов выполнения задания. Чтобы получить результаты задания, используйте командлет Receive-Job. Фоновое задание Windows PowerShell — это команда, которая выполняется "в фо новом режиме" без взаимодействия с текущим сеансом. Как правило, фоновые за дания используются для выполнения сложных команд, для завершения которых тр ебуется много времени. Дополнительные сведения о фоновых заданиях Windows P owerShell см. в разделе about_Jobs. ПАРАМЕТРЫ -Command <string[]> Получает задания, в которые входит заданная команда. По умолчанию возвр ащаются все задания. Введите команду (в формате строки). Для описания к оманды разрешено использовать подстановочные знаки. Требуется? false Позиция? named Значение по умолчанию Все задания Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Id <Int32[]> Получает задания с указанными идентификаторами экземпляров. ID — это целое значение, которое однозначно определяет задание в предел ах текущего сеанса. Это значение проще запомнить и ввести, чем идентифи катор экземпляра, но оно уникально только в рамках текущего сеанса. Мож но ввести один или несколько идентификаторов (разделенных запятыми). Чт обы найти значение идентификатора задания, введите "Get-Job" без параме тров. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid[]> Получает задания с указанными идентификаторами экземпляров. По умолчани ю возвращаются все задания. Идентификатор экземпляра — это GUID, который однозначно определяет зада ние на компьютере. Чтобы найти значение идентификатора экземпляра задан ия, воспользуйтесь командлетом Get-Job. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Name <string[]> Получает задания с указанными понятными именами. Введите имя задания ил и используйте подстановочные знаки для ввода шаблона имени задания. По умолчанию командлет Get-Job получает все задания в текущем сеансе. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -State <JobState> Получает задания с указанным состоянием. Допустимые значения: "NotStart ed", "Running", "Completed", "Stopped", "Failed" и "Blocked". По умолча нию командлет Get-Job получает все задания в текущем сеансе. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.RemotingJob Командлет Get-Job возвращает объекты, представляющие задания в этом сеа нсе. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-job Description ----------- Эта команда получает все фоновые задания, запущенные в текущем сеансе. Она не получает задания, запущенные в других сеансах, даже если эти задания вып олняются на локальном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$j = get-job -name Job1 C:\PS> $ID = $j.InstanceID C:\PS> $ID Guid ---- 03c3232e-1d23-453b-a6f4-ed73c9e29d55 C:\PS> stop-job -instanceid $ID Description ----------- Эти команды получают идентификатор экземпляра задания и затем используют ег о для остановки задания. В отличие от имени задания, которое не является ун икальным, идентификатор экземпляра является уникальным. Первая команда получает задание с помощью командлета Get-Job. Для определен ия задания используется параметр Name. Команда сохраняет объект задания, во звращенный командлетом Get-Job, в переменной $j. В этом примере возвращаетс я только одно задание с заданным именем. Вторая команда получает свойство InstanceId объекта в переменную $j и сохра няет его в переменной $ID. Третья команда отображает значение переменной $ID. Четвертая команда останавливает задание с помощью командлета Stop-Job. Пара метр InstanceId используется для определения задания, а переменная $ID пред ставляет идентификатор экземпляра задания. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-job -command "*get-process*" Description ----------- Эта команда возвращает задания в системе, содержащие команду Get-Process. Д ля ограничения числа возвращаемых заданий используется параметр Command ком андлета Get-Job. Для выбора заданий, в которых команда Get-Process содержит ся в любой позиции командной строки, используются подстановочные знаки (*). -------------------------- ПРИМЕР 4 -------------------------- C:\PS>"*get-process*" | get-job Description ----------- Как и команда в предыдущем примере, эта команда получает задания в системе, в которых используется команда Get-Process. Эта команда передает командлет у Get-Job строку (в двойных кавычках) с помощью оператора конвейера (|). Эт а команда эквивалентна предыдущей команде. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-job -state NotStarted Description ----------- Эта команда получает только те задания, которые были созданы, но еще не был и запущены. Это задания, выполнение которых запланировано в будущем, а такж е задания, выполнение которых еще не запланировано. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-job -name job* Description ----------- Эта команда возвращает все задания, имена которых начинаются со слова "job" . Поскольку по умолчанию для задания устанавливается имя "job<число>", эта команда получает все задания, которым не было явно назначено имя. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>start-job -scriptblock {get-process} -name MyJob C:\PS> $j = get-job -name MyJob C:\PS> $j Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 myjob Completed True localhost get-process C:\PS> receive-job -job $j Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 124 4 13572 12080 59 1140 audiodg 783 16 11428 13636 100 548 CcmExec 96 4 4252 3764 59 3856 ccmsetup ... Description ----------- В этом примере показано, как использовать командлет Get-Job для получения о бъекта задания, а также как использовать объект задания для представления з адания в команде. Первая команда с помощью командлета Start-Job запускает на локальном компью тере фоновое задание, выполняющее команду Get-Process. Команда использует п араметр Name командлета Start-Job для назначения заданию понятного имени. Во второй команде командлет Get-Job используется для получения задания. Для определения задания используется параметр Name командлета Get-Job. Получен ный объект задания сохраняется в переменной $j. Третья команда выводит значение объекта задания, сохраненное в переменной $ j. Значение свойства State указывает, что задание завершено. Значение свойс тва HasMoreData указывает, что результаты задания пока не были получены. Четвертая команда использует командлет Receive-Job для получения результато в задания. Она использует объект задания, сохраненный в переменной $j, для представления задания. Для передачи объекта задания командлету Receive-Job можно также использовать оператор конвейера. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>start-job -scriptblock {get-eventlog system} C:\PS> invoke-command -computername S1 -scriptblock {get-eventlog system} - AsJob C:\PS> invoke-command -computername S2 -scriptblock {start-job -scriptblock {get-eventlog system}} C:\PS> get-job Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Running True localhost get-eventlog system 2 Job2 Running True S1 get-eventlog system C:\PS> invoke-command -computername S2 -scriptblock {get-job} Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 4 Job4 Running True localhost get-eventlog system Description ----------- В этом примере показано использование командлета Get-Job для получения всех заданий, запущенных в текущем сеансе, даже если они были запущены с исполь зованием разных методов. Первая команда запускает задание на локальном компьютере с помощью командле та Start-Job. Вторая команда используется параметр AsJob командлета Invoke-Command для за пуска задания на компьютере S1. Хотя команды задания выполняются на удаленн ом компьютере, объект задания создается на локальном компьютере, поэтому дл я управления заданием используются локальные команды. Третья команда использует командлет Invoke-Command для выполнения команды S tart-Job на компьютере S2. С помощью этого метода объект задания создается на удаленном компьютере, и для управления заданием используются удаленные к оманды. Четвертая команда использует командлет Get-Job для получения заданий, храня щихся на локальном компьютере. Пятая команда использует командлет Invoke-Command для выполнения команды Ge t-Job на компьютере S2. Пример выходных данных показывает команд Get-Job. Дополнительные сведения о запуске фоновых заданий на удаленных компьютерах см. в разделе about_Remote_Jobs. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>start-job -scriptblock {get-process} Id Name State HasMoreData Location Co mmand -- ---- ----- ----------- -------- -- ----- 1 Job1 Failed False localhost ge t-process C:\PS> (get-job).jobstateinfo | format-list -property * State : Failed Reason : C:\PS> get-job | format-list * HasMoreData : False StatusMessage : Location : localhost Command : get-process JobStateInfo : Failed Finished : System.Threading.ManualResetEvent InstanceId : fb792295-1318-4f5d-8ac8-8a89c5261507 Id : 1 Name : Job1 ChildJobs : {Job2} Output : {} Error : {} Progress : {} Verbose : {} Debug : {} Warning : {} StateChanged : C:\PS> (get-job -name job2).jobstateinfo.reason Connecting to remote server using WSManCreateShellEx api failed. The async callback gave the following error message : Access is denied. Description ----------- В этой команде показано, как использовать объект задания, возвращаемый Get- Job, для определения причины ошибки при выполнении задания. В ней также пок азано получение дочерних заданий для любого задания. Первая команда запускает задание на локальном компьютере с помощью командле та Start-Job. Объект задания, возвращаемый командлетом Start-Job, указывает на ошибку при выполнении задания. Значение свойства State — "Failed". Вторая команда получает объект задания с помощью командлета Get-Job. Команд а использует обращение через точку, чтобы получить значение свойства JobSta teInfo объекта. Она использует оператор конвейера (|) для отправки объекта в свойстве JobStateInfo командлету Format-List, который выводит все свойств а объекта (*) в виде списка. Результат команды Format-List указывается, что значение Reason задания пуст о. Третья команда используется для продолжения анализа. Она использует команду Get-Job для получения задания и оператор конвейера (|) для отправки всего объекта задания командлету Format-List, который выводит все свойства задани я в виде списка. Отображение всех свойств объекта задания показывает, что у задания есть доч ернее задание с именем "Job2". Четвертая команда использует командлет Get-Job для объекта задания, предста вляющего дочернее задание Job2. Это задание, в рамках которого выполнялась команда. Команда использует обращение через точку, чтобы получить значение свойства Reason свойства JobStateInfo. Результаты команды показывают, что ошибка задания вызвана ошибкой "Отказано в доступе". В данном случае пользователь забыл воспользоваться командой "З апуск от имени администратора" при запуске Windows PowerShell. Поскольку фоновые задания используют функции удаленного взаимодействия Wind ows PowerShell, компьютер должен быть настроен для удаленного взаимодействи я даже при работе с заданиями, которые выполняются только на локальном комп ьютере. Дополнительные сведения о требованиях для удаленного взаимодействия Windows PowerShell см. в разделе about_Remote_Requirements. Советы по диагностике см. в разделе about_Remote_Troubleshooting. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113328 about_Jobs about_Job_details about_Remote_Jobs Start-Job Receive-Job Wait-Job Stop-Job Remove-Job Invoke-Command Get-Location ИМЯ Get-Location ОПИСАНИЕ Получает сведения о текущем рабочем местоположении. СИНТАКСИС Get-Location [-PSDrive <string[]>] [-PSProvider <string[]>] [-UseTransactio n] [<CommonParameters>] Get-Location [-Stack] [-StackName <string[]>] [-UseTransaction] [<CommonPar ameters>] ОПИСАНИЕ Командлет Get-Location возвращает объект, представляющий текущий каталог; д анный командлет во многом напоминает команду pwd, которая позволяет отобраз ить рабочий каталог. При переключении между дисками Windows PowerShell оболочка Windows PowerShe ll запоминает текущее местоположение на каждом диске. Для поиска текущего м естоположения на каждом диске можно использовать командлет Get-Location. Командлет Get-Location также позволяет получить текущий каталог при выполне нии команды, чтобы использовать его в функциях и скриптах, например, в функ ции, отображающей текущий каталог в командной строке Windows PowerShell. При использовании командлета Push-Location для добавления местоположений в стек путей можно применить параметр Stack командлета Get-Location, чтобы от образить текущий стек. ПАРАМЕТРЫ -PSDrive <string[]> Получает текущее местоположение на указанном диске Windows PowerShell. Например, при работе на диске Certificate: этот параметр можно использо вать для поиска текущего местоположения на диске C:. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PSProvider <string[]> Получает текущее местоположение на диске, поддерживаемом указанным пост авщиком Windows PowerShell. Если указанный поставщик поддерживает несколько дисков, командлет Get-L ocation возвращает местоположение на диске, доступ к которому осуществл ялся позднее, чем к остальным дискам. Например, при работе на диске C: этот параметр можно использовать для п оиска текущего местоположения на дисках поставщика Windows PowerShell R egistry. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Stack [<SwitchParameter>] Отображает местоположения в стеке путей по умолчанию. Для добавления путей в стек по умолчанию используйте командлет Push-Loc ation. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -StackName <string[]> Отображает местоположения в указанных стеках путей. Для создания стеков путей используйте командлет Push-Location. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Объекты PathInfo или объекты StackInfo При использовании параметров Stack или StackName командлет Get-Location возвращает объект StackInfo. В противном случае командлет возвращает о бъект PathInfo. ПРИМЕЧАНИЯ Местоположения можно сохранять в стеке. Командлет Push-Location добавля ет местоположение в конец стека. Командлет Pop-Location получает послед нее добавленное в стек местоположение. Взаимодействие параметров PSProvider, PSDrive, Stack и StackName зависи т от поставщика. Сочетание некоторых параметров вызывает ошибку (наприм ер, при одновременном указании имени диска и не поддерживающего его пос тавщика). Если параметры не указаны, то командлет Get-Location возвраща ет объект PathInfo для поставщика, содержащего текущее рабочее местопол ожение. Командлет Get-Location предназначен для работы с данными, предоставляем ыми любым поставщиком. Чтобы получить список поставщиков, доступных в т екущем сеансе, введите команду "Get-PSProvider". Дополнительные сведени я см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-location Path ---- C:\WINDOWS Описание ----------- Эта команда отображает текущее местоположение на текущем диске Windows Powe rShell. Например, если пользователь работает в каталоге Windows на диске C:, команд а отображает путь к этому каталогу. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-location Описание ----------- На примере следующих команд демонстрируется использование командлета Get-Lo cation для отображения текущего каталога на различных дисках Windows PowerS hell. Первая команда с помощью командлета Set-Location задает в качестве текущего местоположения каталог Windows на диске C:. C:\PS> set-location C:\Windows Вторая команда с помощью командлета Set-Location изменяет местоположение на HKLM:\Software\Microsoft (раздел реестра). При переключении на диск HKLM: оболочка Windows PowerShell запоминает текущее местоположение на диске C:. PS C:\WINDOWS> set-location HKLM:\Software\Microsoft PS HKLM:\Software\Microsoft> Третья команда с помощью командлета Set-Location изменяет местоположение на "HKCU:\Control Panel\Input Method" (раздел реестра). PS HKLM:\Software\Microsoft> set-location 'HKCU:\Control Panel\Input Me thod' PS HKCU:\Control Panel\Input Method> Четвертая команда с помощью командлета Get-Location находит текущее местопо ложение на диске C:. Для указания диска используется параметр PSDrive. PS HKCU:\Control Panel\Input Method> get-location -psdrive c Путь ---- C:\WINDOWS Пятая команда с помощью командлета Set-Location позволяет вернуться на диск C:. Несмотря на то что вложенный каталог в команде не указан, в оболочке W indows PowerShell осуществляется возврат к сохраненному местоположению. PS HKCU:\Control Panel\Input Method> set-location C: PS C:\WINDOWS> Шестая команда с помощью командлета Get-Location находит текущие местополож ения на дисках, поддерживаемых поставщиком Windows PowerShell Registry. Ком андлет Get-Location возвращает диск реестра, доступ к которому осуществлялс я позднее, чем к остальным дискам, — HKCU:. PS C:\WINDOWS> get-location -psprovider registry Путь ---- HKCU:\Control Panel\Input Method Для просмотра текущего местоположения на диске HKLM: необходимо указать дис к с помощью параметра PSDrive. Результат выполнения седьмой команды очевиде н: PS C:\WINDOWS> get-location -psdrive HKLM Путь ---- HKLM:\Software\Microsoft -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-location Описание ----------- На примере следующих команд демонстрируется использование параметров Stack и StackName командлета Get-Location для вывода списка путей, хранящихся в с теках путей по умолчанию и альтернативных стеках путей. Первая команда задает в качестве текущего местоположения каталог Windows на диске C:. C:\PS> set-location C:\Windows Вторая команда с помощью командлета Push-Location добавляет текущее местопо ложение (C:\Windows) в стек путей и переключает пользователя на вложенный к аталог System32. Поскольку стек не указан, текущее местоположение добавляет ся в стек по умолчанию. C:\WINDOWS>push-location System32 Третья команда добавляет текущее местоположение (C:\Windows\System32) в сте к Stack2 и переключает пользователя на вложенный каталог WindowsPowerShell. C:\Windows\System32>push-location WindowsPowerShell -stack Stack2 Четвертая с помощью командлета Get-Location извлекает пути из стека по умол чанию. C:\WINDOWS\system32\WindowsPowerShell>get-location -stack Путь ---- C:\WINDOWS Последняя команда с помощью параметра StackName командлета Get-Location изв лекает пути из стека Stack2. C:\WINDOWS\system32\WindowsPowerShell>get-location -stackname Stack2 Путь ---- C:\WINDOWS\system32 -------------------------- ПРИМЕР 4 -------------------------- C:\PS>function prompt { 'PowerShell: ' + (get-location) + '> '} PowerShell: C:\WINDOWS> Описание ----------- В этом примере показано, как настроить командную строку Windows PowerShell. Функция, определяющая командную строку, включает команду Get-Location, кот орая выполняется при каждом отображении командной строки в консоли. Формат командной строки Windows PowerShell по умолчанию определяется специа льной функцией с именем "prompt". Командную строку, отображаемую в консоли, можно изменить, создав новую функцию с именем "prompt". Для просмотра текущей функции "prompt" введите следующую команду: get-content function:prompt Команда начинается с ключевого слова "function", за которым следует имя фун кции — "prompt". Тело функции заключено в фигурные скобки ( {} ). Эта команда определяет новую командную строку, начинающуюся со строки "Powe rShell: ". Для добавления текущего местоположения в данной команде использу ется команда Get-Location, которая выполняется при вызове функции "prompt". Командная строка заканчивается строкой "> ". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113321 about_Providers Pop-Location Push-Location Set-Location Get-Member ИМЯ Get-Member ОПИСАНИЕ Получает свойства и методы объектов. СИНТАКСИС Get-Member [[-Name] <string[]>] [-Force] [-InputObject <psobject>] [-Member Type {AliasProperty | CodeProperty | Property | NoteProperty | ScriptProper ty | Properties | PropertySet | Method | CodeMethod | ScriptMethod | Method s | ParameterizedProperty | MemberSet | Event | All}] [-Static] [-View {Ext ended | Adapted | Base | All}] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Member получает элементы (свойства и методы) объектов. Чтобы задать объект, воспользуйтесь параметром InputObject или по конвейеру передайте объект командлету Get-Member. Для получения сведений о статическ их элементах (элементах класса, а не экземпляра) используется параметр Stat ic. Чтобы получить элементы только определенных типов, например NotePropert ies, следует использовать параметр MemberType. ПАРАМЕТРЫ -Force [<SwitchParameter>] Добавляет в вывод встроенные элементы (PSBase, PSAdapted, PSObject, PST ypeNames) и создаваемые компилятором методы get_ и set_. По умолчанию к омандлет Get-Member получает эти свойства во всех представлениях, кроме представлений "Base" и "Adapted", но не отображает их. В следующем списке описаны свойства, добавляемые при использовании пара метра Force. -- PSBase: исходные свойства объекта .NET Framework без расширения или адаптации. Эти свойства определены в классе объекта и перечислены в биб лиотеке MSDN. -- PSAdapted: свойства и методы, определенные в расширенной системе тип ов Windows PowerShell. -- PSExtended: свойства и методы, добавленные в файлы Types.ps1xml или с помощью командлета Add-Member. -- PSObject: адаптер, преобразующий базовый объект в объект PSObject Wi ndows PowerShell. -- PSTypeNames: список типов объектов, описывающих объект, в порядке их специфичности. При форматировании объекта оболочка Windows PowerShell выполняет поиск типов в файлах Format.ps1xml в каталоге установки Windo ws PowerShell ($pshome). Она использует определение форматирования перв ого найденного типа. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объект, для которого командлет получает элементы. Использование параметра InputObject отличается от передачи объектов ком андлету Get-Member с помощью конвейера. Различия заключаются в следующе м. -- При передаче коллекции объектов командлету Get-Member с помощью конв ейера командлет Get-Member получает элементы отдельных объектов коллекц ии, например свойства целых значений в целочисленном массиве. -- При использовании для передачи коллекции объектов параметра InputObj ect командлет Get-Member получает элементы коллекции, например свойства массива в целочисленном массиве. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -MemberType <PSMemberTypes> Получает только элементы указанного типа. По умолчанию используется зна чение "All". Допустимые значения этого параметра: -- AliasProperty: свойство, определяющее новое имя существующего свойст ва; -- CodeMethod: метод, ссылающийся на статический метод класса .NET Fram ework; -- CodeProperty: свойство, ссылающееся на статическое свойство класса . NET Framework; -- Event: указывает, что объект отправляет сообщение, чтобы уведомить о действии или изменении состояния; -- MemberSet: заранее определенный набор свойств и методов, например PS Base, PSObject и PSTypeNames; -- Method: метод базового объекта .NET Framework; -- NoteProperty: свойство со статическим значением; -- ParameterizedProperty: свойство, принимающее параметры и значения па раметров; -- Property: свойство базового объекта .NET Framework; -- PropertySet: заранее определенный набор свойств объекта; -- ScriptMethod: метод, значением которого является результат выполнени я скрипта; -- ScriptProperty: свойство, значением которого является результат выпо лнения скрипта; -- All: получает все типы элементов; -- Methods: получает все типы методов объекта (например, Method, CodeMe thod, ScriptMethod); -- Properties: получает все типы свойств объекта (например, Property, C odeProperty, AliasProperty, ScriptProperty). Не у всех объектов имеются элементы каждого из типов. Если указать тип элемента, который у объекта отсутствует, оболочка Windows PowerShell ве рнет значение NULL. Чтобы получить элементы связанных типов, например все расширенные элеме нты, следует использовать параметр View. При использовании параметра Me mberType с параметрами Static и View командлет Get-Member получает элем енты, которые принадлежат обоим наборам. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает имена одного или нескольких свойств или методов объекта. Командл ет Get-Member получает только заданные свойства и методы. При использовании параметра Name совместно с параметрами MemberType, Vi ew или Static командлет Get-Member получает только элементы, которые уд овлетворяют всем параметрам. Чтобы получить статический элемент по имени, необходимо использовать па раметр Static совместно с параметром Name. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Static [<SwitchParameter>] Получает только статические свойства и методы объекта. Статические свойства и методы определяются для класса объектов, а не дл я конкретного экземпляра этого класса. Если параметр Static использовать с параметром View, параметр View игно рируется. При использовании параметра Static с параметром MemberType ко мандлет Get-Member получает только те элементы, которые принадлежат обо им наборам. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -View <PSMemberViewTypes> Получает только элементы (свойства и методы) конкретных типов. Укажите одно или несколько значений. По умолчанию используется значение "Adapte d, Extended". Допустимые значения: -- Base: получает только исходные свойства и методы объекта .NET Framew ork (без расширения или адаптации); -- Adapted: получает только свойства и методы, определенные в расширенн ой системе типов Windows PowerShell; -- Extended: получает только свойства и методы, добавленные в файлы Typ es.ps1xml или с помощью командлета Add-Member; -- All: получает элементы, относящиеся к представлениям Base, Adapted и Extended. Параметр View определяет получаемые, а не только отображаемые элементы. Чтобы получить элементы конкретных типов, например свойства скриптов, н еобходимо воспользоваться параметром MemberType. При использовании в од ной команде параметров MemberType и View командлет Get-Member получает элементы, которые принадлежат обоим наборам. При использовании в одной команде параметров Static и View параметр View игнорируется. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Get-Member по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.MemberDefinition Командлет Get-Member возвращает объект для каждого получаемого им свойс тва или метода. ПРИМЕЧАНИЯ Данные об объекте коллекции можно получить с помощью параметра InputObj ect, или передав объект с запятой в начале командлету Get-Member по кон вейеру. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-service | get-member TypeName: System.ServiceProcess.ServiceController Name MemberType Definition ---- ---------- ---------- Name AliasProperty Name = ServiceName Close Method System.Void Close() Continue Method System.Void Continue() CreateObjRef Method System.Runtime.Remoting.ObjRef Crea teObjRef(Type requestedType) Dispose Method System.Void Dispose() Equals Method System.Boolean Equals(Object obj) ExecuteCommand Method System.Void ExecuteCommand(Int32 co mmand) GetHashCode Method System.Int32 GetHashCode() GetLifetimeService Method System.Object GetLifetimeService() GetType Method System.Type GetType() InitializeLifetimeService Method System.Object InitializeLifetimeSer vice() Pause Method System.Void Pause() Refresh Method System.Void Refresh() Start Method System.Void Start(), System.Void St art(String[] args) Stop Method System.Void Stop() ToString Method System.String ToString() WaitForStatus Method System.Void WaitForStatus(ServiceCo ntrollerStatus desiredStatus), System.Voi... CanPauseAndContinue Property System.Boolean CanPauseAndContinue {get;} CanShutdown Property System.Boolean CanShutdown {get;} CanStop Property System.Boolean CanStop {get;} Container Property System.ComponentModel.IContainer Co ntainer {get;} DependentServices Property System.ServiceProcess.ServiceContro ller[] DependentServices {get;} DisplayName Property System.String DisplayName {get;set; } MachineName Property System.String MachineName {get;set; } ServiceHandle Property System.Runtime.InteropServices.Safe Handle ServiceHandle {get;} ServiceName Property System.String ServiceName {get;set; } ServicesDependedOn Property System.ServiceProcess.ServiceContro ller[] ServicesDependedOn {get;} ServiceType Property System.ServiceProcess.ServiceType S erviceType {get;} Site Property System.ComponentModel.ISite Site {g et;set;} Status Property System.ServiceProcess.ServiceContro llerStatus Status {get;} Описание ----------- Эта команда отображает свойства и методы объектов процессов (System.Service Process.ServiceController), создаваемых командлетом Get-Service. Для передачи результатов выполнения командлета Get-Service командлету Get-M ember в этой команде используется оператор конвейера (|). Поскольку командлет Get-Member в этой команде выполняется без параметров, и спользуются все значения по умолчанию. Поэтому он получает элементы всех ти пов, однако не получает статические элементы и не отображает встроенные эле менты. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-service | get-member -force C:\PS> (get-service -schedule).psbase Описание ----------- Команда в этом примере получает все элементы (свойства и методы) объектов с лужб (System.ServiceProcess.ServiceController), получаемых командлетом Get- Service, включая встроенные элементы, такие как PSBase и PSObject, а также методы get_ и set_. Первая команда с помощью командлета Get-Service получает объекты, представл яющие службы системы. Объект службы передается командлету Get-Member с помо щью оператора конвейера (|). Команда Get-Member использует параметр Force, чтобы отобразить встроенные э лементы объектов и элементы, создаваемые компилятором. Командлет Get-Member получает эти элементы, однако по умолчанию они не отображаются. Эти свойства и методы можно использовать так же, как используются адаптиров анные методы объекта. Вторая команда показывает, как вывести значение свойс тва PSBase службы Schedule. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-service | get-member -view extended TypeName: System.ServiceProcess.ServiceController Name MemberType Definition ---- ---------- ---------- Name AliasProperty Name = ServiceName Описание ----------- Эта команда получает свойства и методы объектов служб, которые были расшире ны с помощью файла Types.ps1xml или командлета Add-Member. Команда Get-Member использует параметр View, чтобы получить только расширен ные элементы объектов служб. В данном случае в роли расширенного элемента в ыступает свойство Name, которое является псевдонимом свойства ServiceName. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-eventlog -log system | gm -membertype scriptproperty TypeName: System.Diagnostics.EventLogEntry Name MemberType Definition ---- ---------- ---------- EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;} Описание ----------- Эта команда получает свойства скрипта объектов журнала событий в журнале "С истема" средства "Просмотр событий". В данном случае единственным свойством скрипта является EventID. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-eventlog -log system | get-member -membertype scriptproperty TypeName: System.Diagnostics.EventLogEntry Name MemberType Definition ---- ---------- ---------- EventID ScriptProperty System.Object EventID {get=$this.get_EventID() -band 0xFFFF;} Описание ----------- Эта команда получает свойства скрипта объектов журнала событий в журнале "С истема" средства "Просмотр событий". Команда использует параметр MemberType, чтобы получить только объекты, для которых свойство MemberType имеет значение AliasProperty. Команда возвращает свойство EventID объекта EventLog. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$a = "get-process", "get-service", "get-culture", "get-psdrive", "get -executionpolicy" C:\PS> foreach ($cmdlet in $a) {invoke-expression $cmdlet | get-member -nam e machinename} TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- MachineName Property System.String MachineName {get;} TypeName: System.ServiceProcess.ServiceController Name MemberType Definition ---- ---------- ---------- MachineName Property System.String MachineName {get;set;} Описание ----------- Эта команда получает объекты, у которых имеется свойство MachineName, указа нное в командлетах. Первая команда сохраняет имена нескольких командлетов в переменной $a. Вторая команда использует инструкцию ForEach, чтобы вызвать каждую из коман д, передать результаты в командлет Get-Member и ограничить результаты выпол нения командлета Get-Member только элементами с именем "MachineName". Результаты показывают, что свойство MachineName имеется только у объектов п роцессов (System.Diagnostics.Process) и объектов служб (System.ServiceProce ss.ServiceController). -------------------------- ПРИМЕР 7 -------------------------- C:\PS>$a = get-member -inputobject @(1) C:\PS>$a.count 1 C:\PS> $a = get-member -inputobject 1,2,3 TypeName: System.Object[] Name MemberType Definition ---- ---------- ---------- Count AliasProperty Count = Length Address Method System.Object& Address(Int32 ) Clone Method System.Object Clone() ... C:\PS>$a.count 1 Описание ----------- В этом примере показано, как получить свойства и методы объектов, если имее тся только один объект заданного типа. Поскольку целью этой команды является получение свойств массива, первая ком анда использует параметр InputObject. Для указания массива в ней использует ся символ "@". В данном случае массив содержит только один объект — целое ч исло 1. Третья команда получает свойства и методы массива целых чисел с помощью ком андлета Get-Member и сохраняет их в переменной $a. Четвертая команда использует свойство Count массива для определения числа о бъектов в переменной $a. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113322 Add-Member Get-Help Get-Command Get-PSDrive Get-Module ИМЯ Get-Module ОПИСАНИЕ Получает модули, которые были импортированы или могут быть импортированы в текущий сеанс. СИНТАКСИС Get-Module [-All] [-ListAvailable] [-Name <string[]>] [<CommonParameters>] Get-Module [[-Name] <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Module возвращает модули, которые были импортированы или могу т быть импортированы в сеанс. Командлет Get-Module только возвращает модули, но не импортирует их. Чтобы импортировать модули в сеанс, воспользуйтесь командлетом Import-Module. ПАРАМЕТРЫ -All [<SwitchParameter>] Получает объекты модулей для всех файлов модулей. При запуске без параметра All командлет Get-Module возвращает только об ъект модуля для файла модуля по умолчанию. Типы файлов выбираются коман длетом в следующем порядке: файлы манифеста (PSD1), файлы модулей скрип та (PSM1) и двоичные файлы (DLL). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ListAvailable [<SwitchParameter>] Получает все модули, которые могут быть импортированы в сеанс. Get-Modu le получает модули, которые хранятся в путях, заданных переменной среды $env:PSModulePath. При запуске без этого параметра командлет Get-Module получает информаци ю только о тех модулях, которые были импортированы в сеанс. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Получает только модули с заданными именами или шаблонами имен. Подстано вочные знаки разрешены. Кроме того, можно передавать имена командлету G et-Module с помощью конвейера. Требуется? false Позиция? 1 Значение по умолчанию All imported or available modules. Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать имена модулей командлету Get-Module по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSModuleInfo Get-Module возвращает объекты, представляющие модули. ПРИМЕЧАНИЯ Командлет Get-Module также можно вызывать с помощью псевдонима "gmo". Д ополнительные сведения см. в разделе About_Aliases. Параметр All возвращает объекты модулей для всех файлов DLL, даже если они не реализуют командлеты или поставщики. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-module Description ----------- Эта команда получает модули, которые были импортированы в текущий сеанс. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-module -listAvailable Description ----------- Эта команда получает модули, которые могут быть импортированы в текущий сеа нс. Get-Module выполняет поиск доступных модулей в пути, указанном переменной с реды $env:PSModulePath. Дополнительные сведения о переменной среды PSModule Path см. в разделах about_Modules и about_Environment_Variables. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-module -listAvailable -all Description ----------- Эта команда получает все экспортированные файлы для всех доступных модулей. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-module | get-member -type property TypeName: System.Management.Automation.PSModuleInfo Name MemberType Definition ---- ---------- ---------- AccessMode Property System.Management.Automation.ModuleAcc Description Property System.String Description {get;set;} ExportedAliases Property System.Collections.Generic.Dictionary` ExportedCmdlets Property System.Collections.Generic.Dictionary` ExportedFunctions Property System.Collections.Generic.Dictionary` ExportedVariables Property System.Collections.Generic.Dictionary` Guid Property System.Guid Guid {get;} ModuleBase Property System.String ModuleBase {get;} ModuleType Property System.Management.Automation.ModuleTyp Name Property System.String Name {get;} NestedModules Property System.Collections.ObjectModel.ReadOnl OnRemove Property System.Management.Automation.ScriptBlo Path Property System.String Path {get;} PrivateData Property System.Object PrivateData {get;set;} SessionState Property System.Management.Automation.SessionSt Version Property System.Version Version {get;} Description ----------- Эта команда получает свойства объекта PSModuleInfo, возвращаемого командлет ом Get-Module. Для каждого файла модуля возвращается один объект. Эти свойства можно использовать для форматирования и фильтрации объектов мо дуля. Дополнительные сведения об этих свойствах см. в разделе "Свойства PSM odule" библиотеки MSDN (Microsoft Developer Network) по адресу (на английс ком языке). -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-module -listAvailable -all | format-table -property name, modulet ype, path -groupby name -auto Name: MyTestCmdlets Name ModuleType Path ---- ---------- ---- MyTestCmdlets Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules \TestCmdlets\TestCmdlets.dll Name: PSDiagnostics Name ModuleType Path ---- ---------- ---- PSDiagnostics Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules \PSDiagnostics\PSDiagnostics.psd1 PSDiagnostics Script C:\Windows\system32\WindowsPowerShell\v1.0\Modules \PSDiagnostics\PSDiagnostics.psm1 Name: FileTransfer Name ModuleType Path ---- ---------- ---- FileTransfer Manifest C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ FileTransfer\FileTransfer.psd1 Description ----------- Эта команда получает все файлы модулей (импортированных и доступных) и груп пирует их по имени модуля. Это позволяет увидеть все файлы модулей, экспорт ируемые каждым скриптом. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$m = get-module -list -name FileTransfer | where {$_.moduletype -eq " Manifest"} C:\PS> get-content $m.path @{ GUID="{8FA5064B-8479-4c5c-86EA-0D311FE48875}" Author="Microsoft Corporation" CompanyName="Microsoft Corporation" Copyright="© Microsoft Corporation. All rights reserved." ModuleVersion="1.0.0.0" Description="Windows Powershell File Transfer Module" PowerShellVersion="2.0" CLRVersion="2.0" NestedModules="Microsoft.BackgroundIntelligentTransfer.Management" FormatsToProcess="FileTransfer.Format.ps1xml" RequiredAssemblies=Join-Path $psScriptRoot "Microsoft.BackgroundIntelligent Transfer.Management.Interop.dll" } Description ----------- Эти команды отображают содержимое манифеста модуля для модуля Windows Power Shell File Transfer. Первая команда получает объект PSModuleInfo, представляющий манифест модуля для модуля File Transfer. Она сохраняет объект в переменной $m. Вторая команда использует обращение через точку, чтобы получить путь к файл у манифеста, который хранится в свойстве Path объекта. Затем она использует командлет Get-Content для получения содержимого файла манифеста по указанн ому пути. Модули не обязательно должны иметь файлы манифеста. Если модуль имеет файл манифеста, манифест требуется только для указания номера версии. Однако нер едко в файле манифеста содержится полезная информация о модуле, его требова ниях и его содержании. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-module -listAvailable -name FileTransfer | format-list -property * Name : FileTransfer Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\File Transfer\FileTransfer.psd1 Description : Powershell File Transfer Module Guid : 8fa5064b-8479-4c5c-86ea-0d311fe48875 ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\File Transfer PrivateData : Version : 1.0.0.0 ModuleType : Manifest AccessMode : ReadWrite ExportedFunctions : {} ExportedCmdlets : {} NestedModules : {} ExportedVariables : {} ExportedAliases : {} SessionState : System.Management.Automation.SessionState OnRemove : Description ----------- Эта команда отображает все свойства модуля FileTransfer в виде списка. Поскольку модуль еще не был импортирован в сеансе, значения свойств Exporte d* и свойства NestedModules пока не определены. Значения этих свойств будут определены только после экспорта элементов и создания экземпляров вложенны х модулей. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>dir (get-module -listavailable FileTransfer).modulebase Directory: C:\Windows\system32\WindowsPowerShell\v1.0\Modules\FileTrans fer Mode LastWriteTime Length Name ---- ------------- ------ ---- d---- 12/16/2008 12:36 PM en-US -a--- 11/19/2008 11:30 PM 16184 FileTransfer.Format.ps1xml -a--- 11/20/2008 11:30 PM 1044 FileTransfer.psd1 -a--- 12/16/2008 12:20 AM 108544 Microsoft.BackgroundIntelligen tTransfer.Management.Interop.dll Description ----------- Эта команда выводит список файлов в каталоге модуля. Это еще один способ оп ределить назначение модуля перед его импортом. В комплект поставки некоторы х модулей могут входить файлы справки или файлы ReadMe, в которых содержитс я описание модуля. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141552 Import-Module New-Module Remove-Module about_Modules Get-PfxCertificate ИМЯ Get-PfxCertificate ОПИСАНИЕ Получает данные о PFX-файлах сертификата в компьютере. СИНТАКСИС Get-PfxCertificate [-FilePath] <string[]> [<CommonParameters>] ОПИСАНИЕ Командлет Get-PfxCertificate получает объект, представляющий каждый указанн ый PFX-файл сертификата. PFX-файл содержит как сертификат, так и закрытый к люч. ПАРАМЕТРЫ -FilePath <string[]> Полный путь к PFX-файлу защищенного файла. Имя параметра ("FilePath") н еобязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь к файлу, можно передать командлету Get-PfxCerti ficate по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Security.Cryptography.X509Certificates Командлет Get-PfxCertificate возвращает объект для каждого получаемого сертификата. ПРИМЕЧАНИЯ Если для удаленного запуска команды Get-PfxCertificate используется ком андлет Invoke-Command, а PFX-файл сертификата не защищается паролем, зн ачение параметра Authentication командлета Invoke-Command должно быть р авно "CredSSP". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-pfxcertificate -filepath C:\windows\system32\Test.pfx Password: ****** Signer Certificate: Matt Berg (Self Certificate) Time Certificate: Time Stamp: Path: C:\windows\system32\zap.pfx Описание ----------- Эта команда получает данные о сертификате Test.pfx в системе. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>invoke-command -computername Server01 -scriptblock {get-pfxcertificat e -filepath C:\Text\TestNoPassword.pfx} -authentication CredSSP Описание ----------- Эта команда получает PFX-файл сертификата с удаленного компьютера Server01. Для удаленного выполнения команды Get-PfxCertificate она использует команд лет Invoke-Command. Если PFX-файл сертификата не защищен паролем, значение параметра Authentica tion командлета Invoke-Command должно быть равно "CredSSP". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113323 Get-AuthenticodeSignature Set-AuthenticodeSignature about_Signing Get-Process ИМЯ Get-Process ОПИСАНИЕ Получает процессы, выполняющиеся на локальном или удаленном компьютере. СИНТАКСИС Get-Process [[-Name] <string[]>] [-ComputerName <string[]>] [-FileVersionIn fo] [-Module] [<CommonParameters>] Get-Process -Id <Int32[]> [-ComputerName <string[]>] [-FileVersionInfo] [-M odule] [<CommonParameters>] Get-Process -InputObject <Process[]> [-ComputerName <string[]>] [-FileVersi onInfo] [-Module] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Process получает процессы, выполняющиеся на локальном или уда ленном компьютере. При вызове без параметров командлет Get-Process получает все процессы, выпо лняющиеся на локальном компьютере. Можно также задать конкретный процесс, у казав его имя или идентификатор (PID) или передав объект процесса по конвей еру командлету Get-Process. По умолчанию командлет Get-Process возвращает объект процесса, который соде ржит подробные сведения о процессе и поддерживает методы, позволяющие запус кать и останавливать процесс. Параметры командлета Get-Process можно исполь зовать для получения информации о версии программы, выполняющейся в конкрет ном процессе, а также для получения модулей, загруженных процессом. ПАРАМЕТРЫ -ComputerName <string[]> Получает процессы, выполняющиеся на указанных компьютерах. По умолчанию используется значение "Локальный компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескол ьких компьютеров. Чтобы указать локальный компьютер, введите имя компью тера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-Process можно использовать, даже если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -FileVersionInfo [<SwitchParameter>] Получает информацию о версии программы, выполняющейся в конкретном проц ессе. Чтобы использовать этот параметр для процессов, владельцем которых явля етесь не вы, под управлением Windows Vista и более поздних версий Windo ws необходимо запускать Windows PowerShell командой "Запуск от имени ад министратора". Использование этого параметра эквивалентно получению свойства MainModul e.FileVersionInfo каждого объекта процесса. При использовании этого пар аметра командлет Get-Process возвращает объект FileVersionInfo (System. Diagnostics.FileVersionInfo), а не объект процесса. Таким образом, нево зможно передать выходные данные команды по конвейеру командлету, ожидаю щему объект процесса, например Stop-Process. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <Int32[]> Задает один или несколько процессов, используя их идентификаторы (PID). При вводе нескольких идентификаторов необходимо разделять их запятыми. Чтобы определить идентификатор процесса, введите команду get-process. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InputObject <Process[]> Задает один или несколько объектов процессов. Введите переменную, содер жащую объекты, либо команду или выражение для получения объектов. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Module [<SwitchParameter>] Получает модули, загруженные процессами. Чтобы использовать этот параметр для процессов, владельцем которых явля етесь не вы, под управлением Windows Vista и более поздних версий Windo ws необходимо запускать Windows PowerShell командой "Запуск от имени ад министратора". Использование этого параметра эквивалентно получению свойства Modules к аждого объекта процесса. При использовании этого параметра командлет Ge t-Process возвращает объект ProcessModule (System.Diagnostics.ProcessMo dule), а не объект процесса. Таким образом, невозможно передать выходны е данные команды по конвейеру командлету, ожидающему объект процесса, н апример Stop-Process. При одновременном использовании параметров Module и FileVersionInfo ком андлет Get-Process возвращает объект FileVersionInfo, в котором содержи тся информация о версиях файлов всех модулей. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает один или несколько процессов, используя их имена. Можно ввести н есколько имен процессов, разделяя их запятыми, либо использовать подста новочные знаки. Имя параметра ("Name") указывать необязательно. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Diagnostics.Process Объект процесса можно передать командлету Get-Process по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Diagnostics.Process, System.Diagnotics.FileVersionInfo, System.Diagn ostics.ProcessModule По умолчанию командлет Get-Process возвращает объект System.Diagnostics .Process. При использовании параметра FileVersionInfo он возвращает объ ект System.Diagnotics.FileVersionInfo. При использовании параметра Mod ule (без параметра FileVersionInfo) он возвращает объект System.Diagnos tics.ProcessModule. ПРИМЕЧАНИЯ Параметры Name, ID и InputObject нельзя использовать в одной команде. Командлет Get-Process также можно вызывать с помощью встроенных псевдон имов "ps" и "gps". Дополнительные сведения см. в разделе About_Aliases. В оболочке Windows PowerShell также можно использовать свойства и метод ы объекта WMI Win32_Process. Дополнительные сведения см. в описании ком андлета Get-WmiObject и пакета SDK инструментария управления Windows (W MI). По умолчанию сведения о процессе представляются в виде таблицы, состоящ ей из следующих столбцов. -- Handles: количество дескрипторов, открытых текущим процессом. -- NPM(K): объем невыгружаемой памяти, используемой процессом, в КБ. -- PM(K): объем выгружаемой памяти, используемой процессом, в КБ. -- WS(K): размер рабочего множества процесса, в КБ. Рабочее множество с остоит из страниц памяти, к которым недавно обращался процесс. -- VM(M): объем виртуальной памяти, используемой процессом, в МБ. Вирту альная память представляет собой хранилище файлов подкачки на диске. -- CPU(s): объем процессорного времени, потраченного на выполнение проц есса всеми процессорами, в секундах. -- ID: идентификатор процесса (PID). -- ProcessName: имя процесса. Описание основных понятий, связанных с процессами, содержатся в глоссар ии центра технической поддержки, а также в справке по диспетчеру задач. Также можно использовать другие встроенные представления процессов, дос тупные с помощью командлета Format-Table (например, "StartTime" и "Prio rity"), либо создавать пользовательские представления. Дополнительные с ведения см. в описании командлета Format-Table. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Get-Process Описание ----------- Эта команда извлекает список всех выполняющихся на локальном компьютере про цессов. Определение каждого столбца см. разделе в дополнительных примечаний в справке для командлета Get-Help. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Get-Process winword, explorer | format-list * Описание ----------- Эта команда извлекает все доступные сведения о процессах Winword и Explorer на компьютере. Для задания процессов в команде используется параметр Name, однако он является необязательным и в данном случае опущен. Оператор конве йера (|) передает данные командлету Format-List, который отображает все дос тупные свойства (*) объектов процессов Winword и Explorer. Процессы также могут задаваться с помощью идентификаторов, Например, "get-p rocess -id 664, 2060". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | where-object {$_.WorkingSet -gt 20000000} Описание ----------- Эта команда отображает все процессы, рабочий набор которых превышает 20 МБ. Для отображения всех запущенных процессов используется командлет Get-Proce ss. Оператор конвейера (|) передает объекты процессов командлету Where-Obje ct, который отбирает среди них те, у которых значение свойства WorkingSet п ревышает значение 20 000 000 байт. Параметр WorkingSet является одним из множества свойств объектов процессов. Чтобы просмотреть все свойства, введите "Get-Process | Get-Member". По умо лчанию значения всех свойств объема измеряются в байтах, хотя при этом они отображаются в КБ и МБ. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = get-process C:\PS> get-process -inputobject $a | format-table -view priority Описание ----------- Эти команды выводят список выполняющихся на компьютере процессов, которые о бъединяются в группы на основе класса приоритета. Первая команда получает все процессы, выполняющиеся на компьютере, и сохран яет их в переменной $a. Вторая команда с помощью параметра InputObject передает объекты процессов, хранящиеся в переменной $a, командлету Get-Process. Объекты передаются по к онвейеру командлету Format-Table, который задает формат отображения процесс ов с помощью представления Priority. Представление Priority и другие представления определены в PS1XML-файлах, х ранящихся в домашнем каталоге Windows PowerShell ($pshome). -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-process powershell -computername S1, localhost | ft @{Label="NPM( K)";Expression={[int]($_.NPM/1024)}}, @{Label="PM(K)";Expression={[int]($_. PM/1024)}},@{Label="WS(K)";Expression={[int]($_.WS/1024)}},@{Label="VM(M)"; Expression={[int]($_.VM/1MB)}}, @{Label="CPU(s)";Expression={if ($_.CPU -ne $()) { $_.CPU.ToString("N")}}}, Id, MachineName, ProcessName -auto NPM(K) PM(K) WS(K) VM(M) CPU(s) Id MachineName ProcessName ------ ----- ----- ----- ------ -- ----------- ----------- 6 23500 31340 142 1980 S1 powershell 6 23500 31348 142 4016 S1 powershell 27 54572 54520 576 4428 localhost powershell Описание ----------- В этом примере представлена команда Format-Table (псевдоним = ft), которая добавляет свойство MachineName в стандартный набор отображаемых выходных да нных командлета Get-Process. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-process powershell -fileversioninfo ProductVersion FileVersion FileName -------------- ----------- -------- 6.1.6713.1 6.1.6713.1 (f... C:\WINDOWS\system32\WindowsPowerShell\v1. 0\powershell.exe Описание ----------- Эта команда с помощью параметра FileVersionInfo получает информацию о верси и файла PowerShell.exe, который является главным модулем процесса PowerShel l. Чтобы использовать эту команду для процессов, владельцем которых являетесь не вы, под управлением Windows Vista и более поздних версий Windows необход имо запускать Windows PowerShell командой "Запуск от имени администратора". -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-process sql* -module Описание ----------- Эта команда с помощью параметра Module получает модули, загруженные процесс ом. Эта команда получает модули процессов, имена которых начинаются на "sql ". Чтобы использовать эту команду для процессов, владельцем которых являетесь не вы, под управлением Windows Vista (и более поздних версий Windows) необх одимо запускать Windows PowerShell командой "Запуск от имени администратора ". -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$p = get-wmiobject win32_process -filter "name='powershell.exe'" C:\PS> $p.getowner() __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 3 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : Domain : DOMAIN01 ReturnValue : 0 User : user01 Описание ----------- На примере следующих команд показано, как определить владельца процесса. По скольку у объекта System.Diagnostics.Process, получаемого с помощью командл ета Get-Process, нет свойства или метода, возвращающего владельца процесса, команда использует командлет Get-WmiObject для получения объекта Win32_Process, который предст авляет одноименный процесс. Первая команда с помощью командлета Get-WmiObject получает процесс PowerShe ll. Этот процесс сохраняется в переменной $p. Вторая команда с помощью метода GetOwner определяет владельца процесса, сох раненного в переменной $p. Таким образом, команда позволяет узнать, что вла дельцем является пользователь "Domain01\user01". -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-process powershell C:\PS> get-process -id $pid C:\PS> get-process powershell Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 308 26 52308 61780 567 3.18 5632 powershell 377 26 62676 63384 575 3.88 5888 powershell C:\PS> get-process -id $pid Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 396 26 56488 57236 575 3.90 5888 powershell Описание ----------- На примере следующих команд показано, как с помощью автоматической переменн ой $pid определить хост-процесс текущего сеанса Windows PowerShell. Этот ме тод позволяет отличить хост-процесс от других процессов PowerShell, которые может потребоваться остановить или завершить. Первая команда получает все процессы PowerShell, выполняющиеся в текущем се ансе. Первая команда получает хост-процесс текущего сеанса PowerShell. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113324 Get-Process Start-Process Stop-Process Wait-Process Debug-Process Get-PSBreakpoint ИМЯ Get-PSBreakpoint ОПИСАНИЕ Получает настроенные в текущем сеансе точки останова. СИНТАКСИС Get-PSBreakpoint [[-Script] <string[]>] [<CommonParameters>] Get-PSBreakpoint -Command <string[]> [-Script <string[]>] [<CommonParameter s>] Get-PSBreakpoint [-Id] <Int32[]> [<CommonParameters>] Get-PSBreakpoint [-Type] <BreakpointType[]> [-Script <string[]>] [<CommonPa rameters>] Get-PSBreakpoint -Variable <string[]> [-Script <string[]>] [<CommonParamete rs>] ОПИСАНИЕ Командлет Get-PSBreakPoint получает настроенные в текущем сеансе точки оста нова. С помощью параметров командлета можно получать конкретные точки остан ова. Точка останова — это точка в команде или скрипте, на которой выполнение вре менно останавливается, чтобы можно было проверить инструкции. Get-PSBreakpo int — это один из нескольких командлетов, предназначенных для отладки скрип тов и команд Windows PowerShell. Дополнительные сведения об отладчике Windo ws PowerShell см. в разделе about_Debuggers. ПАРАМЕТРЫ -Command <string[]> Получает точки останова команд, для которых заданы имена. Введите имена команд, например имя командлета или функции. Требуется? true Позиция? named Значение по умолчанию Все точки останова Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <Int32[]> Получает точки останова с заданными идентификаторами. Введите идентифик аторы, разделенные запятыми. Кроме того, можно передать идентификаторы точек останова командлету Get-PSBreakpoint по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Все точки останова Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Script <string[]> Получает только точки останова в заданных скриптах. Введите путь (необя зательно) и имя одного или нескольких файлов скриптов. Местоположением по умолчанию является текущий каталог. Требуется? false Позиция? named Значение по умолчанию Все точки останова Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Type <BreakpointType[]> Получает только точки останова заданных типов. Введите один или несколь ко типов. Допустимые значения: Line, Command и Variable. Кроме того, мо жно передать типы точек останова командлету Get-PSBreakpoint по конвейе ру. Требуется? true Позиция? 1 Значение по умолчанию Все точки останова Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Variable <string[]> Получает точки останова переменных, для которых заданы имена. Введите и мена переменных без знака доллара. Требуется? true Позиция? named Значение по умолчанию Все точки останова Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Int32, Microsoft.PowerShell.Commands.BreakpointType Кроме того, можно передать идентификаторы и типы точек останова командл ету Get-PSBreakpoint по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Объект точки останова (System.Management.Automation.LineBreakpoint, System. Management.Automation.VariableBreakpoint, System.Management.Automation.Comm andBreakpoint) Командлет Get-PSBreakPoint возвращает объекты, представляющие точки ост анова в этом разделе. ПРИМЕЧАНИЯ Можно использовать командлет Get-PSBreakpoint или его псевдоним "gbp". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-psbreakpoint Описание ----------- Эта команда получает все точки останова, установленные во всех скриптах и ф ункциях в текущем сеансе. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-psbreakpoint -Id 2 Function : Increment Action : Enabled : True HitCount : 0 Id : 2 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 Описание ----------- Эта команда получает точку останова с идентификатором 2. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$b = set-psbreakpoint -script sample.ps1 -function increment C:\PS> $b.Id | get-psbreakpoint Описание ----------- Эти команды показывают, как получить точку останова путем передачи идентифи катора точки останова командлету Get-PSBreakpoint по конвейеру. Первая команда использует командлет Set-PSBreakpoint, чтобы создать точку о станова на функции Increment в скрипте Sample.ps1. Она сохраняет объект точ ки останова в переменной $b. Вторая команда с помощью оператора точки (.) получает свойство Id объекта т очки останова в переменной $b. Идентификатор передается командлету Get-PSBr eakpoint с помощью оператора конвейера (|). В результате командлет Get-PSBreakpoint получает точку останова с заданным идентификатором. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-psbreakpoint -script Sample.ps1, SupportScript.ps1 Описание ----------- Эта команда получает все точки останова в файлах Sample.ps1 и SupportScript .ps1. Эта команда не получает другие точки останова, которые могут быть установле ны в других скриптах или функциях в данном сеансе. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-psbreakpoint -command Read-Host, Write-Host -script Sample.ps1 Описание ----------- Эта команда получает все точки останова команд, установленные на командах R ead-Host и Write-Host в файле Sample.ps1. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-psbreakpoint -type Command -script Sample.ps1 Описание ----------- Эта команда получает все точки останова команд, установленные в файле Sampl e.ps1. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-psbreakpoint -variable Index, Swap Описание ----------- Эта команда получает все точки останова, установленные на переменных $index и $swap в текущем сеансе. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>get-psbreakpoint -type line, variable -script Sample.ps1 Описание ----------- Эта команда получает все точки останова строк и переменных в скрипте Sample .ps1. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113325 about_Debuggers Set-PSBreakpoint Disable-PSBreakpoint Enable-PSBreakpoint Remove-PSBreakpoint Get-PSCallStack Get-PSCallStack ИМЯ Get-PSCallStack ОПИСАНИЕ Отображает текущий стек вызова. СИНТАКСИС Get-PSCallStack [<CommonParameters>] ОПИСАНИЕ Командлет Get-PSCallStack отображает текущий стек вызова. Хотя этот командлет предназначен для использования с отладчиком Windows Pow erShell, его можно использовать для отображения стека вызова в скрипте или функции вне отладчика. Чтобы выполнить команду Get-PSCallStack в отладчике, введите "k" или "get-p scallstack". ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.CallStackFrame Командлет Get-PSCallStack возвращает объект, представляющий элементы в стеке вызова. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>function my-alias { $p = $args[0] get-alias | where {$_.definition -like "*$p"} | ft definition, name -aut o } PS C:\ps-test> set-psbreakpoint -command my-alias Command : my-alias Action : Enabled : True HitCount : 0 Id : 0 Script : prompt PS C:\ps-test> my-alias get-content Entering debug mode. Use h or ? for help. Hit Command breakpoint on 'prompt:my-alias' my-alias get-content [DBG]: PS C:\ps-test> s $p = $args[0] DEBUG: Stepped to ': $p = $args[0] ' [DBG]: PS C:\ps-test> s get-alias | Where {$_.Definition -like "*$p*"} | ft Definition, [DBG]: PS C:\ps-test>get-pscallstack Name CommandLineParameters UnboundArguments Loc ation ---- --------------------- ---------------- --- ----- prompt {} {} pro mpt my-alias {} {get-content} pro mpt prompt {} {} pro mpt [DBG]: PS C:\ps-test> o Definition Name ---------- ---- Get-Content gc Get-Content cat Get-Content type Описание ----------- Эта команда использует командлет Get-PSCallStack для отображения стека вызо ва небольшой функции My-Alias, которая получает псевдонимы по имени командл ета. Первая команда входит в функцию в командной строке Windows PowerShell. Втор ая команда использует командлет Set-PSBreakpoint, чтобы установить точку ос танова на функции My-Alias. Третья команда использует функцию My-Alias, что бы получить все псевдонимы в текущем сеансе для командлета Get-Content. Отладчик останавливается на вызове функции. Две последовательных команды st ep-into начинают построчное выполнение функции. Затем команда Get-PSCallSta ck получает стек вызова. Последняя команда Step-Out выходит из отладчика и продолжает выполнение скр ипта до конца. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113326 about_Debuggers Set-PSBreakpoint Get-PSBreakpoint Enable-PSBreakpoint Disable-PSBreakpoint Remove-PSBreakpoint Get-PSDrive ИМЯ Get-PSDrive ОПИСАНИЕ Получает диски Windows PowerShell, используемые в текущем сеансе. СИНТАКСИС Get-PSDrive [-LiteralName] <string[]> [-PSProvider <string[]>] [-Scope <str ing>] [-UseTransaction] [<CommonParameters>] Get-PSDrive [[-Name] <string[]>] [-PSProvider <string[]>] [-Scope <string>] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Get-PSDrive получает диски Windows PowerShell в текущем сеансе. М ожно получить конкретный диск или все диски, используемые в консоли. Командлет Get-PSDrive получает следующие диски: -- логические диски Windows, включая диски, подключенные к общим сетевым ре сурсам; -- диски, предоставляемые поставщиками Windows PowerShell (например, диски Certificate:, Function: и Alias:), а также диски HKLM: и HKCU:, предоставля емые поставщиком Windows PowerShell Registry; -- диски, созданные с помощью командлета New-PSDrive. Командлет Get-PSDrive не возвращает сопоставленные диски Windows, которые б ыли добавлены или созданы после открытия консоли Windows PowerShell. ПАРАМЕТРЫ -LiteralName <string[]> Задает имя диска Windows PowerShell. Значение параметра LiteralName используется точно в том виде, в котором оно введено. Никакие символы не интерпретируются как подстановочные зн аки. Если имя включает escape-символы, его необходимо заключить в одино чные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Получает только указанные диски. Введите имя или букву диска без двоето чия (:). Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PSProvider <string[]> Получает только диски, поддерживаемые указанным поставщиком Windows Pow erShell. Введите имя поставщика, например FileSystem, Registry или Cert ificate. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Scope <string> Получает только диски Windows PowerShell, определенные в указанной обла сти. Допустимые значения: "Global", "Local", "Script" или номер относит ельно текущей области (от 0 до количества областей, где 0 — текущая обл асть, а 1 — ее родительская область). По умолчанию используется значени е "Local". Дополнительные сведения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Get-PSDrive по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSDriveInfo Командлет Get-PSDrive возвращает объекты, представляющие диски Windows PowerShell в этом сеансе. ПРИМЕЧАНИЯ Командлет Get-PSDrive предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "get-psprovider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-psdrive Name Provider Root ---- -------- ---- Alias Alias C FileSystem C:\ cert Certificate \ D FileSystem D:\ Env Environment Function Function HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE Variable Variable X FileSystem X:\ Описание ----------- Эта команда получает диски Windows PowerShell в текущем сеансе. Выходными данными являются жесткий диск (C:) и дисковод компакт-дисков (D:) на компьютере, диски, предоставляемые поставщиками Windows PowerShell (Ali as:, Cert:, Env:, Function:, HKCU:, HKLM: и Variable:), и диск, отображающи й общие сетевые ресурсы (X:). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-psdrive d Name Provider Root ---- -------- ---- D FileSystem D:\ Описание ----------- Эта команда отображает диск D: локального компьютера. Обратите внимание, чт о за буквой диска не следует двоеточие. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-psdrive -psprovider filesystem Name Provider Root ---- -------- ---- C FileSystem C:\ D FileSystem D:\ X FileSystem X:\ Y FileSystem \\Server01\Public Z FileSystem C:\Windows\System32 Описание ----------- Эта команда отображает все диски, поддерживаемые поставщиком Windows PowerS hell FileSystem. К ним относятся жесткие диски, логические разделы, подключ енные сетевые диски, а также диски созданные с помощью командлета New-PSDri ve и подключенные к дискам файловой системы. В этом примере показано, что в случае диска, созданного с помощью командлет а New-PSDrive, в свойстве Root содержится имя сопоставленного с этим диском местоположения. В случае диска Windows в свойстве Root содержится только б уква диска. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>if ((get-psdrive X)) { new-psdrive -name X -psprovider Registry -root HKLM:\Network } else { write-host "The X: drive is already in use." } Описание ----------- Эта команда проверяет, существует ли диск Windows PowerShellс именем "X". Е сли нет, с помощью командлета New-PSDrive создается диск Windows PowerShell , который подключается к разделу реестра "HKLM:\Network". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-psdrive -provider filesystem C:\PS> get-psdrive -provider filesystem Name Provider Root ---- -------- ---- C FileSystem C:\ D FileSystem D:\ X FileSystem X:\ Y FileSystem \\Server01\Public Z FileSystem C:\Windows\System32 C:\PS> net use New connections will be remembered. Status Local Remote Network --------------------------------------------------------------------------- ---- X: \\Server01\Public Microsoft Windows Network C:\PS> [System.IO.DriveInfo]::getdrives() Name : C:\ DriveType : Fixed DriveFormat : NTFS IsReady : True AvailableFreeSpace : 39831498752 TotalFreeSpace : 39831498752 TotalSize : 79900368896 RootDirectory : C:\ VolumeLabel : Name : D:\ DriveType : CDRom DriveFormat : IsReady : False AvailableFreeSpace : TotalFreeSpace : TotalSize : RootDirectory : D:\ VolumeLabel : Name : X:\ DriveType : Network DriveFormat : NTFS IsReady : True AvailableFreeSpace : 36340559872 TotalFreeSpace : 36340559872 TotalSize : 36413280256 RootDirectory : X:\ VolumeLabel : D_Drive C:\PS> get-wmiobject win32_logicaldisk DeviceID : C: DriveType : 3 ProviderName : FreeSpace : 39831252992 Size : 79900368896 VolumeName : DeviceID : D: DriveType : 5 ProviderName : FreeSpace : Size : VolumeName : DeviceID : X: DriveType : 4 ProviderName : \\server01\public FreeSpace : 36340559872 Size : 36413280256 VolumeName : D_Drive C:\PS> get-wmiobject win32_networkconnection LocalName RemoteName -------------- ------------ x: \\server01\public Описание ----------- В этом примере сравниваются типы дисков файловой системы, отображаемых с по мощью командлета Get-PSDrive, и типы дисков, отображаемых другими способами . В этом примере показаны различные способы отображения дисков в оболочке W indows PowerShell; также в нем показано, что диски, созданные с помощью ком андлета New-PSDrive, доступны только в Windows PowerShell. Первая команда с помощью командлета Get-PSDrive получает все диски файловой системы, используемые в консоли Windows PowerShell. К ним относятся жестки е диски C: и D:, отображаемый сетевой диск X:, а также два диска Windows Po werShell Y: и Z:, созданные с помощью командлета New-PsDrive. Команда "net use", показывающая подключенные сетевые диски Windows, отображ ает только диск X:. Она не отображает диски, созданные с помощью командлета New-PSDrive. Эта команда также показывает, что диск X: подключен к общему сетевому ресурсу "\\Server01\Public". В третьей команде используется метод GetDrives класса System.IO.DriveInfo и нфраструктуры Microsoft .NET Framework. Эта команда отображает диски файлов ой системы Windows, включая диск X:, но не диски, созданные с помощью коман длета New-PSDrive. Четвертая команда с помощью командлета Get-WmiObject отображает экземпляры класса Win32_LogicalDisk. Она отображает диски C:, D:, и X:, но не диски, с озданные с помощью командлета New-PSDrive. Последняя команда с помощью командлета Get-WmiObject отображает экземпляры класса Win32_NetworkConnection. Результат аналогичен результату выполнения команды "net use" — отображается только диск X:. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113327 about_Providers New-PSDrive Remove-PSDrive Get-Help Get-Command Get-Member Get-PSProvider ИМЯ Get-PSProvider ОПИСАНИЕ Получает сведения об указанном поставщике Windows PowerShell. СИНТАКСИС Get-PSProvider [[-PSProvider] <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-PSProvider возвращает поставщиков Windows PowerShell, доступн ых в текущем сеансе. Можно получить конкретный диск или все диски, использу емые в сеансе. Поставщики Windows PowerShell позволяют осуществлять доступ к различным хра нилищам данных, как если бы они являлись дисками файловой системы. Дополнит ельные сведения о поставщиках Windows PowerShell см в разделе about_Provide rs. ПАРАМЕТРЫ -PSProvider <string[]> Задает имена поставщиков Windows PowerShell, о которых необходимо получ ить сведения. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.ProviderInfo Командлет Get-PSProvider возвращает объекты, представляющие поставщики Windows PowerShell в этом сеансе. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-psprovider Описание ----------- Эта команда отображает список всех доступных поставщиков Windows PowerShell . -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-psprovider f*, r* | format-list Описание ----------- Эта команда отображает список все поставщики Windows PowerShell, имена кото рых начинаются с букв "f" или "r". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-psprovider | format-table name, module, pssnapin -auto Name Module PSSnapIn ---- ------ -------- Test TestModule WSMan Microsoft.WSMan.Management Alias Microsoft.PowerShell.Core Environment Microsoft.PowerShell.Core FileSystem Microsoft.PowerShell.Core Function Microsoft.PowerShell.Core Registry Microsoft.PowerShell.Core Variable Microsoft.PowerShell.Core Certificate Microsoft.PowerShell.Security C:\PS> get-psprovider | where {$_.pssnapin -eq "Microsoft.PowerShell.Securi ty"} Name Capabilities Drives ---- ------------ ------ Certificate ShouldProcess {cert} Описание ----------- Эти команды определяют оснастки Windows PowerShell или модули, которые испо льзовались для добавления поставщиков в текущий сеанс. Все элементы Windows PowerShell, включая поставщиков, вызываются оснасткой или модулем. В этих командах используются свойства PSSnapin и Module объекта ProviderInf o, возвращаемого командлетом Get-PSProvider. Значениями этих свойств являют ся имена оснастки или модуля, который использовался для добавления поставщи ков в текущий сеанс. Первая команда получает всех поставщиков в сеансе и отображает их в виде та блицы, включающей значения свойств Name, Module и PSSnapin. Вторая команда с помощью командлета Where-Object отображает поставщиков, до бавленных оснасткой Microsoft.PowerShell.Security. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113329 about_Providers Get-PSSession ИМЯ Get-PSSession ОПИСАНИЕ Получает сеансы Windows PowerShell (объекты PSSession) в текущем сеансе. СИНТАКСИС Get-PSSession [[-ComputerName] <string[]>] [<CommonParameters>] Get-PSSession [-Id] <Int32[]> [<CommonParameters>] Get-PSSession [-InstanceId <Guid[]>] [<CommonParameters>] Get-PSSession [-Name <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-PSSession получает сеансы Windows PowerShell (объекты PSSessi on), созданные в текущем сеансе. При вызове без параметров команда "Get-PSSession" получает все объекты PSSe ssion, созданные в текущем сеансе. Параметры Get-PSSession можно использова ть для получения сеансов, связанных с определенными компьютерами, или опред еления сеансов по их именам, идентификаторам или идентификаторам экземпляро в. Дополнительные сведения о сеансах Windows PowerShell см. в разделе "about_P SSessions". ПАРАМЕТРЫ -ComputerName <string[]> Получает только сеансы PSSession, связанные с указанными компьютерами. Подстановочные знаки разрешены. Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескол ьких компьютеров. Чтобы указать локальный компьютер, введите имя компью тера, "localhost" или точку (.). Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Id <Int32[]> Получает только сеансы PSSession с указанными идентификаторами. Введите один или несколько идентификаторов (разделенных запятыми) или использу йте оператор диапазона (..), чтобы задать диапазон идентификаторов. Идентификатор — это целое значение, которое однозначно определяет сеанс PSSession в пределах текущего сеанса. Это значение проще запомнить и в вести, чем InstanceId, но оно уникально только в рамках текущего сеанса . Чтобы определить идентификатор сеанса PSSession, используйте команду Get-PSSession без параметров. Требуется? true Позиция? 1 Значение по умолчанию Все сеансы в рамках оболочки Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid[]> Получает только сеансы PSSession с указанными идентификаторами экземпля ров. Идентификатор экземпляра — это GUID, который однозначно определяет сеан с PSSession на локальном или удаленном компьютере. Идентификатор Instan ceID является уникальным даже при выполнении нескольких сеансов Windows PowerShell. Идентификатор экземпляра InstanceID хранится в свойстве InstanceID объе кта, представляющего сеанс PSSession. Чтобы определить идентификаторы э кземпляров InstanceID сеансов PSSession в текущем сеансе, введите коман ду "get-pssession | format-table Name, ComputerName, InstanceId". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Name <string[]> Получает только сеансы PSSession с указанными понятными именами. Подста новочные знаки разрешены. Чтобы определить имена сеансов PSSession в текущем сеансе, введите кома нду "get-pssession" без параметров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.Runspaces.PSSession Командлет Get-PSSession возвращает объект PSSession для каждого получае мого сеанса PSSession. ПРИМЕЧАНИЯ Команда Get-PSSession получает объекты PSSession, созданные в текущем с еансе. Она не получает сеансы, которые были созданы при запуске Windows PowerShell, и не получает объекты PSSession для сеансов, которые были созданы в других сеансах или на других компьютерах, даже если они подкл ючены к локальному компьютеру. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-pssession Description ----------- Эта команда получает все объекты PSSession, созданные в текущем сеансе. Она не получает объекты PSSession, которые были созданы в других сеансах ил и на других компьютерах, даже если они подключены к этому компьютеру. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$s = get-pssession -computername Server02 Description ----------- Эта команда получает объекты PSSession, которые связаны с компьютером Serve r02 и сохраняет их в переменной $p. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>new-pssession -computername Server01, Server02, Server03 C:\PS> $s1, $s2, $s3 = get-pssession Description ----------- В этом примере показано, как сохранить результаты выполнения команды Get-PS Session в нескольких переменных. Первая команда создает сеансы PSSession на трех удаленных компьютерах с исп ользованием командлета New-PSSession. Вторая команда использует командлет Get-PSSession для получения трех объект ов PSSession. Затем каждый из сеансов PSSession сохраняется в отдельную пер еменную. Когда Windows PowerShell присваивает массив объектов массиву переменных, пе рвый объект присваивается первой переменной, второй объект присваивается вт орой переменной и т. д. Если количество объектов превосходит количество пер еменных, все оставшиеся объекты присваиваются последней переменной в форме массива. Если количество переменных превышает количество объектов, лишние п еременные не используются. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-pssession | format-table -property computername, InstanceID C:\PS> $s = get-pssession -InstanceID a786be29-a6bb-40da-80fb-782c67f7db0f C:\PS> remove-pssession -session $s Description ----------- В этом примере показано, как получить сеанс PSSession с использованием иден тификатора экземпляра, и затем удалить сеанс PSSession. Первая команда получает все сеансы PSSession на локальном компьютере. Она о тправляет сеансы PSSession командлету Format-Table, который отображает знач ения свойств ComputerName и InstanceID для каждого из сеансов PSSession. Вторая команда использует командлет Get-PSSession для получения определенно го сеанса PSSession и сохраняет его в переменной $s. Эта команда использует параметр InstanceID для определения сеанса PSSession. Третья команда использует командлет Remove-PSSession для удаления сеанса PS Session, сохраненного в переменной $s. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-pssession -computername Serv* Description ----------- Эта команда получает все сеансы PSSession, связанные с компьютерами, имена которых начинаются на "Serv". -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-pssession -name Test*, Ux* Description ----------- Эта команда возвращает сеансы PSSession, имена которых начинаются на "Test" или "Ux". -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-pssession 2 Description ----------- Эта команда получает сеанс PSSession с идентификатором, равным 2. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135219 about_PSSessions about_Remote New-PSSession Remove-PSSession Enter-PSSession Exit-PSSession Invoke-Command Get-PSSessionConfiguration ИМЯ Get-PSSessionConfiguration ОПИСАНИЕ Получает зарегистрированные конфигурации сеансов на компьютере. СИНТАКСИС Get-PSSessionConfiguration [[-Name] <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-PSSessionConfiguration получает конфигурации сеансов, зарегис трированные на локальном компьютере. Этот расширенный командлет предназначе н для использования системными администраторами и позволяет управлять конфи гурациями сеансов для пользователей. Чтобы создать и зарегистрировать конфигурацию сеанса, используйте командлет Register-PSSessionConfiguration. ПАРАМЕТРЫ -Name <string[]> Получает только конфигурации сеансов с указанным именем или шаблоном им ени. Введите одно или несколько имен конфигураций сеансов. Подстановочн ые знаки разрешены. Требуется? false Позиция? 1 Значение по умолчанию Все конфигурации сеансов на локаль ном компьютере Принимать входные данные конвейера? false Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfi guration ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запускать Windows PowerShel l командой "Запуск от имени администратора". Чтобы просмотреть конфигурации сеансов на компьютере, необходимо быть ч леном группы "Администраторы" на этом компьютере. Чтобы выполнить команду Get-PSSessionConfiguration на удаленном компьют ере, проверка подлинности поставщика услуг безопасности (CredSSP) должн а быть включена в параметрах клиента на локальном компьютере (с помощью командлета Enable-WSManCredSSP) и в параметрах службы на удаленном ком пьютере; кроме того, при установке удаленного сеанса для параметра Auth entication необходимо использовать значение CredSSP. В противном случае в доступе будет отказано. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-pssessionconfiguration Description ----------- Эта команда возвращает конфигурации сеансов на компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-pssessionconfiguration -name Microsoft* Name PSVersion StartupScript Permission ---- --------- ------------- ---------- microsoft.powershell 2.0 BUILTIN\Administr ators AccessAll... microsoft.powershell32 2.0 BUILTIN\Administr ators AccessAll... Description ----------- Эта команда использует параметр Name командлета Get-PSSessionConfiguration, чтобы получить конфигурации сеансов с именами, которые начинаются с "Micro soft". Эта команда возвращает две конфигурации сеансов по умолчанию Windows PowerS hell. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Get-PSSessionConfiguration -name microsoft.powershell | get-member TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#P SSessionConfiguration Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Capability NoteProperty System.Object[] Capability=System.Obj ect[] ExactMatch NoteProperty System.String ExactMatch=False Filename NoteProperty System.String Filename=%windir%\syste m32\pwrshplugin.dll lang NoteProperty System.String lang=en-US Name NoteProperty System.String Name=microsoft.powershe ll PSVersion NoteProperty System.String PSVersion=2.0 ResourceUri NoteProperty System.String ResourceUri=http://sche mas.microsoft.com/powershell/microsoft.powershell SDKVersion NoteProperty System.String SDKVersion=1 SecurityDescriptorSddl NoteProperty System.String SecurityDescriptorSddl= O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD) SupportsOptions NoteProperty System.String SupportsOptions=true Uri NoteProperty System.String Uri=http://schemas.micr osoft.com/powershell/microsoft.powershell xmlns NoteProperty System.String xmlns=http://schemas.mi crosoft.com/wbem/wsman/1/config/PluginConfiguration XmlRenderingType NoteProperty System.String XmlRenderingType=text Permission ScriptProperty System.Object Permission {get=trap { continue; }... C:\PS> Get-PSSessionConfiguration -name microsoft.powershell | format-list -property * Name : microsoft.powershell Filename : %windir%\system32\pwrshplugin.dll SDKVersion : 1 XmlRenderingType : text lang : en-US PSVersion : 2.0 ResourceUri : http://schemas.microsoft.com/powershell/microsoft. powershell SupportsOptions : true Capability : {Shell} Uri : http://schemas.microsoft.com/powershell/microsoft. powershell SecurityDescriptorSddl : O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GX GW;;;WD) ExactMatch : False xmlns : http://schemas.microsoft.com/wbem/wsman/1/config/P luginConfiguration Permission : BUILTIN\Administrators AccessAllowed Description ----------- Эти команды проверяют объект PSSessionConfiguration, который возвращается G et-PSSessionConfiguration. Первая команда использует командлет Get-PSSessionConfiguration для получени я конфигурации по умолчанию Microsoft.PowerShell. Вторая команда с помощью оператора конвейера (|) передает объект, который G et-PSSessionConfiguration возвращает командлету Get-Member. На выходе отобр ажаются свойства и методы объекта. Третья команда передает этот же объект командлету Format-List. Параметр Pro perty со значением * (все) указывает команде Format-List отобразить все сво йства и значения свойств объекта в списке. В результате выполнения этой команды выводятся очень полезные сведения, в т ом числе местоположение DLL, реализующего тип конфигурации, URI ресурса соз даваемой конечной точки и язык определения дескрипторов безопасности (SDDL) конфигурации. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>dir wsman:\localhost\plugin WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin Name Type Keys ---- ---- ---- Event Forwarding Plugin Container {Name=Event Forwarding Plugi n} MaintenanceShell Container {Name=MaintenanceShell} microsoft.powershell Container {Name=microsoft.powershell} microsoft.powershell32 Container {Name=microsoft.powershell32 } WMI Provider Container {Name=WMI Provider} Description ----------- Эта команда использует командлет Get-ChildItem (с псевдонимом "dir") на WSM an: — диске поставщика, на котором просматривается содержимое узла Plugin. Это еще один способ просмотреть конфигурации сеансов на компьютере. Узел PlugIn содержит объекты ContainerElement (Microsoft.WSMan.Management.W SManConfigContainerElement), представляющие зарегистрированные конфигурации сеансов Windows PowerShell с другими подключаемыми модулями WS-Management. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>enable-wsmanCredSSP -delegate server02 C:\PS> connect-wsman server02 C:\PS> set-item wsman:\server02*\service\auth\credSSP -value $true C:\PS> invoke-command -scriptblock {Get-PSSessionConfiguration} -computerna me Server02 -authentication CredSSP -credential Domain01\Admin01 Name PSVersion StartupScript Permission PSComputerName ---- --------- ------------- ---------- -------------- microsoft.powershell 2.0 BUILTIN\Administr ators AccessAll... server02.corp.fabrikam.com microsoft.powershell32 2.0 BUILTIN\Administr ators AccessAll... server02.corp.fabrikam.com MyX86Shell 2.0 c:\test\x86Shell.ps1 BUILTIN\Administr ators AccessAll... server02.corp.fabrikam.com Description ----------- В этом примере показано, как выполнить команду Get-PSSessionConfiguration н а удаленном компьютере. Для выполнения команды необходимо включить делегиро вание CredSSP в параметрах клиента на локальном компьютере и в параметрах с лужбы на удаленном компьютере. Для выполнения команд в этом примере текущий пользователь должен быть членом группы "Администраторы" на локальном и уда ленном компьютере. Первая команда использует командлет Enable-WSManCredSSP для включения делег ирования CredSSP с локального компьютера Server01 на удаленном компьютере S erver02. Это позволяет настроить параметр клиента CredSSP на локальном комп ьютере. Вторая команда использует командлет Connect-WSMan для подключения к компьют еру Server02. Это действие добавляет узел для компьютера Server02 на диск W SMan: — диск на локальном компьютере, позволяя просматривать и изменять пар аметры WS-Management на компьютере Server02. Третья команда использует командлет Set-Item для изменения значения элемент а CredSSP в узле службы компьютера Server02 на значение "True". Таким образ ом выполняется настройка параметров службы на удаленном компьютере. Четвертая команда использует командлет Invoke-Command для выполнения команд ы Get-PSSessionConfiguration на компьютере Server02. Команда использует пар аметр Credential и параметр Authentication со значением CredSSP. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>(get-PSSessionConfiguration -name CustomShell).resourceURI http://schemas.microsoft.com/powershell/microsoft.CustomShell Description ----------- Эта команда с помощью командлета Get-PSSessionConfiguration получает URI ре сурса конфигурации сеанса. Эта команда полезна при задании значения привилегированной переменной $PSSe ssionConfigurationName, получающей URI ресурса. Переменная $PSSessionConfiguationName задает конфигурацию по умолчанию, кот орая используется при создании сеанса. Эта переменная задается на локальном компьютере, но указывает конфигурацию на удаленном компьютере. Дополнитель ные сведения о переменной $PSSessionConfiguration см. в разделе about_Prefe rence_Variables. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144304 about_Session_Configurations Disable-PSSessionConfiguration Enable-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration WS-Management Provider Get-PSSnapin ИМЯ Get-PSSnapin ОПИСАНИЕ Возвращает оснастки Windows PowerShell на данном компьютере. СИНТАКСИС Get-PSSnapin [[-Name] <string[]>] [-Registered] [<CommonParameters>] ОПИСАНИЕ Командлет Get-PSSnapin получает оснастки Windows PowerShell, которые были д обавлены в текущий сеанс или зарегистрированы в системе. Оснастки перечисля ются в том порядке, в котором они обнаруживаются. Командлет Get-PSSnapin получает только зарегистрированные оснастки. Чтобы з арегистрировать оснастку Windows PowerShell, используйте средство InstallUt il, входящее в комплект поставки платформы .NET Framework 2.0. Дополнительн ые сведения см. в разделе "Регистрация командлетов, поставщиков и ведущих п риложений" библиотеки MSDN по адресу (на английском языке). ПАРАМЕТРЫ -Name <string[]> Получает только указанные оснастки Windows PowerShell. Введите имена од ной или нескольких оснасток Windows PowerShell. Подстановочные знаки ра зрешены. Имя параметра ("Name") указывать необязательно. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Registered [<SwitchParameter>] Получает оснастки Windows PowerShell, которые были зарегистрированы в с истеме (даже если они не были добавлены в сеанс). Оснастки, устанавливаемые с Windows PowerShell, не включаются в этот сп исок. При вызове без этого параметра командлет Get-PSSnapin получает оснастки Windows PowerShell, добавленные в сеанс. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Данные невозможно передать командлету Get-PSSnapin по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSSnapInInfo Командлет Get-PSSnapin возвращает объект для каждой получаемой оснастки . ПРИМЕЧАНИЯ Командлет Get-PSSnapin можно вызывать с помощью встроенного псевдонима " psnp ". Дополнительные сведения см. в разделе About_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-PSSnapIn Description ----------- Эта команда возвращает оснастки Windows PowerShell, которые в данный момент загружены в сеанс. Сюда входят как оснастки, установленные с Windows Power Shell, так и оснастки, добавленные в сеанс. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-PSSnapIn -registered Description ----------- Эта команда получает оснастки Windows PowerShell, зарегистрированные на ком пьютере, в том числе и те, которые уже добавлены в сеанс. В выходные данные не включаются оснастки, установленные с Windows PowerShell или библиотекам и динамической компоновки (библиотеками DLL) оснасток Windows PowerShell, к оторые еще не зарегистрированы в системе. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-PSSnapIn smp* Description ----------- Эта команда получает оснастки Windows PowerShell в текущем сеансе, имена ко торых начинаются на "smp". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113330 Add-PSSnapin Remove-PSSnapin Get-Random ИМЯ Get-Random ОПИСАНИЕ Получает случайное число или случайным образом выбирает объекты из коллекци и. СИНТАКСИС Get-Random [-InputObject] <Object[]> [-Count <int>] [-SetSeed <int>] [ onParameters>] Get-Random [[-Maximum] <Object>] [-Minimum <Object>] [-SetSeed <int>] [ monParameters>] ОПИСАНИЕ Командлет Get-Random получает выбранное случайным образом число. Если перед ать командлету Get-Random коллекцию объектов, он вернет один или несколько выбранных случайным образом объектов этой коллекции. Без параметров или входного значения команда Get-Random возвращает случайно е 32-битное целое число без знака от 0 до значения Int32.MaxValue (0x7FFFFF FF, 2 147 483 647). С помощью параметров командлета Get-Random можно задать начальное число, ми нимальное и максимальное значения, а также количество объектов, возвращаемы х из переданной коллекции. ПАРАМЕТРЫ -Count <int> Определяет количество возвращаемых объектов. По умолчанию используется значение 1. Если значение Count превышает число объектов в коллекции, к омандлет Get-Random возвращает все объекты в случайном порядке. Требуется? false Позиция? named Значение по умолчанию 1 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <Object[]> Задает коллекцию объектов. Командлет Get-Random получает случайным обра зом выбранные объекты этой коллекции в случайном порядке. Введите объек ты, переменную, содержащую объекты, либо получающую их команду или выра жение. Кроме того, коллекцию объектов можно передать командлету Get-Ran dom по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Maximum <Object> Задает максимальное значение случайного числа. Командлет Get-Random воз вращает значение, не превышающее максимальное. Введите 32-битное целое число или число с плавающей запятой двойной точности или объект, которы й можно преобразовать в целое число или число двойной точности, наприме р числовую строку ("100"). Значение Maximum должно быть больше (не равн о) значению Minimum. Если значение Maximum или Minimum является числом с плавающей запятой, командлет Get-Random возвращает случайное число с плавающей запятой. Если значение Minimum является числом с плавающей запятой двойной точно сти, значение Maximum по умолчанию равно Double.MaxValue. В противном с лучае по умолчанию используется значение Int32.MaxValue (2 147 483 647 или 0x7FFFFFFF). Требуется? false Позиция? 1 Значение по умолчанию Int32.MaxValue Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Minimum <Object> Задает минимальное значение случайного числа. Введите 32-битное целое ч исло или число с плавающей запятой двойной точности или объект, который можно преобразовать в целое число или число двойной точности, например числовую строку ("100"). Значение по умолчанию — 0 (нуль). Значение Minimum не должно превышать значения Maximum. Если значение Ma ximum или Minimum является числом с плавающей запятой, командлет Get-Ra ndom возвращает случайное число с плавающей запятой. Требуется? false Позиция? named Значение по умолчанию 0 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SetSeed <int> Задает начальное значение для генератора случайных чисел. Это начальное значение будет использоваться для текущей команды и для всех последующ их команд Get-Random в текущем сеансе до установки нового значения SetS eed или завершения сеанса. Невозможно вернуть начальное значение к свое му значению по умолчанию, получаемому на основании показаний часов. Параметр SetSeed является необязательным. По умолчанию командлет Get-Ra ndom использует для получения начального значения системные часы. Поско льку при задании значения SetSeed результат выполнения команды не являе тся строго случайным, этот параметр обычно используют в случаях, когда требуется воспроизвести определенную ситуацию, например при отладке или анализе скриптов, включающих команды Get-Random. Требуется? false Позиция? named Значение по умолчанию Системные часы Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Командлету Get-Random можно передать один или несколько объектов по кон вейеру. Командлет Get-Random случайным образом выбирает значения из пер еданных по конвейеру объектов. ВЫХОДНЫЕ ДАННЫЕ System.Object Командлет Get-Random возвращает целое число или число с плавающей запят ой или объект, случайным образом выбранный из переданной коллекции. ПРИМЕЧАНИЯ Командлет Get-Random устанавливает начальное значение для каждого сеанс а на основании показаний системных часов в момент запуска сеанса. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-random 3951433 Описание ----------- Эта команда получает случайное целое значение в интервале от 0 (нуля) до зн ачения Int32.MaxValue. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-random -maximum 100 47 Описание ----------- Эта команда получает случайное целое значение в интервале от 0 (нуля) до 99 . -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-random -minimum -100 -maximum 100 -56 Описание ----------- Эта команда получает случайное целое значение в интервале от -100 до 99. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-random -min 10.7 -max 20.93 18.08467273887 Описание ----------- Эта команда получает случайное число с плавающей запятой, больше или равное 10,7 и меньше 20,92. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-random -input 1, 2, 3, 5, 8, 13 8 Описание ----------- Эта команда получает случайным образом выбранное число из заданного массива . -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count 3 3 1 13 Описание ----------- Эта команда получает три случайным образом выбранных числа из массива в слу чайном порядке. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-random -input 1, 2, 3, 5, 8, 13 -count ([int]::MaxValue) 2 3 5 1 8 13 Описание ----------- Эта команда возвращает все элементы коллекции в случайном порядке. Значение параметра Count равно статическому свойству MaxValue целочисленного массив а. Чтобы вернуть всю коллекцию в случайном порядке, введите любое число, превы шающее количество элементов в коллекции или равное ему. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>get-random -input "red", "yellow", "blue" yellow Описание ----------- Эта команда возвращает случайное значение из коллекции, элементы которой не являются числами. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-process | get-random Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 144 4 2080 488 36 0.48 3164 wmiprvse Описание ----------- Эта команда получает случайным образом выбранный процесс из коллекции запущ енных на компьютере процессов. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>get-content servers.txt | get-random -count (get-content servers.txt) .count | foreach {invoke-expression -computer $_ -command 'get-process powe rshell'} Описание ----------- Эта команда в случайном порядке выполняет команду для нескольких удаленных компьютеров. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>get-random -max 100 -setseed 23 # Commands with the default seed are pseudorandom PS C:\ps-test> get-random -max 100 59 PS C:\ps-test> get-random -max 100 65 PS C:\ps-test> get-random -max 100 21 # Commands with the same seed are not random PS C:\ps-test> get-random -max 100 -setseed 23 74 PS C:\ps-test> get-random -max 100 -setseed 23 74 PS C:\ps-test> get-random -max 100 -setseed 23 74 # SetSeed results in a repeatable series PS C:\ps-test> get-random -max 100 -setseed 23 74 PS C:\ps-test> get-random -max 100 56 PS C:\ps-test> get-random -max 100 84 PS C:\ps-test> get-random -max 100 46 PS C:\ps-test> get-random -max 100 -setseed 23 74 PS C:\ps-test> get-random -max 100 56 PS C:\ps-test> get-random -max 100 84 PS C:\ps-test> get-random -max 100 46 Описание ----------- В этом примере показан результат применения параметра SetSeed. Поскольку пр и задании значения SetSeed результат выполнения команды не является случайн ым, этот параметр обычно используют в случаях, когда требуется воспроизвест и определенную ситуацию, например при отладке или анализе скриптов. -------------------------- ПРИМЕР 12 -------------------------- C:\PS>$files = dir -path c:\* -recurse C:\PS> $sample = $files | get-random -count 50 Описание ----------- Эти команды получают случайным образом выбранный набор из 50 файлов на диск е C: локального компьютера. -------------------------- ПРИМЕР 13 -------------------------- C:\PS>get-random 10001 7600 Описание ----------- Эта команда получает случайное целое число меньше 10001. Поскольку параметр Maximum имеет позицию 1, имя этого параметра можно опустить, если значение относится к первому или единственному не указанному параметру в команде. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113446 Get-Service ИМЯ Get-Service ОПИСАНИЕ Получает службы на локальном или удаленном компьютере. СИНТАКСИС Get-Service [[-Name] <string[]>] [-ComputerName <string[]>] [-DependentServ ices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [<Com monParameters>] Get-Service -DisplayName <string[]> [-ComputerName <string[]>] [-DependentS ervices] [-Exclude <string[]>] [-Include <string[]>] [-RequiredServices] [ CommonParameters>] Get-Service [-InputObject <ServiceController[]>] [-ComputerName <string[]>] [-DependentServices] [-Exclude <string[]>] [-Include <string[]>] [-Require dServices] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Service получает объекты, представляющие службы на локальном или удаленном компьютере, как выполняющиеся, так и остановленные. Чтобы получить с помощью командлета Get-Service конкретные службы, можно ук азать имена или отображаемые имена этих служб либо передать объекты служб к омандлету Get-Service по конвейеру. ПАРАМЕТРЫ -ComputerName <string[]> Получает службы, выполняющиеся на указанных компьютерах. По умолчанию и спользуется значение "Локальный компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-Service можно использовать, даже если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию Localhost Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -DependentServices [<SwitchParameter>] Получает только службы, зависящие от указанной службы. По умолчанию командлет Get-Service получает все службы. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DisplayName <string[]> Задает отображаемые имена извлекаемых служб. Подстановочные знаки разре шены. По умолчанию командлет Get-Service возвращает все службы, запущен ные на компьютере. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные службы. Значение данного параметра определяет значе ние параметра Name. Введите часть имени или шаблон, например "s*". Подс тановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Извлекает только указанные службы. Значение данного параметра определяе т значение параметра Name. Введите часть имени или шаблон, например "s* ". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ServiceController[]> Задает объекты ServiceController, представляющие извлекаемые службы. Вв едите переменную, содержащую объекты, либо команду или выражение для по лучения объектов. Кроме того, можно передать объект службы командлету G et-Service по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена извлекаемых служб. Подстановочные знаки разрешены. По умол чанию командлет Get-Service возвращает все службы на компьютере. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true -RequiredServices [<SwitchParameter>] Получает только службы, которые требуются указанной службе. Этот параметр получает значение свойства ServicesDependedOn службы. По умолчанию командлет Get-Service получает все службы. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController, System.String Объект службы или имя службы можно передать командлету Get-Service по к онвейеру. ВЫХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController Командлет Get-Service возвращает объекты, представляющие службы на комп ьютере. ПРИМЕЧАНИЯ Командлет Get-Service также можно вызывать с помощью встроенного псевдо нима "gsv". Дополнительные сведения см. в разделе About_Aliases. Командлет Get-Service отображает список служб, только если пользователь имеет право на их просмотр. Если командлет Get-Service не отображает с лужбы, возможно, это вызвано отсутствием требуемых прав. Чтобы найти имена и отображаемые имена всех служб на компьютере, введит е команду "get-service". Имена служб содержатся в столбце Name, а отобр ажаемые имена — в столбце DisplayName. При сортировке в порядке возрастания по значению свойства Status остано вленные ("Stopped") службы отображаются раньше выполняющихся ("Running" ) служб. Свойство Status является свойством перечисляемого типа, приним ающим ограниченный набор значений состояния, которым соответствуют целы е числа. Сортировка выполняется по числу, а не по значению. Остановленн ые службы отображаются раньше выполняющихся, поскольку значению "Stoppe d" соответствует число 1, а значению "Running" — число 4. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-service Описание ----------- Эта команда извлекает все службы на компьютере. То же самое произошло бы пр и вводе команды "get-service *". По умолчанию для каждой службы выводятся т акие параметры, как состояние, имя службы и отображаемое имя. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-service wmi* Описание ----------- Эта команда извлекает службы, имена которых начинаются с "WMI" (сокращение для Windows Management Instrumentation, инструментарий управления Windows). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-service -displayname *network* Описание ----------- Эта команда выводит на экран список служб, отображаемые имена которых включ ают слово "network". Она позволяет найти сетевые службы, даже если в их именах не сод ержится подстрока "Net" (например, xmlprov — Network Provisioning Service). -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-service -name win* -exclude winrm Описание ----------- Эти команды получают только службы, имена которых начинаются на "win", кром е службы WinRM. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-service | where-object {$_.Status -eq "Running"} Описание ----------- Эта команда отображает только работающие в данный момент службы. Эта команд а с помощью командлета Get-Service получает все службы на компьютере. Опера тор конвейера (|) передает результаты командлету Where-Object, который отби рает среди них те, для которых параметр Status имеет значение "Running". Status — не единственное свойство объектов служб. Чтобы просмотреть все сво йства, введите "get-service | get-member". -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-service -computername Server02 Описание ----------- Эта команда получает службы на удаленном компьютере Server02. Параметр ComputerName командлета Get-Service не использует удаленное взаимо действие Windows PowerShell, поэтому его можно применять, даже если компьют ер не настроен на удаленное взаимодействие в Windows PowerShell. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-service | where-object {$_.DependentServices} | format-list -prop erty Name, DependentServices, @{Label="NoOfDependentS ervices"; Expression={$_.dependentservices.count}} Name : AudioEndpointBuilder DependentServices : {AudioSrv} NoOfDependentServices : 1 Name : Dhcp DependentServices : {WinHttpAutoProxySvc} NoOfDependentServices : 1 ... Описание ----------- Эти команды выводят список служб на компьютере, у которых есть зависимые сл ужбы. Первая команда с помощью командлета Get-Service получает службы на компьюте ре. С помощью оператора конвейера (|) она передает службы командлету Where- Object, который выбирает службы, значение свойства DependentServices которы х отлично от "null". Следующий оператор конвейера передает результаты командлету Format-List. Па раметр Property используется в команде для отображения имени службы, имен з ависимых служб и значений вычисляемого свойства, определяющих число зависим ых служб каждой службы. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>C:\PS> get-service s* | sort-object status Status Name DisplayName ------ ---- ----------- Stopped stisvc Windows Image Acquisition (WIA) Stopped SwPrv MS Software Shadow Copy Provider Stopped SysmonLog Performance Logs and Alerts Running Spooler Print Spooler Running srservice System Restore Service Running SSDPSRV SSDP Discovery Service Running ShellHWDetection Shell Hardware Detection Running Schedule Task Scheduler Running SCardSvr Smart Card Running SamSs Security Accounts Manager Running SharedAccess Windows Firewall/Internet Connectio... Running SENS System Event Notification Running seclogon Secondary Logon C:\PS> get-service s* | sort-object status -descending Status Name DisplayName ------ ---- ----------- Running ShellHWDetection Shell Hardware Detection Running SharedAccess Windows Firewall/Internet Connectio... Running Spooler Print Spooler Running SSDPSRV SSDP Discovery Service Running srservice System Restore Service Running SCardSvr Smart Card Running SamSs Security Accounts Manager Running Schedule Task Scheduler Running SENS System Event Notification Running seclogon Secondary Logon Stopped SysmonLog Performance Logs and Alerts Stopped SwPrv MS Software Shadow Copy Provider Stopped stisvc Windows Image Acquisition (WIA) Описание ----------- На примере этой команды показано, что при сортировке служб в порядке возрас тания по значению свойства Status остановленные службы отображаются раньше выполняющихся служб. Остановленные службы отображаются раньше выполняющихся , поскольку свойство Status является перечисляемым и значению "Stopped" соо тветствует число 1, а значению "Running" — число 4. Чтобы в списке сначала отображались выполняющиеся службы, используйте парам етр Descending командлета Sort-Object. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-service -name winrm -computername localhost, Server01, Server02 | format-table -property MachineName, Status, Name, DisplayName -auto MachineName Status Name DisplayName ------------ ------ ---- ----------- localhost Running WinRM Windows Remote Management (WS-Management) Server01 Running WinRM Windows Remote Management (WS-Management) Server02 Running WinRM Windows Remote Management (WS-Management) Описание ----------- Эта команда с помощью командлета Get-Service запускает команду "Get-Service Winrm" на двух удаленных компьютерах и на локальном компьютере ("localhost "). Команда Get-Service выполняется на удаленных компьютерах и возвращает резул ьтаты на локальный компьютер. С помощью оператора конвейера (|) результаты передаются командлету Format-Table, который форматирует набор служб в виде таблицы. Параметр Property используется в команде Format-Table для задания отображаемых в таблице свойств, включая свойство MachineName. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>get-service winrm -requiredServices Описание ----------- Эта команда позволяет получить службы, которые требуются службе WinRM. Команда возвращает значение свойства ServicesDependedOn службы. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>"winrm" | get-service Описание ----------- Эта команда получает службу WinRM на локальном компьютере. В этом примере п оказано, что для передачи строки имени службы (заключенной в кавычки) коман длету Get-Service можно использовать оператор конвейера (|). ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113332 Start-Service Stop-Service Restart-Service Resume-Service Suspend-Service Set-Service New-Service Get-TraceSource ИМЯ Get-TraceSource ОПИСАНИЕ Возвращает компоненты Windows PowerShell, подготовленные к трассировке. СИНТАКСИС Get-TraceSource [[-Name] <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-TraceSource возвращает источники трассировки для используемых компонентов Windows PowerShell. По этим данным можно узнать, для каких ком понентов Windows PowerShell возможна трассировка. При трассировке компонент создает подробные сообщения о каждом этапе своей внутренней работы. Разраб отчики могут использовать трассировочные данные для мониторинга потока данн ых и выполнения программы, а также для поиска ошибок. Командлеты трассировк и были созданы для разработчиков Windows PowerShell, однако доступны всем п ользователям. ПАРАМЕТРЫ -Name <string[]> Возвращает только указанные источники трассировки. Подстановочные знаки разрешены. Имя параметра ("Name") указывать необязательно. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую имя источника трассировки, можно передать по конвейе ру командлету Get-TraceSource. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSTraceSource Командлет Get-TraceSource возвращает объекты, представляющие источники трассировки. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-traceSource *provider* Описание ----------- Эта команда возвращает все источники трассировки, имена которых включают сл ово "provider". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-tracesource Описание ----------- Эта команда возвращает все компоненты Windows PowerShell, для которых возмо жна трассировка. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113333 Set-TraceSource Trace-Command Get-Transaction ИМЯ Get-Transaction ОПИСАНИЕ Получает текущую (активную) транзакцию. СИНТАКСИС Get-Transaction [<CommonParameters>] ОПИСАНИЕ Командлет Get-Transaction возвращает объект, представляющий текущую транзак цию в сеансе. Этот командлет никогда не возвращает более одного объекта, поскольку в кажд ый момент времени может быть активной только одна транзакция. При запуске о дной или нескольких независимых транзакций (с помощью параметра Independent командлета Start-Transaction) активной транзакцией является последняя запу щенная транзакция; именно эту транзакцию возвращает командлет Get-Transacti on. После отката или фиксации всех активных транзакций командлет Get-Transactio n отображает транзакцию, которая являлась последней активной транзакцией в сеансе. Командлет Get-Transaction входит в набор командлетов, поддерживающих обрабо тку транзакций в Windows PowerShell. Дополнительные сведения см. в разделе about_Transactions. ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSTransaction Командлет Get-Transaction возвращает объект, представляющий текущую тра нзакцию. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>start-transaction C:\PS> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 1 Active Описание ----------- Эта команда с помощью командлета Get-Transaction получает текущую транзакци ю. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-transaction | get-member Name MemberType Definition ---- ---------- ---------- Dispose Method System.Void Dispose(), System.Void Dispose(Bo olean disposing) Equals Method System.Boolean Equals(Object obj) GetHashCode Method System.Int32 GetHashCode() GetType Method System.Type GetType() ToString Method System.String ToString() IsCommitted Property System.Boolean IsCommitted {get;} IsRolledBack Property System.Boolean IsRolledBack {get;} RollbackPreference Property System.Management.Automation.RollbackSeverity RollbackPreference {get;} SubscriberCount Property System.Int32 SubscriberCount {get;set;} Описание ----------- Эта команда с помощью командлета Get-Member отображает свойства и методы об ъекта транзакции. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>cd hklm:\software HKLM:\SOFTWARE> Start-Transaction HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction HKLM:\SOFTWARE> Undo-Transaction HKLM:\SOFTWARE> Get-Transaction RollbackPreference SubscriberCount Status ------------------ --------------- ---------- Error 0 RolledBack Описание ----------- Эта команда отображает значения свойств объекта транзакции, откат которой б ыл выполнен. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>cd hklm:\software HKLM:\SOFTWARE> Start-Transaction HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction HKLM:\SOFTWARE> Complete-Transaction HKLM:\SOFTWARE> Get-Transaction RollbackPreference SubscriberCount Status ------------------ --------------- --------- Error 1 Committed Описание ----------- Эта команда отображает значения свойств объекта транзакции, которая была за фиксирована. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>cd hklm:\software HKLM:\SOFTWARE> Start-Transaction HKLM:\SOFTWARE> New-Item MyCompany -UseTransaction HKLM:\SOFTWARE> Start-Transaction HKLM:\SOFTWARE> New-Item MyCompany2 -UseTransaction HKLM:\SOFTWARE> Get-Transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 2 Active HKLM:\SOFTWARE> Complete-Transaction HKLM:\SOFTWARE> Get-Transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 1 Active HKLM:\SOFTWARE> Complete-Transaction HKLM:\SOFTWARE> Get-Transaction RollbackPreference SubscriberCount Status ------------------ --------------- --------- Error 1 Committed Описание ----------- В этом примере показано, что происходит с объектом транзакции при запуске т ранзакции во время выполнения другой транзакции. Обычно такая ситуация возн икает, если в скрипте, осуществляющем запуск транзакции, содержится функция или вызов скрипта, включающего другую завершенную транзакцию. Если в команде Start-Transaction не задан параметр Independent, команда Sta rt-Transaction не создает новую транзакцию. Вместо этого она добавляет втор ого подписчика в исходную транзакцию. Первая команда Start-Transaction запускает транзакцию. Команда New-Item с п араметром UseTransaction является частью транзакции. Вторая команда Start-Transaction добавляет подписчика в транзакцию. Следующ ая команда New-Item также является частью транзакции. Первая команда Get-Transaction отображает транзакцию с несколькими подписчи ками. Обратите внимание, что количество подписчиков равно 2. Первая команда Complete-Transaction не фиксирует транзакцию, но сокращает к оличество подписчиков до 1. Вторая команда Complete-Transaction фиксирует транзакцию. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>HKLM:\SOFTWARE> Start-Transaction HKLM:\SOFTWARE> Get-Transaction RollbackPreference SubscriberCount IsRolledBack IsCommitted ------------------ --------------- ------------ ----------- Error 1 False False HKLM:\SOFTWARE> Start-Transaction -Independent HKLM:\SOFTWARE> Get-Transaction RollbackPreference SubscriberCount IsRolledBack IsCommitted ------------------ --------------- ------------ ----------- Error 1 False False HKLM:\SOFTWARE> Complete-Transaction HKLM:\SOFTWARE> Get-Transaction HKLM:\SOFTWARE> Complete-Transaction HKLM:\SOFTWARE> Get-Transaction Описание ----------- В этом примере показано, что происходит с объектом транзакции при запуске н езависимой транзакции во время выполнения другой транзакции. Первая команда Start-Transaction запускает транзакцию. Команда New-Item с п араметром UseTransaction является частью транзакции. Вторая команда Start-Transaction добавляет подписчика в транзакцию. Следующ ая команда New-Item также является частью транзакции. Первая команда Get-Transaction отображает транзакцию с несколькими подписчи ками. Обратите внимание, что количество подписчиков равно 2. Первая команда Complete-Transaction сокращает количество подписчиков до 1, но не фиксирует транзакцию. Вторая команда Complete-Transaction фиксирует транзакцию. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135220 about_Transactions about_Providers Start-Transaction Complete-Transaction Undo-Transaction Use-Transaction Get-UICulture ИМЯ Get-UICulture ОПИСАНИЕ Получает текущие параметры культуры пользовательского интерфейса операционн ой системы. СИНТАКСИС Get-UICulture [<CommonParameters>] ОПИСАНИЕ Командлет Get-UICulture получает сведения о текущих параметрах культуры пол ьзовательского интерфейса Windows. Культура пользовательского интерфейса оп ределяет строки, которые используются в качестве элементов пользовательског о интерфейса, например меню и сообщений. Можно также использовать командлет Get-Culture, который получает информацию о текущей культуре системы. Культура определяет формат отображения таких э лементов, как числа, валюта и даты. ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Globalization.CultureInfo Командлет Get-UICulture возвращает объект, представляющий текущую культ уру пользовательского интерфейса. ПРИМЕЧАНИЯ Кроме того, можно использовать переменные $PsCulture и $PsUICulture. В переменной $PsCulture хранится имя текущей культуры, а в переменной $Ps UICulture — имя текущей культуры пользовательского интерфейса. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-uiculture Описание ----------- Эта команда возвращает сведения о текущей культуре пользовательского интерф ейса. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-uiculture | format-list * Описание ----------- Эта команда отображает значения всех свойств текущей культуры пользовательс кого интерфейса в виде списка. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>(get-uiculture).calendar Описание ----------- Эта команда отображает текущие значения свойства Calendar текущей культуры пользовательского интерфейса. Calendar — это только одно свойство культуры пользовательского интерфейса. Чтобы просмотреть все свойства, введите "get- uiculture | get-member". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>(get-uiculture).datetimeformat.shortdatepattern Описание ----------- Эта команда отображает шаблон формата краткой даты, принятый в текущей куль туре пользовательского интерфейса. Чтобы просмотреть все дочерние свойства для свойства DateTimeFormat культуры пользовательского интерфейса, введите команду "(get-uiculture).datetimeformat | gm". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113334 Get-Unique ИМЯ Get-Unique ОПИСАНИЕ Возвращает уникальные элементы из отсортированного списка. СИНТАКСИС Get-Unique [-AsString] [-InputObject <psobject>] [<CommonParameters>] Get-Unique [-OnType] [-InputObject <psobject>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Unique сравнивает каждый элемент отсортированного списка со с ледующим, исключает дубликаты и возвращает только по одному экземпляру кажд ого элемента. Для правильной работы этого командлета список должен быть отс ортирован. ПАРАМЕТРЫ -AsString [<SwitchParameter>] Указывает, что данные должны быть обработаны как строка. Если этот пара метр не указан, данные обрабатываются как объект, поэтому при передаче командлету Get-Unique коллекции объектов одного типа (например коллекци и файлов) он возвращает только один объект (первый). Этот параметр можн о использовать для нахождения уникальных значений свойств объектов, нап ример имен файлов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Принимает входные значения для командлета Get-Unique. Введите переменну ю, содержащую объекты, либо получающую их команду или выражение. Командлет Get-Unique рассматривает ввод, переданный с использованием па раметра InputObject, как коллекцию; он не работает с отдельными элемент ами коллекции. Так как коллекция является одним элементом, ввод, переда нный с помощью параметра InputObject, всегда возвращается в неизменном виде. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -OnType [<SwitchParameter>] Возвращает только один объект каждого типа. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект любого типа можно передать командлету Get-Unique по конвей еру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Тип объекта, возвращаемого командлетом Get-Unique, определяется входным и данными. ПРИМЕЧАНИЯ Командлет Get-Unique также можно вызывать с помощью встроенного псевдон има "gu". Дополнительные сведения см. в разделе about_Aliases. Для сортировки списка используйте командлет Sort-Object. Кроме того, дл я нахождения уникальных элементов списка можно использовать параметр Un ique командлета Sort-Object. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$a = $(foreach ($line in get-content C:\Test1\File1.txt) {$line.tolow er().split(" ")}) | sort | get-unique C:\PS> $a.count Описание ----------- Эти команды определяют число уникальных слов в текстовом файле. Первая команда возвращает содержимое файла File.txt. Она преобразует каждую строку текста в нижний регистр, после чего разбивает текст на слова по зна ку пробела (" ") и помещает их в отдельные строки. Затем она сортирует полу чившийся список в алфавитном порядке (порядок сортировки по умолчанию) и ус траняет все повторяющиеся слова с помощью командлета Get-Unique. Результат сохраняется в переменной $a. Во второй команде с помощью свойства Count набора строк, сохраненных в пере менной $a, определяется число элементов в $a. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>1,1,1,1,12,23,4,5,4643,5,3,3,3,3,3,3,3 | sort-object | Get-Unique Описание ----------- Эта команда возвращает уникальные элементы набора целых чисел. Первая коман да принимает массив целых чисел, введенных в командной строке, и передает е го по конвейеру командлету Sort-Object для сортировки. Отсортированный масс ив передается по конвейеру командлету Get-Unique, который устраняет повторя ющиеся элементы. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-childitem | sort-object {$_.GetType()} | unique -OnType Описание ----------- Эта команда с помощью командлета Get-ChildItem извлекает содержимое локальн ого каталога, включающего файлы и каталоги. Оператор конвейера (|) передает результаты командлету Sort-Object. Выражение "$_.GetType()" указывает, что метод GetType выполняется для каждого файла или каталога. Затем командлет Sort-Object сортирует элементы по типу. Другой оператор конвейера передает результаты командлету Get-Unique. Параметр OnType указывает, что командлет Get-Unique должен вернуть только по одному объекту каждого типа. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process | sort-object | select processname | get-unique -asstring Описание ----------- Эта команда возвращает имена выполняемых на компьютере процессов, устранив перед этим дубликаты. Команда Get-Process возвращает все процессы на компьютере. Оператор конвейе ра (|) передает результат командлету Sort-Object, который по умолчанию сорт ирует процессы по значению свойства ProcessName в алфавитном порядке. Резул ьтат передается по конвейеру командлету Select-Object, который выбирает тол ько значения свойства ProcessName каждого объекта. Затем эти значения перед аются по конвейеру командлету Get-Unique для устранения повторяющихся значе ний. Параметр AsString указывает командлету Get-Unique, что значения ProcessName должны обрабатываться как строки. Без этого параметра командлет Get-Unique обработал бы значения ProcessName как объекты и возвратил бы только один э кземпляр объекта, то есть первое имя процесса в списке. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113335 Select-Object Sort-Object Get-Variable ИМЯ Get-Variable ОПИСАНИЕ Получает переменные, определенные для текущей консоли. СИНТАКСИС Get-Variable [[-Name] <string[]>] [-Exclude <string[]>] [-Include <string[] >] [-Scope <string>] [-ValueOnly] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Variable получает переменные Windows PowerShell, определенные для текущей консоли. Можно извлечь только значения переменных, указав пара метр ValueOnly, а также отфильтровать возвращенные переменные по имени. ПАРАМЕТРЫ -Exclude <string[]> Исключает указанные элементы. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Определяет элементы, которые будут обработаны командлетом, и исключает все остальные. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает имя переменной. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Scope <string> Получает только переменные в заданной области. Допустимые значения: "Gl obal", "Local", "Script" или номер относительно текущей области (от 0 д о количества областей, где 0 — текущая область, а 1 — ее родительская о бласть). По умолчанию используется значение "Local". Дополнительные све дения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ValueOnly [<SwitchParameter>] Получает только значение переменной. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую имя переменной, можно передать по конвейеру командле ту Get-Variable. ВЫХОДНЫЕ ДАННЫЕ Variable object Командлет Get-Variable возвращает объект переменной System.Management.A utomation для каждой получаемой им переменной. Тип объекта зависит от п еременной. ПРИМЕЧАНИЯ Этот командлет не управляет переменными среды. Для управления переменны ми среды можно воспользоваться поставщиком переменных среды. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-variable m* Описание ----------- Эта команда отображает имена переменных, которые начинаются на букву "m". Т акже отображаются значения переменных. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-variable m* -valueonly Описание ----------- Эта команда отображает только значения переменных, имена которых начинаются на букву "m". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-variable -include M*,P* | sort-object name Описание ----------- Эта команда получает сведения о переменных, имена которых начинаются на бук ву "M" или "P". Результаты передаются по конвейеру командлету Sort-Object, сортируются по имени и отображаются. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-variable -scope 0 C:\PS> compare-object (get-variable -scope 0) (get-variable -scope 1) Описание ----------- Первая команда получает только переменные, определенные в локальной области . Она эквивалентна команде "get-variable -scope local", и ее можно сократит ь как "gv -s 0". Вторая команда с помощью командлета Compare-Object находит переменные, опре деленные в родительской области (Scope 1), но видимые только в локальной об ласти (Scope 0). ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113336 Set-Variable New-Variable Clear-Variable Remove-Variable Get-Verb Get-Verb [[-verb] <String[]>] [-Verbose] [-Debug] [-ErrorAction <ActionPreferen ce>] [-WarningAction <ActionPreference>] [-ErrorVariable <String>] [-WarningVar iable <String>] [-OutVariable <String>] [-OutBuffer <Int32>] Get-WinEvent ИМЯ Get-WinEvent ОПИСАНИЕ Получает события из журналов событий и файлов журналов отслеживания событий , находящихся на локальном компьютере и на удаленных компьютерах. СИНТАКСИС Get-WinEvent [-LogName] <string[]> [-ComputerName <string>] [-Credential <P SCredential>] [-FilterXPath <string>] [-Force <switch>] [-MaxEvents <int64> ] [-Oldest] [<CommonParameters>] Get-WinEvent [-Path] <string[]> [-ComputerName <string>] [-Credential <PSCr edential>] [-FilterXPath <string>] [-Force <switch>] [-MaxEvents <int64>] [ -Oldest] [<CommonParameters>] Get-WinEvent [-ProviderName] <string[]> [-ComputerName <string>] [-Credenti al <PSCredential>] [-FilterXPath <string>] [-Force <switch>] [-MaxEvents nt64>] [-Oldest] [<CommonParameters>] Get-WinEvent -FilterHashTable <Hashtable[]> [-ComputerName <string>] [-Cred ential <PSCredential>] [-Force <switch>] [-MaxEvents <int64>] [-Oldest] [ ommonParameters>] Get-WinEvent [-ListLog] <string[]> [-ComputerName <string>] [-Credential <P SCredential>] [<CommonParameters>] Get-WinEvent [-ListProvider] <string[]> [-ComputerName <string>] [-Credenti al <PSCredential>] [<CommonParameters>] Get-WinEvent -FilterXml <XmlDocument> [-ComputerName <string>] [-Credential <PSCredential>] [-Force <switch>] [-MaxEvents <int64>] [-Oldest] [ arameters>] ОПИСАНИЕ Командлет Get-WinEvent получает события из журналов событий, включая класси ческие журналы событий, такие как журналы системы и приложений, и журналы с обытий, создаваемые с помощью новой технологии журнала событий Windows, реа лизованной в Windows Vista. Он также получает события из файлов журналов, с озданных средством отслеживания событий для Windows (ETW). При вызове без параметров команда Get-WinEvent получает все события из журн алов событий компьютера. Чтобы прервать выполнение команды, нажмите сочетан ие клавиш CTRL+C. Кроме того, командлет Get-WinEvent создает список журналов событий и постав щиков журналов событий. События можно получать из выбранных журналов или жу рналов, созданных определенными поставщиками событий. В одной команде можно объединять события из различных источников. Командлет Get-WinEvent позволя ет фильтровать события с помощью запросов XPath, структурированных XML-запр осов и упрощенных запросов хэш-таблицы. Примечание. Командлет Get-WinEvent работает только в Windows Vista, Windows Server 2008 R2 и последующих версиях Windows. Кроме того, требуется платфо рма Microsoft .NET Framework 3.5 или более поздней версии. ПАРАМЕТРЫ -ComputerName <string> Получает события из журналов событий на указанном компьютере. Введите N etBIOS-имя, IP-адрес или полное доменное имя компьютера. По умолчанию и спользуется значение "Локальный компьютер". Этот параметр одновременно принимает только одно имя компьютера. Чтобы найти журналы событий или события на нескольких компьютерах, воспользуй тесь инструкцией ForEach. Дополнительные сведения о данном параметре см . в примерах. Чтобы получать журналы событий и события с удаленных компьютеров, порт брандмауэра для службы ведения журнала должен быть открыт для удаленног о доступа. Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName можно использовать, даже если компьютер не наст роен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например User01 или Domain01\User01. Или укаж ите объект PSCredential, например один из объектов, созданных командлет ом Get-Credential. При вводе имени пользователя система запросит пароль . Если указано только имя параметра, командлет запросит имя пользовател я и пароль. Требуется? false Позиция? named Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilterHashTable <Hashtable[]> Использует запрос в формате хэш-таблицы для выбора событий из одного ил и нескольких журналов событий. Запрос содержит хэш-таблицу с одной или несколькими парами "ключ-значение". К запросам в виде хэш-таблицы применяются следующие правила: -- Ключи и значения обрабатываются без учета регистра. -- Подстановочные знаки допускаются только в значениях, связанных с клю чами LogName и ProviderName. -- Каждый ключ может использоваться в каждой хэш-таблице только один ра з. -- Значение Path получает пути к файлам журналов ETL, EVT и EVTX. -- Ключи LogName, Path и ProviderName можно использовать в одном запрос е. -- Ключ UserID может получать допустимый идентификатор безопасности (SI D) или имя учетной записи домена, которое можно использовать для создан ия допустимого объекта System.Security.Principal.NTAccount. -- Значение Data получает данные события в неименованном поле. Это поле используется для событий в классических журналах событий. -- Ключ * представляет именованное поле данных событий. Если командлету Get-WinEvent не удается интерпретировать пару "ключ-зна чение", ключ интерпретируется с учетом регистра как имя данных события в событии. Допустимые пары "ключ-значение": -- LogName=<String[]> -- ProviderName=<String[]> -- Path=<String[]> -- Keywords=<Long[]> -- ID=<Int32[]> -- Level=<Int32[]> -- StartTime=<DateTime> -- EndTime=<DataTime> -- UserID=<SID> -- Data=<String[]> -- *=<String[]> Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -FilterXml <XmlDocument> Использует структурированный XML-запрос для выбора событий из одного ил и нескольких журналов событий. Для создания допустимого XML-запроса следует использовать функции "Созд ать настраиваемое представление" и "Фильтровать текущий журнал" средств а просмотра событий. Используйте эти функции в диалоговом окне для созд ания запроса, а затем перейдите на вкладку "XML" для просмотра запроса в формате XML. XML-запрос можно скопировать с вкладки "XML" и вставить в значение параметра FilterXml. Дополнительные сведения о возможностях средства просмотра событий см. в справке средства просмотра событий. Как правило, XML-запросы используются для создания сложных запросов, со держащих несколько инструкций XPath. Кроме того, формат XML позволяет и спользовать XML-элемент "Suppress", который исключает события из запрос а. Дополнительные сведения о схеме XML для запросов журнала событий см. в указанных ниже разделах библиотеки MSDN (Microsoft Developer Network ). -- "Схема запроса": http://go.microsoft.com/fwlink/?LinkId=143685 -- "Запросы событий XML" в разделе "Выбор событий": http://go.microsoft .com/fwlink/?LinkID=143608 Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -FilterXPath <string> Использует запрос XPath для выбора событий из одного или нескольких жур налов. Дополнительные сведения о языке XPath см. в разделе "Фильтры выбора" ра здела "Выбор событий" и в разделе "Справочник по XPath" в библиотеке MS DN. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force <switch> Получает журналы отладки и аналитики в дополнение к другим журналам соб ытий. Параметр Force необходим для получения журнала отладки или аналит ики, если значение параметра Name включает подстановочные знаки. По умолчанию командлет Get-WinEvent не обрабатывает эти журналы, если н е указано полное имя журнала отладки или журнала аналитики. Требуется? false Позиция? named Значение по умолчанию Журналы отладки и аналитики не воз вращаются в ответ на запросы с использованием подстановочных знаков. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ListLog <string[]> Получает заданные журналы событий. Введите имена журналов событий, разд еленные запятыми. Подстановочные знаки разрешены. Чтобы получить все жу рналы, введите значение *. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? true -ListProvider <string[]> Получает список заданных поставщиков журналов событий. Поставщик журнал а событий — это программа или служба, которая записывает события в журн ал событий. Введите имена поставщиков, разделенные запятыми. Подстановочные знаки р азрешены. Чтобы получить список поставщиков всех журналов событий, имею щихся на компьютере, введите значение *. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? true -LogName <string[]> Получает события из заданных журналов событий. Введите имена журналов с обытий, разделенные запятыми. Подстановочные знаки разрешены. Кроме тог о, можно передать имена журналов в Get-WinEvent с помощью конвейера. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? true -MaxEvents <int64> Задает максимальное число событий, возвращаемых Get-WinEvent. Введите ц елое число. По умолчанию возвращаются все события во всех журналах и фа йлах. Требуется? false Позиция? named Значение по умолчанию Все события Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Oldest [<SwitchParameter>] Возвращает события в порядке от старых к новым. По умолчанию события в озвращаются в порядке от новых к старым. Это параметр необходим для получения событий из ELT- и EVT-файлов, а та кже из журналов отладки и аналитики. В этих файлах события регистрируют ся в порядке от старых к новым и могут быть возвращены только в этом по рядке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Получает события из заданных файлов журналов событий. Введите пути к фа йлам журналов, разделенные запятыми, или используйте подстановочные зна ки для ввода шаблонов путей файлов. Командлет Get-WinEvent поддерживает файлы с расширениями EVT, EVTX и ET L. В одной команде можно объединять события из различных файлов и типов файлов. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? true -ProviderName <string[]> Возвращает события, записанные указанными поставщиками журналов событий . Введите имена поставщиков, разделенные запятыми, или используйте подс тановочные знаки для ввода шаблонов имен поставщиков. Поставщик журнала событий — это программа или служба, которая записывае т события в журнал событий. Такой поставщик не является поставщиком Win dows PowerShell. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? true <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String, System.Xml.XmlDocument, System.Collections.Hashtable. Параметр LogName (строка), запрос FilterXML и запрос FilterHashTable мо жно по конвейеру передать в командлет Get-WinEvent. ВЫХОДНЫЕ ДАННЫЕ System.Diagnostics.Eventing.Reader.EventLogConfiguration, System.Diagnostic s.Eventing.Reader.EventLogRecord, System.Diagnostics.Eventing.Reader.Provid erMetadata С параметром ListLog команда Get-WinEvent -Listlog возвращает объекты S ystem.Diagnostics.Eventing.Reader.EventLogConfiguration. С параметром L istProvider команда Get-WinEvent возвращает объекты System.Diagnostics.Eventing.Reader.ProviderMetadata. При исполь зовании всех других параметров командлет Get-WinEvent возвращает объект ы System.Diagnostics.Eventing.Reader.EventLogRecord. ПРИМЕЧАНИЯ Командлет Get-WinEvent заменяет командлет Get-EventLog на компьютерах п од управлением Windows Vista и более поздних версий Windows. Командлет Get-EventLog получает события только из классических журналов событий. Командлет Get-EventLog сохранен в Windows PowerShell 2.0 для операционн ых систем, предшествующих Windows Vista. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-winevent -listlog * Описание ----------- Эта команда получает все журналы, имеющиеся на локальном компьютере. Журналы указаны в порядке их получения командлетом Get-WinEvent. Как правил о, сначала извлекаются классические журналы, а затем — новые журналы обрабо тки событий Windows. Поскольку обычно используется более сотни журналов событий, для этого парам етра требуется имя журнала или шаблон имени. Чтобы получить все журналы, ис пользуйте значение *. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-winevent -listlog Setup | format-list -property * FileSize : 69632 IsLogFull : False LastAccessTime : 2/14/2008 12:55:12 AM LastWriteTime : 7/9/2008 3:12:05 AM OldestRecordNumber : 1 RecordCount : 3 LogName : Setup LogType : Operational LogIsolation : Application IsEnabled : True IsClassicLog : False SecurityDescriptor : O:BAG:SYD:(A;;0xf0007;;;SY)(A; (A;;0x1;;;S-1-5-32-573) LogFilePath : %SystemRoot%\System32\Winevt\L MaximumSizeInBytes : 1052672 LogMode : Circular OwningProviderName : Microsoft-Windows-Eventlog ProviderNames : {Microsoft-Windows-WUSA, Micro ProviderLevel : ProviderKeywords : ProviderBufferSize : 64 ProviderMinimumNumberOfBuffers : 0 ProviderMaximumNumberOfBuffers : 64 ProviderLatency : 1000 ProviderControlGuid : Описание ----------- Эти команды получают объект, представляющий классический системный журнал н а локальном компьютере. Объект содержит сведения о журнале, в том числе: ра змер журнала, поставщик журнала событий и путь к файлу, а также индикатор т ого, включен ли журнал. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-winevent -listlog * -computername Server01| where {$_.recordcount } Описание ----------- Эта команда извлекает только журналы событий на компьютере Server01, содерж ащие события. Многие журналы могут быть пустыми. Эта команда использует свойство RecordCount объекта EventLogConfiguration, возвращаемого командлетом Get-WinEvent при использовании параметра ListLog. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$s = "Server01", "Server02", "Server03" C:\PS> foreach ($server in $s) {$server; get-winevent -listlog "Windows PowerShell" -computername $se rver} Описание ----------- В данном примере команда извлекает объекты, представляющие журналы событий Windows PowerShell на трех компьютерах: Server01, Server02 и Server03. В ко манде используется ключевой слово Foreach, так как параметр ComputerName пр инимает только одно значение. Первая команда сохраняет имена компьютеров в переменной $s. Во второй команде используется инструкция Foreach. Для каждого из компьютер ов, указанных в переменной $s, выполняется команда в блоке скрипта (в фигур ных скобках). Сначала команда выводит имя компьютера. Затем она выполняет к оманду Get-WinEvent для получения объекта, представляющего журнал Windows P owerShell. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-winevent -listprovider * Описание ----------- Эта команда получает список поставщиков журналов событий на локальном компь ютере и журналов, в которые они выполняют запись (если есть). -------------------------- ПРИМЕР 6 -------------------------- C:\PS>(get-winevent -listlog Application).providernames Описание ----------- Эта команда возвращает всех поставщиков, которые выполняют запись в журнал приложений на локальном компьютере. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>>get-winevent -listprovider *policy* Описание ----------- Эта команда возвращает поставщиков журналов событий, имена которых содержат слово "policy". -------------------------- ПРИМЕР 8 -------------------------- C:\PS>(get-winevent -listprovider microsoft-windows-grouppolicy).events | f ormat-table id, description -auto Описание ----------- Эта команда возвращает список идентификаторов событий, созданных поставщико м событий Microsoft-Windows-GroupPolicy, и соответствующих описаний событий . В ней используется свойство Events объекта, возвращаемого командлетом Get-W inEvent при использовании параметра ListProvider, а также свойства ID и Des cription объекта в свойстве Events. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>$events = get-winevent -logname "Windows PowerShell" C:\PS> $events.count 195 C:\PS> $events | group-object id -noelement | sort-object count -desc Count Name ----- ---- 147 600 22 400 21 601 3 403 2 103 C:\PS> $events | group-object leveldisplayname -noelement Count Name ----- ---- 2 Warning 193 Information Описание ----------- В этом примере показано, как с помощью свойств объектов событий, возвращенн ых командлетом Get-WinEvent, получить сведения о событиях в журнале событий . Первая команда с помощью командлета Get-WinEvent возвращает все события в ж урнале событий Windows PowerShell. После этого они сохраняются в переменной $events. Имя журнала заключено в кавычки, поскольку оно содержит пробел. Вторая команда использует свойство Count коллекций объектов для определения количества записей в журнале событий. Третья команда отображает количество экземпляров каждого события в журнале, при этом сначала выводятся самые часто возникающие события. В данном приме ре чаще всего возникает событие с идентификатором 600. Четвертая команда группирует элементы по значению свойства LevelDisplayName для отображения количества сообщений типа Error, Warning и Information в ж урнале. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>get-winevent -logname *disk*, Microsoft-Windows-Kernel-WHEA Описание ----------- Эта команда извлекает события типа "Ошибка", имена которых содержат слово " disk", из всех журналов событий на компьютере, а также из журнала событий M icrosoft-Windows-Kernel-WHEA. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>get-winevent -path 'c:\ps-test\Windows PowerShell.evtx' Описание ----------- Эта команда получает события из копии файла журнала событий Windows PowerSh ell, находящейся в тестовом каталоге. Путь заключен в кавычки, поскольку им я журнала содержит пробел. -------------------------- ПРИМЕР 12 -------------------------- C:\PS>get-winevent -path 'c:\tracing\tracelog.etl' -maxevents 100 -oldest C:\PS> get-winevent -path 'c:\tracing\tracelog.etl' -oldest | sort-object - property timecreated -desc | select-object -first 100 Описание ----------- Эти команды извлекают первые 100 событий из файла журнала средства отслежив ания событий для Windows (ETW). Первая команда извлекает из журнала 100 самых ранних событий. С помощью ком андлета Get-WinEvent она получает события из файла Tracelog.etl. Параметр M axEvents ограничивает количество извлекаемых событий до 100. События перечи сляются в порядке их записи в журнал (от старых к новым), поэтому необходим о использовать параметр Oldest. Вторая команда извлекает из журнала 100 последних событий. С помощью команд лета Get-WinEvent она получает все события из файла Tracing.etl. Она переда ет события командлету Sort-Object, который сортирует их в порядке убывания зна чений свойства TimeCreated. Затем упорядоченные события передаются командле ту Select-Object для выбора 100 последних событий. -------------------------- ПРИМЕР 13 -------------------------- C:\PS>get-winevent -path "c:\tracing\tracelog.etl", "c:\Logs\Windows PowerS hell.evtx" -oldest | where {$_.id -eq "103"} Описание ----------- В этом примере показано, как извлечь события из файла журнала отслеживания событий (ETL) и из копии файла журнала Windows PowerShell (EVTX), сохраненн ой в тестовом каталоге. В одной команде можно использовать различные типы файлов. Поскольку файлы с одержат объект .NET Framework одного типа (объект EventLogRecord), для их ф ильтрации можно использовать одни и те же свойства. Обратите внимание, что в команде необходимо использовать свойство Oldest, п отому что выполняется чтение из файла ETL, однако параметр Oldest применяет ся в отношении обоих файлов. -------------------------- ПРИМЕР 14 -------------------------- C:\PS># Use the Where-Object cmdlet C:\PS> $yesterday = (get-date) - (new-timespan -day 1) C:\PS> get-winevent -logname "Windows PowerShell" | where {$_.timecreated - ge $yesterday} # Uses FilterHashTable C:\PS> $yesterday = (get-date) - (new-timespan -day 1) C:\PS> get-winevent -FilterHashTable @{LogName='Windows PowerShell'; Level= 3; StartTime=$yesterday} # Use FilterXML C:\PS> get-winevent -FilterXML "<QueryList><Query><Select Path='Windows Pow erShell'>*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000 ]]]</Select></Query></QueryList>" # Use FilterXPath C:\PS> get-winevent -LogName "Windows Powershell" -FilterXPath "*[System[Le vel=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]" Описание ----------- В этом примере продемонстрированы различные методы фильтрации для выбора со бытий из журнала событий. Все эти команды извлекают из журнала событий Wind ows PowerShell события, произошедшие в течение последних 24 часов. Фильтрация эффективнее использования командлета Where-Object, поскольку фил ьтры применяются во время извлечения объектов (вместо того чтобы сначала из влечь все объекты, а затем фильтровать их). Поскольку даты неудобно задавать в форматах XML и XPath, для создания XML-с одержимого дат используется функция фильтрации текущего журнала средства пр осмотра событий. Дополнительные сведения об этой возможности см. в справке средства просмотра событий. -------------------------- ПРИМЕР 15 -------------------------- C:\PS>$date = (get-date).AddDays(-2) C:\PS> $events = get-winevent -FilterHashTable @{ logname = "Microsoft-Wind ows-Diagnostics-Performance/Operational"; StartTime = $date; ID = 100 } Описание ----------- В этом примере для получения событий из журнала производительности использу ется хэш-таблица фильтра. Первая команда с помощью командлета Get-Date и метода AddDays получает дату , на два дня предшествующую текущей дате. Дата сохраняется в переменной $da te. Вторая команда использует командлет Get-WinEvent с параметром FilterHashTab le. Ключи хэш-таблицы определяют фильтр для выбора из журнала производитель ности событий с идентификатором события 100, которые произошли в течение по следних двух дней. Ключ LogName задает журнал событий, ключ StartTime — дату, а ключ ID — иден тификатор события. -------------------------- ПРИМЕР 16 -------------------------- C:\PS>$starttime = (get-date).adddays(-7) C:\PS> $ie-error = Get-WinEvent -FilterHashtable @{logname="application"; p rovidername="Application Error"; data="iexplore.exe"; starttime=$starttime} Описание ----------- В этом примере хэш-таблица фильтра используется для поиска ошибок приложени я Internet Explorer, произошедших в течение последней недели. Первая команда получает дату, на семь дней предшествующую текущей дате, и с охраняет ее в переменной $starttime. Вторая команда использует командлет Get-WinEvent с параметром FilterHashTab le. Ключи хэш-таблицы определяют фильтр для выбора из журнала приложений со бытий, записанных поставщиком ошибок приложений и содержащих фразу "iexplor e.exe". Ключ LogName задает журнал событий. Ключ ProviderName задает поставщик собы тий, ключ StartTime — начальную дату событий, а ключ Data — текст в сообщен ии события. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=138336 Get-EventLog Get-Counter about_EventLogs Get-WmiObject ИМЯ Get-WmiObject ОПИСАНИЕ Получает экземпляры классов WMI или сведения о доступных классах. СИНТАКСИС Get-WmiObject [-Authority <string>] [-Amended] [-AsJob] [-Authentication {D efault | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-Enab leAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Imperson ate | Delegate}] [-Locale <string>] [-Namespace <string>] [-ThrottleLimit int>] [<CommonParameters>] Get-WmiObject [[-Class] <string>] [-Authority <string>] [-List] [-Recurse] [-Amended] [-AsJob] [-Authentication {Default | None | Connect | Call | Pac ket | PacketIntegrity | PacketPrivacy | Unchanged}] [-ComputerName <string[ ]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {De fault | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-ThrottleLimit <int>] [<CommonParameters>] Get-WmiObject [-Authority <string>] [-Amended] [-AsJob] [-Authentication {D efault | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-Enab leAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Imperson ate | Delegate}] [-Locale <string>] [-Namespace <string>] [-ThrottleLimit int>] [<CommonParameters>] Get-WmiObject [-Class] <string> [[-Property] <string[]>] [-Authority <strin g>] [-DirectRead] [-Filter <string>] [-Amended] [-AsJob] [-Authentication { Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-ComputerName <string[]>] [-Credential <PSCredential>] [-Ena bleAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Imperso nate | Delegate}] [-Locale <string>] [-Namespace <string>] [-ThrottleLimit <int>] [<CommonParameters>] Get-WmiObject -Query <string> [-Authority <string>] [-DirectRead] [-Amended ] [-AsJob] [-Authentication {Default | None | Connect | Call | Packet | Pac ketIntegrity | PacketPrivacy | Unchanged}] [-ComputerName <string[]>] [-Cre dential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | A nonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespa ce <string>] [-ThrottleLimit <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-WmiObject отображает экземпляры классов WMI или сведения о до ступных классах WMI. Параметр ComputerName всегда можно использовать для ук азания удаленного компьютера. При задании параметра List этот командлет изв лекает сведения о классах WMI, доступных в заданном пространстве имен. При указании параметра Query командлет запускает инструкцию языка запросов WMI (WQL). Командлет Get-WmiObject не использует инфраструктуру удаленного взаимодейст вия Windows PowerShell для выполнения удаленных операций. Параметр Computer Name командлета Get-WmiObject можно использовать, даже если компьютер не со ответствует требованиям для удаленного взаимодействия Windows PowerShell и не настроен на удаленное взаимодействие в Windows PowerShell. ПАРАМЕТРЫ -Amended [<SwitchParameter>] Получает или задает значение, указывающее, должны ли возвращаемые из хр анилища WMI объекты содержать уточняющую информацию. Как правило, уточн яющая информация представляет собой прикрепленные к объекту WMI локализ уемые сведения, например описание объекта и его свойств. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания. Этот параметр служит для запуска команд, выполнение которых занимает длительное время. При использовании параметра AsJob команда возвращает объект, представля ющий фоновое задание, а затем отображает командную строку. Пока задание выполняется можно продолжать работу в сеансе. Если командлет Get-WmiOb ject используется для работы с удаленным компьютером, задание создается на локальном компьютере, и результаты с удаленных компьютеров автомати чески возвращаются на локальный компьютер. Для управления заданием испо льзуйте командлеты, в именах которых содержится существительное Job (ко мандлеты Job). Чтобы получить результаты задания, используйте командлет Receive-Job. Примечание. Чтобы использовать этот параметр для удаленных компьютеров, для локального и удаленного компьютеров должно быть настроено удаленно е взаимодействие. Кроме того, при работе с компьютером под управлением Windows Vista и более поздних версий Windows необходимо запускать Windo ws PowerShell командой "Запуск от имени администратора". Дополнительные сведения см. в разделе about_Remote_Requirements. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в р азделах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationLevel> Задает уровень проверки подлинности, используемый для WMI-соединения. Д опустимые значения: -1: Unchanged 0: Default 1: None (проверка подлинности не используется). 2: Connect (проверка подлинности выполняется только при установке клиен том подключения к приложению). 3: Call (проверка подлинности выполняется только в начале каждого вызов а при получении запроса приложением). 4: Packet (проверка подлинности выполняется при обработке всех данных, полученных от клиента). 5: PacketIntegrity (для всех данных, передаваемых между клиентом и прил ожением, проводится проверка подлинности и проверка целостности). 6: PacketPrivacy (используются свойства других уровней проверки подлинн ости, все данные шифруются). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authority <string> Задает центр, который используется для проверки подлинности WMI-соедине ния. Можно указать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра Authority значение "ntlm domain:<имя_домена>", где <имя_домена> — допустимое имя домена NTLM. Чт обы использовать Kerberos, укажите "kerberos:<имя_домена>\<имя_сервера> ". При подключении к локальному компьютеру нельзя использовать параметр Authority. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Class <string> Задает имя класса WMI. При использовании данного параметра командлет из влекает экземпляры класса WMI. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Используйте имя локального компьютера, "localhost" или точку (.) что бы указать "Локальный компьютер". Локальный компьютер используется по у молчанию. Если пользователь и удаленный компьютер находятся в разных до менах, необходимо использовать полное доменное имя. Значение этого пара метра также может передаваться командлету по конвейеру. Этот параметр не использует функцию удаленного взаимодействия Windows P owerShell, которая использует протокол WS-Management. Параметр Computer Name командлета Get-WmiObject можно использовать, даже если компьютер н е настроен на выполнение удаленных команд по протоколу WS-Management. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или User@Contoso.com. Или укажите объект PSCredential, например объект, возвращенный командлетом Get-Credential. При вводе имени польз ователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DirectRead [<SwitchParameter>] Определяет, будет ли запрашиваться прямой доступ к поставщику WMI для у казанного класса независимо от его базового класса или производных от н его классов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EnableAllPrivileges [<SwitchParameter>] Включает все привилегии текущего пользователя перед вызовом WMI из кома нды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает предложение Where, используемое в качестве фильтра. Использует с интаксис языка запросов WMI (WQL). Важно Ключевое слово "Where" не должно включаться в значение параметра . Например, следующие команды возвращают только логические диски, у кот орых свойство DeviceID имеет значение "c:", и службы с именем "WinRM", при этом ключевое слово "Where" не используется. get-WmiObject Win32_LogicalDisk -filter "DeviceID = 'c:' " get-wmiobject win32_service -filter "name='WinRM'" Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Impersonation <ImpersonationLevel> Задает используемый уровень олицетворения. Допустимые значения: 0: Default (считывает значение уровня представления по умолчанию из лок ального реестра, обычно это значение равняется "3: Impersonate"). 1: Anonymous (скрывает учетные данные вызывающего). 2: Identify (позволяет объектам запрашивать учетные данные вызывающего) . 3: Impersonate (позволяет объектам использовать учетные данные вызывающ его). 4: Delegate (позволяет объектам разрешать другим объектам использовать учетные данные вызывающего). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -List [<SwitchParameter>] Указывает, извлекаются ли и отображаются ли имена классов WMI пространс тва имен хранилища WMI, заданного значением параметра Namespace. Этот к омандлет не использует запись реестра Default Namespace раздела "HKEY_L OCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting" для определения простра нства имен по умолчанию. Если указан параметр List и при этом не указан параметр Namespace, по умолчанию используется пространство имен root\C IMV2. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Locale <string> Задает предпочтительную локаль для объектов WMI. Задает значение параме тра Locale как массив в формате MS_<LCID> в желаемом порядке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Namespace <string> При использовании с параметром Class данный параметр задает пространств о имен хранилища WMI, в котором находится указанный класс WMI. При испо льзовании с параметром List данный параметр задает пространство имен, и з которого следует извлекать сведения о классе WMI. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Property <string[]> Задает свойство или набор свойств класса WMI, которые необходимо извлеч ь. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Query <string> Задает выполняемую инструкцию языка запросов WMI (WQL). Этот параметр н е поддерживает запрос событий. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Recurse [<SwitchParameter>] Указывает команде выполнять поиск имени класса, заданного параметром Cl ass, в текущем пространстве имен и других пространствах имен. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Дает возможность пользователю указать пороговое значение количества опе раций WMI, которые могут выполняться одновременно. Этот параметр исполь зуется вместе с параметром AsJob. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету Get-WmiObject по конвейеру. ВЫХОДНЫЕ ДАННЫЕ PSObject или System.Management.Automation.RemotingJob Если задан параметр AsJob, командлет возвращает объект задания. В проти вном случае командлет Get-WmiObject возвращает объект в зависимости от параметра Class. ПРИМЕЧАНИЯ Для получения доступа к сведениям WMI на удаленном компьютере с помощью командлета необходимо, чтобы запускающий его пользователь входил на уд аленном компьютере в группу "Администраторы". Также можно изменить пара метры управления доступом к пространству имен WMI удаленного хранилища, заданные по умолчанию, чтобы предоставить права доступа другой учетной записи. По умолчанию отображаются только некоторые свойства класса WMI. Набор о тображаемых свойств для каждого класса WMI задается в файле конфигураци и Types.ps1xml. В одном из прилагаемых к настоящему разделу справки при меров показано, как переопределить это поведение при помощи командлета Format-List. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-wmiobject win32_process __GENUS : 2 __CLASS : Win32_Process __SUPERCLASS : CIM_Process __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_Process.Handle="0" __PROPERTY_COUNT : 45 __DERIVATION : {CIM_Process, CIM_LogicalElement, CIM_ManagedS ystemElement} __SERVER : SYSTEM01 __NAMESPACE : root\cimv2 __PATH : \\SYSTEM01\root\cimv2:Win32_Process.Handle="0" Caption : System Idle Process CommandLine : CreationClassName : Win32_Process CreationDate : CSCreationClassName : Win32_ComputerSystem CSName : SYSTEM01 Description : System Idle Process ExecutablePath : ExecutionState : Handle : 0 HandleCount : 0 InstallDate : KernelModeTime : 6138394740432 MaximumWorkingSetSize : MinimumWorkingSetSize : Name : System Idle Process OSCreationClassName : Win32_OperatingSystem OSName : Microsoftr Windows VistaT Ultimate |C:\Windows |\Device\Harddisk0\Partition3 OtherOperationCount : 0 OtherTransferCount : 0 PageFaults : 0 PageFileUsage : 0 ParentProcessId : 0 PeakPageFileUsage : 0 PeakVirtualSize : 0 PeakWorkingSetSize : 0 Priority : 0 PrivatePageCount : 0 ProcessId : 0 QuotaNonPagedPoolUsage : 0 QuotaPagedPoolUsage : 0 QuotaPeakNonPagedPoolUsage : 0 QuotaPeakPagedPoolUsage : 0 ReadOperationCount : 0 ReadTransferCount : 0 SessionId : 0 Status : TerminationDate : ThreadCount : 2 UserModeTime : 0 VirtualSize : 0 WindowsVersion : 6.0.6001 WorkingSetSize : 24576 WriteOperationCount : 0 WriteTransferCount : 0 ProcessName : System Idle Process Handles : 0 VM : 0 WS : 24576 Path : ... Описание ----------- Эта команда отображает сведения о всех процессах, выполняющихся на компьюте ре. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-wmiobject win32_service -computername 127.0.0.1 __GENUS : 2 __CLASS : Win32_Process __SUPERCLASS : CIM_Process __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_Process.Handle="0" __PROPERTY_COUNT : 45 __DERIVATION : {CIM_Process, CIM_LogicalElement, CIM_ManagedS ystemElement} __SERVER : SYSTEM02 __NAMESPACE : root\cimv2 __PATH : \\SYSTEM02\root\cimv2:Win32_Process.Handle="0" Caption : System Idle Process CommandLine : CreationClassName : Win32_Process CreationDate : CSCreationClassName : Win32_ComputerSystem CSName : SYSTEM02 Description : System Idle Process ExecutablePath : ExecutionState : Handle : 0 HandleCount : 0 InstallDate : KernelModeTime : 6138394740432 MaximumWorkingSetSize : MinimumWorkingSetSize : Name : System Idle Process OSCreationClassName : Win32_OperatingSystem OSName : Microsoftr Windows VistaT Ultimate |C:\Windows |\Device\Harddisk0\Partition3 OtherOperationCount : 0 OtherTransferCount : 0 PageFaults : 0 PageFileUsage : 0 ParentProcessId : 0 PeakPageFileUsage : 0 PeakVirtualSize : 0 PeakWorkingSetSize : 0 Priority : 0 PrivatePageCount : 0 ProcessId : 0 QuotaNonPagedPoolUsage : 0 QuotaPagedPoolUsage : 0 QuotaPeakNonPagedPoolUsage : 0 QuotaPeakPagedPoolUsage : 0 ReadOperationCount : 0 ReadTransferCount : 0 SessionId : 0 Status : TerminationDate : ThreadCount : 2 UserModeTime : 0 VirtualSize : 0 WindowsVersion : 6.0.6001 WorkingSetSize : 24576 WriteOperationCount : 0 WriteTransferCount : 0 ProcessName : System Idle Process Handles : 0 VM : 0 WS : 24576 Path : ... Описание ----------- Эта команда отображает сведения о службах на удаленном компьютере. Отобража емая информация задается путем указания IP-адреса 127.0.0.1. Указанный IP-а дрес можно заменить на любой другой допустимый IP-адрес в сети. В результат е будут показаны сведения о службах на заданном удаленном компьютере. По ум олчанию пользователь, запускающий команду, должен входить в группу "Админис траторы" на удаленном компьютере. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-wmiobject -namespace "root/default" -list NameSpace: ROOT\default Name Methods Properties ---- ------- ---------- __NotifyStatus {} {StatusCode} __ExtendedStatus {} {Description, Oper ation, ParameterInfo, ProviderName...} __SecurityRelatedClass {} {} __Trustee {} {Domain, Name, SID , SidLength...} __NTLMUser9X {} {Authority, Flags, Mask, Name...} __ACE {} {AccessMask, AceFl ags, AceType, GuidInheritedObjectType...} __SecurityDescriptor {} {ControlFlags, DAC L, Group, Owner...} __PARAMETERS {} {} __SystemClass {} {} __ProviderRegistration {} {provider} __EventProviderRegistration {} {EventQueryList, p rovider} __ObjectProviderRegistration {} {InteractionType, provider, QuerySupportLevels, SupportsBat... __ClassProviderRegistration {} {CacheRefreshInter val, InteractionType, PerUserSchema, prov... __InstanceProviderRegistration {} {InteractionType, provider, QuerySupportLevels, SupportsBat... __MethodProviderRegistration {} {provider} __PropertyProviderRegistration {} {provider, Support sGet, SupportsPut} __EventConsumerProviderRegistration {} {ConsumerClassName s, provider} __thisNAMESPACE {} {SECURITY_DESCRIPT OR} __NAMESPACE {} {Name} __IndicationRelated {} {} __FilterToConsumerBinding {} {Consumer, Creator SID, DeliverSynchronously, DeliveryQoS...} __EventConsumer {} {CreatorSID, Machi neName, MaximumQueueSize} LogFileEventConsumer {} {CreatorSID, Filen ame, IsUnicode, MachineName...} ActiveScriptEventConsumer {} {CreatorSID, KillT imeout, MachineName, MaximumQueueSize...} NTEventLogEventConsumer {} {Category, Creator SID, EventID, EventType...} SMTPEventConsumer {} {BccLine, CcLine, CreatorSID, FromLine...} CommandLineEventConsumer {} {CommandLineTempla te, CreateNewConsole, CreateNewProcessGro... __AggregateEvent {} {NumberOfEvents, R epresentative} __TimerNextFiring {} {NextEvent64BitTim e, TimerId} __EventFilter {} {CreatorSID, Event Access, EventNamespace, Name...} __Event {} {SECURITY_DESCRIPT OR, TIME_CREATED} __NamespaceOperationEvent {} {SECURITY_DESCRIPT OR, TargetNamespace, TIME_CREATED} __NamespaceModificationEvent {} {PreviousNamespace , SECURITY_DESCRIPTOR, TargetNamespace, T... __NamespaceDeletionEvent {} {SECURITY_DESCRIPT OR, TargetNamespace, TIME_CREATED} __NamespaceCreationEvent {} {SECURITY_DESCRIPT OR, TargetNamespace, TIME_CREATED} __ClassOperationEvent {} {SECURITY_DESCRIPT OR, TargetClass, TIME_CREATED} __ClassDeletionEvent {} {SECURITY_DESCRIPT OR, TargetClass, TIME_CREATED} __ClassModificationEvent {} {PreviousClass, SE CURITY_DESCRIPTOR, TargetClass, TIME_CREA... __ClassCreationEvent {} {SECURITY_DESCRIPT OR, TargetClass, TIME_CREATED} __InstanceOperationEvent {} {SECURITY_DESCRIPT OR, TargetInstance, TIME_CREATED} __InstanceCreationEvent {} {SECURITY_DESCRIPT OR, TargetInstance, TIME_CREATED} ... Описание ----------- Эта команда отображает список классов WMI в пространстве имен root/default на локальном компьютере. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server02 ExitCode : 0 Name : WinRM ProcessId : 1708 StartMode : Auto State : Running Status : OK ExitCode : 0 Name : WinRM ProcessId : 948 StartMode : Auto State : Running Status : OK Описание ----------- Эта команда отображает информацию о службе WinRM на компьютерах, заданных п араметром ComputerName. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>(get-wmiobject win32_service -filter "name='WinRM'" -computername ser ver01).StopService() __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 Another query using get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, shows the service as stopped. ExitCode : 0 Name : WinRM ProcessId : 0 StartMode : Auto State : Stopped Status : OK Описание ----------- Эта команда останавливает службу WinRM на удаленном компьютере Server01. Ис пользуется стандартная команда Get-WmiObject и добавляется вызов метода Sto pService класса Win32_Service WMI. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-wmiobject win32_bios | format-list * Status : OK Name : Phoenix ROM BIOS PLUS Version 1.10 2.3.1 Caption : Phoenix ROM BIOS PLUS Version 1.10 2.3.1 SMBIOSPresent : True __GENUS : 2 __CLASS : Win32_BIOS __SUPERCLASS : CIM_BIOSElement __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",SoftwareElementID="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",SoftwareElementState=3,T argetOperatingSystem=0,Version="DELL - 14" __PROPERTY_COUNT : 27 __DERIVATION : {CIM_BIOSElement, CIM_SoftwareElement, CIM_LogicalE lement, CIM_ManagedSystemElement} __SERVER : SERVER01 __NAMESPACE : root\cimv2 __PATH : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",Software ElementID="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",SoftwareElementState=3,TargetOperatingSys tem=0,Version="DELL - 14" BiosCharacteristics : {7, 9, 10, 11...} BIOSVersion : {DELL - 14, Phoenix ROM BIOS PLUS Version 1.10 2. 3.1 , Phoenix ROM BIOS PLUS Version 1.10 2.3 .1 , Phoenix ROM BIOS PLUS Version 1.10 2.3.1 } BuildNumber : CodeSet : CurrentLanguage : en|US|iso8859-1 Description : Phoenix ROM BIOS PLUS Version 1.10 2.3.1 IdentificationCode : InstallableLanguages : 1 InstallDate : LanguageEdition : ListOfLanguages : {en|US|iso8859-1} Manufacturer : Dell Inc. OtherTargetOS : PrimaryBIOS : True ReleaseDate : 20070521000000.000000+000 SerialNumber : 8PWRVD1 SMBIOSBIOSVersion : 2.3.1 SMBIOSMajorVersion : 2 SMBIOSMinorVersion : 3 SoftwareElementID : Phoenix ROM BIOS PLUS Version 1.10 2.3.1 SoftwareElementState : 3 TargetOperatingSystem : 0 Version : DELL - 14 Scope : System.Management.ManagementScope Path : \\SERVER01\root\cimv2:Win32_BIOS.Name="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",Software ElementID="Phoenix ROM BIOS PLUS Version 1.10 2.3.1 ",SoftwareElementState=3,TargetOperatingSys tem=0,Version="DELL - 14" Options : System.Management.ObjectGetOptions ClassPath : \\SERVER01\root\cimv2:Win32_BIOS Properties : {BiosCharacteristics, BIOSVersion, BuildNumber, Cap tion...} SystemProperties : {__GENUS, __CLASS, __SUPERCLASS, __DYNASTY...} Qualifiers : {dynamic, Locale, provider, UUID} Site : Container : Описание ----------- Эта команда отображает сведения о BIOS. Она отображает все свойства класса WMI, а не только перечисленные в файле конфигурации Types.ps1xml. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-wmiobject win32_service -credential FABRIKAM\administrator -compu ter fabrikam ExitCode : 0 Name : AeLookupSvc ProcessId : 0 StartMode : Manual State : Stopped Status : OK ExitCode : 1077 Name : ALG ProcessId : 0 StartMode : Manual State : Stopped Status : OK ExitCode : 1077 Name : AppIDSvc ProcessId : 0 StartMode : Manual State : Stopped Status : OK ExitCode : 0 Name : Appinfo ProcessId : 888 StartMode : Manual State : Running Status : OK ExitCode : 1077 Name : AppMgmt ProcessId : 0 StartMode : Manual State : Stopped Status : OK ... Описание ----------- Эта команда отображает сведения о службах на компьютере с именем "Fabrikam" . В данной команде с помощью параметра Credential указывается учетная запис ь пользователя, в результате чего выводится диалоговое окно, в котором нужн о ввести соответствующий пароль. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113337 Invoke-WmiMethod Remove-WmiObject Set-WmiInstance Get-WSManInstance Invoke-WSManAction New-WSManInstance Remove-WSManInstance Get-WSManCredSSP ИМЯ Get-WSManCredSSP ОПИСАНИЕ Получает связанную с поставщиком услуг безопасности конфигурацию для клиент а. СИНТАКСИС Get-WSManCredSSP [<CommonParameters>] ОПИСАНИЕ Командлет Get-WSManCredSPP получает связанную с поставщиком услуг безопасно сти конфигурацию клиента и сервера. В выходных данных указывается, включена или отключена проверка подлинности поставщика услуг безопасности CredSSP. Также отображаются сведения о конфигурации для политики CredSSP AllowFreshC redentials. При использовании проверки подлинности CredSSP учетные данные п ользователя передаются для проверки подлинности на удаленный компьютер. Это т тип проверки подлинности предназначен для команд, которые создают удаленн ый сеанс из другого удаленного сеанса. Например, он используется в случаях, когда требуется запустить фоновое задание на удаленном компьютере. Командлет выполняет следующие операции: - Получает значение параметра CredSSP поставщика WS-Management на клиен те (<localhost|имя_компьютера>\Client\Auth\CredSSP). - Получает значение политики AllowFreshCredentials Windows CredSSP. - Получает значение параметра CredSSP поставщика WS-Management на серве ре (<localhost|имя_компьютера>\Service\Auth\CredSSP). Внимание При проверке подлинности CredSSP учетные данные пользователя деле гируются с локального компьютера на удаленный компьютер. Такой подход повыш ает угрозы безопасности удаленных операций. Если безопасность удаленного ко мпьютера нарушена, при передаче на него учетных данных эти данные могут быт ь использованы для управления сетевым сеансом. Для отключения проверки подлинности CredSSP используйте командлет Disable-W SManCredSSP. Для включения проверки подлинности CredSSP используйте командл ет Enable-WSManCredSSP. ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-wsmancredssp Описание ----------- Эта команда отображает сведения о конфигурации CredSSP для клиента и для се рвера. В выходных данных указывается, настроен ли данный компьютер на использовани е CredSSP. Если компьютер настроен на использование CredSSP, выходные данные выглядят следующим образом: "Параметры компьютера позволяют делегировать новые учетные данные следующим конечным объектам: wsman/server02.accounting.fabrikam.com" Если компьютер не настроен на использование CredSSP, выходные данные выгляд ят следующим образом: "Параметры компьютера не позволяют делегировать новые учетные данные." ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141443 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Get-WSManInstance ИМЯ Get-WSManInstance ОПИСАНИЕ Отображает сведения об управлении для экземпляра ресурса, заданного URI рес урса. СИНТАКСИС Get-WSManInstance -SelectorSet <hashtable> [-ApplicationName <string>] [-Co mputerName <string>] [-Credential <PSCredential>] [-Fragment <string>] [-Po rt <int>] [-UseSSL] [-ResourceURI] <Uri> [-Authentication <Authentication>] [-Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtable>] [ ommonParameters>] Get-WSManInstance [-ApplicationName <string>] [-BasePropertiesOnly <switch> ] [-ComputerName <string>] [-Credential <PSCredential>] [-Enumerate] [-filt er <string>] [-Port <int>] [-References <switch>] [-ReturnType Shallow <switch>] [-UseSSL] [-ResourceURI] <Uri> [-Authentication <Authenti cation>] [-Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtab le>] [<CommonParameters>] Get-WSManInstance -ConnectionURI <Uri> -SelectorSet <hashtable> [-Fragment <string>] [-ResourceURI] <Uri> [-Authentication <Authentication>] [-Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtable>] [ eters>] Get-WSManInstance -ConnectionURI <Uri> [-BasePropertiesOnly <switch>] [-Enu merate] [-filter <string>] [-References <switch>] [-ReturnType <string>] [- Shallow <switch>] [-ResourceURI] <Uri> [-Authentication <Authentication>] [ -Dialect <Uri>] [-OptionSet <hashtable>] [-SessionOption <hashtable>] [ monParameters>] ОПИСАНИЕ Командлет Get-WSManInstance извлекает экземпляр ресурса управления, заданно го URI ресурса. Извлекаемые сведения могут быть сложным информационным набо ром (объектом) XML или простым значением. Этот командлет эквивалентен станд артной команде WS-Management Get. Для извлечения сведений командлет использует уровень соединений/транспорта WS-Management. ПАРАМЕТРЫ -ApplicationName <string> Задает имя приложения для подключения. По умолчанию параметр Applicatio nName имеет значение "WSMAN". Полный идентификатор удаленной конечной т очки имеет следующий формат: <протокол>://<сервер>:<порт>/ Пример: http://server01:8080/WSMAN Службы IIS, которые обрабатывают сеанс, перенаправляют запросы с данной конечной точкой указанному приложению. Значение по умолчанию "WSMAN" п одходит для большинства случаев. Этот параметр предназначен для использ ования, когда большое число компьютеров устанавливают удаленные подключ ения к одному компьютеру, на котором работает Windows PowerShell. В это м случае для повышения эффективности веб-службы WS-Management размещают ся в службах IIS. Требуется? false Позиция? named Значение по умолчанию wsman Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <Authentication> Задает механизм проверки подлинности, используемый на сервере. Возможны е значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Default: использовать метод проверки подлинности, реализованный прото колом WS-Management. Это значение используется по умолчанию. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Kerberos: выполняется взаимная проверка подлинности компьютера и серв ера с использованием сертификатов Kerberos. - Negotiate: при использовании схемы Negotiate между компьютером и серв ером или прокси происходит обмен данными по принципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности . Например, это значение параметра разрешает согласование одного из дву х методов проверки подлинности: Kerberos или NTLM. - CredSSP: использовать проверку подлинности CredSSP (Credential Securi ty Service Provider), при которой пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускаю тся на одном удаленном компьютере, но собирают данные с других удаленны х компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Default Принимать входные данные конвейера? false Принимать подстановочные знаки? false -BasePropertiesOnly <switch> Перечисляет только те свойства, которые принадлежат базовому классу, за данному параметром ResourceURI. Этот параметр не учитывается, если опре делен параметр Shallow. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Чтобы задать локальный компьютер, введите имя компьютера, "localhost " или точку (.). Локальный компьютер используется по умолчанию. Если по льзователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Значение этого параметра можно перед ать командлету по конвейеру. Требуется? false Позиция? named Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConnectionURI <Uri> Задает конечную точку соединения. Строка имеет следующий формат: <протокол>://<сервер>:<порт>/ Следующая строка представляет собой правильно отформатированное значени е для этого параметра: http://Server01:8080/WSMAN Значение URI должно быть указано полностью. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Domain.com". Или укажите объект PSCredential, наприме р возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Dialect <Uri> Задает диалект, который должен использоваться в предикате фильтра. Это может быть любой диалект, поддерживаемый удаленной службой. Для URI диа лекта можно использовать следующие псевдонимы: - WQL: http://schemas.microsoft.com/wbem/wsman/1/WQL - Selector: http://schemas.microsoft.com/wbem/wsman/1/wsman/SelectorFil ter - Association: http://schemas.dmtf.org/wbem/wsman/1/cimbinding/associat ionFilter Требуется? false Позиция? named Значение по умолчанию http://schemas.microsoft.com/wbem/ wsman/1/WQL Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Enumerate [<SwitchParameter>] Возвращает все экземпляры ресурса управления. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -filter <string> Задает критерий фильтра для перечисления. Если используется этот параме тр, необходимо также указать параметр Dialect. Допустимые значения этого параметра зависят от заданного значения парам етра Dialect. Например, если для параметра Dialect установлено значение "WQL", параметр Filter должен содержать строку, содержащую допустимый запрос WQL, например: "Select * from Win32_Service where State = Running" Если для параметра Dialect установлено значение" Association", параметр Filter должен содержать строку, содержащую допустимый фильтр, например : -filter:Object=EPR[;AssociationClassName=AssocClassName][;ResultClassNa me=ClassName][;Role=RefPropertyName][;ResultRole=RefPropertyName]} Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Fragment <string> Задает раздел внутри экземпляра, который будет обновлен или извлечен ук азанной операцией. Например, для получения состояния службы очереди печ ати укажите "-Fragment Status". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OptionSet <hashtable> Передает службе набор параметров для изменения или уточнения запроса. П ередаваемые параметры похожи на параметры, используемые в оболочках ком андной строки: они зависят от конкретной службы. Можно задать произволь ное количество параметров. В следующем примере показано синтаксическое выражение, позволяющее пере дать значения 1, 2 и 3 параметрам a, b и c соответственно: -OptionSet @{a=1;b=2;c=3} Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Port <int> Задает порт, используемый клиентом для подключения к службе WinRM. Если в качестве транспорта выбран HTTP, по умолчанию используется порт 80. Если в качестве транспорта выбран HTTPS, по умолчанию используется порт 443. При использовании в качестве транспорта HTTPS значение параметра ComputerName должно соответствовать общему имени сертификата сервера. О днако, если в качестве элемента параметра SessionOption указан параметр SkipCNCheck, общее имя сертификата сервера не обязательно должно соотв етствовать имени узла сервера. Параметр SkipCNCheck следует использоват ь только в случае доверенных компьютеров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -References <switch> Указывает, что необходимо извлечь экземпляры ассоциации вместо ассоциир ованных экземпляров. Этот параметр можно использовать только в случае, если для параметра Dialect установлено значение "Association". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ResourceURI <Uri> Содержит универсальный идентификатор ресурса (URI) экземпляра или класс а ресурса. URI используется для определения конкретного типа ресурса, н апример диска или процесса, на компьютере. URI состоит из префикса и пути к ресурсу. Пример: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Log icalDisk http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSenso r Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -ReturnType <string> Указывает тип возвращаемых данных. Допустимые значения: Object (используется по умолчанию;) EPR; ObjectAndEPR. Если задано значение Object или этот параметр не используется, возвраща ются только объекты. Если задано значение EPR, возвращаются только ссыл ки на конечные точки объектов. Ссылки на конечные точки содержат информ ацию о URI ресурса и селекторах экземпляра. Если задано значение Object AndEPR, возвращаются как объект, так и связанные с ним ссылки на конечн ые точки. Требуется? false Позиция? named Значение по умолчанию Object Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SelectorSet <hashtable> Задает набор пар значений, которые используются для выбора конкретных э кземпляров ресурса управления. Параметр SelectorSet используется в случ ае существования нескольких экземпляров ресурса. Значение параметра Sel ectorSet представляет собой хэш-таблицу. В следующем примере показано, как задать значение для этого параметра: -SelectorSet @{Name="WinRM";ID="yyy"} Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SessionOption <hashtable> Определяет расширенные параметры сеанса WS-Management. Введите объект S essionOption, созданный с помощью командлета New-WSManSessionOption. До полнительные сведения о доступных параметрах см. в разделе New-WSManSes sionOption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Shallow <switch> Обеспечивает возврат только экземпляров базового класса, указанного в U RI ресурса. Если этот переключатель не указан, возвращаются экземпляры базового класса, указанного в URI, и экземпляры всех производных классо в этого класса. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Указывает, что для установки подключения к удаленному компьютеру должен использоваться протокол SSL (Secure Sockets Layer). По умолчанию SSL н е используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. Параметр UseSSL позволяет указать, что необходимо испол ьзовать дополнительную меру защиты: протокол HTTPS вместо HTTP. Если ук азан этот параметр, однако используемый для подключения порт не поддерж ивает SSL, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ System.Xml.XmlElement Командлет Get-WSManInstance формирует объект XMLElement. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-wsmaninstance wmicimv2/win32_service -selectorset @{name="winrm"} -computername server01 xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/roo t/cimv2/Win32_Service cim : http://schemas.dmtf.org/wbem/wscim/1/common type : p:Win32_Service_Type lang : en-US AcceptPause : false AcceptStop : true Caption : Windows Remote Management (WS-Management) CheckPoint : 0 CreationClassName : Win32_Service Description : Windows Remote Management (WinRM) service impleme nts the WS-Management protocol for remote management. WS-Management is a standard web servi ces protocol used for remote software and hardware management. The WinRM service listens on the network for WS-Management requests and processes them. The WinRM Service needs to be configured with a listener using the winrm.cmd command line tool or through Group Poli cy in order for it to listen over the network. The WinRM service provides access to WMI data and enables event collection. Event collection and subscription to events require tha t the service is running. WinRM messages use HTTP and HTTPS as transports. The WinRM servi ce does not depend on IIS but is preconfigured to share a port with IIS on the sam e machine. The WinRM service reserves the /wsman URL prefix. To prevent conflicts with IIS, administrators should ensure that any websites hosted on IIS do not use the /wsman URL prefix. DesktopInteract : false DisplayName : Windows Remote Management (WS-Management) ErrorControl : Normal ExitCode : 0 InstallDate : InstallDate Name : winrm PathName : C:\Windows\System32\svchost.exe -k NetworkService ProcessId : 948 ServiceSpecificExitCode : 0 ServiceType : Share Process Started : true StartMode : Auto StartName : NT AUTHORITY\NetworkService State : Running Status : OK SystemCreationClassName : Win32_ComputerSystem SystemName : SERVER01 TagId : 0 WaitHint : 0 Описание ----------- Эта команда возвращает все предоставляемые инструментарием управления Windo ws (WMI) сведения о службе WinRM на удаленном компьютере server01. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-wsmaninstance wmicimv2/win32_service -selectorset @{name="spooler "} -fragment status -computername server01 XmlFragment=OK Описание ----------- Эта команда возвращает только состояние службы очереди печати на удаленном компьютере server01. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-wsmaninstance -enumerate wmicimv2/win32_process OSName : Microsoft Windows Vista Ultimate |C:\Windows|\ Device\Harddisk0\Partition3 OtherOperationCount : 11441 OtherTransferCount : 428570 PageFaults : 27346 PageFileUsage : 16428 ParentProcessId : 604 PeakPageFileUsage : 17588 PeakVirtualSize : 93876224 PeakWorkingSetSize : 12472 Priority : 8 PrivatePageCount : 16822272 ProcessId : 1160 QuotaNonPagedPoolUsage : 14 QuotaPagedPoolUsage : 126 QuotaPeakNonPagedPoolUsage : 16 QuotaPeakPagedPoolUsage : 159 ReadOperationCount : 29568 ReadTransferCount : 1660581404 SessionId : 0 Status : Status TerminationDate : TerminationDate ThreadCount : 23 UserModeTime : 763156892 VirtualSize : 80846848 WindowsVersion : 6.0.6001 WorkingSetSize : 11624448 WriteOperationCount : 1913 WriteTransferCount : 6825768 xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/ root/cimv2/Win32_Process cim : http://schemas.dmtf.org/wbem/wscim/1/common type : p:Win32_Process_Type lang : en-US Caption : svchost.exe CommandLine : C:\Windows\System32\svchost.exe -k LocalSystem NetworkRestricted CreationClassName : Win32_Process CreationDate : CreationDate CSCreationClassName : Win32_ComputerSystem CSName : COMPUTER01 Description : svchost.exe ExecutablePath : C:\Windows\System32\svchost.exe ExecutionState : ExecutionState Handle : 1192 HandleCount : 832 ... Описание ----------- Эта команда возвращает все экземпляры класса WMI Win32_Process на локальном компьютере. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-wsmaninstance -enumerate wmicimv2/win32_service -returntype epr xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/roo t/cimv2/Win32_Service cim : http://schemas.dmtf.org/wbem/wscim/1/common type : p:Win32_Service_Type lang : en-US AcceptPause : false AcceptStop : false Caption : Visual Studio 2008 Remote Debugger CheckPoint : 0 CreationClassName : Win32_Service Description : Allows members of the Administrators group to rem otely debug server applications using Visual Studio 2008. Use the Visual Studio 2008 Remote D ebugging Configuration Wizard to enable this service. DesktopInteract : false DisplayName : Visual Studio 2008 Remote Debugger ErrorControl : Ignore ExitCode : 1077 InstallDate : InstallDate Name : msvsmon90 PathName : "C:\Program Files\Microsoft Visual Studio 9.0\Com mon7\IDE\Remote Debugger\x86\msvsmon.exe" /s ervice msvsmon90 ProcessId : 0 ServiceSpecificExitCode : 0 ServiceType : Own Process Started : false StartMode : Disabled StartName : LocalSystem State : Stopped Status : OK SystemCreationClassName : Win32_ComputerSystem SystemName : COMPUTER01 TagId : 0 WaitHint : 0 ... Описание ----------- Эта команда возвращает ссылки на конечные точки, соответствующие всем служб ам на локальном компьютере. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>Get-WSManInstance -Enumerate wmicimv2/* -filter "select * from win32_ service where StartMode = 'Auto' and State = 'Stopped'" -computername serve r01 xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/roo t/cimv2/Win32_Service cim : http://schemas.dmtf.org/wbem/wscim/1/common type : p:Win32_Service_Type lang : en-US AcceptPause : false AcceptStop : false Caption : Windows Media Center Service Launcher CheckPoint : 0 CreationClassName : Win32_Service Description : Starts Windows Media Center Scheduler and Windows Media Center Receiver services at startup if TV is enabled within Windows Media Center. DesktopInteract : false DisplayName : Windows Media Center Service Launcher ErrorControl : Ignore ExitCode : 0 InstallDate : InstallDate Name : ehstart PathName : C:\Windows\system32\svchost.exe -k LocalServiceNo Network ProcessId : 0 ServiceSpecificExitCode : 0 ServiceType : Share Process Started : false StartMode : Auto StartName : NT AUTHORITY\LocalService State : Stopped Status : OK SystemCreationClassName : Win32_ComputerSystem SystemName : Server01 TagId : 0 WaitHint : 0 ... Описание ----------- Эта команда выводит список всех служб на удаленном компьютере server01, удо влетворяющих следующим критериям: - тип запуска службы — "Авто"; - служба остановлена. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-wsmaninstance winrm/config/listener -selectorset @{Address="*";Tr ansport="http"} cfg : http://schemas.microsoft.com/wbem/wsman/1/config/li stener xsi : http://www.w3.org/2001/XMLSchema-instance lang : en-US Address : * Transport : HTTP Port : 80 Hostname : Enabled : true URLPrefix : wsman CertificateThumbprint : ListeningOn : {100.0.0.1, 123.123.123.123, ::1, 2001:4898:0:fff:0 :5efe:123.123.123.123...} Описание ----------- Эта команда выводит конфигурацию прослушивателя WS-Management на локальном компьютере для прослушивателя, удовлетворяющего критериям в наборе селектор ов. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-wsmaninstance winrm/config/listener -selectorset @{Address="*";Tr ansport="http"} -computername server01 cfg : http://schemas.microsoft.com/wbem/wsman/1/config/li stener xsi : http://www.w3.org/2001/XMLSchema-instance lang : en-US Address : * Transport : HTTP Port : 80 Hostname : Enabled : true URLPrefix : wsman CertificateThumbprint : ListeningOn : {100.0.0.1, 123.123.123.124, ::1, 2001:4898:0:fff:0 :5efe:123.123.123.124...} Описание ----------- Эта команда выводит конфигурацию прослушивателя WS-Management на удаленном компьютере server01 для прослушивателя, удовлетворяющего критериям в наборе селекторов. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>Get-WSManInstance -Enumerate -Dialect association -filter "{Object=wi n32_service?name=winrm}" -res wmicimv2/* xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/r oot/cimv2/Win32_ComputerSystem cim : http://schemas.dmtf.org/wbem/wscim/1/common type : p:Win32_ComputerSystem_Type lang : en-US AdminPasswordStatus : 1 AutomaticManagedPagefile : true AutomaticResetBootOption : true AutomaticResetCapability : true BootOptionOnLimit : BootOptionOnLimit BootOptionOnWatchDog : BootOptionOnWatchDog BootROMSupported : true BootupState : Normal boot Caption : SERVER01 ChassisBootupState : 3 CreationClassName : Win32_ComputerSystem CurrentTimeZone : -480 DaylightInEffect : false Description : AT/AT COMPATIBLE DNSHostName : server01 Domain : site01.corp.fabrikam.com DomainRole : 1 EnableDaylightSavingsTime : true FrontPanelResetStatus : 2 InfraredSupported : false InstallDate : InstallDate KeyboardPasswordStatus : 2 LastLoadInfo : LastLoadInfo Manufacturer : Dell Inc. Model : OptiPlex 745 Name : SERVER01 NameFormat : NameFormat NetworkServerModeEnabled : true NumberOfLogicalProcessors : 2 NumberOfProcessors : 1 OEMStringArray : www.dell.com PartOfDomain : true PauseAfterReset : -1 PCSystemType : 5 PowerManagementSupported : PowerManagementSupported PowerOnPasswordStatus : 1 PowerState : 0 PowerSupplyState : 3 PrimaryOwnerContact : PrimaryOwnerContact PrimaryOwnerName : testuser01 ResetCapability : 1 ResetCount : -1 ResetLimit : -1 Roles : {LM_Workstation, LM_Server, SQLServer, NT} Status : OK SystemStartupDelay : SystemStartupDelay SystemStartupSetting : SystemStartupSetting SystemType : X86-based PC ThermalState : 3 TotalPhysicalMemory : 3217760256 UserName : FABRIKAM\testuser01 WakeUpType : 6 Workgroup : Workgroup xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/roo t/cimv2/Win32_Service cim : http://schemas.dmtf.org/wbem/wscim/1/common type : p:Win32_Service_Type lang : en-US AcceptPause : false AcceptStop : false Caption : Remote Procedure Call (RPC) CheckPoint : 0 CreationClassName : Win32_Service Description : Serves as the endpoint mapper and COM Service Con trol Manager. If this service is stopped or disabled, programs using COM or Remote Procedu re Call (RPC) services will not function properly. DesktopInteract : false DisplayName : Remote Procedure Call (RPC) ErrorControl : Normal ExitCode : 0 InstallDate : InstallDate Name : RpcSs PathName : C:\Windows\system32\svchost.exe -k rpcss ProcessId : 1100 ServiceSpecificExitCode : 0 ServiceType : Share Process Started : true StartMode : Auto StartName : NT AUTHORITY\NetworkService State : Running Status : OK SystemCreationClassName : Win32_ComputerSystem SystemName : SERVER01 TagId : 0 WaitHint : 0 xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/roo t/cimv2/Win32_SystemDriver cim : http://schemas.dmtf.org/wbem/wscim/1/common type : p:Win32_SystemDriver_Type lang : en-US AcceptPause : false AcceptStop : true Caption : HTTP CreationClassName : Win32_SystemDriver Description : HTTP DesktopInteract : false DisplayName : HTTP ErrorControl : Normal ExitCode : 0 InstallDate : InstallDate Name : HTTP PathName : C:\Windows\system32\drivers\HTTP.sys ServiceSpecificExitCode : 0 ServiceType : Kernel Driver Started : true StartMode : Manual StartName : State : Running Status : OK SystemCreationClassName : Win32_ComputerSystem SystemName : SERVER01 TagId : 0 Описание ----------- Эта команда получает ассоциированные экземпляры, связанные с заданным экзем пляром (winrm). Важно: фильтр должен быть заключен в кавычки, как показано в этом примере. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>Get-WSManInstance -Enumerate -Dialect association -References -filter "{Object=win32_service?name=winrm}" -res wmicimv2/* Описание ----------- Эта команда получает экземпляры ассоциации, связанные с заданным экземпляро м (winrm). Поскольку для параметра Dialect установлено значение "associatio n" и используется параметр Reference, команда возвращает экземпляры ассоциа ции, а не ассоциированные экземпляры. Важно: фильтр должен быть заключен в кавычки, как показано в этом примере. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141444 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Group-Object ИМЯ Group-Object ОПИСАНИЕ Группирует объекты, в которых указанные свойства имеют одно и то же значени е. СИНТАКСИС Group-Object [-AsHashTable] [-AsString] [[-Property] <Object[]>] [-CaseSens itive] [-Culture <string>] [-InputObject <psobject>] [-NoElement] [<CommonP arameters>] ОПИСАНИЕ Командлет Group-Object отображает объекты в виде групп, построенных на осно вании значений заданных свойств. Командлет Group-Object возвращает таблицу, каждая строка которой соответствует одному значению свойства, а в столбце отображается количество элементов с этим значением. Если задать более одного свойства, командлет Group-Object сначала сгруппиру ет их по значениям первого свойства, а затем, внутри каждой из групп свойст в, по значениям следующего свойства. ПАРАМЕТРЫ -AsHashTable [<SwitchParameter>] Возвращает группу в форме хэш-таблицы. Ключами хэш-таблицы являются зн ачения свойств, по которым группируются объекты. Значениями хэш-таблицы являются объекты, имеющие это значение свойства. Сам по себе параметр AsHashTable возвращает каждую хэш-таблицу, в котор ой ключи являются экземплярами группируемых объектов. При использовании с параметром AsString ключи хэш-таблицы являются строками. Требуется? false Позиция? named Значение по умолчанию Объект GroupInfo Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsString [<SwitchParameter>] Преобразует ключи хэш-таблицы в строки. По умолчанию ключами хэш-таблиц ы являются экземпляры группируемых объектов. Этот параметр допустим тол ько при использовании с параметром AsHashTable. Требуется? false Позиция? named Значение по умолчанию Объекты GroupInfo Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CaseSensitive [<SwitchParameter>] Включает группировку с учетом регистра. Без указания этого параметра ре гистры значений свойств объектов в одной группе могут различаться. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Culture <string> Задает культуру, используемую при сравнении строк. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты, включаемые в группу. Введите переменную, содержащую объ екты, либо команду или выражение для получения объектов. Если для передачи коллекции объектов командлету Group-Object использует ся параметр InputObject, командлет Group-Object получает один объект, п редставляющий коллекцию. В результате он создает одну группу, элементом которой является этот объект. Чтобы сгруппировать объекты в коллекции, передайте их командлету Group- Object с помощью конвейера. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -NoElement [<SwitchParameter>] Исключает элементы группы из результатов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Property <Object[]> Задает свойства для группировки. Объекты объединяются в группы на основ ании значения заданного свойства. Значение параметра Property может быть новым вычисляемым свойством. Что бы создать вычисляемое свойство, создайте хэш-таблицу с ключом Expressi on, задающим строковое значение или блок скрипта. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Group-Object по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.GroupInfo или System.Collections.Hashtable Если задан параметр AsHashTable, командлет Group-Object возвращает хэш- таблицу. В противном случае он возвращает объект GroupInfo. ПРИМЕЧАНИЯ Для группировки объектов можно также использовать параметр GroupBy кома ндлетов форматирования (например, Format-Table [m2] или Format-List [m2 ]). В отличие от командлета Group-Object, создающего единую таблицу, в которой каждому значению свойства соответствует отдельная строка, парам етры GroupBy создают для каждого значения свойства отдельную таблицу, в строках которой указываются элементы, обладающие свойством с заданным значением. Командлет Group-Object не требует, чтобы группируемые объекты относилис ь к одному типу Microsoft .NET Framework. При группировке объектов разл ичных типов .NET Framework командлет Group-Object использует следующие правила. -- Одинаковые имена и типы свойств. Если у объектов имеется свойство с заданным именем, а значения этого свойства относятся к одному типу .NET Framework, значения свойства группируются по тем же правилам, по котор ым группировались бы объекты одного типа. -- Одинаковые имена свойств, различные типы. Если у объектов имеется св ойство с заданным именем, но значения этих свойств в разных объектах пр инадлежат к различным типам .NET Framework, командлет Group-Object испо льзует в качестве типа .NET Framework для группы свойств тип первого вх ождения данного свойства. Если у объекта имеется свойство другого типа, значение этого свойства преобразуется к типу данной группы. Если преоб разование типов выполнить не удается, объект не включается в данную гру ппу. -- Отсутствующие свойства. Объекты, в которых нет указанного свойства, считаются негруппируемыми. В итоговом объекте GroupInfo такие объекты о тносятся к группе с именем AutomationNull.Value. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-childitem *.doc | group-object -property length Описание ----------- Эта команда получает DOC-файлы в текущем местоположении, группируя их по ра змеру. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-childitem | sort-object -property extension | group-object -prope rty extension Описание ----------- Эта команда получает файлы в текущем местоположении, сортирует их по расшир ению имени файла и группирует их по расширению имени файла. Обратите вниман ие, что файлы сортируются до группировки. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>1..35 | group-object -property {$_ % 2},{$_ % 3} Описание ----------- В этом примере показано, как использовать в качестве значения параметра Pro perty блоки скрипта. Эта команда отображает целые числа от 1 до 35, группируя их по остатку от д еления на 2 или 3. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$events = get-eventlog -logname system -newest 1000 C:\PS> $events | group-object -property eventID Count Name Group ----- ---- ----- 44 Information {System.Diagnostics.EventLogEntry, 5 Error {System.Diagnostics.EventLogEntry, 1 Warning {System.Diagnostics.EventLogEntry} Описание ----------- Эта команда отображает 1000 последних записей в журнале системных событий, сгруппированных по идентификатору события. Первая команда получает события с помощью командлета Get-EventLog, а затем с помощью оператора присваивания (=) сохраняет их в переменной $events. Вторая команда с помощью оператора конвейера (|) передает события из переме нной $events в командлет Group-Object. Чтобы указать, что события должны гр уппироваться в соответствии со значением свойства EventID, команда использу ет параметр Property. При отображении результатов в столбце Count указывается число элементов в к аждой группе, в столбце Name — значения EventID, определяющие группу, а в с толбце Group — объекты каждой из групп. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-process | group-object -property priorityclass Count Name Group ----- ---- ----- 55 Normal {System.Diagnostics.Process (AdtAgent), System.Di agnostics.Process (alg), System.Dia... 1 {System.Diagnostics.Process (Idle)} 3 High {System.Diagnostics.Process (Newproc), System.Dia gnostics.Process (winlogon), System.D... 2 BelowNormal {System.Diagnostics.Process (winperf), C:\PS>get-process | group-object -property company -noelement Count Name ----- ---- 55 Normal 1 3 High 2 BelowNormal Описание ----------- В этом примере показано действие параметра NoElement. Эти команды группирую т процессы на компьютере по их классу приоритета. Первая команда с помощью командлета Get-Process получает выполняющиеся на к омпьютере процессы. С помощью оператора конвейера (|) она передает результа ты в командлет Group-Object, который группирует объекты по значению свойств а PriorityClass процесса. Вторая команда идентична первой, но она использует параметр NoElement, чтоб ы исключить из результатов элементы группы. Результатом выполнения команды является таблица, в которой указаны только имена значений свойства и число соответствующих элементов. Результаты показаны в следующем примере выходных данных. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-eventlog -logname system -newest 1000 | group-object -property {$ _.TimeWritten - $_.TimeGenerated} Описание ----------- Эта команда показывает, как задать значение параметра Property с помощью бл ока скрипта. Эта команда отображает 1000 последних записей в журнале системных событий, сгруппированных по интервалу между моментом создания записи и моментом ее с охранения в журнале. Эта команда с помощью командлета Get-EventLog получает текущие записи из жу рнала событий. Эти записи передаются командлету Group-Object с помощью опер атора конвейера (|). Значение параметра Property указано как блок скрипта ( выражение в фигурных скобках). Результатом обработки блока скрипта является интервал между временем создания записи и временем ее сохранения в журнале . Вычисленное значение используется для группировки 1000 последних событий. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-childitem | group-object extension -noelement Count Name ----- ---- 21 82 .txt 9 .cmd 5 .log 12 .xml 5 .htm 36 .ps1 1 .psc1 3 .exe 6 .csv 1 .psd1 2 .bat Описание ----------- Эта команда группирует элементы в текущем каталоге по расширению имени файл а. Параметр NoElement используется для исключения элементов групп. Результаты показаны в следующем примере выходных данных. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>"a", "b", "c", "c", "d" | get-unique a b c d C:\PS> "a", "b", "c", "c", "d" | group-object -noelement | where {$_.Count -gt 1} Count Name ----- ---- 2 c C:\PS> get-process | group-object -property Name -noelement | where {$_.cou nt -gt 1} Count Name ----- ---- 2 csrss 5 svchost 2 winlogon 2 wmiprvse Описание ----------- В этом примере показано, как находить в коллекции уникальные и неуникальные (повторяющиеся) значения свойств. Первая команда получает уникальные элементы массива путем передачи массива командлету Get-Unique по конвейеру. Вторая команда получает неуникальные элементы массива. Она по конвейеру пер едает массив командлету Group-Object, который группирует объекты по значени ю. Получаемые группы по конвейеру передаются командлету Where-Object, котор ый выбирает объекты, относящиеся к группам с более чем одним элементом. Третья команда демонстрирует практическое применение такого подхода. Она ис пользует этот метод для обнаружения на компьютере процессов с одинаковыми и менами. Результаты показаны в следующем примере выходных данных. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>$a = get-command get-*, set-* -type cmdlet | group-object -property v erb -ashashtable -asstring C:\PS> $a Name Value ---- ----- Get {Get-PSCallStack, Get-PSBreakpoint, Get-PSDrive, Get-PSSession...} Set {Set-Service, Set-StrictMode, Set-PSDebug, Set-PSSessionConfigurati on...} C:\PS> $a.get CommandType Name Definition ----------- ---- ---------- Cmdlet Get-PSCallStack Get-PSCallStack [-Verbose] [-Debug] [- ErrorAction <ActionPrefer... Cmdlet Get-PSBreakpoint Get-PSBreakpoint [[-Id] <Int32[]>] [-V erbose] [-Debug] [-ErrorA... Cmdlet Get-PSDrive Get-PSDrive [[-Name] <String[]>] [-Sco pe <String>] [-PSProvider... ... Описание ----------- В этом примере параметры AsHashTable и AsString используются для возврата г рупп в хэш-таблице, т. е. в виде набора пар "ключ-значение". В полученной хэш-таблице каждое значение свойства является ключом, а элемен ты групп — значениями. Поскольку каждый ключ является свойством объекта хэш -таблицы, для отображения значений можно использовать обращение через точку . Первая команда получает командлеты Get и Set в сеансе, группирует их по наз начению, возвращает группы в виде хэш-таблицы и сохраняет хэш-таблицу в пер еменной $a. Вторая команда отображает хэш-таблицу из переменной $a. В ней имеется две п ары "ключ-значение": первая для командлетов Get и вторая для командлетов Se t. В третьей команде с помощью обращения через точку отображаются значения клю ча Get в переменной $a. Эти значения являются объектами CmdletInfo. Парамет р AsString не преобразует объекты в группах в строки. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113338 help ИМЯ Get-Help ОПИСАНИЕ Отображает сведения о командах и концепциях Windows PowerShell. СИНТАКСИС Get-Help [-Full] [[-Name] <string>] [-Category <string[]>] [-Component <str ing[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role <stri ng[]>] [<CommonParameters>] Get-Help [-Detailed] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role string[]>] [<CommonParameters>] Get-Help [-Examples] [[-Name] <string>] [-Category <string[]>] [-Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string>] [-Role string[]>] [<CommonParameters>] Get-Help [-Parameter <string>] [[-Name] <string>] [-Category <string[]>] [- Component <string[]>] [-Functionality <string[]>] [-Online] [-Path <string> ] [-Role <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Get-Help выводит сведения о командах и концепциях Windows PowerSh ell, в том числе командлетах, поставщиках, функциях и скриптах. Чтобы просм отреть полный список разделов справки по командлетам, введите команду "get- help *". Если команда "Get-Help" введена с указанием точного имени раздела справки и ли слова, являющегося уникальным признаком раздела справки, команда Get-Hel p отобразит содержимое указанного раздела справки. Если введено слово или ш аблон слова, которому соответствуют несколько заголовков разделов справки, Get-Help отобразит список соответствующих заголовков. Если введено слово, к оторое не используется ни в одном из заголовков разделов справки, Get-Help отобразит список соответствующих разделов, в содержимом которых встречается это слово. Кроме команды "get-help", можно вводить команды "help" или "man", позволяющ ие просматривать справку по экранам, или команду "<cmdlet-name> -?", котора я полностью соответствует команде Get-Help, но распространяется только на к омандлеты. Можно отобразить весь файл справки или некоторые его разделы, например синт аксис, параметры или примеры. Для отображения интернет-версии файла справки по командлету в браузере можно использовать параметр Online. Эти параметры не влияют на отображение разделов справки по основным понятиям. Разделы справки по основным понятиям Windows PowerShell начинаются с префик са "about_", например " about_Comparison_Operators". Чтобы просмотреть спис ок всех разделов "about_", введите команду "get-help about_*". Чтобы просмо треть определенный раздел, введите команду "get-help about_<имя_раздела>", например "get-help about_Comparison_Operators". ПАРАМЕТРЫ -Category <string[]> Отображает справку по элементам в указанной категории. Допустимые значе ния: Alias, Cmdlet, Provider и HelpFile. Разделы основных сведений прин адлежат к категории HelpFile. Категория является свойством объекта MamlCommandHelpInfo, возвращаемого командлетом Get-Help. Этот параметр не влияет на отображение справки п о основным понятиям ("about_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Component <string[]> Отображает список средств с заданным значением компонента, таким как "E xchange". Введите имя компонента. Подстановочные знаки разрешены. Компонент является свойством объекта MamlCommandHelpInfo, возвращаемого командлетом Get-Help. Этот параметр не влияет на отображение справки п о основным понятиям ("About_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Detailed [<SwitchParameter>] Добавляет описания параметров и примеры к отображаемой базовой справке. Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Examples [<SwitchParameter>] Отображает только имя, краткое описание и примеры. Чтобы отобразить тол ько примеры, введите команду "(get-help <имя_командлета>).examples". Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Full [<SwitchParameter>] Отображает весь файл справки по командлету, включая описания параметров и атрибуты, примеры, сведения о типах входных и выходных объектов, а т акже дополнительные примечания. Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Functionality <string[]> Отображает справку для элементов с указанной функциональностью. Введите функциональность. Подстановочные знаки разрешены. Функциональность является свойством объекта MamlCommandHelpInfo, возвра щаемого командлетом Get-Help. Этот параметр не влияет на отображение сп равки по основным понятиям ("About_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Запрашивает справку по указанному средству или раздел основных сведений . Введите имя командлета, поставщика, скрипта или функции, например Get- Member, имя раздела основных сведений, например "about_Objects", или пс евдоним, например "ls". Подстановочные знаки можно использовать в имена х командлетов и поставщиков, но их нельзя использовать при поиске разде лов справки для функций и скриптов. Чтобы получить справку для скрипта, который не расположен в папке, указ анной в переменной среды Path, введите путь и имя файла скрипта. Если введено точное название раздела справки, Get-Help отобразит содерж имое раздела. Если введено слово или шаблон слова, которому соответству ют несколько заголовков разделов справки, Get-Help отобразит список соо тветствующих заголовков. Если введено слово, которое не соответствует н и одному из заголовков разделов справки, Get-Help отобразит список соот ветствующих разделов, в содержимом которых встречается это слово. Имена разделов основных сведений, например about_Objects, должны указыв аться на английском языке даже в версиях Windows PowerShell, отличных о т английской. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Online [<SwitchParameter>] Отображает интернет-версию раздела справки в браузере по умолчанию. Это т параметр допустим только для разделов справки, посвященных командлета м, функциям и скриптам. Get-Help использует адрес в Интернете (URI), который указан в первом эл ементе раздела "Ссылки по теме" описания командлета, функции или скрипт а в справочной системе. Этот параметр работает, только если раздел спра вки включает URI, начинающийся на "Http" или "Https", и в системе устан овлен браузер. Сведения о поддержке этой функции в собственных разделах справки см. в разделе about_Comment_Based_Help и в документе "Написание справки для к омандлетов" (http://go.microsoft.com/fwlink/?LinkID=123415) в библиотек е MSDN. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Parameter <string> Отображает только подробные описания указанных параметров. Подстановочн ые знаки разрешены. Этот параметр не влияет на отображение справки по основным понятиям ("A bout_"). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Получает справку, в которой поясняется работа командлета по заданному п ути поставщика. Введите путь к поставщику Windows PowerShell. Этот параметр получает адаптированную версию раздела справки по командл ету, в котором описано, как этот командлет работает по указанному пути поставщика Windows PowerShell. Этот параметр можно использовать только для получения справки о командлете поставщика, и только если поставщик включил пользовательскую версию раздела справки по командлету поставщик а. Чтобы открыть справку по пользовательскому командлету для пути поставщи ка, перейдите по пути поставщика и введите команду Get-Help, или в любо м расположении воспользуйтесь параметром Path команды Get-Help, чтобы з адать путь поставщика. Дополнительные сведения см. в разделе About_Prov iders. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Role <string[]> Отображает специальную справку по указанной роли пользователя. Введите роль. Подстановочные знаки разрешены. Введите роль, которую пользователь выполняет в организации. Некоторые к омандлеты отображают различный текст в файлах справки в зависимости от значения этого параметра. Этот параметр не влияет на справку по основны м командлетам. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.String или MamlCommandHelpInfo Команда Get-Help возвращает раздел основных сведений в форме строки. Ес ли задано имя командлета, функции или скрипта, она возвращает объект Ma mlCommandHelpInfo. В противном случае команда Get-Help возвращает форма тированные представления, заданные в файле Help.Format.ps1xml каталога $pshome. ПРИМЕЧАНИЯ При вызове без параметров команда "Get-Help" отображает сведения о спра вочной системе оболочки Windows PowerShell. Полное представление справки (-full) включает таблицу со сведениями о п араметрах. В таблице содержатся следующие поля. -- Необходимый. Показывает, является ли параметр необходимым (да) или н еобязательным (нет). -- Позиция. Показывает, используется ли параметр как именованный или по зиционный (под номером). Позиционные параметры должны появляться в указ анном месте команды. -- "Именованный" означает, что параметру необходимо имя, но такой парам етр может появляться в любом месте команды. -- <Число> означает, что имя параметра необязательно, но при его отсутс твии параметр должен располагаться в месте, определяемом этим числом. Н апример, "2" означает, что при отсутствии имени параметра этот параметр должен быть вторым (2) или единственным неименованным параметром коман ды. Если используется имя параметра, параметр может располагаться в люб ом месте команды. -- Значение по умолчанию. Значение параметра, используемое оболочкой Wi ndows PowerShell, если параметр не включен в команду. -- Принимает вход с конвейера. Показывает, можно ли (да) или нельзя (не т) посылать объекты в этот параметр по конвейеру. "По имени свойства" о значает, что конвейеризованный объект должен иметь свойство с тем же им енем, что и имя данного параметра. -- Принимает подстановочные знаки. Показывает, может ли значение параме тра включать подстановочные знаки, такие как "*" и "?". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-help Description ----------- Эта команда отображает справку по справочной системе оболочки Windows Power Shell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-help * Description ----------- Эта команда отображает список всех файлов справки в справочной системе обол очки Windows PowerShell. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-help get-alias C:\PS>help get-alias C:\PS>get-alias -? Description ----------- Эта команда отображает базовые сведения о командлете get-alias. Команды "Ge t-Help" и "-?" выводят сведения на одной странице. Команда "Help" отображае т сведения постранично. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-help about_* Description ----------- Эта команда выводит список разделов основных сведений, содержащихся в справ ке для оболочки Windows PowerShell. Все эти разделы начинаются со строки "a bout_". Для вывода конкретного файла справки введите команду "get-help <имя _раздела>, например "get-help about_signing". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-help ls -detailed Description ----------- Эта команда выводит подробную справку по командлету Get-ChildItem, заданном у одним из своих псевдонимов "ls". Параметр Detailed требует подробного пре дставления файла справки, включая описания параметров и примеры. Для просмо тра полного файла справки по командлету воспользуйтесь параметром Full. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-help format-string -full Description ----------- Эта команда выводит полное представление справки по командлету Format-Strin g. Полное представление справки включает описание параметров, примеры и таб лицу технических сведений о параметрах. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-help start-service -examples Description ----------- Эта команда выводит примеры использования командлета start-service в команд ах Windows PowerShell. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>get-help get-childitem -parameter f* Description ----------- Эта команда выводит описания параметров командлета Get-ChildItem, которые н ачинаются с буквы "f" (filter и force). Чтобы просмотреть описания всех пар аметров, введите команду "get-help get-childitem parameter*". -------------------------- ПРИМЕР 9 -------------------------- C:\PS>(get-help write-output).syntax Description ----------- Эта команда выводит только синтаксис вызова командлета Write-Output. Синтаксис является одним из свойств объектов справки. Также доступны описан ие, дополнительные сведения, примеры и параметры. Чтобы определить все свой ства и методы объектов справки, введите команду "get-help <имя_командлета> | get-member", например "get-help start-service | get member". -------------------------- ПРИМЕР 10 -------------------------- C:\PS>(get-help trace-command).alertset Description ----------- Эта команда отображает примечания о командлете. Примечания сохраняются в св ойстве alertSet объекта справки. В примечания включаются основные сведения и советы по использованию командл ета. По умолчанию примечания отображаются только при использовании параметр а Full команды Get-Help, но их также можно отобразить с помощью свойства al ertSet. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>get-help add-member -full | out-string -stream | select-string -patte rn clixml Description ----------- В этом примере показано, как выполнить поиск слова в определенном разделе с правки по командлету. Эта команда выполняет поиск слова "clixml" в полной в ерсии раздела справки по командлету Add-Member. Поскольку командлет Get-Help создает объект MamlCommandHelpInfo, а не строк у, необходимо использовать команду, преобразующую содержимое раздела в стро ку, например Out-String или Out-File. -------------------------- ПРИМЕР 12 -------------------------- C:\PS>get-help get-member -online Description ----------- Эта команда отображает интернет-версию раздела справки по командлету Get-Me mber. -------------------------- ПРИМЕР 13 -------------------------- C:\PS>get-help remoting Description ----------- Эта команда выводит список разделов, в содержимом которых встречается слово "remoting". Если введено слово, которое не используется ни в одном из разделов справки, Get-Help отобразит список разделов, в содержимом которых встречается это с лово. -------------------------- ПРИМЕР 14 -------------------------- C:\PS>get-help get-item -path SQLSERVER:\DataCollection NAME Get-Item SYNOPSIS Gets a collection of Server objects for the local computer and any comp uters to which you have made a SQL Server PowerShell connection. ... C:\PS> cd SQLSERVER:\DataCollection C:\PS> SQLSERVER:\DataCollection> get-help get-item NAME Get-Item SYNOPSIS Gets a collection of Server objects for the local computer and any comp uters to which you have made a SQL Server PowerShell connection. ... C:\PS> Get-Item NAME Get-Item SYNOPSIS Gets the item at the specified location. ... Description ----------- В этом примере показано, как получить справку по командлету Get-Item, в кот орой поясняется использование командлета в узле DataCollection поставщика S QL Server Windows PowerShell. В примере демонстрируются два способа получение специальной справки по Get- Item. В первой команде используется параметр Path командлета Get-Help для задания пути поставщика. Эта команда может вводиться в любом местоположении. Во второй команде используется командлет Set-Location (псевдоним "cd") для перехода в путь поставщика. Из этого местоположения команда Get-Help возвра тит специальную справку по пути поставщика даже без использования параметра Path. Третья команда демонстрирует, что при использовании Get-Help в пути файлово й системы без указания параметра Path будет возвращена стандартная справка по командлету Get-Item. -------------------------- ПРИМЕР 15 -------------------------- C:\PS>get-help c:\ps-test\MyScript.ps1 Description ----------- Эта команда возвращает справку по скрипту MyScript.ps1. Информацию о написа нии разделов справки для функций и скриптов см. в разделе about_Comment_Bas ed_Help. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113316 about_Comment_Based_Help Get-Command Get-PSDrive Get-Member Import-Alias ИМЯ Import-Alias ОПИСАНИЕ Импортирует список псевдонимов из файла. СИНТАКСИС Import-Alias [-Path] <string> [-Force] [-PassThru] [-Scope <string>] [-Conf irm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Import-Alias импортирует список псевдонимов из файла. ПАРАМЕТРЫ -Force [<SwitchParameter>] Позволяет командлету импортировать псевдоним, который уже определен и д оступен только для чтения. Для отображения сведений об определенных на текущий момент псевдонимах можно использовать следующую команду: get-alias | select-object name,Options Если соответствующий псевдоним доступен только для чтения, значение сво йства Options будет включать фрагмент "ReadOnly". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий псевдоним. По умолчанию этот командле т не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к файлу, включающему экспортированные сведения о псевдонима х. Использовать подстановочные знаки можно, но они должны разрешаться в одно имя. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Scope <string> Задает область, в которую импортируются псевдонимы. Допустимые значения : "Global", "Local", "Script" или номер относительно текущей области (о т 0 до количества областей, где 0 — текущая область, а 1 — ее родительс кая область). По умолчанию используется значение "Local". Дополнительны е сведения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Import-Alias по конв ейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.AliasInfo Если задан параметр Passthru, командлет Import-Alias возвращает объект System.Management.Automation.AliasInfo, представляющий псевдоним. В про тивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>import-alias test.txt Описание ----------- Эта команда импортирует сведения о псевдонимах из файла test.txt. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113339 Export-Alias Get-Alias New-Alias Set-Alias Import-Clixml ИМЯ Import-Clixml ОПИСАНИЕ Импортирует файл CLIXML и создает соответствующие объекты в оболочке Window s PowerShell. СИНТАКСИС Import-Clixml [-Path] <string[]> [<CommonParameters>] ОПИСАНИЕ Командлет Import-Clixml импортирует файл CLIXML с данными, представляющими объекты Microsoft .NET Framework, и создает объекты в Windows PowerShell. ПАРАМЕТРЫ -Path <string[]> Задает расположение файлов XML, преобразуемых в объекты Windows PowerSh ell. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Import-Clixml по кон вейеру. ВЫХОДНЫЕ ДАННЫЕ PSObject Командлет Import-Clixml возвращает объекты, десериализованные из сохран енных XML-файлов. ПРИМЕЧАНИЯ При указании нескольких значений параметра разделяйте их запятыми. Напр имер: "<имя-параметра> <значение1>, <значение2>". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process | export-clixml pi.xml C:\PS> $processes = import-clixml pi.xml Описание ----------- Эта команда с помощью командлета Export-Clixml сохраняет сериализованную ко пию сведений о процессах, возвращенных командлетом Get-Process. Затем испол ьзуется командлет Import-Clixml, извлекающий содержимое сериализованного фа йла и воссоздающий объект, который сохраняется в переменной $processes. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113340 Import-Counter ИМЯ Import-Counter ОПИСАНИЕ Импортирует файлы журналов счетчиков производительности (BLG, CSV, TSV) и с оздает объекты, представляющие каждую выборку счетчика в журнале. СИНТАКСИС Import-Counter [-Path] <string[]> [-Counter <string[]>] [-EndTime <DateTime >] [-MaxSamples <Int64>] [-StartTime <DateTime>] [<CommonParameters>] Import-Counter [-Path] <string[]> -ListSet <string[]> [<CommonParameters>] Import-Counter [-Path] <string[]> -Summary <switch> [<CommonParameters>] ОПИСАНИЕ Командлет Import-Counter импортирует данные счетчиков производительности из файлов журналов счетчиков производительности и создает объекты для каждой выборки счетчика в файле. Созданные объекты PerformanceCounterSampleSet, ид ентичны объектам, возвращаемым командлетом Get-Counter при сборе данных сче тчиков производительности. Данные можно импортировать из файлов журналов производительности в формате значений, разделенных запятыми (CSV), в формате значений, разделенных табул яциями (TSV), и в формате двоичных журналов производительности (BLG). При и спользовании файлов BLG с помощью одной команды можно импортировать до 32 р азличных файлов. Кроме того, для фильтрации импортируемых данных можно испо льзовать командлет Import-Counter. С помощью этой возможности, а также командлетов Get-Counter и Export-Counte r, можно собирать, экспортировать, импортировать, объединять, фильтровать, обрабатывать и повторно экспортировать данные счетчиков производительности в оболочке Windows PowerShell. ПАРАМЕТРЫ -Counter <string[]> Импортирует данные только для указанных счетчиков производительности. П о умолчанию командлет Import-Counter импортирует все данные для всех сч етчиков во входных файлах. Введите один или несколько путей счетчиков. Подстановочные знаки разрешается использовать только в часть Instance п ути. Путь счетчика имеет следующий формат. Обратите внимание, что значение C omputerName необходимо указывать в пути даже для локального компьютера. "\\<ComputerName>\<CounterSet>(<Instance>)\ Пример: "\\Server01\Processor(2)\% User Time" "\Processor(*)\% Processor Time Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -EndTime <DateTime> Импортирует только данные счетчика, штамп времени которых меньше либо р авен указанным дате и времени. Укажите объект DateTime, например объект , возвращенный командлетом Get-Date. По умолчанию командлет Import-Coun ter импортирует все данные счетчиков из файлов, указанных в параметре P ath. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ListSet <string[]> Получает наборы счетчиков производительности, представленные в экспорти рованных файлах. Команды с этим параметром не импортируют данные. Введите одно или несколько имен наборов счетчиков. Подстановочные знаки разрешены. Чтобы получить все наборы счетчиков, имеющиеся в файле, вв едите команду "import-counter -listset *". Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -MaxSamples <Int64> Задает максимальное число выборок, импортируемых для каждого счетчика. По умолчанию командлет Get-Counter импортирует все данные из файлов, ук азанных в параметре Path. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает пути к импортируемым файлам. Это обязательный параметр. Введите путь и имя файла с расширением CSV, TSV или BLG, экспортированн ого с помощью командлета Export-Counter. В каждой команде можно задать только один файл CSV или TSV, но несколько файлов BLG (до 32). Кроме то го, строки путей к файлам (в кавычках) можно по конвейеру передать в ко мандлет Import-Counter. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? true -StartTime <DateTime> Импортирует только данные счетчика, штамп времени которых больше либо р авен указанным дате и времени. Укажите объект DateTime, например объект , возвращенный командлетом Get-Date. По умолчанию командлет Import-Coun ter импортирует все данные счетчиков из файлов, указанных в параметре P ath. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Summary <switch> Получает сводку импортированных данных вместо получения отдельных выбор ок данных счетчиков. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Пути журналов счетчиков производительности можно передать в командлет I mport-Counter по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.GetCounter.PerformanceCounterSampleSet, Micro soft.PowerShell.Commands.GetCounter.CounterSet, Microsoft.PowerShell.Comman ds.GetCounter.CounterFileInfo По умолчанию командлет Import-Counter возвращает Microsoft.PowerShell.C ommands.GetCounter.PerformanceCounterSampleSet. При использовании парам етра ListSet командлет Import-Command возвращает объект Microsoft.Power Shell.Commands.GetCounter.CounterSet. При использовании параметра Summa ry командлет Import-Command возвращает объект Microsoft.PowerShell.Comm ands.GetCounter.CounterFileInfo. ПРИМЕЧАНИЯ В командлете Import-Counter не предусмотрен параметр ComputerName. Одна ко, если компьютер настроен на удаленное взаимодействие в Windows Power Shell, с помощью командлета Invoke-Command можно запускать команду Impo rt-Counter на удаленном компьютере. -------------------------- ПРИМЕР 1 -------------------------- C:\PS># Import-Counter Описание ----------- Эта команда импортирует все данные счетчиков из файла ProcessorData.csv в п еременную $data. C:\PS> $data = import-counter -path ProcessorData.csv -------------------------- ПРИМЕР 2 -------------------------- C:\PS># Import-Counter Описание ----------- Эта команда импортирует только данные счетчика "Processor(_total)\Interrupt s\sec" из файла ProcessorData.blg в переменную $i. C:\PS> $i = import-counter -path ProcessorData.blg -counter "\\SERVER01\Pro cessor(_Total)\Interrupts/sec" -------------------------- ПРИМЕР 3 -------------------------- C:\PS># Import-Counter Описание ----------- В этом примере показано, как выбирать данные в файле журнала счетчика произ водительности (BLG), а затем экспортировать выбранные данные в CSV-файл. Первые четыре команды получают из файла пути счетчиков и сохраняют их в пер еменной. Последние две команды импортируют выбранные данные, а затем экспор тируют только выбранные данные. Первая команда с помощью командлета Import-Counter импортирует все данные с четчиков производительности из файлов ProcessorData.blg. Команда сохраняет данные в переменной $data. C:\PS> $data = import-counter .\processordata.blg Вторая команда отображает пути счетчиков, сохраненные в переменной $data, в результатах выполнения команды. C:\PS> $data[0].countersamples | format-table path Path ---- \\SERVER01\Processor(_Total)\DPC Rate \\SERVER01\Processor(1)\DPC Rate \\SERVER01\Processor(0)\DPC Rate \\SERVER01\Processor(_Total)\% Idle Time \\SERVER01\Processor(1)\% Idle Time \\SERVER01\Processor(0)\% Idle Time \\SERVER01\Processor(_Total)\% C3 Time \\SERVER01\Processor(1)\% C3 Time ... Третья команда получает пути счетчиков, которые заканчиваются на "Interrupt s/sec", и сохраняет их в переменной $IntCtrs. C:\PS> $IntCtrs = $data[0].countersamples | where {$_.path -like "*interrup ts/sec"} | foreach {$_.path} Четвертая команда отображает выбранные пути счетчиков. C:\PS> $IntCtrs \\SERVER01\Processor(_Total)\Interrupts/sec \\SERVER01\Processor(1)\Interrupts/sec \\SERVER01\Processor(0)\Interrupts/sec Пятая команда с помощью командлета Import-Counter импортирует данные. В ней используется параметр Counter с переменной $IntCtrs, чтобы импортировать д анные только для путей счетчиков, указанных в переменной $IntCtrs. C:\PS> $i = import-counter -path .\processordata.blg -counter $intCtrs Шестая команда с помощью командлета Export-Counter экспортирует данные. C:\PS> $i | export-counter -path .\interrupts.csv -format CSV -------------------------- ПРИМЕР 4 -------------------------- C:\PS># Import-Counter Описание ----------- В этом примере показано, как отобразить все пути счетчиков в группе импорти рованных наборов счетчиков. Первая команда с помощью параметра ListSet получает наборы счетчиков, предс тавленные в файле данных счетчика. C:\PS> import-counter -path processordata.csv -listset * CounterSetName : Processor MachineName : \\SERVER01 CounterSetType : MultiInstance Description : Paths : {\\SERVER01\Processor(*)\DPC Rate, \\SERVER01\Processo r(*)\% Idle Time, \\SERVER01 \Processor(*)\% C3 Time, \\SERVER01\Processor(*)\% Int errupt Time...} PathsWithInstances : {\\SERVER01\Processor(_Total)\DPC Rate, \\SERVER01\Pro cessor(1)\DPC Rate, \\SERVER01 \Processor(0)\DPC Rate, \\SERVER01\Processor(_Total)\% Idle Time...} Counter : {\\SERVER01\Processor(*)\DPC Rate, \\SERVER01\Processo r(*)\% Idle Time, \\SERVER01 \Processor(*)\% C3 Time, \\SERVER01\Processor(*)\% Int errupt Time...} Вторая команда получает все пути счетчиков из набора списка. C:\PS> import-counter -path processordata.csv -listset * | foreach {$_.path s} \\SERVER01\Processor(*)\DPC Rate \\SERVER01\Processor(*)\% Idle Time \\SERVER01\Processor(*)\% C3 Time \\SERVER01\Processor(*)\% Interrupt Time \\SERVER01\Processor(*)\% C2 Time \\SERVER01\Processor(*)\% User Time \\SERVER01\Processor(*)\% C1 Time \\SERVER01\Processor(*)\% Processor Time \\SERVER01\Processor(*)\C1 Transitions/sec \\SERVER01\Processor(*)\% DPC Time \\SERVER01\Processor(*)\C2 Transitions/sec \\SERVER01\Processor(*)\% Privileged Time \\SERVER01\Processor(*)\C3 Transitions/sec \\SERVER01\Processor(*)\DPCs Queued/sec \\SERVER01\Processor(*)\Interrupts/sec -------------------------- ПРИМЕР 5 -------------------------- C:\PS># Import-Counter Описание ----------- В этом примере импортируются только данные счетчиков со штампом времени в д иапазоне времени, указанном в команде. Первая команда составляет список штампов времени всех данных в файле Proces sorData.blg. C:\PS> import-counter -path .\disk.blg | format-table timestamp Вторая и третья команды сохраняют начальный и конечный штампы времени в пер еменных $start и $end. Строки преобразуются в объекты DateTime. C:\PS> $start = [datetime]"7/9/2008 3:47:00 PM" C:\PS> $end = [datetime]"7/9/2008 3:47:59 PM" Четвертая команда с помощью командлета Import-Counter получает данные счетч иков со штампами времени в диапазоне между начальным и конечным временами ( включительно). Для указания диапазона времени в команде используются параме тры StartTime и EndTime. C:\PS> $t-data = import-counter -path disk.blg -starttime $start -endtime $end -------------------------- ПРИМЕР 6 -------------------------- C:\PS># Import-Counter Описание ----------- В этом примере показано, как импортировать пять самых старых и пять самых н овых выборок из файла журнала счетчика производительности. Первая команда использует командлет Import-Counter для импорта данных из фа йла Disk.blg. В команде используется параметр MaxSamples для ограничения числа импортиру емых выборок до 5. Эта команда получает первые (самые старые) пять выборок из файла. C:\PS> import-counter -path disk.blg -maxSamples 5 Вторая команда использует синтаксис работы с массивами и оператор диапазона Windows PowerShell (..) для получения последних пяти выборок счетчиков из файла. Это пять самых новых выборок. C:\PS> (import-counter -path disk.blg)[-1 .. -5] -------------------------- ПРИМЕР 7 -------------------------- C:\PS># Import-Counter Описание ----------- Команда использует параметр Summary, чтобы получить сводку данных счетчика из файла Memory.blg. C:\PS> import-counter D:\Samples\memory.blg -summary OldestRecord NewestRecord SampleCount ------------ ------------ ----------- 10.07.2008 14:59:18 10.07.2008 15:00:27 1000 -------------------------- ПРИМЕР 8 -------------------------- C:\PS># Import-Counter Описание ----------- В этом примере обновляется файл журнала счетчиков производительности. Первая команда с помощью параметра ListSet командлета Import-Counter получа ет счетчики из существующего файла журнала счетчиков OldData.blg. В команде используется оператор конвейера (|) для передачи данных команде Foreach-Ob ject, которая получает для каждого объекта только значения свойства PathsWi thInstances. C:\PS> $counters = import-counter olddata.blg -ListSet * | foreach {$_.Path sWithInstances} Вторая команда использует эти счетчики в новой команде Get-Counter для полу чения текущей выборки, а затем экспортирует ее в файл NewData.blg. C:\PS> get-counter -counter $counters -maxSamples 20 | export-counter c:\Lo gs\newdata.blg -------------------------- ПРИМЕР 9 -------------------------- C:\PS># Import-Counter Описание ----------- Эта команда импортирует данные из двух журналов производительности и сохран яет их в переменной $counters. Команда передает пути журналов производитель ности в командлет Import-Counter с помощью оператора конвейера. C:\PS> $counters = "d:\test\pdata.blg", "d:\samples\netlog.blg" | import-co unter Обратите внимание, что каждый путь заключен в кавычки, и пути разделены зап ятыми. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=138338 Get-Counter Export-Counter Import-CSV ИМЯ Import-CSV ОПИСАНИЕ Преобразует свойства объекта из CSV-файла (с разделителями-запятыми) в CSV- версии исходных объектов. СИНТАКСИС Import-CSV [[-Delimiter] <char>] [-Path] <string[]> [-Header <string[]>] [ CommonParameters>] Import-CSV -UseCulture [-Path] <string[]> [-Header <string[]>] [<CommonPara meters>] ОПИСАНИЕ Командлет Import-CSV создает объекты из CSV-файлов переменной длины, создан ных с помощью командлета Export-CSV. Параметры командлета Import-CSV позволяют задать строку заголовков столбцов , определяющую имена свойств конечных объектов, задать разделитель элементо в или сделать так, чтобы командлет Import-CSV использовал в качестве раздел ителя значений установленный для текущей культуры разделитель элементов спи сков. Объекты, создаваемые командлетом Import-CSV, являются CSV-версиями исходных объектов. Значения свойств CSV-объектов являются строковыми версиями значе ний свойств исходных объектов. У CSV-версий объектов нет методов. Можно также преобразовывать объекты в строки CSV и обратно, используя для э того командлеты ConvertTo-CSV и ConvertFrom-CSV. Эти командлеты очень похож и на командлеты Export-CSV и Import-CSV за исключением того, что они не сох раняют строки CSV в файл. ПАРАМЕТРЫ -Delimiter <char> Задает разделитель значений свойств в CSV-файле. По умолчанию используе тся запятая (,). Введите символ, например двоеточие (:). Чтобы задать т очку с запятой (;), заключите ее в кавычки. Если указать символ, отличный от фактического разделителя, используемог о в файле, командлет Import-CSV не сможет создать объекты из строк CSV. Вместо этого он возвращает строки. Требуется? false Позиция? 2 Значение по умолчанию , Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Header <string[]> Задает строку заголовков столбцов для импортируемого файла. Заголовки с толбцов определяют имена свойств объекта, создаваемого с помощью команд лета Import-CSV. Введите список заголовков столбцов, разделенных запятыми. Заключите каж дый элемент в кавычки (одиночные или двойные). Не заключайте строку заг оловка в кавычки. Если количество введенных заголовков столбцов меньше, чем количество столбцов, у оставшихся столбцов не будет заголовков. Ес ли количество заголовков столбцов превышает количество столбцов, лишние заголовки игнорируются. При использовании параметра Header удалите исходную строку заголовков и з CSV-файла. В противном случае командлет Import-CSV создаст из элемент ов строки заголовков лишний объект. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к импортируемому CSV-файлу. Кроме того, можно передать путь командлету Import-CSV по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -UseCulture [<SwitchParameter>] Использовать в качестве разделителя записей разделитель элементов списк а из текущей культуры. По умолчанию используется запятая (,). Чтобы найти разделитель элементов списка для текущей культуры, воспольз уйтесь следующей командой: (Get-Culture).TextInfo.ListSeparator. Если у казать символ, отличный от разделителя, используемого в строках CSV, ко мандлет ConvertFrom-CSV не сможет создать объекты из строк CSV. Вместо этого он возвращает строки. Требуется? true Позиция? named Значение по умолчанию Запятая Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Import-CSV по конвей еру. ВЫХОДНЫЕ ДАННЫЕ Объект. Командлет Import-CSV возвращает объекты, описываемые содержимым CSV-фай ла. ПРИМЕЧАНИЯ Поскольку импортируемые объекты являются CSV-версиями типа объекта, они не распознаются и не форматируются записями форматирования типов Windo ws PowerShell, которые используются для форматирования объектов данного типа, не являющихся CSV-версиями. В CSV-файле каждый объект представляется списком разделенных запятыми з начений свойств этого объекта. Значения свойств преобразуются в строков ый формат (с помощью метода ToString() объекта), поэтому они обычно пре дставляются именами значений свойств. Командлет Export-CSV не экспортир ует методы объекта. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process | export-csv processes.csv C:\PS> $p = import-CSV processes.csv C:\PS> $p | get-member TypeName: CSV:System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- Equals Method System.Boolean Equals(Object obj) GetHashCode Method System.Int32 GetHashCode() GetType Method System.Type GetType() ToString Method System.String ToString() BasePriority NoteProperty System.String BasePriority=8 Company NoteProperty System.String Company=Microsoft Cor poration ... C:\PS> $p | out-gridview Описание ----------- В этом примере показано, как экспортировать, а затем импортировать CSV-файл с объектами Microsoft .NET Framework. Первая команда с помощью командлета Get-Process получает выполняющийся на л окальном компьютере процесс. С помощью оператора конвейера (|) она передает объекты процесса командлету Export-CSV, который экспортирует объекты проце ссов в файл Processes.csv в текущем каталоге. Вторая команда использует командлет Import-CSV для импорта процессов из фай ла Processes.csv. Результирующие объекты процессов сохраняются в переменной $p. Третья команда с помощью оператора конвейера передает импортированные объек ты командлетам Get-Member. Результаты показывают, эти объекты являются объе ктами CSV:System.Diagnostic.Process, а не объектами System.Diagnostic.Proce ss, возвращаемыми командлетом Get-Process. Кроме того, поскольку для CSV-версии объектов процессов в файлах форматиров ания не указан тип, эти объекты не приводятся к формату, к которому обычно приводятся стандартные объекты процессов. Чтобы отобразить эти объекты, необходимо воспользоваться командлетами форма тирования, такими как Format-Table и Format-List, или передать объекты кома ндлету Out-GridView по конвейеру. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process | export-csv processes.csv -Delimiter : C:\PS> $p = import-csv processes.csv -Delimiter : Описание ----------- В этом примере показано, как использовать параметр Delimiter командлета Imp ort-CSV. В этом примере процессы экспортируются в файл, где в качестве разд елителя используется знак двоеточия (:). При импорте в файл командлет Import-CSV использует параметр Delimiter, чтоб ы задать используемый в этом файле разделитель. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$p = import-csv processes.csv -UseCulture C:\PS> (get-culture).textinfo.listseparator , Описание ----------- В этом примере демонстрируется использование параметра UseCulture командлет а Import-CSV. Первая команда импортирует объекты в файле Processes.csv в переменную $p. О на использует параметр UseCulture, чтобы указать, что командлет Import-CSV должен использовать разделитель элементов списка, определенный для текущей культуры. Вторая команда отображает разделитель элементов списка для текущей культуры . С помощью командлета Get-Culture она получает текущее значение культуры. Используя обращение через точку (.), команда получает свойство TextInfo тек ущей культуры и свойство ListSeparator объекта TextInfo. В этом примере ком анда возвращает запятую. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>start-job -scriptblock { get-process } | export-csv jobs.csv C:\PS> $header = "MoreData","StatusMessage","Location","Command","State","F inished","InstanceId","SessionId","Name","ChildJobs","Output","Error","Prog ress","Verbose","Debug","Warning","StateChanged" # Delete header from file C:\PS> $a = (get-content jobs.csv) C:\PS> $a = $a[0], $a[2..($a.count - 1)] C:\PS> $a > jobs.csv C:\PS> $j = import-csv jobs.csv -header $header C:\PS> $j MoreData : True StatusMessage : Location : localhost Command : get-process State : Running Finished : System.Threading.ManualResetEvent InstanceId : 135bdd25-40d6-4a20-bd68-05282a59abd6 SessionId : 1 Name : Job1 ChildJobs : System.Collections.Generic.List`1[System.Management.Automat ion.Job] Output : System.Management.Automation.PSDataCollection`1[System.Mana gement.Automation.PSObject] Error : System.Management.Automation.PSDataCollection`1[System.Mana gement.Automation.ErrorRecord] Progress : System.Management.Automation.PSDataCollection`1[System.Mana gement.Automation.ProgressRecord] Verbose : System.Management.Automation.PSDataCollection`1[System.Stri ng] Debug : System.Management.Automation.PSDataCollection`1[System.Stri ng] Warning : System.Management.Automation.PSDataCollection`1[System.Stri ng] StateChanged : Описание ----------- В этом примере показано, как с помощью параметра Header командлета Import-C SV изменять имена свойств в конечном импортированном объекте. Первая команда с помощью командлета Start-Job запускает на локальном компью тере фоновое задание, выполняющее команду Get-Process. С помощью оператора конвейера (|) полученный объект задания передается командлету Export-CSV, к оторый преобразует его в формат CSV. С помощью оператора присваивания (=) п олученные данные CSV сохраняются в файле Jobs.csv. Вторая команда сохраняет заголовок в переменной $header. В отличие от загол овка по умолчанию, в этом заголовке вместо имени "HasMoreData" используется имя "MoreData", а вместо имени "JobStateInfo" — имя "State". Следующие три команды удаляют исходный заголовок (вторую строку) из файла J obs.csv. Шестая команда с помощью командлета Import-CSV импортирует файл Jobs.csv и преобразует строки CSV в CSV-версию объекта задания. Параметр Header в этой команде используется для указания альтернативного заголовка. Результат сох раняется в переменной $j. Седьмая команда выводит объект, сохраненный в переменной $j. Полученный объ ект имеет свойства "MoreData" и "State", как показано в результатах выполне ния команды. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>".\processes.csv" | import-csv Описание ----------- Эта команда импортирует объекты из файла Processes.csv. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113341 Export-CSV ConvertTo-CSV ConvertFrom-CSV Import-LocalizedData ИМЯ Import-LocalizedData ОПИСАНИЕ Импортирует относящиеся к конкретному языку данные в скрипты и функции на о снове выбранной в операционной системе культуры пользовательского интерфейс а. СИНТАКСИС Import-LocalizedData [-BindingVariable] <string> [[-UICulture] <string>] [- BaseDirectory <string>] [-FileName <string>] [-SupportedCommand <string[]>] [<CommonParameters>] ОПИСАНИЕ Командлет Import-LocalizedData динамически извлекает строки из подкаталога, имя которого соответствует языку пользовательского интерфейса, заданному д ля текущего пользователя операционной системы. Он позволяет создавать скрип ты, отображающие сообщения на языке пользовательского интерфейса, выбранном текущим пользователем. Командлет Import-LocalizedData импортирует данные из файлов PSD1 в подкатал огах определенных языков, содержащихся в каталоге скриптов, и сохраняет их в локальной переменной, указанной в команде. Командлет выбирает подкаталог и файл на основании значения автоматической переменной $PSUICulture. При ис пользовании в скрипте локальной переменной для отображения сообщения это со общение появляется на выбранном языке пользовательского интерфейса. С помощью параметров командлета Import-LocalizedData можно задать альтернат ивную культуру пользовательского интерфейса, путь и имя файла, добавить под держиваемые команды, а также отключить появление сообщений об ошибках, отоб ражаемых, если файлы PSD1 найти не удается. Командлет Import-LocalizedData поддерживает вывод сообщений скриптов Window s PowerShell 2.0 на различных языках. Эта инициатива направлена на лучшую п оддержку пользователей по всему миру, чтобы скрипты выводили сообщения на я зыке пользовательского интерфейса текущего пользователя. Дополнительные св едения об этом, а также о формате файлов PSD1, см. в разделе about_Script_I nternationalization. ПАРАМЕТРЫ -BaseDirectory <string> Задает базовый каталог, в котором размещаются файлы PSD1. Каталогом по умолчанию является каталог со скриптами. Командлет Import-LocalizedData осуществляет поиск файла PSD1 для скрипта в относящемся к конкретному языку подкаталоге базового каталога. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -BindingVariable <string> Задает переменную, в которую импортируются текстовые строки. Указываетс я имя переменной (без знака доллара). При использовании командлета Import-LocalizedData для замены текстовых строк по умолчанию, заданных в разделе DATA скрипта, присвойте раздел D ATA переменной и укажите ее имя в качестве значения параметра BindingVa riable. В этом случае при сохранении командлетом Import-LocalizedData и мпортированного содержимого в переменной BindingVariable импортированны е данные заменят текстовые строки по умолчанию. Если указаны не текстов ые строки по умолчанию, можно выбрать любое имя переменной. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FileName <string> Задает имя файла PSD1 для импорта. Укажите имя файла без расширения PSD 1. Значением по умолчанию является имя скрипта. Например, если скрипт назы вается FindFiles.ps1, то командлет Import-LocalizedData будет искать фа йл FindFiles.psd1. Этот параметр позволяет сделать так, чтобы командлет Import-LocalizedData искал другой файл PSD1. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SupportedCommand <string[]> Указывает командлеты и функции, создающие только данные. Используйте этот параметр для добавления созданных или протестированных вами командлетов и функций. Дополнительные сведения см. в разделе abou t_Script_Internationalization. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UICulture <string> Задает альтернативную культуру пользовательского интерфейса. Значением по умолчанию является автоматическая переменная $PsUICulture. Укажите к ультуру пользовательского интерфейса в формате "<язык>-<регион>", напри мер en-US, de-DE или ru-RU. Значение параметра UICulture определяет относящийся к конкретному языку каталог (внутри базового каталога), из которого командлет Import-Local izedData получает файл PSD1 для скрипта. Командлет осуществляет поиск подкаталога с именем, совпадающим со значе нием параметра UICulture или автоматической переменной $PsUICulture, на пример "de-DE" или "ru-RU". Если найти каталог не удается или в каталог е нет файла PSD1 для скрипта, осуществляется поиск подкаталога с именем , соответствующим коду языка, например "de" или "ru". Если найти подкат алог или файл PSD1 не удается, команда завершается с ошибкой, а данные отображаются на заданном в скрипте языке по умолчанию. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Collections.Hashtable Командлет Import-LocalizedData сохраняет хэш-таблицу в переменной, указ анной в качестве значения параметра BindingVariable. ПРИМЕЧАНИЯ Перед использованием командлета Import-LocalizedData необходимо локализ овать пользовательские сообщения. Приведите сообщения для каждой локали (культуры пользовательского интерфейса) к формату пар "имя/значение" х эш-таблицы и сохраните хэш-таблицу в файл с именем, совпадающим с имене м скрипта, и расширением PSD1. Создайте в каталоге скрипта подкаталог д ля каждой культуры пользовательского интерфейса и сохраните файл PSD1 д ля каждой культуры в соответствующем подкаталоге. Например, переведите сообщения для локали ru-RU и отформатируйте их в в иде хэш-таблицы. Сохраните хэш-таблицу в файле <Имя-скрипта>.psd1. Посл е этого создайте в каталоге скрипта подкаталог ru-RU и сохраните файл Имя-скрипта>.psd1 для культуры ru-RU в подкаталоге ru-RU. Повторите эту операцию для всех поддерживаемых локалей. Командлет Import-LocalizedData выполняет структурированный поиск локали зованных пользовательских сообщений для скрипта. Import-LocalizedData начинает поиск с каталога, в котором находится фай л скрипта, или каталога, заданного параметром BaseDirectory. Он осущест вляет поиск в базовом каталоге подкаталога с именем, совпадающим со зна чением переменной $PsUICulture или значением параметра UICulture, напри мер "de-DE" или "ru-RU". После этого он осуществляет в подкаталоге поис к файла PSD1 с именем, совпадающим с именем скрипта или значением парам етра FileName. Если командлету Import-LocalizedData не удается найти подкаталог с имен ем культуры пользовательского интерфейса или найти в этом подкаталоге ф айл PSD1 для скрипта, он осуществляет поиск файла PSD1 для скрипта в по дкаталоге с именем кода языка, например "de" или "ru". Если найти подка талог или файл PSD1 не удается и в этом случае, команда завершается сбо ем, данные отображаются на заданном в скрипте языке по умолчанию, и поя вляется сообщение об ошибке, в котором говорится, что данные импортиров ать не удалось. Чтобы отключить появление этого сообщения в случае сбоя , воспользуйтесь общим параметром ErrorAction, указав для него значение SilentlyContinue. Если командлет Import-LocalizedData обнаружит подкаталог и файл PSD1, о н импортирует хэш-таблицу пользовательских сообщений в переменную, зада нную параметром BindingVariable в команде. После этого при выводе сообщ ений из хранящейся в данной переменной хэш-таблицы будут отображаться л окализованные сообщения. Дополнительные сведения см. в разделе about_Script_Internationalization . -------------------------- ПРИМЕР 1 -------------------------- C:\PS>import-localizeddata -bindingVariable messages Описание ----------- Эта команда импортирует текстовые строки в переменную $messages. Она исполь зует все значения по умолчанию параметров командлета. Если команда включена в скрипт Archives.ps1 в каталоге C:\test, а автоматич еская переменная $PsUICulture имеет значение zh-CN, командлет Import-Locali zedData импортирует файл Archives.psd1 в каталог C:\test\zh-CN. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>import-localizeddata -bindingVariable msgTbl -uiculture ar-SA -filena me Simple -baseDirectory C:\Data\Localized Описание ----------- Эта команда импортирует текстовые строки в переменную $msgTbl скрипта. Она использует параметр UICulture, чтобы командлет импортировал данные из ф айла Simple.psd1 в подкаталоге ar-SA каталога C:\Data\Localized. -------------------------- ПРИМЕР 3 -------------------------- C:\PS># In C:\Test\en-US\test.psd1: ConvertFrom-StringData @' # English strings Msg1 = "The Name parameter is missing from the command." Msg2 = "This command requires the credentials of a member of the Administra tors group on the computer." Msg3 = "Use $_ to represent the object that is being processed." '@ # In C:\Test\Test.ps1 import-localizeddata -bindingvariable messages write-host $messages.msg2 # In Windows PowerShell C:\PS> .\test.ps1 This command requires the credentials of a member of the Administrators gro up on the computer. Описание ----------- В этом примере показано, как использовать локализованные данные в примере с крипта. В первой части примера показано содержимое файла Test.psd1. Он содержит ком анду ConvertFrom-StringData, которая преобразует последовательность именова нных текстовых строк в хэш-таблицу. Файл test.psd1 расположен в подкаталоге en-US каталога C:\Test directory, содержащего скрипт. Во второй части примера показано содержимое файла Test.ps1. В ней содержитс я команда Import-LocalizedData, импортирующая данные из соответствующего фа йла PDS1 в переменную $Messages, а также команда Write-Host, записывающая о дно из сообщений из переменной $Messages в основную программу. Последняя команда в этом примере выполняет скрипт. Выходные данные подтверж дают, что отображается надлежащее пользовательское сообщение на языке польз овательского интерфейса, заданного для текущего пользователя операционной с истемы. -------------------------- ПРИМЕР 4 -------------------------- C:\PS># In TestScript.ps1 $UserMessages = DATA { ConvertFrom-StringData @' # English strings Msg1 = "Enter a name." Msg2 = "Enter your employee ID." Msg3 = "Enter your building number." '@ } Import-LocalizedData -bindingVariable UserMessages $UserMessages.Msg1 ... Описание ----------- В этом примере показано, как с помощью командлета Import-LocalizedData заме нить текстовые строки по умолчанию, определенные в разделе DATA скрипта. В этом примере раздел DATA скрипта TestScript.ps1 содержит команду ConvertF rom-StringData, преобразующую содержимое раздела DATA в хэш-таблицу и сохра няющая ее в качестве значения переменной $UserMessages. В скрипте также используется команда Import-LocalizedData, импортирующая хэ ш-таблицу с переведенными текстовыми строками из файла TestScript.psd1 в по дкаталоге, заданном переменной $PsUICulture. Если команда находит файл PSD1 , она сохраняет переведенные строки из файла в ту же самую переменную $User Messages вместо хэш-таблицы, сохраненной логикой из раздела DATA. Третья команда отображает первое сообщение из переменной $UserMessages. Если команда Import-LocalizedData находит файл PSD1 для языка $PsUICulture, значение переменной $UserMessages содержит переведенные текстовые строки. Если выполнение команды по какой-то причине завершается с ошибкой, команда выводит текстовые строки, определенные в разделе скрипта DATA. -------------------------- ПРИМЕР 5 -------------------------- C:\PS># In Day1.ps1 Import-LocalizedData -bindingVariable Day Day.MessageDate # In Day2.ps1 Import-LocalizedData -bindingVariable Day -errorAction:silentlycontinue Day.MessageDate C:\PS> .\Day1.ps1 Import-LocalizedData : Cannot find PowerShell data file 'Day1.psd1' in dire ctory 'C:\ps-test\fr-BE\' or any parent culture directories. At C:\ps-test\Day1.ps1:17 char:21 + Import-LocalizedData < Day Today is Tuesday C:\PS> .\Day2.ps1 Today is Tuesday Описание ----------- В этом примере показано, как отключить сообщения об ошибках, которые появля ются, если командлету Import-LocalizedData не удается найти каталоги, соотв етствующие заданной культуре пользовательского интерфейса, или файл PSD1 дл я скрипта в этих каталогах. Используя общий параметр ErrorAction со значением SilentlyContinue, можно о тключить появление сообщений об ошибках. Это бывает особенно полезным, если имеются пользовательские сообщения на языке по умолчанию или "резервном" я зыке, и показывать сообщения об ошибках не нужно. В этом примере сравниваются два скрипта (Day1.ps1 и Day2.ps1), которые вклю чают команду Import-LocalizedData. Эти скрипты идентичны за исключением тог о, что в скрипте Day2 используется общий параметр ErrorAction со значением SilentlyContinue. Результат выполнения примера показывает, что произойдет при запуске обоих с криптов, если для культуры пользовательского интерфейса установлено значени е fr-BE, а соответствующие файлы и каталоги отсутствуют. Скрипт Day1.ps1 вы водит сообщение об ошибке и текст на английском языке. Скрипт Day2.ps1 выво дит только текст на английском языке. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113342 about_Script_Internationalization Import-Module ИМЯ Import-Module ОПИСАНИЕ Добавляет модули в текущий сеанс. СИНТАКСИС Import-Module [-Name] <string[]> [-Alias <string[]>] [-ArgumentList <Object []>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Version <Version>] [<CommonParameters>] Import-Module [-Assembly] <Assembly[]> [-Alias <string[]>] [-ArgumentList Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <stri ng[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]>] [-Ve rsion <Version>] [<CommonParameters>] Import-Module [-ModuleInfo] <PSModuleInfo[]> [-Alias <string[]>] [-Argument List <Object[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Force] [-Function <string[]>] [-Global] [-PassThru] [-Prefix <string>] [-Variable <string[]> ] [-Version <Version>] [<CommonParameters>] ОПИСАНИЕ Командлет Import-Module добавляет один или несколько модулей в текущий сеан с. Модуль представляет собой пакет, содержащий элементы (такие как командлеты, поставщики, скрипты, функции, переменные и другие средства и файлы), котор ые можно использовать в Windows PowerShell. После импорта модуля в сеансе м ожно использовать элементы модуля. Чтобы импортировать модуль, используйте параметр Name, Assembly или ModuleI nfo для указания импортируемого модуля. По умолчанию командлет Import-Modul e импортирует все элементы, экспортируемые модулем, но для ограничения импо рта элементов можно использовать параметры Alias, Function, Cmdlet и Variab le. Командлет Import-Module импортирует модуль только в текущий сеанс. Чтобы им портировать модуль во все сеансы, команду Import-Module следует добавить в профиль Windows PowerShell пользователя. Дополнительные сведения о профилях см. в разделе about_Profiles. Дополнительные сведения о модулях см. в разделе about_Modules. ПАРАМЕТРЫ -Alias <string[]> Импортирует только указанные псевдонимы из модуля в текущий сеанс. Введ ите список псевдонимов, разделенных запятыми. Подстановочные знаки разр ешены. Некоторые модули автоматически экспортируют некоторые псевдонимы в сеан с при импорте модуля. Этот параметр позволяет выбирать из экспортирован ных псевдонимов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -ArgumentList <Object[]> Указывает аргументы (значения параметров), которые передаются модулю ск рипта при обработке команды Import-Module. Этот параметр допустим толь ко при импорте модуля скрипта. Параметр ArgumentList также можно вызвать с помощью псевдонима "args". Дополнительные сведения см. в разделе About_Aliases. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsCustomObject [<SwitchParameter>] Возвращает пользовательский объект с элементами, представляющими импорт ированные элементы модуля. Этот параметр допустим только для модулей ск рипта. При использовании параметра AsCustomObject команда Import-Module импорт ирует элементы модуля в сеанс и возвращает объект PSCustomObject, а не объект PSModuleInfo. Можно сохранить пользовательский объект в переменн ой и использовать точку для обращения к его элементам. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Assembly <Assembly[]> Импортирует командлеты и поставщики, реализованные в заданных объектах сборки. Введите переменную, содержащую объекты сборки, либо введите ком анду, создающую их. Кроме того, можно передать объект сборки командлету Import-Module по конвейеру. При использовании этого параметра из заданных сборок импортируются толь ко командлеты и поставщики. Если в модуле содержатся другие файлы, они не импортируются, в результате важные элементы модуля могут отсутствова ть. Используйте этот параметр для отладки и тестирования модуля или в с лучае, если такое указание дается автором модуля. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Cmdlet <string[]> Импортирует только указанные командлеты из модуля в текущий сеанс. Введ ите список командлетов. Подстановочные знаки разрешены. Некоторые модули автоматически экспортируют некоторые командлеты в сеан с при импорте модуля. Этот параметр позволяет выбирать из экспортирован ных командлетов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Force [<SwitchParameter>] Повторно импортирует модуль и его элементы, даже если модуль или его эл ементы находятся в режиме доступа только для чтения. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Function <string[]> Импортирует только указанные функции из модуля в текущий сеанс. Введите список функций. Подстановочные знаки разрешены. Некоторые модули автоматически экспортируют некоторые функции в сеанс п ри импорте модуля. Этот параметр позволяет выбирать из экспортированных функций. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Global [<SwitchParameter>] При использовании в модуле скрипта (PSM1) этот параметр импортирует мод ули в состояние глобального сеанса. Этот параметр можно использовать, только когда он появляется в модуле с крипта. В противном случае он игнорируется. По умолчанию команды в модуле скрипта, включая команды из вложенных мод улей, импортируются в состояние сеанса вызывающего объекта. Для огранич ения команд, экспортируемых модулем, используйте команду Export-ModuleM ember в модуле скрипта. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ModuleInfo <PSModuleInfo[]> Задает объекты модулей, которые требуется импортировать. Введите переме нную, содержащую объекты модулей, либо команду, получающую объекты моду лей, например "get-module -listavailable". Кроме того, можно передать о бъекты модулей командлету Import-Module по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Определяет имена импортируемых модулей. Введите имя модуля или имя файл а модуля, например файла PSD1, PSM1, DLL или PS1. Пути к файлам являютс я необязательным параметром. Подстановочные знаки запрещены. Имена моду лей и имена файлов можно передать командлету Import-Module по конвейеру . Если путь не указан, командлет Import-Module выполняет поиск модуля, ко торый присутствует в путях, сохраненных в переменной среды PSModulePath ($env:PSModulePath). Укажите только имя модуля, если это возможно. При указании имени файла будут импортированы только элементы, реализованные в этом файле. Если в модуле содержатся другие файлы, они не импортируются, в результате важ ные элементы модуля могут отсутствовать. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объекты, представляющие импортированные модули. По умолчанию этот командлет не формирует никаких выходных данных. Примечания -- При передаче выходных данных команды "get-module -listavailable" по конвейеру команде Import-Module с помощью параметра PassThru команда Im port-Module возвращает объект, переданный ей командой Get-Module, не об новляя его. Таким образом, значения свойств Exported и NestedModules ос таются неопределенными. -- При использовании параметра Prefix для указания префикса элемента пр ефикс не отображается в именах элементов в свойствах объекта модуля. В объект заносится информация об экспорте, выполненном до применения преф икса. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Prefix <string> Добавляет заданный префикс к существительным в именах импортированных э лементов модуля. Этот параметр используется для предотвращения конфликтов имен, который может возникнуть, если несколько элементов в сеансе будут иметь одинако вые имена. Этот параметр не изменяет содержимое модуля и не влияет на ф айлы, импортируемые модулем для внутреннего использования (так называем ые "вложенные модули"). Он влияет только на имена элементов в текущем с еансе. Например, если указать префикс "UTC" и импортировать командлет Get-Date , командлет в сеансе будет называться Get-UTCDate, и система не будет п утать его с исходным командлетом Get-Date. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Variable <string[]> Импортирует только указанные переменные из модуля в текущий сеанс. Введ ите список переменных. Подстановочные знаки разрешены. Некоторые модули автоматически экспортируют некоторые переменные в сеан с при импорте модуля. Этот параметр позволяет выбирать из экспортирован ных переменных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Version <Version> Задает версию импортируемого модуля. Этот параметр следует использовать в случае, если в системе присутствуют различные версии одного модуля. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String, System.Management.Automation.PSModuleInfo, System.Reflection .Assembly Командлету Import-Module можно передать по конвейеру имя модуля, объект модуля или объект сборки. ВЫХОДНЫЕ ДАННЫЕ None, System.Management.Automation.PSModuleInfo или System.Management.Autom ation.PSCustomObject По умолчанию командлет Import-Module не формирует никаких выходных данн ых. При использовании параметра Passthru командлет создает объект Syste m.Management.Automation.PSModuleInfo, представляющий модуль. Если испол ьзуется параметр AsCustomObject, командлет создает объект PSCustomObjec t. ПРИМЕЧАНИЯ Командлет Import-Module также можно вызывать с помощью псевдонима "ipmo ". Дополнительные сведения см. в разделе About_Aliases. Перед импортом модуля необходимо скопировать каталог модуля в каталог, доступный на локальном компьютере. Дополнительные сведения см. в раздел е About_Modules. Элементы модуля выполняются в собственном состоянии закрытого сеанса мо дуля, поэтому команды, используемые ими для внутренней обработки, не вл ияют на состояние сеанса. При импорте в сеанс элементов с одинаковыми именами, принадлежащих к од ному типу, по умолчанию Windows PowerShell использует последний импорти рованный элемент. Переменные и псевдонимы заменяются параметрами нового элемента, при этом исходные версии недоступны. Функции, командлеты и п оставщики просто затеняются новыми элементами, доступ к ним возможен пр и использовании имени команды с указанием имени оснастки, модуля или пу ти к функции. Чтобы обновить данные форматирования для команд, импортированных из мод уля, используйте командлет Update-FormatData. Кроме того, командлет Upd ate-FormatData обновляет данные форматирования для команд в сеансе, имп ортированных из модулей. При изменении файла форматирования для модуля можно выполнить команду Update-FormatData, чтобы обновить данные формат ирования для импортированных команд. Импортировать модуль повторно не т ребуется. Для импорта модуля, созданного командлетом Import-PSSession или Export- PSSession, политика выполнения в текущем сеансе не может иметь значение Restricted или AllSigned, поскольку создаваемые командлетами Import-PS Session и Export-PSSession модули содержат неподписанные файлы скриптов , которые запрещены этими политиками. Чтобы использовать командлет Impo rt-Module без изменения политики выполнения для локального компьютера, необходимо с помощью параметра Scope командлета Set-ExecutionPolicy зад ать менее жесткую политику выполнения для одного процесса. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>import-module -name BitsTransfer Описание ----------- Эта команда импортирует элементы модуля BitsTransfer в текущий сеанс. Имя параметра Name (-Name) не является обязательным и может быть опущено. По умолчанию командлет Import-Module не формирует никаких выходных данных п ри импорте модуля. Чтобы обеспечить формирование выходных данных, используй те параметр PassThru или AsCustomObject либо общий параметр Verbose. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-module -listAvailable | import-module Описание ----------- Этак команда импортирует все доступные модули в пути, указанном переменной среды PSModulePath ($env:psmodulepath), в текущий сеанс. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$m = get-module -ListAvailable BitsTransfer, ServerBackup C:\PS> import-module -moduleInfo $m Описание ----------- Эти команды импортируют элементы модулей BitsTransfer и ServerBackup в теку щий сеанс. Первая команда использует командлет Get-Module для получения объектов PSMod uleInfo, представляющих модули BitsTransfer и ServerBackup. Она сохраняет о бъекты в переменной $m. Параметр ListAvailable является обязательным при по лучении модулей, пока не импортированных в сеанс. Вторая команда использует параметр ModuleInfo командлета Import-Module, что бы импортировать модули в текущий сеанс. Эти команды эквиваленты использованию оператора конвейера (|) для передачи выходных данных команды Get-Module командлету Import-Module. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>import-module -name c:\ps-test\modules\test -verbose VERBOSE: Loading module from path 'C:\ps-test\modules\Test\Test.psm1'. VERBOSE: Exporting function 'my-parm'. VERBOSE: Exporting function 'get-parm'. VERBOSE: Exporting function 'get-spec'. VERBOSE: Exporting function 'get-specDetails'. Описание ----------- Эта команда использует путь, заданный явным образом, для указания импортиру емого модуля. Она также использует общий параметр Verbose для получения списка элементов, импортированных из модуля. При вызове параметров Verbose, PassThru или AsC ustomObject командлет Import-Module не формирует никаких выходных данных пр и импорте модуля. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>import-module BitsTransfer -cmdlet Add-BitsTransferFile, Get-BitsTran sfer C:\PS> get-module BitsTransfer Name : BitsTransfer Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Bits Transfer\BitsTransfer.psd1 Description : Guid : 8fa5064b-8479-4c5c-86ea-0d311fe48875 Version : 1.0.0.0 ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Bits Transfer ModuleType : Manifest PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {[Add-BitsTransfer, Add-BitsTransfer], [Complete-BitsTr ansfer, Complete-BitsTransfer], [Get-BitsTransfer, Get-BitsTransfer], [Rem ove-BitsTransfer, Remove-BitsTransfer]...} ExportedFunctions : {} ExportedVariables : {} NestedModules : {Microsoft.BackgroundIntelligentTransfer.Management} C:\PS> get-command -module BitsTransfer CommandType Name Definition ----------- ---- ---------- Cmdlet Add-BitsTransfer Add-BitsTransfer [-BitsJob] <BitsJob[]> [-S ource] <String[]> [[-Destination] <String[]>] [-Verbose] [-Debug] [-ErrorA. .. Cmdlet Get-BitsTransfer Get-BitsTransfer [[-Name] <String[]>] [-All Users] [-Verbose] [-Debug] [-ErrorAction <ActionPreference>] [-WarningActi. .. Описание ----------- В этом примере показано, как ограничить элементы модуля, импортируемые в се анс, а также влияние этой команды на сеанс. Первая команда импортирует только командлеты Add-BitsTransfer и Get-BitsTra nsfer из модуля BitsTransfer. Эта команда использует параметр Cmdlet для ог раничения командлетов, импортируемых модулем. Параметры Alias, Variable и F unction также можно использовать для ограничения других элементов, импортир уемых модулем. Вторая команда использует командлет Get-Module для получения объекта, предс тавляющего модуль BitsTransfer. В свойстве ExportedCmdlets перечислены все командлеты, экспортируемые модулем, даже если не все они были импортированы . Третья команда использует параметр Module командлета Get-Command для получе ния команд, импортированных из модуля BitsTransfer. Результаты подтверждают , что были импортированы только командлеты Add-BitsTransfer и Get-BitsTrans fer. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>import-module BitsTransfer -prefix PS -passthru Name : bitstransfer Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bits transfer\bitstransfer.psd1 Description : Guid : 8fa5064b-8479-4c5c-86ea-0d311fe48875 Version : 1.0.0.0 ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\bits transfer ModuleType : Manifest PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {[Add-BitsTransfer, Add-BitsTransfer], [Remove-BitsTran sfer, Remove-BitsTransfer], [Complete-BitsTransfer, Complete-BitsTransfer] , [Get-BitsTransfer, Get-BitsTransfer]...} ExportedFunctions : {} ExportedVariables : {} NestedModules : {Microsoft.BackgroundIntelligentTransfer.Management} C:\PS> get-command -module bitstransfer CommandType Name Definition ----------- ---- ---------- Cmdlet Add-PSBitsTransfer Add-PSBitsTransfer [-BitsJob] BitsJob[]> [-Source] <String[]> ... Cmdlet Complete-PSBitsTransfer Complete-PSBitsTransfer [-BitsJ ob] <BitsJob[]> [-Verbose] [-Deb... Cmdlet Get-PSBitsTransfer Get-PSBitsTransfer [[-Name] <St ring[]>] [-AllUsers] [-Verbose] ... Cmdlet Remove-PSBitsTransfer Remove-PSBitsTransfer [-BitsJob ] <BitsJob[]> [-Verbose] [-Debug... Cmdlet Resume-PSBitsTransfer Resume-PSBitsTransfer [-BitsJob ] <BitsJob[]> [-Asynchronous] [-... Cmdlet Set-PSBitsTransfer Set-PSBitsTransfer [-BitsJob] BitsJob[]> [-DisplayName <String... Cmdlet Start-PSBitsTransfer Start-PSBitsTransfer [[-Source] <String[]>] [[-Destination] <St... Cmdlet Suspend-PSBitsTransfer Suspend-PSBitsTransfer [-BitsJo b] <BitsJob[]> [-Verbose] [-Debu... Описание ----------- Эти команды импортируют модуль BitsTransfer в текущий сеанс, добавляют преф икс к именам элементов и затем отображают элементы с именами, к которым доб авлен префикс. Первая команда импортирует модуль BitsTransfer с помощью командлета Import- Module. Она использует параметр Prefix для добавления префикса PS ко всем э лементам, импортированным из модуля, и параметр PassThru для возврата объек та модуля, представляющего импортированный модуль. Объект модуля, возвращаемого командой, имеет свойство ExportedCmdlets, в ко тором перечисляются экспортированные элементы. Префикс не отображается в им енах командлетов, поскольку он применяется после экспорта элементов (но пер ед импортом элементов). Вторая команда использует командлет Get-Command для получения элементов, им портированных из модуля. Для указания модуля используется параметр Module. В выходных данных отображаются элементы модуля с именами, к которым добавле н префикс. Префикс применяется к именам элементов только в рамках текущего сеанса. Он не изменяет содержимое модуля. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-module -list | format-table -property name, moduletype -auto Name ModuleType ---- ---------- Show-Calendar Script BitsTransfer Manifest PSDiagnostics Manifest TestCmdlets Script C:\PS> $a = import-module -name Show-Calendar -asCustomObject C:\PS> $a | get-member TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Show-Calendar ScriptMethod System.Object Show-Calendar(); C:\PS> $a."show-calendar"() Описание ----------- В этих командах показано, как получать и использовать пользовательский объе кт, возвращаемый командлетом Import-Module. В пользовательские объекты включаются виртуальные элементы, представляющие импортированные элементы модуля. Например, командлеты и функции в модуле пр еобразуются в методы-скрипты пользовательского объекта. Пользовательские объекты очень удобны при создании скриптов. Они также удоб ны при совпадении имен нескольких импортированных объектов. Использование м етода-скрипта объекта эквивалентно указанию полного имени импортированного элемента, включая имя модуля. Параметр AsCustomObject может использоваться только в рамках модуля скрипта , поэтому первой задачей является определение, какой из доступных модулей я вляется модулем скрипта. Первая команда получает все доступные модули с помощью командлета Get-Modul e. Команда использует оператор конвейера (|) для передачи объектов модулей командлету Format-Table, который отображает в таблице значения параметров N ame и ModuleType для каждого модуля. Вторая команда импортирует модуль-скрипт ShowCalendar с помощью командлета Import-Module. Параметр AsCustomObject используется для формирования пользо вательского объекта. Полученный пользовательский объект сохраняется в перем енной $a. Третья команда с помощью оператора конвейера передает переменную $a командл ету Get-Member, который получает свойства и методы объекта PSCustomObject, сохраненного в переменной $a. В выходных данных отображается метод-скрипт S how-Calendar. Последняя команды использует метод-скрипт Show-Calendar. Имя метода должно быть заключено в кавычки, поскольку оно содержит дефис. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>import-module BitsTransfer C:\PS> import-module BitsTransfer -force -prefix PS Описание ----------- В этом примере показано, как использовать параметр Force командлета Import- Module при повторном импорте модуля в тот же сеанс. Первая команда импортирует модуль BitsTransfer. Вторая команда повторно имп ортирует модуль, на этот раз с указанием параметра Prefix. Во второй команде также задан параметр Force, который удаляет модуль и снов а импортирует его. Без этого параметра сеанс содержал бы две копии каждого командлета BitsTransfer: одну копию со стандартным именем, а вторую — с име нем с префиксом. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>get-date Saturday, September 12, 2009 6:47:04 PM C:\PS> import-module TestModule C:\PS> get-date 09255 C:\PS> get-command get-date | format-table -property commandtype, name, pss napin, module -auto CommandType Name pssnapin Module ----------- ---- -------- ------ Function Get-Date TestModule Cmdlet Get-Date Microsoft.PowerShell.Utility C:\PS> Microsoft.PowerShell.Utility\get-date Saturday, September 12, 2009 6:33:23 PM Описание ----------- В этом примере показано, как выполнить команды, скрытые импортированными ко мандами. Первая команда выполняет командлет Get-Date, входящий в Windows PowerShell. Она возвращает объект DateTime с текущей датой. Вторая команда импортирует модуль TestModule. В этот модуль входит функция Get-Date, которая возвращает дату по юлианскому календарю. Третья команда снова выполняет команду Get-Date. Поскольку функции имеют пр иоритет перед командлетами, была выполнена функция Get-Date из модуля TestM odule, а не командлет Get-Date. Четвертая команда показывает, что в сеансе имеется две команды Get-Date, фу нкция из модуля TestModule и командлет из оснастки Microsoft.PowerShell.Uti lity. Пятая команда выполняет скрытый командлет, указав имя команды с именем осна стки. Дополнительные сведения о приоритете команд в Windows PowerShell см. в разд еле about_command_precedence. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141553 Get-Module New-Module Remove-Module Export-ModuleMember about_Modules Import-PSSession ИМЯ Import-PSSession ОПИСАНИЕ Импортирует в текущий сеанс команды из другого сеанса. СИНТАКСИС Import-PSSession [-Session] <PSSession> [[-CommandName] <string[]>] [[-Form atTypeName] <string[]>] [-AllowClobber] [-ArgumentList <Object[]>] [-Comman dType {Alias | Function | Filter | Cmdlet | ExternalScript | Application | Script | All}] [-Module <string[]>] [-Prefix <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Import-PSSession импортирует команды (такие как командлеты, функц ии и псевдонимы) из сеанса PSSession на локальном или удаленном компьютере в текущий сеанс. Возможен импорт любой команды, которую можно найти в друго м сеансе PSSession с помощью командлета Get-Command. Командлет Import-PSSession служит для импорта команд из настроенной оболочк и, например из оболочки Microsoft Exchange Server или из сеанса, включающег о модули и оснастки Windows PowerShell, а также для импорта других элементо в, не являющихся частью текущего сеанса. Чтобы импортировать команды, создайте сеанс PSSession с помощью команды New -PSSession. Затем с помощью командлета Import-PSSession импортируйте нужные команды. По умолчанию командлет Import-PSSession импортирует все команды, за исключением тех, имена которых совпадают с именами команд в текущем сеан се. Чтобы импортировать все сеансы, используйте параметр AllowClobber. Импортированные команды можно использовать так же, как используются и други е команды в сеансе. При выполнении импортированной команды ее импортированн ая часть косвенно выполняется в сеансе, из которого она была импортирована. Однако удаленные операции полностью обрабатываются в оболочке Windows Powe rShell. Пользователю не нужно заботиться об этом, но ему нужно поддерживать открытым подключение к другому сеансу (PSSession). Если закрыть подключени е, импортированные команды станут недоступными. Поскольку импортированные команды могут выполняться дольше, чем локальные к оманды, командлет Import-PSSession добавляет к каждой импортируемой команде параметр AsJob. Этот параметр позволяет выполнять команды в качестве фонов ых заданий Windows PowerShell. Дополнительные сведения см. в разделе about_ Jobs. При использовании командлета Import-PSSession оболочка Windows PowerShell д обавляет импортируемые команды во временный модуль, который существует толь ко в рамках данного сеанса, и возвращает объект, представляющий этот модуль . Чтобы создать сохраняющийся модуль, который можно будет использовать в по следующих сеансах, используйте командлет Export-PSSession. Командлет Import-PSSession использует функцию косвенного удаленного взаимод ействия Windows PowerShell. При импорте команд в текущий сеанс они косвенно выполняются в исходном сеансе или в аналогичном сеансе на исходном компьют ере. ПАРАМЕТРЫ -AllowClobber [<SwitchParameter>] Импортирует указанные команды, даже если их имена совпадают с именами к оманд в текущем сеансе. В случае импорта команды, имя которой совпадает с именем команды в теку щем сеансе, импортируемая команда скрывает или заменяет исходную. Допол нительные сведения см. в разделе about_Command_Precedence. По умолчанию командлет Import-PSSession не импортирует команды, имена к оторых совпадают с именами команд в текущем сеансе. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ArgumentList <Object[]> Импортирует вариант команды, получаемый при использовании заданных аргу ментов (значений параметров). Например, чтобы импортировать вариант команды Get-Item на диске сертифи катов (Cert:) в сеансе $s, введите команду "import-pssession -session $ s -command get-item -argumentlist cert:". Требуется? false Позиция? named Значение по умолчанию Все команды в сеансе PSSession, кр оме команд, имена которых совпадают с именами команд в текущем сеансе. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CommandName <string[]> Импортирует только команды с заданными именами или шаблонами имен. Подс тановочные знаки разрешены. Используйте имя "CommandName" или псевдоним "Name". По умолчанию командлет Import-PSSession импортирует из сеанса все коман ды, кроме тех, имена которых совпадают с именами команд в текущем сеанс е. Это позволяет избежать скрытия и замены команд в сеансе импортируемы ми командами. Чтобы импортировать все команды, даже те, которые скрываю т или заменяют другие команды, следует использовать параметр AllowClobb er. Если используется параметр CommandName, файлы форматирования команд не импортируются, если не используется параметр FormatTypeName. Аналогично , если используется параметр FormatTypeName, ни одна из команд не будет импортироваться, если не используется параметр CommandName. Требуется? false Позиция? 3 Значение по умолчанию Все команды в сеансе PSSession, кр оме команд, имена которых совпадают с именами команд в текущем сеансе. Принимать входные данные конвейера? false Принимать подстановочные знаки? true -CommandType <CommandTypes> Импортирует командные объекты только указанных типов. По умолчанию испо льзуется значение Cmdlet. Используйте "CommandType" или псевдоним "Type ". Допустимые значения: -- Alias: псевдонимы Windows PowerShell в удаленном сеансе. -- All: командлеты и функции в удаленном сеансе. -- Application: все файлы, отличные от файлов Windows PowerShell, котор ые расположены по путям, указанным в переменной среды Path ($env:path) в удаленном сеансе, в том числе файлы TXT, EXE и DLL. -- Cmdlet: командлеты в удаленном сеансе. По умолчанию используется зна чение "Cmdlet". -- ExternalScript: файлы PS1, которые расположены по путям, указанным в переменной среды Path ($env:path) в удаленном сеансе. -- Filter and Function: функции Windows PowerShell в удаленном сеансе. -- Script: блоки скриптов в удаленном сеансе. Требуется? false Позиция? named Значение по умолчанию Все команды в сеансе PSSession, кр оме команд, имена которых совпадают с именами команд в текущем сеансе. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FormatTypeName <string[]> Импортирует инструкции по форматированию для заданных типов Microsoft . NET Framework. Введите имена типов. Подстановочные знаки разрешены. Значением этого параметра должно быть имя типа, возвращаемое командой G et-FormatData в сеансе, из которого импортируются команды. Чтобы получи ть все данные форматирования в удаленном сеансе, введите *. Если команда не включает параметр CommandName или FormatTypeName, коман длет Import-PSSession импортирует инструкции по форматированию для всех типов .NET Framework, возвращаемых командой Get-FormatData в удаленном сеансе. Если используется параметр FormatTypeName, ни одна из команд не будет и мпортироваться, если не используется параметр CommandName. Аналогично, если используется параметр CommandName, файлы форматировани я команд не импортируются, если не используется параметр FormatTypeName . Требуется? false Позиция? 4 Значение по умолчанию Типы в пространстве имен System.Ma nagement.Automation Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Module <string[]> Импортирует только команды из заданных оснасток и модулей Windows Power Shell. Введите имена оснасток и модулей. Подстановочные знаки запрещены . Дополнительные сведения см. в разделах about_PSSnapins и Import-Module. Требуется? false Позиция? named Значение по умолчанию Все команды в сеансе PSSession, кр оме команд, имена которых совпадают с именами команд в текущем сеансе. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Prefix <string> Добавляет заданный префикс к существительным в именах импортируемых ком анд. Этот параметр используется для предотвращения конфликтов имен, которые могут возникнуть, если несколько команд в сеансе имеют одинаковые имена . Например, если указать префикс "Remote" и импортировать командлет Get-D ate, командлет в сеансе будет называться Get-RemoteDate, и система не б удет путать его с исходным командлетом Get-Date. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Session <PSSession> Задает сеанс PSSession, из которого импортируются командлеты. Введите п еременную, содержащую объект сеанса, или команду, получающую объект сеа нса, например New-PSSession или Get-PSSession. Можно указать только оди н сеанс. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSModuleInfo Командлет Import-PSSession возвращает тот же объект модуля, что и коман длеты New-Module и Get-Module. Однако импортированный модуль является в ременным и существует только в рамках текущего сеанса. Чтобы создать на диске постоянный модуль, воспользуйтесь командлетом Export-PSSession. ПРИМЕЧАНИЯ Командлет Import-PSSession использует инфраструктуру удаленного взаимод ействия Windows PowerShell. Чтобы использовать этот командлет, компьюте р должен быть настроен для удаленного взаимодействия WS-Management. Доп олнительные сведения см. в разделах about_Remote и about_Remote_Require ments. Командлет Import-PSSession не позволяет импортировать переменные и пост авщики Windows PowerShell. При импорте команд, имена которых совпадают с именами команд в текущем сеансе, импортируемые команды могут скрывать псевдонимы, функции и кома ндлеты в сеансе, а также заменять функции и переменные в сеансе. Дополн ительные сведения см. в разделе about_Command_Precedence. Командлет Import-PSSession преобразует все команды в функции перед их и мпортом. В результате импортированные команды работают не так, как они бы работали в случае сохранения своего исходного типа команд. Например, если импортировать командлет из сеанса PSSession, а затем импортироват ь командлет с тем же именем из модуля или оснастки, по умолчанию всегда будет выполняться командлет из сеанса PSSession, поскольку функции име ют приоритет по сравнению с командлетами. И наоборот, если импортироват ь псевдоним в сеанс, у котором имеется одноименный псевдоним, всегда бу дет использоваться исходный псевдоним, поскольку псевдонимы имеют приор итет по сравнению с функциями. Дополнительные сведения см. в разделе ab out_Command_Precedence. Командлет Import-PSSession использует для отображения хода выполнения к оманды командлет Write-Progress. Во время выполнения команды отображает ся индикатор выполнения. Чтобы найти команды для импорта, командлет Import-PSSession с помощью к омандлета Invoke-Command запускает в сеансе PSSession команду Get-Comma nd. Для получения данных форматирования для команд используется командл ет Get-FormatData. При выполнении команды Import-PSSession могут появля ться сообщения об ошибках командлетов Invoke-Command, Get-Command и Get -FormatData. Кроме того, командлет Import-PSSession не позволяет импорт ировать команды из сеансов PSSession, в которых отсутствуют командлеты Get-Command, Get-FormatData, Select-Object и Get-Help. На импортированные команды накладываются те же ограничения, что и на др угие удаленные команды, включая невозможность запускать программы с пол ьзовательским интерфейсом, например "Блокнот". Поскольку профили Windows PowerShell выполняются вне сеансов PSSessions , команды, добавляемые в сеанс через профиль, недоступны командлету Imp ort-PSSession. Чтобы импортировать команды из профиля, необходимо с пом ощью команды Invoke-Command вручную запустить профиль в сеансе PSSessio n, прежде чем импортировать команды. Временный модуль, создаваемый командлетом Import-PSSession, может включ ать файл форматирования, даже если команда не импортирует данные формат ирования. Если команда не импортирует данные форматирования, ни один из создаваемых файлов форматирования, не будет содержать данных форматиро вания. Чтобы можно было использовать командлет Import-PSSession, политика выпо лнения в текущем сеансе не может иметь значение Restricted или AllSigne d, поскольку создаваемый командлетом Import-PSSession модуль содержит н еподписанные файлы скриптов, которые запрещены этими политиками. Чтобы использовать командлет Import-PSSession без изменения политики выполнен ия для локального компьютера, необходимо с помощью параметра Scope кома ндлета Set-ExecutionPolicy задать менее жесткую политику выполнения для одного процесса. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$s = new-pssession -computername Server01 C:\PS> import-pssession -session $s Описание ----------- Эта команда импортирует в текущий сеанс все команды из сеанса PSSession на компьютере Server01, кроме команд, имена которых совпадают с именами команд в текущем сеансе. Поскольку в этой команде не используется параметр CommandName, она также им портирует все данные форматирования, необходимые импортируемым командам. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$s = new-pssession https://ps.testlabs.com/powershell C:\PS> import-pssession -session $s -commandname *-test -formatTypeName * C:\PS> new-test -name test1 C:\PS> get-test test1 | run-test Описание ----------- Эти команды импортируют в локальный сеанс команды с именами, заканчивающими ся на "-test", и демонстрируют использование импортированного командлета. Первая команда с помощью командлета New-PSSession создает сеанс PSSession. Она сохраняет сеанс PSSession в переменной $s. Вторая команда с помощью командлета Import-PSSession импортирует команды из сеанса PSSession в переменной $s в текущий сеанс. Для задания команд с сущ ествительным "Test" используется параметр CommandName, а для импорта данных форматирования для этих команд используется параметр FormatTypeName. The third and fourth commands use the imported commands in the current sess ion. Поскольку импортированные командлеты фактически добавляются в локальны й сеанс, для их запуска используется локальный синтаксис. Для выполнения им портированной команды не нужно использовать командлет Invoke-Command. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s1 = new-pssession -computername s1 C:\PS> $s2 = new-pssession -computername s2 C:\PS> import-pssession -session s1 -type cmdlet -name New-Test, Get-Test - FormatTypeName * C:\PS> import-pssession -session s2 -type cmdlet -name Set-Test -FormatType Name * C:\PS> new-test Test1 | set-test -runtype full Описание ----------- В этом примере показано, что импортированные командлеты можно использовать так же, как и локальные командлеты. Эти команды импортируют командлеты New-Test и Get-Test из сеанса PSSession на компьютере Server01 и командлет Set-Test из сеанса PSSession на компьюте ре Server02. Хотя эти командлеты и были импортированы из различных сеансов PSSession, об ъекты можно по конвейеру передавать из одного командлета в другой без ошибо к. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$s = new-pssession -computername Server01 C:\PS> import-pssession -session $s -commandname *-test* -formattypename * C:\PS> $batch = new-test -name Batch -asjob C:\PS> receive-job $batch Описание ----------- В этом примере показано, как выполнить импортированную команду в качестве ф онового задания. Поскольку импортированные команды могут выполняться дольше, чем локальные к оманды, командлет Import-PSSession добавляет к каждой импортируемой команде параметр AsJob. Параметр AsJob позволяет выполнять команду в качестве фоно вого задания. Первая команда создает сеанс PSSession на компьютере Server01 и сохраняет о бъект PSSession в переменной $s. Вторая команда с помощью командлета Import-PSSession импортирует командлеты Test из сеанса PSSession в переменной $s в текущий сеанс. Третья команда использует параметр AsJob импортированного командлета New-Te st для запуска команды New-Test в качестве фонового задания. Команда сохран яет объект задания, возвращенный командлетом New-Test, в переменной $batch. Четвертая команда использует командлет Receive-Job для получения результато в задания в переменной $batch. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$s = new-pssession -comp Server01 C:\PS> invoke-command -session $s {import-module TestManagement} C:\PS> import-pssession -session $s -module TestManagement Описание ----------- В этом примере показано, как импортировать в текущий сеанс командлеты и фун кции из модуля Windows PowerShell на удаленном компьютере. Первая команда создает сеанс PSSession на компьютере Server01 и сохраняет е го в переменной $s. Вторая команда использует командлет Invoke-Command для выполнения команды I mport-Module в сеансе PSSession, указанном в переменной $s. Обычно модуль добавляется во все сеансы с помощью команды Import-Module в п рофиле Windows PowerShell, однако профили не выполняются в сеансах PSSessio ns. Третья команда использует параметр Module командлета Import-PSSession, чтоб ы импортировать в текущий сеанс командлеты и функции из модуля. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>import-pssession $s -CommandName Get-Date, SearchHelp -formatTypeNam e * -AllowClobber Name : tmp_79468106-4e1d-4d90-af97-1154f9317239_tcw1zunz.ttf Path : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d 90-af97-1154f9317239_tcw1zunz.ttf\tmp_79468106-4e1d-4d90-af97-1154f9317239_ tcw1zunz.ttf.psm1 Description : Implicit remoting for http://server01.corp.fabrikam.com /wsman Guid : 79468106-4e1d-4d90-af97-1154f9317239 Version : 1.0 ModuleBase : C:\Users\User01\AppData\Local\Temp\tmp_79468106-4e1d-4d 90-af97-1154f9317239_tcw1zunz.ttf ModuleType : Script PrivateData : {ImplicitRemoting} AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {[Get-Date, Get-Date], [SearchHelp, SearchHelp]} ExportedVariables : {} NestedModules : {} Описание ----------- В этом примере показано, что командлет Import-PSSession создает модуль во в ременном файле на диске. Кроме того, в нем показано, что все команды преобр азуются в функции, прежде чем они будут импортированы в текущий сеанс. В этой команде для импорта командлета Get-Date и функции SearchHelp в текущ ий сеанс используется командлет Import-PSSession. Командлет Import-PSSession возвращает объект PSModuleInfo, представляющий в ременный модуль. Значение свойства Path показывает, что командлет Import-PS Session создал во временной папке файл модуля скрипта (PSM1). Свойство Expo rtedFunctions показывает, что командлет Get-Date и функция SearchHelp были импортированы в виде функций. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>import-pssession $s -CommandName Get-Date -formatTypeName * -AllowClo bber C:\PS> get-command get-date CommandType Name Definition ----------- ---- ---------- Function Get-Date ... Cmdlet Get-Date Get-Date [[-Date] <DateTime>] [-Year <Int32>] [-Mo nth <Int32>] C:\PS> Get-Date 09074 C:\PS> (get-command -type cmdlet -name get-date).pssnapin.name Microsoft.PowerShell.Utility C:\PS> Microsoft.PowerShell.Utility\get-date Sunday, March 15, 2009 2:08:26 PM Описание ----------- В этом примере показано, как выполнить команду, скрытую импортированной ком андой. Первая команда импортирует командлет Get-Date из сеанса PSSession в перемен ной $s. Поскольку текущий сеанс включает командлет Get-Date, в команде необ ходимо указать параметр AllowClobber. Вторая команда с помощью командлета Get-Command получает команды Get-Date в текущем сеансе. Выходные данные показывают, что сеанс включает исходный ко мандлет Get-Date и функцию Get-Date. Функция Get-Date выполняет импортирова нный командлет Get-Date в сеансе PSSession в переменной $s. Третья команда выполняет команду Get-Date. Поскольку функции имеют приорите т перед командлетами, Windows PowerShell выполняет импортированную функцию Get-Date, которая возвращает юлианскую дату. Четвертая и пятая команды показывают, как с помощью полного имени выполнить команду, скрытую импортированной командой. Четвертая команда получает имя оснастки Windows PowerShell, которая добавил а в текущий сеанс исходный командлет Get-Date. Пятая команда с помощью заданного оснасткой полного имени командлета Get-Da te выполняет команду Get-Date. Дополнительные сведения о приоритете команд и скрытых командах см. в раздел е about_Command_Precedence. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>import-pssession -session $s -commandName *Item* -AllowClobber Описание ----------- Эта команда импортирует команды, имена которых включают слово "Item", из се анса PSSession в переменной $s. Поскольку команда включает параметр Command Name, но не включает параметр FormatTypeData, импортируется только команда. Это команду следует использовать, если для выполнения команды на удаленном компьютере используется командлет Import-PSSession, а в текущем сеансе уже имеются данные форматирования для команды. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>$m = import-pssession -session $s -CommandName *bits* -formattypename *bits* C:\PS> get-command -module $m CommandType Name ----------- ---- Function Add-BitsFile Function Complete-BitsTransfer Function Get-BitsTransfer Function Remove-BitsTransfer Function Resume-BitsTransfer Function Set-BitsTransfer Function Start-BitsTransfer Function Suspend-BitsTransfer Описание ----------- Эта команда показывает, как с помощью параметра Module командлета Get-Comma nd определить, какие команды были импортированы в сеанс с помощью команды I mport-PSSession. Первая команда с помощью командлета Import-PSSession импортирует из сеанса PSSession в переменной $s команды, имена которых включают слово "bits". Ком анда Import-PSSession возвращает временный модуль и сохраняет его в перемен ной $m. Вторая команда с помощью командлета Get-Command получает команды, экспортир ованные модулем в переменной $m. Параметр Module принимает строковое значение, которое обозначает имя модуля . Однако при отправке объекта модуля Windows PowerShell использует метод To String объекта модуля, возвращающий имя модуля. Команда Get-Command эквивалентна команде "get-command $m.name". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135221 about_Command_Precedence New-PSSession Export-PSSession about_Jobs about_PSSessions ImportSystemModules ImportSystemModules Invoke-Command ИМЯ Invoke-Command ОПИСАНИЕ Выполняет команды на локальном и удаленных компьютерах. СИНТАКСИС Invoke-Command [-ScriptBlock] <scriptblock> [[-ComputerName] <string[]>] [- ApplicationName <string>] [-AsJob] [-Authentication {Default | Basic | Nego tiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-C ertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential PSCredential>] [-HideComputerName] [-JobName <string>] [-Port <int>] [-Sess ionOption <PSSessionOption>] [-ThrottleLimit <int>] [-UseSSL] [-ArgumentLis t <Object[]>] [-InputObject <psobject>] [<CommonParameters>] Invoke-Command [-FilePath] <string> [[-ComputerName] <string[]>] [-Applicat ionName <string>] [-AsJob] [-Authentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-Configura tionName <string>] [-Credential <PSCredential>] [-HideComputerName] [-JobNa me <string>] [-Port <int>] [-SessionOption <PSSessionOption>] [-ThrottleLim it <int>] [-UseSSL] [-ArgumentList <Object[]>] [-InputObject <psobject>] [ CommonParameters>] Invoke-Command [-FilePath] <string> [[-Session] <PSSession[]>] [-AsJob] [-H ideComputerName] [-JobName <string>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>] Invoke-Command [-FilePath] <string> [[-ConnectionURI] <Uri[]>] [-AllowRedir ection] [-AsJob] [-Authentication {Default | Basic | Negotiate | NegotiateW ithImplicitCredential | Credssp | Digest | Kerberos}] [-ConfigurationName string>] [-Credential <PSCredential>] [-HideComputerName] [-JobName <string >] [-SessionOption <PSSessionOption>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobject>] [<CommonParameters>] Invoke-Command [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-In putObject <psobject>] [<CommonParameters>] Invoke-Command [-ScriptBlock] <scriptblock> [[-Session] <PSSession[]>] [-As Job] [-HideComputerName] [-JobName <string>] [-ThrottleLimit <int>] [-Argum entList <Object[]>] [-InputObject <psobject>] [<CommonParameters>] Invoke-Command [-ScriptBlock] <scriptblock> [[-ConnectionURI] <Uri[]>] [-Al lowRedirection] [-AsJob] [-Authentication {Default | Basic | Negotiate | Ne gotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-Certificate Thumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredenti al>] [-HideComputerName] [-JobName <string>] [-SessionOption <PSSessionOpti on>] [-ThrottleLimit <int>] [-ArgumentList <Object[]>] [-InputObject <psobj ect>] [<CommonParameters>] ОПИСАНИЕ Командлет Invoke-Command выполняет команды на локальном или удаленном компь ютере и возвращает все выходные данные команд, включая ошибки. С помощью од ной команды Invoke-Command можно выполнять команды на нескольких компьютера х. Для выполнения одной команды на удаленном компьютере следует использовать п араметр ComputerName. Чтобы выполнить последовательность команд, совместно использующих данные, создайте сеанс PSSession (постоянное подключение) на у даленном компьютере и используйте параметр Session командлета Invoke-Comman d для выполнения команды в рамках PSSession. Также можно использовать Invoke-Command на локальном компьютере для анализа или выполнения строки или блока скрипта как команды. Windows PowerShell пр еобразует блок скрипта в команду и немедленно выполняет эту команду в рамка х текущего сеанса вместо отображения текста строки в командной строке. Перед использованием Invoke-Command для выполнения команд на удаленном комп ьютере ознакомьтесь с разделом about_Remote. ПАРАМЕТРЫ -AllowRedirection [<SwitchParameter>] Разрешает перенаправление данного соединения на альтернативный URI. При использовании параметра ConnectionURI удаленный узел может вернуть инструкцию с перенаправлением на другой URI. По умолчанию Windows Power Shell не перенаправляет соединения, но можно воспользоваться параметром AllowRedirection и разрешить перенаправление соединений. Кроме того, можно ограничить число операций перенаправления подключения , присвоив соответствующее значение свойству MaximumConnectionRedirecti onCount привилегированной переменной $PSSessionOption или свойству Maxi mumConnectionRedirectionCount значения параметра SessionOption. По умол чанию используется значение 5. Дополнительные сведения см. в описании п араметра SessionOption и в разделе справки для командлета New-PSSession Option. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ApplicationName <string> Задает сегмент имени приложения в URI подключения. Этот параметр служит для указания имени приложения, если в команде не используется параметр ConnectionURI. По умолчанию используется значение привилегированной переменной $PSSess ionApplicationName на локальном компьютере. Если эта привилегированная переменная не определена, используется значение по умолчанию "WSMAN". Э то значение подходит для большинства случаев. Дополнительные сведения с м. в разделе about_Preference_Variables. Служба WinRM использует имя приложения для выбора прослушивателя для об служивания запроса подключения. Значение этого параметра должно соответ ствовать значению свойства URLPrefix прослушивателя на удаленном компью тере. Требуется? false Позиция? named Значение по умолчанию WSMAN Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -ArgumentList <Object[]> Значения локальных переменных в команде. Переменные в команде заменяютс я этими значениями перед выполнением команды на удаленном компьютере. В ведите значения, разделенные запятыми. Значения связываются с переменны ми в порядке перечисления. Псевдоним ArgumentList — "Args". Параметр ArgumentList может содержать как фактические значения, наприме р "1024", так и локальные переменные, например "$max". Чтобы использовать в команде локальные переменные, используйте следующи й формат команды. {param($<name1>[, $<name2>]...) <команда-с-локальными-переменными>} -Ar gumentList <значение | $локальная-переменная> Ключевое слово "param" служит для перечисления локальных переменных, ис пользуемых в команде. Параметр ArgumentList содержит значения переменны х в порядке их перечисления. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания на удаленном компьютере. Этот параметр служит для запуска команд, выполнение которых занимает дл ительное время. При использовании параметра AsJob команда возвращает объект, представля ющий задание, а затем появляется командная строка. Можно продолжить раб оту в рамках данного сеанса, пока задание завершается. Чтобы управлять заданием, используйте командлеты Job. Чтобы получить результаты задани я, используйте командлет Receive-Job. Использование параметра AsJob аналогично использованию команды Invoke-C ommand для удаленного запуска команды Start-Job. Однако при использован ии AsJob задание создается на локальном компьютере, хотя и выполняется на удаленном компьютере, а результаты удаленного задания автоматически возвращаются на локальный компьютер. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в р азделах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationMechanism> Задает механизм, используемый при проверке подлинности учетных данных п ользователя. Допустимые значения: Default, Basic, Credssp, Digest, Ke rberos, Negotiate и NegotiateWithImplicitCredential. По умолчанию испо льзуется значение "Default". Проверка подлинности CredSSP доступна только в Windows Vista, Windows S erver 2008 и более поздних версиях Windows. Дополнительные сведения о значениях этого параметра см. в описании пере числения System.Management.Automation.Runspaces.AuthenticationMechanism в библиотеке MSDN. ВНИМАНИЕ Проверка подлинности CredSSP, при которой учетные данные поль зователя передаются на удаленный компьютер, предназначена для команд, к оторые должны пройти процедуру проверки подлинности на нескольких ресур сах, например при доступе к удаленному общему сетевому ресурсу. Такой м еханизм повышает угрозы безопасности удаленных операций. Если безопасно сть удаленного компьютера нарушена, передаваемые ему учетные данные мог ут использоваться для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Default Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CertificateThumbprint <string> Задает цифровой сертификат с открытым ключом (X509) учетной записи поль зователя, который располагает разрешением для выполнения этого действия . Введите отпечаток сертификата. Сертификаты используются при проверке подлинности на основе сертификата клиента. Их можно сопоставить только с учетными записями локальных пол ьзователей; они не работают с учетными записями доменов. Чтобы получить отпечаток сертификата, воспользуйтесь командой Get-Item или Get-ChildItem в Windows PowerShell на диске Cert:. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает компьютеры, на которых выполняется команда. По умолчанию использ уется значение "Локальный компьютер". При использовании параметра ComputerName Windows PowerShell создает вре менное подключение, которое используется только для запуска заданной ко манды и затем закрывается. Если требуется создать постоянное подключени е, используйте параметр Session. Введите имя NETBIOS, IP-адрес или полное доменное имя одного или нескол ьких компьютеров в виде списка разделенных запятыми значений. Чтобы ука зать локальный компьютер, введите имя компьютера, "localhost" или точку (.). Для использования IP-адреса в значении параметра ComputerName в команду необходимо включить параметр Credential. Кроме того, необходимо настро ить компьютер на использование транспорта HTTPS или включить IP-адрес у даленного компьютера в список TrustedHosts WinRM на локальном компьютер е. Инструкции по добавлению имени компьютера в список TrustedHosts см. в статье "Добавление компьютера в список доверенных узлов" в разделе ab out_Remote_Troubleshooting. Примечание. Чтобы включить локальный компьютер в значение параметра Com puterName под управлением Windows Vista и более поздних версий Windows, необходимо запускать Windows PowerShell командой "Запуск от имени адми нистратора". Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -ConfigurationName <string> Задает конфигурацию нового сеанса PSSession. Введите имя конфигурации или полный URI ресурса для конфигурации сеанса . Если указано только имя конфигурации, перед ним добавляется следующий URI схемы: http://schemas.microsoft.com/powershell. Конфигурация сеанса находится на удаленном компьютере. Если указанная к онфигурация сеанса не существует на удаленном компьютере, команда завер шается с ошибкой. По умолчанию используется значение привилегированной переменной $PSSess ionConfigurationName на локальном компьютере. Если значение этой привил егированной переменной не установлено, используется значение по умолчан ию "Microsoft.PowerShell". Дополнительные сведения см. в разделе about_ preference_variables. Требуется? false Позиция? named Значение по умолчанию http://Schemas.Microsoft.com/Power Shell/Microsoft.PowerShell Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -ConnectionURI <Uri[]> Задает универсальный идентификатор ресурса (URI), определяющий конечную точку соединения. Значение URI должно быть указано полностью. Строка имеет следующий формат: <Транспорт>://<Имя_компьютера>:<Порт>/ По умолчанию используется следующее значение. http://localhost:80/WSMAN Допустимые значения сегмента транспорта в URI: HTTP и HTTPS. Если в ком анде не указан параметр ConnectionURI, для указания значений URI можно использовать параметры UseSSL, ComputerName, Port и ApplicationName. Если конечный компьютер перенаправляет соединение на другой URI, Window s PowerShell предотвращает перенаправление, если в команде не задан пар аметр AllowRedirection. Требуется? false Позиция? 1 Значение по умолчанию http://localhost:80/wsman Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите переменную, содержащую объект PSCredential, например объект, со здаваемый командлетом Get-Credential. При вводе имени пользователя появ ится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -FilePath <string> Выполняет заданный локальный скрипт на одном или нескольких удаленных к омпьютерах. Введите путь и имя файла скрипта или передайте путь к скрип ту командлету Invoke-Command по конвейеру. Скрипт должен находиться на локальном компьютере или в каталоге, к которому можно получить доступ с локального компьютера. Чтобы указать значения параметров скрипта, испо льзуйте параметр ArgumentList. При использовании этого параметра Windows PowerShell преобразует указан ный файл скрипта в блок скрипта, передает блок скрипта на удаленный ком пьютер и выполняет его на удаленном компьютере. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -HideComputerName [<SwitchParameter>] Исключает имя компьютера каждого объекта из выводимых результатов. По у молчанию на дисплее отображается имя компьютера, создавшего объект. Этот параметр влияет только на выводимый результат. Это не изменяет объ ект. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает входные данные команды. Введите переменную, содержащую объекты, либо получающую их команду или выражение. При использовании параметра InputObject следует использовать в значении параметра ScriptBlock автоматическую переменную $input для представлен ия входных объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -JobName <string> Задает понятное имя фонового задания. По умолчанию заданиям присваивают ся имена "Job<n>", где <n> — порядковый номер. Этот параметр допустим только с параметром AsJob. Если в команде используется параметр JobName, команда выполняется как з адание, и Invoke-Command возвращает объект задания, даже если в команду не включен параметр AsJob. Чтобы получить дополнительные сведения о фоновых заданиях Windows Power Shell, см. раздел about_Jobs. Требуется? false Позиция? named Значение по умолчанию Job<n> Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Port <int> Задает сетевой порт на удаленном компьютере, используемый для данной ко манды. По умолчанию используется значение "Порт 80" (HTTP-порт). Перед использованием альтернативного порта необходимо настроить прослуш иватель WinRM на удаленном компьютере на прослушивание этого порта. Что бы настроить прослушиватель, введите следующие две команды в командной строке Windows PowerShell. remove-item -path wsman:\Localhost\listener\listener* -recurse new-item -path wsman:\Localhost\listener -Transport http -Address * -po rt <номер_порта> Не используйте параметр Port, если этого можно избежать. Порт, указанны й в команде, распространяется на все компьютеры или сеансы, для которых используется эта команда. Параметр альтернативного порта может позволи ть предотвратить выполнение этой команды на всех компьютерах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ScriptBlock <scriptblock> Задает выполняемые команды. Чтобы создать блок скрипта, заключите коман ды в фигурные скобки ( { } ). Это обязательный параметр. По умолчанию оценка значений всех переменных команды выполняется на уда ленном компьютере. Чтобы включить в команду локальные переменные, испол ьзуйте параметр ArgumentList. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Session <PSSession[]> Выполняет команду в указанных сеансах Windows PowerShell (PSSession). В ведите переменную, содержащую объекты PSSession, либо команду, создающу ю или получающую объекты PSSession, например New-PSSession или Get-PSSe ssion. При создании сеанса PSSession Windows PowerShell создает постоянное под ключение к удаленному компьютеру. Используйте сеанс PSSession для выпол нения последовательности связанных команд, работающих с общими данными. Для выполнения одной команды или последовательности несвязанных команд следует использовать параметр ComputerName. Для создания сеанса PSSession используйте командлет New-PSSession. Допо лнительные сведения см. в разделе about_PSSessions. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -SessionOption <PSSessionOption> Устанавливает расширенные параметры сеанса. Введите объект SessionOptio n, созданный с помощью командлета New-PSSessionOption. Значения по умолчанию для параметров определяются значением привилегиро ванной переменной $PSSessionOption, если оно задано. В противном случае в сеансе используются системные значения по умолчанию. Описание параметров сеанса, включая значения по умолчанию, см. в раздел е справки для командлета New-PSSessionOption. Дополнительные сведения о привилегированной переменной $PSSessionOption см. в разделе about_Pref erence_Variables. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Задает максимальное количество одновременных соединений, которые могут быть установлены для выполнения данной команды. Если этот параметр не з адан или для него введено значение 0, используется значение по умолчани ю 32. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию 32 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Использует протокол SSL (Secure Sockets Layer) для установки подключени я к удаленному компьютеру. По умолчанию SSL не используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. UseSSL — это дополнительная мера защиты, которая позвол яет передавать данные по протоколу HTTPS, а не HTTP. Если используется этот параметр, но установить SSL-соединение с портом, указанным в команде, не удается, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.ScriptBlock Можно передать команду командлету Invoke-Command в блоке скрипта по кон вейеру. Для представления входных объектов команды следует использовать автоматическую переменную $input. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSRemotingJob или результат, созданный выполне нной командой При использовании параметра AsJob командлет Invoke-Command возвращает о бъект задания. В противном случае он возвращает результат, созданный вы полненной командой (значением параметра ScriptBlock). ПРИМЕЧАНИЯ -- Чтобы использовать параметр ComputerName командлета Invoke-Command д ля выполнения команды на локальном компьютере под управлением Windows V ista и более поздних версий Windows, необходимо запускать Windows Power Shell командой "Запуск от имени администратора". -- При выполнении команд на нескольких компьютерах Windows PowerShell п одключается к компьютерам в том порядке, в котором они указаны в списке . Результаты выполнения команд отображаются в порядке поступления резул ьтатов от удаленных компьютеров, который может отличаться от порядка вы полнения команд. -- Ошибки, возникающие при выполнении команд с помощью командлета Invok e-Command, отображаются в результатах выполнения команд. Ошибки, которы е были бы прерывающими при локальном выполнении команды, обрабатываются как непрерывающие при удаленном выполнении команды. Такой подход позво ляет избежать ситуации, в которой прерывающие ошибки на одном компьютер е прервут выполнение команды на всех остальных компьютерах. Данное утве рждение справедливо даже при удаленном выполнении команды на одном комп ьютере. -- Если удаленный компьютер не входит в домен, которому доверяет локаль ный компьютер, этот компьютер может оказаться неспособным выполнить про верку подлинности учетных данных пользователя. Чтобы добавить удаленный компьютер в список "доверенных узлов" в WS-Management, используйте сле дующую команду в поставщике WSMAN, где <Remote-Computer-Name> — имя уда ленного компьютера: set-item -path wsman:\Localhost\Client\TrustedHosts -value <имя_удаленн ого_компьютера>. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>invoke-command -filepath c:\scripts\test.ps1 -computerName Server01 Disks: C:, D:, E: Status: Warning, Normal, Normal Описание ----------- Эта команда выполняет скрипт Test.ps1 на компьютере Server01. Команда использует параметр FilePath для указания скрипта, который располож ен на локальном компьютере. Скрипт выполняется на удаленном компьютере и во звращает результаты на локальный компьютер. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>invoke-command -computername server01 -credential domain01\user01 -sc riptblock {get-culture} Описание ----------- Эта команда выполняет команду Get-Culture на удаленном компьютере Server01. Параметр ComputerName используется для задания имени компьютера, а параметр Credential — для выполнения команды в контексте безопасности "Domain01\Use r01", пользователя с разрешением на выполнение команд. Параметр ScriptBlock используется для задания команды, которая должна выполняться на удаленном компьютере. Windows PowerShell отображает диалоговое окно, в котором необходимо указать пароль и метод проверки подлинности для учетной записи User01. Затем коман да выполняется на компьютере Server01 и возвращает результаты. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s = new-pssession -computername server02 -credential domain01\user01 C:\PS> invoke-command -session $s -scriptblock {get-culture} Описание ----------- В этом примере та же команда "Get-Culture" выполняется в сеансе (постоянное подключение) на удаленном компьютере Server02. Обычно сеанс создается толь ко при выполнении на удаленном компьютере последовательности команд. Первая команда использует командлет New-PSSession для создания сеанса на уд аленном компьютере Server02. После этого она сохраняет сеанс в переменной $ s. Вторая команда выполняет команду Get-Culture на компьютере Server02 с помощ ью командлета Invoke-Command. Параметр Session используется для задания сеа нса, сохраненного в переменной $s. Windows PowerShell выполняет команду в рамках сеанса на компьютере Server02 . -------------------------- ПРИМЕР 4 -------------------------- C:\PS>invoke-command -computername Server02 -scriptblock {$p = get-process powershell} C:\PS> invoke-command -computername Server02 -scriptblock {$p.virtualmemory size} C:\PS> C:\PS> $s = new-pssession -computername Server02 C:\PS> invoke-command -session $s -scriptblock {$p = get-process powershell } C:\PS> invoke-command -session $s -scriptblock {$p.virtualmemorysize} 17930240 Описание ----------- В этом примере сравниваются результаты использования параметров командлета Invoke-Command ComputerName и Session. В нем показано использование сеанса для выполнения последовательности команд, работающих с общими данными. Первые две команды используют параметр ComputerName командлета Invoke-Comma nd для выполнения команд на удаленном компьютере Server02. Первая команда и спользует команду Get-Process для получения процесса PowerShell на удаленно м компьютере и сохраняет его в переменной $p. Вторая команда получает значе ние свойства VirtualMemorySize процесса PowerShell. Первая команда выполняется успешно. Но вторая команда выполняется с ошибкой , поскольку при использовании параметра ComputerName Windows PowerShell соз дает подключение только для выполнения этой команды. После выполнения коман ды оболочка закрывает подключение. Переменная $p была создана в одном подкл ючении, но она не существует в подключении, созданном для второй команды. Проблема решается путем создания сеанса (постоянного подключения) на удален ном компьютере и запуска обеих связанных команд в рамках одного сеанса. Третья команда использует командлет New-PSSession для создания сеанса на ко мпьютере Server02. После этого она сохраняет сеанс в переменной $s. Четверт ая и пятая команды повторяют последовательность команд, выполнявшуюся раньш е, но в данном случае используется параметр Session команды Invoke-Command для выполнения обеих команд в рамках одного сеанса. В данном случае, поскольку обе команды выполняются в рамках одного сеанса, они выполняются успешно, и переменная $p остается активной в рамках сеанса $s для использования в дальнейшем. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$command = { get-eventlog -log "windows powershell" | where {$_.messa ge -like "*certificate*"} } C:\PS> invoke-command -computername S1, S2 -scriptblock $command Описание ----------- В этом примере показано, как вводить команду, сохраненную в локальной перем енной. Если вся команда сохранена в локальной переменной, можно указать переменную в качестве значения параметра ScriptBlock. Для отправки значения локальной переменной не требуется использовать ключевое слово "param" или переменную ArgumentList. Первая команда сохраняет команду Get-Eventlog в переменной $command. Формат команды соответствует формату блока скрипта. Вторая команда использует командлет Invoke-Command для выполнения команды, содержащейся в переменной $command, на удаленных компьютерах S1 и S2. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>invoke-command -computername server01, server02, TST-0143, localhost -configurationname MySession.PowerShell -scriptblock {get-eventlog "windows powershell"} Описание ----------- В этом примере показано, как использовать командлет Invoke-Command для выпо лнения одной команды на нескольких компьютерах. Параметр ComputerName используется в команде для указания компьютеров. Имен а компьютеров представлены в формате списка, разделенного запятыми. В списо к компьютеров входит значение "localhost", представляющее локальный компьют ер. Команда используется параметр ConfigurationName для указания альтернативной конфигурации сеанса Windows PowerShell и параметр ScriptBlock для указания команды. В этом примере команда в блоке скрипта получает события из журнала событий Windows PowerShell на всех удаленных компьютерах. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>$version = invoke-command -computername (get-content machines.txt) -s criptblock {(get-host).version} Описание ----------- Эта команда получает версию основного приложения Windows PowerShell, запуще нного на 200 удаленных компьютерах. Поскольку выполняется только одна команда, не требуется создавать постоянны е подключения (сеансы) ко всем компьютерам. Вместо этого для указания компь ютеров в команде используется параметр ComputerName. Команда использует командлет Invoke-Command для выполнения команды Get-Host . Для получения значения свойства Version основного приложения Windows Powe rShell используется обращение через точку. Для указания компьютеров используется командлет Get-Content, который получа ет содержимое файла с именами компьютеров Machine.txt. Эти команды выполняются синхронно (по одной за раз). После выполнения коман д их выходные данные о всех компьютерах сохраняются в переменной $version. В выходных данных указано имя компьютера, от которого поступили данные. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$s = new-pssession -computername Server01, Server02 C:\PS> invoke-command -session $s -scriptblock {get-eventlog system} -AsJob Id Name State HasMoreData Location Command --- ---- ----- ----- ----------- -------- ------- 1 Job1 Running True Server01,Server02 get-eventlog syste m C:\PS> $j = Get-Job C:\PS> $j | format-list -property * HasMoreData : True StatusMessage : Location : Server01,Server02 Command : get-eventlog system JobStateInfo : Running Finished : System.Threading.ManualResetEvent InstanceId : e124bb59-8cb2-498b-a0d2-2e07d4e030ca Id : 1 Name : Job1 ChildJobs : {Job2, Job3} Output : {} Error : {} Progress : {} Verbose : {} Debug : {} Warning : {} StateChanged : C:\PS> $results = $j | Receive-Job Описание ----------- Эти команды выполняют фоновое задание на двух удаленных компьютерах. Поскол ьку команда Invoke-Command использует параметр AsJob, команды выполняются н а удаленных компьютерах, но задание фактически размещается на локальном ком пьютере, и результаты передаются на локальный компьютер. Первая команда использует командлет New-PSSession для создания сеансов на у даленных компьютерах Server01 и Server02. Вторая команда использует командлет Invoke-Command для выполнения фонового задания в рамках каждого сеанса. Параметр AsJob используется для выполнения команды в качестве фонового задания. Эта команда возвращает объект задания , содержащий два дочерних объекта задания (по объекту для каждого из задани й, выполняемых на двух удаленных компьютерах). Третья команда использует команду Get-Job для сохранения объекта задания в переменной $j. Четвертая команда использует оператор конвейера (|) для отправки значения п еременной $j командлету Format-List, который выводит все свойства объекта з адания в виде списка. Пятая команда получает результаты выполнения заданий. Она по конвейеру пере дает объект задания, сохраненный в переменной $j, командлету Receive-Job и сохраняет результаты в переменной $results. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>$MWFO-LOg = Microsoft-Windows-Forwarding/Operational C:\PS> invoke-command -computername server01 -scriptblock {param($log, $num ) get-eventlog -logname $log -newest $num} -ArgumentList $MWFO-log, 10 Описание ----------- В этом примере показано, как включать значения локальных переменных в коман ду, выполняемую на удаленном компьютере. Первая команда сохраняет имя журнала событий Microsoft-Windows-Forwarding/O perational в переменной $MWFO-Log. Вторая команда использует командлет Invoke-Command для выполнения команды G et-EventLog на удаленном компьютере Server01. Эта команда получает 10 самых последних событий из журнала событий Microsoft-Windows-Forwarding/Operatio nal на компьютере Server01. В этой команде ключевое слово "param" используется для создания двух переме нных, $log и $num, которые служат в качестве заполнителей для команды Get-E ventLog. Произвольные имена этих заполнителей могут не соответствовать имен ам локальных переменных, используемых для установки значений заполнителей. Значения параметра ArgumentList демонстрируют два различных способа указани я значений в списке аргументов. Значение заполнителя $log — значение переме нной $MFWO-Log, которое определяется в первой команде. Значение переменной $num равняется 10. Перед отправкой команды на удаленный компьютер переменные заменяются заданн ыми значениями. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>invoke-command -computername S1, S2 -scriptblock {get-process powersh ell} PSComputerName Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName -------------- ------- ------ ----- ----- ----- ------ -- ----------- S1 575 15 45100 40988 200 4.68 13 92 powershell S2 777 14 35100 30988 150 3.68 67 powershell C:\PS> invoke-command -computername S1, S2 -scriptblock {get-process powers hell} -HideComputerName Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 575 15 45100 40988 200 4.68 1392 powershell 777 14 35100 30988 150 3.68 67 powershell Описание ----------- В этом примере показан результат использования параметра HideComputerName к омандлета Invoke-Command. Первые две команды используют командлет Invoke-Command для выполнения коман ды Get-Process для процесса PowerShell. В выходные данные первой команды вх одит свойство PsComputerName, содержащее имя компьютера, на котором выполня лась команда. В выходные данные второй команды, в которой используется пара метр HideComputerName, столбец PsComputerName не входит. Использования параметра HideComputerName не приводит к изменению объекта. М ожно по-прежнему использовать командлеты Format для отображения свойства Ps ComputerName любого соответствующего объекта. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>invoke-command -comp (get-content servers.txt) -filepath c:\scripts\s ample.ps1 -argumentlist Process, Service Описание ----------- В этом примере командлет Invoke-Command используется для выполнения скрипта Sample.ps1 на всех компьютерах, указанных в файле Servers.txt. Для указани я файла скрипта в этой команде используется параметр FilePath. Эта команда позволяет выполнить скрипт на удаленных компьютерах, даже если файл скрипта недоступен на удаленных компьютерах. При отправке этой команды содержимое файла Sample.ps1 копируется в блок скр ипта, и блок скрипта выполняется на всех удаленных компьютерах. Эта команда эквивалентна использованию параметра ScriptBlock для отправки содержимого скрипта. -------------------------- ПРИМЕР 12 -------------------------- C:\PS>$LiveCred = Get-Credential C:\PS> Invoke-Command -ConfigurationName Microsoft.Exchange ` -ConnectionUri https://ps.exchangelabs.com/powershell ` -Credential $LiveCred -Authentication Basic ` -scriptblock {Invoke-Command {Set-Mailbox dan -DisplayName "Dan Pa rk"} Описание ----------- В этом примере показано, как выполнять команду на удаленном компьютере, ука занном с помощью URI (интернет-адреса). В этом конкретном примере на удален ном сервере Exchange Server выполняется команда Set-Mailbox. Открывающая ка вычка (`) в команде Windows PowerShell является знаком продолжения строки. Первая команда использует командлет Get-Credential для сохранения учетных д анных Windows Live ID в переменной $LiveCred. Когда на экране появится диал оговое окно учетных данных, введите учетные данные Windows Live ID. Вторая команда использует командлет Invoke-Command для выполнения команды S et-Mailbox. Параметр ConfigurationName используется командой для указания, что команда должна выполняться в рамках сеанса, конфигурация которого соотв етствует конфигурации сеанса Microsoft Exchange. Параметр ConnectionURI ука зывает URL-адрес конечной точки сервера Exchange Server. Параметр Credential указывает учетные данные Windows Live, сохраненные в пе ременной $LiveCred. Параметр AuthenticationMechanism указывает на использов ание обычной проверки подлинности. Параметр ScriptBlock задает блок скрипта , в котором содержится команда. -------------------------- ПРИМЕР 13 -------------------------- C:\PS>$max = New-PSSessionOption -MaximumRedirection 1 C:\PS> Invoke-Command -ConnectionUri https://ps.exchangelabs.com/powershell ` -scriptblock {Invoke-Command {Get-Mailbox dan} ` -AllowRedirection -SessionOption $max Описание ----------- Эта команда показывает, как использовать параметры AllowRedirection и Sessi onOption для управления перенаправлением URI в удаленную команду. Первая команда использует командлет New-PSSessionOption для создания объект а PSSessionOpption, сохраняемого в переменной $max. Команда использует пара метр MaximumRedirection для задания свойству MaximumConnectionRedirectionCo unt объекта PSSessionOption значения 1. Вторая команда использует командлет Invoke-Command для выполнения команды G et-Mailbox на удаленном сервере Microsoft Exchange Server. Команда использу ет параметр AllowRedirection, чтобы явно разрешить перенаправление соединен ия на альтернативную конечную точку. Она также использует параметр SessionO ption для указания объекта сеанса, сохраненного в переменной $max. В результате, если удаленный компьютер, указанный в параметре ConnectionURI , возвращает сообщение о перенаправлении, Windows PowerShell выполняет пере направление соединения, но если новая конечная точка также возвращает сообщ ение о перенаправлении, то обнаруживается превышение счетчика перенаправлен ий (равного 1), и команда Invoke-Command возвращает непрерывающую ошибку. -------------------------- ПРИМЕР 14 -------------------------- C:\PS>$so = New-PSSessionOption -SkipCACheck PS C:\> invoke-command $s { get-hotfix } -SessionOption $so -credential ser ver01\user01 Описание ----------- В этом примере демонстрируется создание и использование параметра SessionOp tion. Первая команда создает параметр сеанса с помощью командлета New-PSSessionOp tion. Результирующий объект SessionOption сохраняется в параметре $so. Вторая команда выполняет команду Get-Hotfix на удаленном компьютере с помощ ью командлета Invoke-Command. Значением параметра SessionOption является об ъект SessionOption, сохраненный в переменной $so. -------------------------- ПРИМЕР 15 -------------------------- C:\PS>enable-wsmanCredSSP -delegate server02 C:\PS> connect-wsman Server02 C:\PS> set-item wsman:\server02*\service\auth\credSSP -value $true C:\PS> $s = new-pssession server02 C:\PS> invoke-command -session $s -script {get-item \\Net03\Scripts\LogFile s.ps1} -authentication credssp -credential domain01\admin01 Описание ----------- В этом примере показано, как получить доступ к общему сетевому ресурсу из у даленного сеанса. Для выполнения команды необходимо включить делегирование CredSSP в параметр ах клиента на локальном компьютере и в параметрах службы на удаленном компь ютере. Для выполнения команд в этом примере текущий пользователь должен быт ь членом группы "Администраторы" на локальном и удаленном компьютере. Первая команда использует командлет Enable-WSManCredSSP для включения делег ирования CredSSP с локального компьютера Server01 на удаленном компьютере S erver02. Это позволяет настроить параметр клиента CredSSP на локальном комп ьютере. Вторая команда использует командлет Connect-WSman для подключения к компьют еру Server02. Это действие добавляет узел для компьютера Server02 на диск W SMan: на локальном компьютере, позволяя просматривать и изменять параметры WS-Management на компьютере Server02. Третья команда использует командлет Set-Item для изменения значения элемент а CredSSP в узле службы компьютера Server02 на значение "True". Это позволя ет включить CredSSP в параметрах службы на удаленном компьютере. Четвертая команда использует командлет New-PSSession для создания сеанса PS Session на компьютере Server02. Она сохраняет сеанс PSSession в переменной $s. Пятая команда использует командлет Invoke-Command для выполнения команды Ge t-Item в сеансе в $s, которая возвращает скрипт из общего сетевого ресурса Net03\Scripts. Команда использует параметр Credential и параметр Authentica tion со значением CredSSP. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135225 about_Remote about_PSSessions New-PSSession Get-PSSession Remove-PSSession Enter-PSSession Exit-PSSession WS-Management Provider Invoke-Expression ИМЯ Invoke-Expression ОПИСАНИЕ Выполняет команды или выражения на локальном компьютере. СИНТАКСИС Invoke-Expression [-Command] <string> [<CommonParameters>] ОПИСАНИЕ Командлет Invoke-Expression обрабатывает или выполняет заданную строку в ка честве команды и возвращает результаты выражения или команды. Без командлет а Invoke-Expression строка, переданная в командную строку, будет возвращена без изменений. ПАРАМЕТРЫ -Command <string> Задает команду или выражение для выполнения. Введите команду или выраже ние или введите переменную, которая содержит команду или выражение. Пар аметр Command является обязательным. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String или PSObject Объект, представляющий команду, можно передать командлету Invoke-Expres sion с помощью конвейера. Для представления входных объектов команды сл едует использовать автоматическую переменную $input. ВЫХОДНЫЕ ДАННЫЕ PSObject Возвращает результат, созданный вызванной командой (значением параметра Command). ПРИМЕЧАНИЯ -- Выражение является инструкцией, которую можно обработать, чтобы полу чить результат, например командой Windows PowerShell. -- При использовании командлета Invoke-Expression в скриптах необходимо принять соответствующие меры предосторожности. Если с помощью командле та Invoke-Expression выполняется команда, параметры которой задает поль зователь, следует предварительно убедиться, что команда безопасна. В об щем случае рекомендуется задавать параметры команд на этапе разработки скрипта, а не разрешать ввод этих параметров в свободной форме. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$command = "Get-Process" C:\PS> $command Get-Process C:\PS> invoke-expression $command Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 296 4 1572 1956 20 0.53 1348 AdtAgent 270 6 1328 800 34 0.06 2396 alg 67 2 620 484 20 0.22 716 ati2evxx 1060 15 12904 11840 74 11.48 892 CcmExec 1400 33 25280 37544 223 38.44 2564 communicator ... Описание ----------- В этом примере показано использование командлета Invoke-Expression для вычи сления выражения. Без указания Invoke-Expression выражение выводится на экр ан, но не обрабатывается. Первая команда присваивает переменной $command значение "Get-Process" (стро ка). Вторая команда показывает результат ввода в командной строке имени переменн ой. Windows PowerShell повторяет эту строку в выводе. Третья команда использует командлет Invoke-Expression для обработки строки. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>invoke-expression -command "C:\ps-test\testscript.ps1" C:\PS> "C:\ps-test\testscript.ps1" | invoke-expression Описание ----------- Эти команды используют Invoke-Expression для запуска на локальном компьютер е скрипта TestScript.ps1. Две приведенные команды эквивалентны. Первая испо льзует параметр Command для задания команды для выполнения. Во второй коман де для передачи командлету Invoke-Expression командной строки используется оператор конвейера (|). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$cmd = 'get-process | where {$_.cpu -gt 1000}' C:\PS> iex $command Описание ----------- В этом примере выполняется командная строка, сохраненная в переменной $cmd. Командная строка заключена в одиночные кавычки, поскольку она включает пере менную $_, представляющую текущий объект. Если бы она была заключена в двой ные кавычки, перед сохранением команды в строке $command переменная $_ была бы заменена значением. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$cmdlet_name = "get-eventlog" C:\PS> $example_number = 1 C:\PS> $example_code = (get-help $cmdlet_name).examples.example[($example_n umber-1)].code C:\PS> invoke-expression $example_code Описание ----------- Эта команда извлекает и выполняет первый пример в разделе справки, посвящен ном командлету Get-EventLog. Чтобы выполнить пример другого командлета, присвойте переменной $cmdlet_nam e имя командлета. Затем присвойте переменной $example_number номер примера, который требуется выполнить. Если примера с указанным номером не существуе т, выполнение команды завершится сбоем. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113343 Invoke-Command Invoke-History ИМЯ Invoke-History ОПИСАНИЕ Выполняет команды из журнала сеанса. СИНТАКСИС Invoke-History [[-Id] <string>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Invoke-History выполняет команды из журнала сеанса. Командлету In voke-History можно передавать объекты, которые представляют команды, возвра щенные командлетом Get-History, либо указывать команды в текущем журнале пр и помощи их идентификационного номера. Чтобы определить идентификационный н омер команды, используйте командлет Get-History. ПАРАМЕТРЫ -Id <string> Определяет команду в журнале. Можно ввести идентификационный номер кома нды или первые несколько символов команды. При вводе символов командлет Invoke-History начинает поиск с последних команд. Если пропустить этот параметр, командлет Invoke-History выполня ет последнюю (самую недавнюю) команду. Имя параметра ("id") указывать н еобязательно. Чтобы определить идентификационный номер команды, использ уйте командлет Get-History. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды без ее фактического вы полнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Сам командлет Invoke-History не генерирует выходных данных, но выходные данные могут генерироваться командами, которые выполняются командлетом Invoke-History. ПРИМЕЧАНИЯ Журнал сеанса представляет собой список команд, введенных за время сеан са, вместе с идентификатором. В журнале сеанса представлен порядок выпо лнения, состояние, время начала и завершения выполнения команды. При вв оде каждой команды Windows PowerShell добавляет ее в журнал, чтобы обес печить возможность ее повторного использования. Дополнительные сведени я о журнале сеанса см. в разделе about_History. Командлет Invoke-History также можно вызывать с помощью встроенных псев донимов "r" и "ihy". Дополнительные сведения см. в разделе About_Aliase s. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>invoke-history Описание ----------- Эта команда выполняет последнюю (наиболее свежую) команду в журнале сеанса. Эту команду можно сократить до "r" (от слова "repeat", повтор, или "rerun" , повторный запуск) — псевдонима командлета Invoke-History. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>invoke-history -id 132 Описание ----------- Эта команда выполняет команду в журнале сеанса с идентификатором 132. Поско льку имя параметра Id необязательно, команду можно сократить до "Invoke-His tory 132", "ihy 132" или "r 132". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>invoke-history get-pr Описание ----------- Эта команда выполняет самую недавнюю команду Get-Process в журнале сеанса. При вводе знаков в параметре Id командлет Invoke-History выполняет первую о бнаруженную команду, соответствующую шаблону, начиная с последних команд в журнале. Параметр ID используется, но пропущено необязательное имя параметр а. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>invoke-history (16..24), 27 Описание ----------- Эта команда выполняет команды от 16 до 24 и 27. Несколько идентификаторов и диапазоны идентификаторов разделяются запятыми. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-history -id 255 -count 7 | invoke-history Описание ----------- Эта команда выполняет 7 команд в журнале, заканчивая командой 255 (обычно о т 249 до 255). Для извлечения команд используется командлет Get-History. Оп ератор конвейера (|) передает команды командлету Invoke-History, который их выполняет. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113344 about_History Get-History Add-History Clear-History Invoke-Item ИМЯ Invoke-Item ОПИСАНИЕ Выполняет действие по умолчанию над указанным элементом. СИНТАКСИС Invoke-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclud e <string[]>] [-Filter <string>] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] Invoke-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <stri ng[]>] [-Filter <string>] [-Include <string[]>] [-Confirm] [-WhatIf] [-UseT ransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Invoke-Item выполняет действие по умолчанию над указанным элемент ом. Например, его можно использовать для запуска исполняемого файла или отк рытия файла документа в приложении, связанном с типом данного файла докумен та. Действие по умолчанию зависит от типа элемента и определяется поставщик ом Windows PowerShell, предоставляющим доступ к данным. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Выполняет действие по умолчанию только над указанными элементами. Значе ние этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к элементу. Значение параметра LiteralPath используется точ но в том виде, в котором оно введено. Никакие символы не интерпретируют ся как подстановочные знаки. Если путь включает escape-символы, его нуж но заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к выбранному элементу. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Invoke-Item по конве йеру. ВЫХОДНЫЕ ДАННЫЕ Нет Эта команда не формирует никаких выходных данных. Однако вызываемые это й командой элементы могут создавать выходные данные. ПРИМЕЧАНИЯ Командлет Invoke-Item предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "Get-PsSProvider". Дополнительные сведени я см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>invoke-item C:\Test\aliasApr04.doc Описание ----------- Эта команда открывает файл aliasApr04.doc в приложении Microsoft Office Wor d. В данном случае открытие в приложении Word является действием по умолчан ию для DOC-файлов. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>invoke-item "C:\Documents and Settings\Lister\My Documents\*.xls" Описание ----------- Эта команда открывает все таблицы Microsoft Office Excel, расположенные в п апке C:\Documents and Settings\Lister\My Documents. Каждая таблица открывае тся в отдельном экземпляре Excel. В данном случае открытие в приложении Exc el является действием по умолчанию для XLS-файлов. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113345 about_Providers Clear-Item Get-Item Move-Item Set-Item New-Item Remove-Item Rename-Item Copy-Item Invoke-WmiMethod ИМЯ Invoke-WmiMethod ОПИСАНИЕ Вызывает методы инструментария управления Windows (WMI) СИНТАКСИС Invoke-WmiMethod [-Class] <string> [[-ArgumentList] <Object[]>] [-Authentic ation {Default | None | Connect | Call | Packet | PacketIntegrity | PacketP rivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Cre dential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | A nonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespa ce <string>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [- WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Co mputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-Thrott leLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod -InputObject <ManagementObject> [-ArgumentList <Object[]>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<Co mmonParameters>] Invoke-WmiMethod -Path <string> [-ArgumentList <Object[]>] [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivac y | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credenti al <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonym ous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <s tring>] [-Name] <string> [-AsJob] [-ThrottleLimit <int>] [-Confirm] [-WhatI f] [<CommonParameters>] Invoke-WmiMethod [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Co mputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-Thrott leLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Invoke-WmiMethod [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Co mputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-Name] <string> [-AsJob] [-Thrott leLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Invoke-WmiMethod вызывает методы WMI. ПАРАМЕТРЫ -ArgumentList <Object[]> Задает параметры, которые требуется передать вызываемому методу. Значен ием этого параметра должен быть массив объектов, упорядоченных в соотве тствии с требованиями вызываемого метода. Важно Необходимо второе значение $null, в противном случае команда соз даст ошибку, например "Невозможно привести объект типа 'System.Byte' к типу 'System.Array'.". Пример использования массива объектов ($binSD) и последующего значения null ($null): PS C:\> $acl = get-acl test.txt PS C:\> $binSD = $acl.GetSecurityDescriptorBinaryForm() PS C:\> invoke-wmimethod -class Win32_SecurityDescriptorHelper -Name Bi narySDToSDDL -argumentlist $binSD, $null Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания. Этот параметр служит для запуска команд, выполнение которых занимает длительное время. При использовании параметра AsJob команда возвращает объект, представля ющий фоновое задание, а затем отображает командную строку. Пока задание выполняется можно продолжать работу в сеансе. Если командлет Invoke-Wm iMethod используется для работы с удаленным компьютером, задание создае тся на локальном компьютере, и результаты с удаленных компьютеров автом атически возвращаются на локальный компьютер. Для управления заданием и спользуйте командлеты, в именах которых содержится существительное Job (командлеты Job). Чтобы получить результаты задания, используйте команд лет Receive-Job. Примечание. Чтобы использовать этот параметр для удаленных компьютеров, для локального и удаленного компьютеров должно быть настроено удаленно е взаимодействие. Кроме того, при работе с компьютером под управлением Windows Vista и более поздних версий Windows необходимо запускать Windo ws PowerShell командой "Запуск от имени администратора". Дополнительные сведения см. в разделе about_Remote_Requirements. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в р азделах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationLevel> Задает уровень проверки подлинности, используемый для WMI-соединения. Д опустимые значения: -1: Unchanged 0: Default 1: None (проверка подлинности не используется). 2: Connect (проверка подлинности выполняется только при установке клиен том подключения к приложению). 3: Call (проверка подлинности выполняется только в начале каждого вызов а при получении запроса приложением). 4: Packet (проверка подлинности выполняется при обработке всех данных, полученных от клиента). 5: PacketIntegrity (для всех данных, передаваемых между клиентом и прил ожением, проводится проверка подлинности и проверка целостности). 6: PacketPrivacy (используются свойства других уровней проверки подлинн ости, все данные шифруются). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authority <string> Задает центр, который используется для проверки подлинности WMI-соедине ния. Можно указать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра Authority значение "ntlm domain:<имя_домена>", где <имя_домена> — допустимое имя домена NTLM. Чт обы использовать Kerberos, укажите "kerberos:<имя_домена>\<имя_сервера> ". При подключении к локальному компьютеру нельзя использовать параметр Authority. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Class <string> Задает класс WMI, в котором содержится вызываемый статический метод. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Используйте имя локального компьютера, "localhost" или точку (.) что бы указать "Локальный компьютер". Локальный компьютер используется по у молчанию. Если пользователь и удаленный компьютер находятся в разных до менах, необходимо использовать полное доменное имя. Кроме того, можно п ередать значение этому параметру по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или User@Contoso.com. Или укажите объект PSCredential, например объект, возвращенный командлетом Get-Credential. При вводе имени польз ователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EnableAllPrivileges [<SwitchParameter>] Включает все привилегии текущего пользователя перед вызовом WMI из кома нды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Impersonation <ImpersonationLevel> Задает используемый уровень олицетворения. Допустимые значения: 0: Default (считывает значение уровня представления по умолчанию из лок ального реестра, обычно это значение равняется "3: Impersonate"). 1: Anonymous (скрывает учетные данные вызывающего). 2: Identify (позволяет объектам запрашивать учетные данные вызывающего) . 3: Impersonate (позволяет объектам использовать учетные данные вызывающ его). 4: Delegate (позволяет объектам разрешать другим объектам использовать учетные данные вызывающего). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ManagementObject> Задает объект ManagementObject, используемый в качестве входных данных. При использовании этого параметра все остальные параметры, за исключен ием параметров Flag и Argument, игнорируются. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Locale <string> Задает предпочтительную локаль для объектов WMI. Задает значение параме тра Locale как массив в формате MS_<LCID> в желаемом порядке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает имя вызываемого метода. Этот параметр обязателен и не может имет ь пустое значение или значение NULL. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Namespace <string> При использовании с параметром Class данный параметр задает пространств о имен хранилища WMI, в котором находится указанный класс или объект WM I. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к классу WMI или экземпляру класса WMI. Указанные класс или экземпляр должны содержать метод, заданный параметром Name. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Дает возможность пользователю указать пороговое значение количества опе раций WMI, которые могут выполняться одновременно. Этот параметр исполь зуется вместе с параметром AsJob. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>invoke-wmimethod -path win32_process -name create -argumentlist notep ad.exe __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 2 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ProcessId : 4844 ReturnValue : 0 Описание ----------- Эта команда запускает экземпляр Блокнота, вызвав метод Create класса Win32_ Process. Примечание. Если команда завершена, свойство ReturnValue имеет значение "0" , а свойство ProcessId содержит целое число (следующий номер идентификатора процесса). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>invoke-wmimethod -path "CIM_DataFile.Name='C:\scripts\test.txt'" -Nam e Rename -ArgumentList "C:\scripts\test_bu.txt" __GENUS : 2 __CLASS : __PARAMETERS __SUPERCLASS : __DYNASTY : __PARAMETERS __RELPATH : __PROPERTY_COUNT : 1 __DERIVATION : {} __SERVER : __NAMESPACE : __PATH : ReturnValue : 0 Описание ----------- Эта команда переименовывает файл. В ней используется параметр Path для ссыл ки на экземпляр класса CIM_DataFile. Затем применяется метод Rename к данно му конкретному экземпляру. Примечание. Свойство ReturnValue имеет значение 0, если команда завершается . ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113346 Get-WmiObject Remove-WmiObject Set-WmiInstance Get-WSManInstance Invoke-WSManAction New-WSManInstance Remove-WSManInstance Invoke-WSManAction ИМЯ Invoke-WSManAction ОПИСАНИЕ Вызывает действие на объекте, заданном при помощи URI ресурса и селекторов. СИНТАКСИС Invoke-WSManAction [-ApplicationName <string>] [-ComputerName <string>] [-C redential <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCred ential>] [-Credential <PSCredential>] [-Credential <PSCredential>] [-Creden tial <PSCredential>] [-Credential <PSCredential>] [-Credential <PSCredentia l>] [-Credential <PSCredential>] [-Port <int>] [-Port <int>] [-Port [-Port <int>] [-Port <int>] [-Port <int>] [-Port t <int>] [-UseSSL] [-ResourceURI] <Uri> [-Action] <string> [-Authentication <AuthenticationMechanism>] [-FilePath <File>] [-OptionSet <hashtable>] [-S electorSet <hashtable>] [-SessionOption <hashtable>] [-ValueSet <hashtable> ] [<CommonParameters>] Invoke-WSManAction [-ConnectionURI <Uri>] [-ResourceURI] <Uri> [-Action] <s tring> [-Authentication <AuthenticationMechanism>] [-FilePath <File>] [-Opt ionSet <hashtable>] [-SelectorSet <hashtable>] [-SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>] ОПИСАНИЕ Командлет Invoke-WSManAction выполняет действие на объекте, заданном RESOUR CE_URI, где параметры задаются парами "ключ-значение". Для выполнения действия командлет использует уровень соединений/транспорта WS-Management. ПАРАМЕТРЫ -Action <string> Указывает метод, который нужно выполнить на объекте управления, заданно м значением параметра ResourceURI и селекторами. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ApplicationName <string> Задает имя приложения для подключения. По умолчанию параметр Applicatio nName имеет значение "WSMAN". Полный идентификатор удаленной конечной т очки имеет следующий формат: <протокол>://<сервер>:<порт>/ Пример: http://server01:8080/WSMAN Службы IIS, которые обрабатывают сеанс, перенаправляют запросы с данной конечной точкой указанному приложению. Значение по умолчанию "WSMAN" п одходит для большинства случаев. Этот параметр предназначен для использ ования, когда большое число компьютеров устанавливают удаленные подключ ения к одному компьютеру, на котором работает Windows PowerShell. В это м случае для повышения эффективности веб-службы WS-Management размещают ся в службах IIS. Требуется? false Позиция? named Значение по умолчанию wsman Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationMechanism> Задает механизм проверки подлинности, используемый на сервере. Возможны е значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Default: использовать метод проверки подлинности, реализованный прото колом WS-Management. Это значение используется по умолчанию. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Kerberos: выполняется взаимная проверка подлинности компьютера и серв ера с использованием сертификатов Kerberos. - Negotiate: при использовании схемы Negotiate между компьютером и серв ером или прокси происходит обмен данными по принципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности . Например, это значение параметра разрешает согласование одного из дву х методов проверки подлинности: Kerberos или NTLM. - CredSSP: использовать проверку подлинности CredSSP (Credential Securi ty Service Provider), при которой пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускаю тся на одном удаленном компьютере, но собирают данные с других удаленны х компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Чтобы задать локальный компьютер, введите имя компьютера, "localhost " или точку (.). Локальный компьютер используется по умолчанию. Если по льзователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Значение этого параметра можно перед ать командлету по конвейеру. Требуется? false Позиция? named Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConnectionURI <Uri> Задает конечную точку соединения. Строка имеет следующий формат: <протокол>://<сервер>:<порт>/ Следующая строка представляет собой правильно отформатированное значени е для этого параметра: http://Server01:8080/WSMAN Значение URI должно быть указано полностью. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Domain.com". Или укажите объект PSCredential, наприме р возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <File> Задает путь к файлу, который используется для обновления ресурса управл ения. Ресурс управления указывается с помощью параметров ResourceURI и SelectorSet. Например, в следующей команде используется параметр FilePa th: invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Serv ice -SelectorSet @{Name="spooler"} -FilePath:c:\input.xml -authenticati on default Эта команда вызывает метод StopService службы очереди печати, используя входные данные из файла. В файле Input.xml содержатся следующие данные : <p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1 /wmi/root/cimv2/Win32_Service"/> Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OptionSet <hashtable> Передает службе набор параметров для изменения или уточнения запроса. П ередаваемые параметры похожи на параметры, используемые в оболочках ком андной строки: они зависят от конкретной службы. Можно задать произволь ное количество параметров. В следующем примере показано синтаксическое выражение, позволяющее пере дать значения 1, 2 и 3 параметрам a, b и c соответственно: -OptionSet @{a=1;b=2;c=3} Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Port <int> Задает порт, используемый клиентом для подключения к службе WinRM. Если в качестве транспорта выбран HTTP, по умолчанию используется порт 80. Если в качестве транспорта выбран HTTPS, по умолчанию используется порт 443. При использовании в качестве транспорта HTTPS значение параметра ComputerName должно соответствовать общему имени сертификата сервера. О днако, если в качестве элемента параметра SessionOption указан параметр SkipCNCheck, общее имя сертификата сервера не обязательно должно соотв етствовать имени узла сервера. Параметр SkipCNCheck следует использоват ь только в случае доверенных компьютеров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ResourceURI <Uri> Содержит универсальный идентификатор ресурса (URI) экземпляра или класс а ресурса. URI используется для определения конкретного типа ресурса, н апример диска или процесса, на компьютере. URI состоит из префикса и пути к ресурсу. Пример: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Log icalDisk http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSenso r Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -SelectorSet <hashtable> Задает набор пар значений, которые используются для выбора конкретных э кземпляров ресурса управления. Параметр SelectorSet используется в случ ае существования нескольких экземпляров ресурса. Значение параметра Sel ectorSet представляет собой хэш-таблицу. В следующем примере показано, как задать значение для этого параметра: -SelectorSet @{Name="WinRM";ID="yyy"} Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SessionOption <hashtable> Определяет расширенные параметры сеанса WS-Management. Введите объект S essionOption, созданный с помощью командлета New-WSManSessionOption. До полнительные сведения о доступных параметрах см. в разделе New-WSManSes sionOption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Указывает, что для установки подключения к удаленному компьютеру должен использоваться протокол SSL (Secure Sockets Layer). По умолчанию SSL н е используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. Параметр UseSSL позволяет указать, что необходимо испол ьзовать дополнительную меру защиты: протокол HTTPS вместо HTTP. Если ук азан этот параметр, однако используемый для подключения порт не поддерж ивает SSL, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ValueSet <hashtable> Задает хэш-таблицу, которая позволяет изменить ресурс управления. Ресур с управления указывается с помощью параметров ResourceURI и SelectorSet . Значение параметра ValueSet должно быть хэш-таблицей. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>invoke-wsmanaction -action startservice -resourceuri wmicimv2/win32_s ervice -selectorset @{name="spooler"} -authentication default xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win3 2_Service cim : http://schemas.dmtf.org/wbem/wscim/1/common lang : en-US ReturnValue : 0 Описание ----------- Эта команда вызывает метод StartService экземпляра класса WMI Win32_Service , соответствующего службе очереди печати. Возвращенное командой значение указывает, успешно ли было выполнено действи е. В данном случае возвращенное значение, равное 0, указывает на успешное з авершение действия. Возвращенное значение, равное 5, указывает, что служба уже запущена. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Se rvice -SelectorSet @{Name="spooler"} -FilePath:input.xml -authentication de fault xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win3 2_Service cim : http://schemas.dmtf.org/wbem/wscim/1/common lang : en-US ReturnValue : 0 Описание ----------- Эта команда вызывает метод StopService службы очереди печати, используя вхо дные данные из файла. В файле (Input.xml) содержатся следующие данные: <p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1/wm i/root/cimv2/Win32_Service"/> Возвращенное командой значение указывает, успешно ли было выполнено действи е. В данном случае возвращенное значение, равное 0, указывает на успешное з авершение действия. Возвращенное значение, равное 5, указывает, что служба уже запущена. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>invoke-wsmanaction -action create -resourceuri wmicimv2/win32_process -valueset @{commandline="notepad.exe";currentdirectory="C:\"} xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win3 2_Process cim : http://schemas.dmtf.org/wbem/wscim/1/common lang : en-US ProcessId : 6356 ReturnValue : 0 Описание ----------- Эта команда вызывает метод Create класса Win32_Process. Методу передаются д ва значения параметров: "Notepad.exe" и "C:\". В результате создается новый процесс для запуска Блокнота, а в качестве текущего каталога для этого нов ого процесса устанавливается каталог C:\. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>invoke-wsmanaction -action startservice -resourceuri wmicimv2/win32_s ervice -selectorset @{name="spooler"} -computername server01 -authenticati on default xsi : http://www.w3.org/2001/XMLSchema-instance p : http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win3 2_Service cim : http://schemas.dmtf.org/wbem/wscim/1/common lang : en-US ReturnValue : 0 Описание ----------- Эта команда вызывает метод StartService экземпляра класса WMI Win32_Service , соответствующего службе очереди печати. Поскольку задан параметр Computer Name, команда выполняется на удаленном компьютере server01. Возвращенное командой значение указывает, успешно ли было выполнено действи е. В данном случае возвращенное значение, равное 0, указывает на успешное з авершение действия. Возвращенное значение, равное 5, указывает, что служба уже запущена. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141446 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Invoke-WmiMethod Join-Path ИМЯ Join-Path ОПИСАНИЕ Соединяет корневой и вложенный пути в один. Поставщик задает разделители пу ти. СИНТАКСИС Join-Path [-Path] <string[]> [-ChildPath] <string> [-Credential <PSCredenti al>] [-Resolve] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Join-Path соединяет корневой и вложенный пути в один. Поставщик з адает разделители пути. ПАРАМЕТРЫ -ChildPath <string> Задает элементы, присоединяемые к значению параметра Path. Подстановочн ые знаки разрешены. Параметр ChildPath обязателен, но его имя ("ChildPa th") можно не указывать. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, созданных коман длетом Get-Credential. При вводе имени пользователя система запросит па роль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает главный путь (или пути), к которому присоединяется дочерний путь . Подстановочные знаки разрешены. Значение параметра Path определяет, какой из поставщиков соединяет пути и добавляет разделители. Параметр Path обязателен, но его имя ("Path") можно не указывать. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Resolve [<SwitchParameter>] Отображает элементы, на которые указывает объединенный путь. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Join-Path по конвейе ру. ВЫХОДНЫЕ ДАННЫЕ System.String Командлет Join-Path возвращает строку с конечным путем. ПРИМЕЧАНИЯ Командлеты, в именах которых содержится существительное Path (командлет ы Path), оперируют именами путей и возвращают эти имена в сокращенном ф ормате, который поддерживается всеми поставщиками Windows PowerShell. О ни предназначены для использования в программах и скриптах, в которых т ребуется отображать имя пути или его часть в конкретном формате. Исполь зуйте их аналогично другим командам для работы с путями, таким как Dirn ame, Normpath, Realpath и Join. Командлеты для работы с путями можно использовать с несколькими поставщ иками, включая FileSystem, Registry и Certificate. Командлет Join-Path предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в теку щем сеансе, введите команду "Get-PSProvider". Дополнительные сведения с м. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>join-path -path c:\win* -childpath System* Описание ----------- В данной команде для соединения путей "c:\Win*" и "System*" используется ко мандлет Join-Path. При работе с поставщиком файловой системы Windows PowerS hell командлет FileSystem производит соединение путей и добавляет разделите ль "\". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>join-path c:\win* System* -resolve Описание ----------- Эта команда выводит список файлов и папок, находящихся в местоположении, за даваемом с помощью пути, полученного объединением "c:\Win*" и "System*". Сп исок отображаемых элементов совпадает со списком, возвращаемым командлетом Get-ChildItem, но отличается от него тем, что элементы задаются полными пут ями. В данной команде имена необязательных параметров Path и ChildPath опущ ены. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>PS HKLM:\> join-path System *ControlSet* -resolve Описание ----------- Эта команда отображает список разделов реестра в разделе HKLM\System, включ ающих в себя параметр "ControlSet". В данном примере показано, как использо вать командлет Join-Path с поставщиком реестра Windows PowerShell. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>join-path -path C:, D:, E:, F: -childpath New Описание ----------- Эта команда с помощью командлета Join-Path объединяет несколько корневых пу тей с дочерним путем. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-psdrive -psprovider filesystem | foreach {$_.root} | join-path -c hildpath Subdir Описание ----------- Эта команда объединяет корневые пути каждого диска файловой системы Windows PowerShell в консоли с дочерним путем Subdir. С помощью командлета Get-PSDrive команда получает диски Windows PowerShell, поддерживаемые поставщиком FileSystem. Инструкция ForEach позволяет выбрат ь только свойство Root объектов PSDriveInfo и объединить его с указанным до черним путем. Выходные данные показывают, что диски Windows PowerShell на компьютере вклю чают диск, подключенный к каталогу "C:\Program Files". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113347 about_Providers Test-Path Split-Path Resolve-Path Convert-Path Limit-EventLog ИМЯ Limit-EventLog ОПИСАНИЕ Задает свойства журнала событий, устанавливающие ограничения размера журнал а и возраста его записей. СИНТАКСИС Limit-EventLog [-LogName] <string[]> [-ComputerName <string[]>] [-MaximumSi ze <Int64>] [-OverFlowAction {OverwriteAsNeeded | OverwriteOlder | DoNotOve rwrite}] [-RetentionDays <int>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Limit-EventLog задает максимальный размер классического журнала с обытий, срок хранения данных каждого события и действие, выполняемое при до стижении максимального размера журнала. Его можно использовать для задания ограничений журналов событий на локальном и удаленном компьютерах. Командлеты, в имени которых содержится существительное EventLog (командлеты EventLog) работают только с классическими журналами событий. Чтобы получат ь события из журналов, основанных на технологии журнала событий Windows (в Windows Vista и более поздних версиях Windows), используйте командлет Get-W inEvent. ПАРАМЕТРЫ -ComputerName <string[]> Задает удаленный компьютер. По умолчанию используется значение "Локальн ый компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Limit-EventLog можно использовать, д аже если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию Локальный компьютер Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LogName <string[]> Задает журналы событий. Введите имена (значение свойства Log; а не свой ства LogDisplayName) одного или нескольких журналов событий, разделенны е запятыми. Подстановочные знаки запрещены. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumSize <Int64> Задает максимальный размер журналов событий в байтах. Введите значение в диапазоне от 64 КБ до 4 ГБ. Значение должно быть кратно 64 КБ (65536 байтам). Этот параметр задает значение свойства MaximumKilobytes объекта System. Diagnostics.EventLog, представляющего классический журнал событий. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OverFlowAction <OverflowAction> Задает действие, выполняемое при достижении максимального размера журна ла событий. Допустимые значения: -- DoNotOverwrite: существующие записи сохраняются, новые записи не рег истрируются. -- OverwriteAsNeeded: каждая новая запись перезаписывает самую старую з апись. -- OverwriteOlder: новые события перезаписывают события, возраст которы х превышает значение свойства MinimumRetentionDays. В случае отсутствия событий, возраст которых превышает значение свойства MinimumRetentionD ays, новые события не регистрируются. Этот параметр задает значение свойства OverflowAction объекта System.Di agnostics.EventLog, представляющего классический журнал событий. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RetentionDays <int> Задает минимальный срок хранения события в журнале событий (в днях). Этот параметр задает значение свойства MinimumRetentionDays объекта Sys tem.Diagnostics.EventLog, представляющего классический журнал событий. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Нет ВЫХОДНЫЕ ДАННЫЕ Нет Нет ПРИМЕЧАНИЯ Чтобы использовать командлет Limit-EventLog в Windows Vista и более поз дних версиях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". Командлет Limit-EventLog изменяет свойства объекта System.Diagnostics.E ventLog, представляющего классический журнал событий. Чтобы просмотреть текущие значения свойств журнала событий, введите команду "get-eventlo g -list". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>limit-eventLog -logname "Windows PowerShell" -MaximumSize 20KB Описание ----------- Эта команда увеличивает максимальный размер журнала событий Windows PowerSh ell на локальном компьютере до 20480 КБ (20 МБ). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>limit-eventlog -logname Security -comp Server01, Server02 -retentionD ays 7 Описание ----------- Эта команда обеспечивает хранение событий журнала Security на компьютерах S erver01 и Server02 в течение как минимум 7 дней. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$logs = get-eventlog -list | foreach {$_.log} C:\PS> limit-eventlog -overflowaction OverwriteOlder -logname $logs C:\PS> get-eventlog -list Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteOlder 3,412 Application 512 0 OverwriteOlder 0 DFS Replication 512 0 OverwriteOlder 17 DxStudio 10,240 7 OverwriteOlder 0 HardwareEvents 512 0 OverwriteOlder 0 Internet Explorer 512 0 OverwriteOlder 0 Key Management Service 16,384 0 OverwriteOlder 4 ODiag 16,384 0 OverwriteOlder 389 OSession Security 15,168 0 OverwriteOlder 19,360 System 15,360 0 OverwriteOlder 15,828 Windows PowerShell Описание ----------- Эти команды изменяют действие, выполняемое при переполнении всех журналов с обытий на локальном компьютере, на "OverwriteOlder". Первая команда получает имена всех журналов на локальном компьютере. Вторая команда задает действие, выполняемое при переполнении. Третья команда отоб ражает результаты. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135227 Clear-EventLog Get-EventLog Limit-EventLog New-EventLog Remove-EventLog Show-EventLog Write-EventLog Get-WinEvent Measure-Command ИМЯ Measure-Command ОПИСАНИЕ Измеряет время выполнения блоков скриптов и командлетов. СИНТАКСИС Measure-Command [-Expression] <scriptblock> [-InputObject <psobject>] [<Com monParameters>] ОПИСАНИЕ Командлет Measure-Command выполняет во внутреннем контексте блок скрипта ил и командлет, измеряет время выполнения операции и возвращает полученное зна чение. ПАРАМЕТРЫ -Expression <scriptblock> Задает выражение, длительность выполнения которого нужно определить. За ключайте выражение в фигурные скобки ({}). Имя параметра ("-Expression" ) указывать необязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты, представляющие выражения для измерения. Введите перемен ную, содержащую объекты, либо получающую их команду или выражение. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объект можно передать командлету Measure-Command по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.TimeSpan Measure-Command возвращает объект интервала времени, представляющий рез ультат. ПРИМЕЧАНИЯ Чтобы получить дополнительные сведения, введите команду "Get-Help Measu re-Command -detailed". Чтобы получить технические сведения, введите ком анду "Get-Help Measure-Command -full". При указании нескольких значений параметра разделяйте их запятыми. Нап ример: "<имя-параметра> <значение1>, <значение2>". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Measure-Command { get-eventlog "windows powershell" } Описание ----------- Эта команда измеряет время выполнения команды get-eventlog, которая возвращ ает события из журнала событий Windows PowerShell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>measure-command {get-childitem c:\windows -include *.txt -recurse} Days : 0 Hours : 0 Minutes : 0 Seconds : 8 Milliseconds : 618 Ticks : 86182763 TotalDays : 9.9748568287037E-05 TotalHours : 0.00239396563888889 TotalMinutes : 0.143637938333333 TotalSeconds : 8.6182763 TotalMilliseconds : 8618.2763 C:\PS>measure-command {get-childitem c:\windows -filter "*.txt" -recurse} Days : 0 Hours : 0 Minutes : 0 Seconds : 1 Milliseconds : 140 Ticks : 11409189 TotalDays : 1.32050798611111E-05 TotalHours : 0.000316921916666667 TotalMinutes : 0.019015315 TotalSeconds : 1.1409189 TotalMilliseconds : 1140.9189 Описание ----------- Эти команды показывают преимущества использования специфического для постав щика фильтра в командах Windows PowerShell. Первая команда измеряет время в ыполнения рекурсивной команды Get-ChildItem с параметром Include. Вторая ко манда измеряет время выполнения рекурсивной команды Get-ChildItem, в которо й используется специфический для поставщика параметр Filter. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113348 Trace-Command Invoke-Command Measure-Object ИМЯ Measure-Object ОПИСАНИЕ Рассчитывает числовые свойства объектов, а также количество знаков, слов и строк в строковых объектах, например в текстовых файлах. СИНТАКСИС Measure-Object [-Average] [-Maximum] [-Minimum] [-Sum] [[-Property] <string []>] [-InputObject <psobject>] [<CommonParameters>] Measure-Object [-Character] [-IgnoreWhiteSpace] [-Line] [-Word] [[-Property ] <string[]>] [-InputObject <psobject>] [<CommonParameters>] ОПИСАНИЕ Командлет Measure-Object вычисляет значения свойств объектов определенного типа. Measure-Object выполняет измерения трех типов в зависимости от параме тров команды. Командлет Measure-Object выполняет вычисления, связанные со свойствами объе ктов. Он позволяет подсчитывать объекты, а также находить минимальные, макс имальные, суммарные и средние числовые значения. Для текстовых объектов он позволяет подсчитывать число строк, слов и знаков. ПАРАМЕТРЫ -Average [<SwitchParameter>] Отображает среднее значение для заданных свойств. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Character [<SwitchParameter>] Подсчитывает количество знаков объекта ввода. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -IgnoreWhiteSpace [<SwitchParameter>] Игнорирует пробелы при подсчете количества слов и количества знаков. По умолчанию пробелы учитываются. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Указывает, какие объекты нужно измерять. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Line [<SwitchParameter>] Подсчитывает количество строк объекта ввода. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Maximum [<SwitchParameter>] Отображает максимальное значение для заданных свойств. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Minimum [<SwitchParameter>] Отображает минимальное значение для заданных свойств. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Property <string[]> Задает одно или более числовых свойств для измерения. По умолчанию испо льзуется свойство Count (Length) объекта. Требуется? false Позиция? 1 Значение по умолчанию Count Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Sum [<SwitchParameter>] Отображает сумму значений заданных свойств. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Word [<SwitchParameter>] Подсчитывает количество слов объекта ввода. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты можно передать командлету Measure-Object по конвейеру. ВЫХОДНЫЕ ДАННЫЕ GenericMeasureInfo или TextMeasureInfoObject ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-childitem | measure-object Описание ----------- Эта команда определяет число файлов и папок в текущем каталоге. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-childitem | measure-object -property length -minimum -maximum -av erage Описание ----------- Эта команда отображает минимальный, максимальный, суммарный и средний разме р всех файлов в текущем каталоге. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-content C:\test.txt | measure-object -character -line -word Описание ----------- Эта команда отображает число знаков, слов и строк в файле Text.txt. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process | measure-object -property workingset -minimum -maximum - average Описание ----------- Эта команда отображает минимальный, максимальный и средний размер всех рабо чих наборов процессов на компьютере. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>import-csv d:\test\serviceyrs.csv | measure-object -property years -m inimum -maximum -average Описание ----------- Команда вычисляет среднее время работы сотрудников в компании. ServiceYrs.csv — это CSV-файл, содержащий номера сотрудников и время работы каждого из сотрудников в годах. Первая строка таблицы представляет собой с троку заголовков "EmpNo, Years". При импорте файла с помощью командлета Import-Csv создается объект PSCustom Object, имеющий свойства-примечания EmpNo и Years. Командлет Measure-Object позволяет вычислить значения этих свойств, как для любых других свойств об ъекта. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-childitem | measure-object -property psiscontainer -max -sum -min -average Count : 126 Average : 0.0634920634920635 Sum : 8 Maximum : 1 Minimum : 0 Property : PSIsContainer Описание ----------- В этом примере показано, что командлет Measure-Object позволяет измерять зн ачения типа Boolean. В данном случае используется свойство PSIsContainer ти па Boolean для измерения количества папок (файлов vs.) в текущем каталоге. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113349 Compare-Object ForEach-Object Group-Object New-Object Select-Object Sort-Object Tee-Object Where-Object mkdir ИМЯ New-Item ОПИСАНИЕ Создает новый элемент. СИНТАКСИС New-Item [-Path] <string[]> [-Credential <PSCredential>] [-Force] [-ItemTyp e <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTransaction] [<Comm onParameters>] New-Item -Name <string> [[-Path] <string[]>] [-Credential <PSCredential>] [ -Force] [-ItemType <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTr ansaction] [<CommonParameters>] ОПИСАНИЕ Командлет New-Item создает новый элемент и задает его значение. Типы создав аемых элементов зависят от местоположения этих элементов. Например, в файло вой системе командлет New-Item создает файлы и папки. В реестре командлет N ew-Item создает разделы и записи реестра. С помощью командлета New-Item можно также задавать значения создаваемых эле ментов. Например, при создании нового файла командлет New-Item можно исполь зовать для добавления в файл исходного содержимого. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету создать элемент, заменяющий существующий элемент, доступный только для чтения. Реализация варьируется от поставщика к пос тавщику. Дополнительные сведения см. в разделе About_Providers. Даже пр и использовании параметра Force командлет не может переопределить огран ичения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ItemType <string> Задает тип нового элемента, определяемый поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает имя нового элемента. Имя нового элемента можно задать с помощью этого параметра или включить это имя в значение параметра Path. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к местоположению нового элемента. Подстановочные знаки разр ешены. Можно задать имя нового элемента параметром Name или включить это имя в параметр Path. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Value <Object> Задает значение нового элемента. Также значение можно передать командле ту New-Item с помощью конвейера. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Значение для нового элемента можно передать командлету New-Item по конв ейеру. ВЫХОДНЫЕ ДАННЫЕ System.Object Командлет New-Item возвращает созданный им элемент. ПРИМЕЧАНИЯ Командлет New-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущ ем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см . в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-item -path . -name testfile1.txt -type "file" -value "This is a t ext string." Описание ----------- Эта команда создает в текущем каталоге текстовый файл с именем testfile1.tx t. Точка (.) в значении параметра Path обозначает текущий каталог. Текст, у казанный в кавычках после параметра Value, добавляется в файл в качестве ег о содержимого. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-item -path c:\ -name logfiles -type directory Описание ----------- Эта команда создает папку с именем Logfiles на диске C: Параметр Type указы вает, что создаваемый элемент является каталогом, а не файлом или другим об ъектом файловой системы. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>new-item -path $profile -type file -force Описание ----------- Эта команда создает профиль Windows PowerShell в местоположении, заданном п еременной $profile. Профили можно использовать для настройки Windows PowerShell. $profile являе тся автоматической (встроенной) переменной, в которой хранится путь и имя ф айла профиля "CurrentUser/CurrentHost". Несмотря на наличие в Windows Power Shell пути и имени соответствующего файла, по умолчанию профиль не существу ет. В этой команде переменная $profile представляет путь к файлу. Параметр Type (или InfoType) задает команду, создающую файл. Параметр Force позволяет со здать файл в местоположении, определенном путем к профилю, даже если указан ные в пути каталоги не существуют (они будут созданы оболочкой PowerShell). После создания нового профиля с помощью этой команды можно настроить оболоч ку, задав псевдонимы, функции и скрипты. Дополнительные сведения см. в разделах "about_Automatic_Variables" и "about _Profiles". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>new-item -type directory -path c:\ps-test\scripts Описание ----------- Эта команда создает новый каталог Scripts в каталоге C:\PS-Test. Имя нового каталога (Scripts) включено в значение параметра Path, вместо то го чтобы быть указанным в параметре Name. Синтаксис допускает два вида кома нды. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113353 about_Providers Get-Item Set-Item Remove-Item Clear-Item Invoke-Item Rename-Item Move-Item Copy-Item more more [[-paths] <String[]>] Move-Item ИМЯ Move-Item ОПИСАНИЕ Перемещает элемент из одного местоположения в другое. СИНТАКСИС Move-Item [-LiteralPath] <string[]> [[-Destination] <string>] [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonPar ameters>] Move-Item [-Path] <string[]> [[-Destination] <string>] [-Credential <PSCred ential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <strin g[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters >] ОПИСАНИЕ Командлет Move-Item cmdlet перемещает элемент, включая его свойства, содерж имое и дочерние элементы, из одного местоположения в другое. Оба заданных м естоположения должны поддерживаться одним и тем же поставщиком. Например, м ожно переместить файл или вложенный каталог из одного каталога в другой либ о переместить подраздел реестра из одного раздела в другой. При перемещении элемента он удаляется в исходном местоположении и создается в новом. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Destination <string> Задает путь к местоположению, в которое осуществляется перемещение элем ентов. По умолчанию используется текущий каталог. При этом можно исполь зовать подстановочные знаки, однако в результате должно быть задано тол ько одно местоположение. Чтобы переименовать перемещаемый элемент, задайте новое имя в параметре Destination. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету переместить элемент, заменяющий существующий элеме нт, доступный только для чтения. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Даж е при использовании параметра Force командлет не может переопределить о граничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Перемещает только указанные элементы. Значение этого параметра определя ет значение параметра Path. Введите элемент пути или шаблон, например " *.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к текущему местоположению элементов. В отличие от значения параметра Path, значение параметра LiteralPath используется точно в том виде, в котором оно введено. Никакие символы не интерпретируются как п одстановочные знаки. Если путь включает escape-символы, его нужно заклю чить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретировать как escape- символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает по конвейеру объект, представляющий элемент. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к текущему местоположению элементов. По умолчанию используе тся текущий каталог. Подстановочные знаки разрешены. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Move-Item по конвейе ру. ВЫХОДНЫЕ ДАННЫЕ Нет или объект, представляющий перемещенный элемент. При использовании параметра Passthru командлет Move-Item создает объект , представляющий перемещенный элемент. В противном случае этот командле т не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Move-Item перемещает файлы между дисками, которые поддерживаю тся одним поставщиком, однако каталоги могут быть перемещены только в п ределах одного диска. Так как командлет Move-Item перемещает свойства, содержимое и дочерние элементы объекта, то все выполняемые перемещения являются рекурсивными по умолчанию. Командлет Move-Item также можно вызывать с помощью псевдонимов: "move", "mv" и "mi". Дополнительные сведения см. в разделе About_Aliases. Командлет Move-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в теку щем сеансе, введите команду "Get-PsProvider". Дополнительные сведения с м. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>move-item -path C:\test.txt -destination E:\Temp\tst.txt Описание ----------- Эта команда перемещает файл Test.txt с диска C: в каталог E:\Temp и переиме новывает его из "test.txt" в "tst.txt". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>move-item -path C:\Temp -destination C:\Logs Описание ----------- Эта команда перемещает каталог C:\Temp и все его содержимое в каталог C:\Lo gs. После выполнения данной команды каталог Temp, а также все его вложенные каталоги и файлы, будет находиться в каталоге Logs. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>move-item -path .\*.txt -destination C:\Logs Описание ----------- Эта команда перемещает все текстовые файлы (*.txt) из текущего каталога (об означенного точкой (.)) в каталог C:\Logs. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-childitem -path . -recurse -include *.txt | move-item -destinatio n C:\TextFiles Описание ----------- Эта команда рекурсивно перемещает все текстовые файлы из текущего каталога и вложенных в него каталогов в каталог C:\TextFiles. Эта команда с помощью командлета Get-ChildItem извлекает все дочерние элеме нты с расширением "*.txt" из текущего каталога (обозначенного точкой (.)) и вложенных в него каталогов. В данной команде для обеспечения рекурсивности извлечения используется параметр Recurse, а параметр Include позволяет изв лечь только TXT-файлы. Оператор конвейера (|) пересылает результаты данной команды командлету Move -Item, который перемещает текстовые файлы в папку TextFiles. Если имена перемещаемых в каталог "C:\Textfiles" файлов совпадают, командле т Move-Item отображает сообщение об ошибке и продолжает работу; при этом в каталог "C:\Textfiles" перемещается только один файл с данным именем. Други е файлы остаются в своих исходных каталогах. Если каталог Textfiles (или любой другой элемент пути назначения) не сущест вует, команда завершается с ошибкой. Отсутствующий каталог не будет создан даже в случае использования параметра Force. Командлет Move-Item перемещает первый элемент в файл "Textfiles" и отображает сообщение об ошибке, указыв ающее, что файл уже существует. Кроме того, по умолчанию командлет Get-ChildItem не перемещает скрытые файл ы. Для перемещения скрытых файлов в командлете Get-ChildItem необходимо ука зать параметр Force. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>move-item hklm:\software\mycompany\* hklm:\software\mynewcompany Описание ----------- Эта команда перемещает разделы и параметры из раздела реестра HKLM\Software MyCompany в раздел MyNewCompany. Подстановочный знак (*) означает, что сле дует переместить содержимое раздела MyCompany, а не сам раздел. В этой кома нде имена дополнительных параметров Path и Destination опущены. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>move-item -literalpath 'Logs[Sept`06]' -destination 'Logs[2006]' Описание ----------- Эта команда перемещает папку Logs[Sept`06] и все ее содержимое в каталог Lo gs[2006]. Поскольку в имени исходного каталога содержатся квадратные скобки ("[" и "] "), вместо параметра Path используется параметр LiteralPath. Чтобы знак отк рывающей кавычки (`) интерпретировался как обычный символ, строку пути необ ходимо заключать в одиночные кавычки (' '). При использовании параметра Destination нет необходимости указывать точный путь, так как переменная Destination также должна заключаться в одинарные к авычки, поскольку содержит скобки, которые могут неверно интерпретироваться . ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113350 about_Providers Clear-Item Get-Item Invoke-Item Set-Item New-Item Remove-Item Rename-Item Copy-Item Move-ItemProperty ИМЯ Move-ItemProperty ОПИСАНИЕ Перемещает свойство из одного местоположения в другое. СИНТАКСИС Move-ItemProperty [-LiteralPath] <string[]> [-Destination] <string> [-Name] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter ring>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-Us eTransaction] [<CommonParameters>] Move-ItemProperty [-Path] <string[]> [-Destination] <string> [-Name] <strin g[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransa ction] [<CommonParameters>] ОПИСАНИЕ Командлет Move-ItemProperty перемещает свойство одного элемента в другой эл емент. Например, с его помощью можно переместить запись из одного раздела р еестра в другой. При перемещении свойства элемента оно удаляется в исходно м местоположении и создается в новом. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Destination <string> Задает путь к целевому местоположению. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету переместить свойства элементов, которые были бы не доступны пользователю другими способами. Реализация варьируется от пост авщика к поставщику. Дополнительные сведения см. в разделе About_Provid ers. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Перемещает только указанные элементы. Значение этого параметра определя ет значение параметра Path. Введите элемент пути или шаблон, например " *.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к текущему местоположению свойства. В отличие от значения п араметра Path, значение параметра LiteralPath используется точно в том виде, в котором оно введено. Никакие символы не интерпретируются как по дстановочные знаки. Если путь включает escape-символы, его нужно заключ ить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows P owerShell, что никакие символы не следует интерпретировать как escape-с имволы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Задает имя перемещаемого свойства. Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает объект, представляющий свойство элемента. По умолчанию этот ко мандлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к текущему местоположению свойства. Подстановочные знаки ра зрешены. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Move-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSCustomObject Если задан параметр PassThru, командлет Move-ItemProperty создает объек т PSCustomObject, представляющий перемещенное свойство элемента. В прот ивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Имена параметров Path, Destination и Name указывать необязательно. Если в команде отсутствуют имена параметров, безымянные значения параметров необходимо указывать в следующем порядке: Path, Destination, Name. При указании имен параметры могут следовать в любом порядке. Командлет Move-ItemProperty также можно вызывать с помощью встроенного псевдонима "mp". Дополнительные сведения см. в разделе About_Aliases. Командлет Move-ItemProperty предназначен для работы с данными, предоста вляемыми любым поставщиком. Чтобы получить список поставщиков, доступны х в текущем сеансе, введите команду "Get-PSProvider". Дополнительные св едения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>move-itemproperty HKLM:\Software\MyCompany\MyApp -Name ` Version -Destination HKLM:\Software\MyCompany\NewApp Описание ----------- Эта команда перемещает параметр реестра "Version" и его значение из подразд ела MyApp в подраздел NewApp раздела HKLM\Software\MyCompany. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113351 about_Providers Clear-ItemProperty New-ItemProperty Copy-ItemProperty Rename-ItemProperty Get-ItemProperty Set-ItemProperty Remove-ItemProperty New-Alias ИМЯ New-Alias ОПИСАНИЕ Создает новый псевдоним. СИНТАКСИС New-Alias [-Name] <string> [-Value] <string> [-Description <string>] [-Forc e] [-Option {None | ReadOnly | Constant | Private | AllScope}] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет New-Alias создает новый псевдоним в текущем сеансе Windows PowerS hell. Псевдонимы, созданные с помощью командлета New-Alias, не сохраняются после окончания сеанса или закрытия Windows PowerShell. Командлет Export-Al ias можно использовать для сохранения сведений о псевдонимах в файле. Сохра ненные сведения о псевдонимах можно извлечь с помощью командлета Import-Ali as. ПАРАМЕТРЫ -Description <string> Задает описание псевдонима. Можно ввести любую строку. Если описание со держит пробелы, его нужно заключить в кавычки. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Если задан, ведет себя как командлет set-alias, когда псевдоним с таким именем уже существует. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает новый псевдоним. В псевдониме можно использовать любые буквы или цифры, но первым знаком не может быть цифра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Option <ScopedItemOptions> Определяет одно или несколько необязательных свойств псевдонима. Допуст имые значения: -- None: не определяет параметров (по умолчанию). -- ReadOnly: псевдоним нельзя изменить, если только не использовать пар аметр Force. -- Constant: псевдоним нельзя изменить, даже если использовать параметр Force. -- Private: псевдоним доступен только в области, определенной параметро м Scope. Он невидим за пределами области. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий новый псевдоним. По умолчанию этот ко мандлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <string> Задает область нового псевдонима. Допустимые значения: "Global", "Local ", "Script" или номер относительно текущей области (от 0 до количества областей, где 0 — текущая область, а 1 — ее родительская область). По у молчанию используется значение "Local". Дополнительные сведения см. в р азделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Value <string> Задает имя командлета или элемента команды, для которого создается псев доним. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.AliasInfo Если задан параметр Passthru, командлет New-Alias создает объект System .Management.Automation.AliasInfo, представляющий новый псевдоним. В про тивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Для создания нового псевдонима используйте командлет Set-Alias или New- Alias. Для изменения псевдонима используйте командлет Set-Alias. Для уд аления псевдонима используйте командлет Remove-Item. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-alias list get-childitem Описание ----------- Эта команда создает для командлета Get-ChildItem псевдоним "list". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-alias -name w -value get-wmiobject -description "quick wmi alias" -option ReadOnly C:\PS> get-alias -name w | format-list * Описание ----------- Эта команда создает для командлета Get-WMIObject псевдоним "w". Она назнача ет псевдониму описание "quick wmi alias" и делает псевдоним доступным тольк о для чтения. В последней строке командлет Get-Alias возвращает новый псевд оним и передает его по конвейеру командлету Format-List для отображения все х данных о псевдониме. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113352 Set-Alias Get-Alias Export-Alias Import-Alias New-Event ИМЯ New-Event ОПИСАНИЕ Создает новое событие. СИНТАКСИС New-Event [-SourceIdentifier] <string> [[-Sender] <psobject>] [[-EventArgum ents] <PSObject[]>] [[-MessageData] <psobject>] [<CommonParameters>] ОПИСАНИЕ Командлет New-Event создает новое пользовательское событие. Пользовательские события позволяют уведомлять пользователей об изменениях с остояния программы, а также о любых других изменениях, которые может обнару жить программа, включая изменения условий работы оборудования или системы, состояния приложений, состояния диска, состояния сети или завершение фоново го задания. Пользовательские события автоматически добавляются в очередь событий в сеан се в момент их возникновения; настраивать подписку на эти события не нужно. Однако если требуется перенаправить событие в локальный сеанс или задать д ействие для реагирования на событие, необходимо подписаться на такое пользо вательское событие с помощью командлета Register-EngineEvent. При создании подписки на пользовательское событие в сеанс добавляется подпи счик на событие. Если отменить подписку на событие с помощью командлета Unr egister-Event, подписчик на событие и само пользовательское событие будут у далены из сеанса. Если не подписываться на пользовательское событие, то для удаления события необходимо изменить условия работы программы или закрыть сеанс Windows PowerShell. ПАРАМЕТРЫ -EventArguments <PSObject[]> Задает объект, содержащий параметры события. Требуется? false Позиция? 3 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MessageData <psobject> Задает дополнительные данные, связанные с событием. Значение этого пара метра хранится в свойстве MessageData объекта события. Требуется? false Позиция? 4 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Sender <psobject> Задает объект, вызывающий появление события. Объектом по умолчанию явля ется обработчик Windows PowerShell. Требуется? false Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SourceIdentifier <string> Задает имя нового события. Этот параметр является обязательным и он дол жен быть уникальным в пределах сеанса. Значение этого параметра хранится в свойстве SourceIdentifier события. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSEventArgs ПРИМЕЧАНИЯ Новое пользовательское событие, подписка на событие и очередь событий с уществуют только в рамках текущего сеанса. Если завершить текущий сеанс , очередь событий будет очищена и подписка на события будет отменена. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-event -sourceidentifier Timer -sender windows.timer -messagedata "Test" Описание ----------- Эта команда создает новое событие в очереди событий Windows PowerShell. Для отправки события она использует объект Windows.Timer. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>function Enable-ProcessCreationEvent { $query = New-Object System.Management.WqlEventQuery "__InstanceCreationE vent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'" $processWatcher = New-Object System.Management.ManagementEventWatcher $q uery $identifier = "WMI.ProcessCreated" Register-ObjectEvent $processWatcher "EventArrived" -SupportEvent $ident ifier -Action { [void] (New-Event -sourceID "PowerShell.ProcessCreated" -Sender $arg s[0] -EventArguments $args[1].SourceEventArgs.NewEvent.TargetInstance) } } Описание ----------- В этом примере функции командлет New-Event используется для создания событи я в ответ на другое событие. Команда использует командлет Register-ObjectEv ent для подписки на событие инструментария управления Windows (WMI), возник ающее при создании нового процесса. Команда использует параметр Action кома ндлета, чтобы вызвать командлет New-Event, создающий новое событие. Поскольку события, создаваемые командлетом New-Event, автоматически добавля ются в очередь событий Windows PowerShell, пользователю не нужно подписыват ься на эти события. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135234 Register-ObjectEvent Register-EngineEvent Register-WmiEvent Unregister-Event Get-Event Remove-Event Wait-Event New-EventLog ИМЯ New-EventLog ОПИСАНИЕ Создает новый журнал событий и новый источник событий на локальном или удал енном компьютере. СИНТАКСИС New-EventLog [-LogName] <string> [-Source] <string[]> [[-ComputerName] <str ing[]>] [-CategoryResourceFile <string>] [-MessageResourceFile <string>] [- ParameterResourceFile <string>] [<CommonParameters>] ОПИСАНИЕ Этот командлет создает новый классический журнал событий на локальном или у даленном компьютере. С его помощью можно также зарегистрировать источник со бытий, который будет записывать события в новый или существующий журнал. Командлеты, в имени которых содержится существительное EventLog (командлеты журнала событий), работают только с классическими журналами событий. Чтобы получать события из журналов, основанных на технологии журнала событий Win dows (в Windows Vista и более поздних версиях Windows), используйте командл ет Get-WinEvent. ПАРАМЕТРЫ -CategoryResourceFile <string> Задает путь к файлу, в котором содержатся строки категорий для исходных событий. Этот файл также называется файлом сообщений категорий. Файл должен находиться на компьютере, на котором создается журнал событ ий. Этот параметр не создает и не перемещает файлы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Создает новые журналы событий на указанных компьютерах. По умолчанию ис пользуется значение "Локальный компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-EventLog можно использовать, даж е если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? 3 Значение по умолчанию . Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LogName <string> Задает имя журнала событий. Если журнал не существует, командлет New-EventLog создает журнал и испо льзует данное значение в свойствах Log и LogDisplayName нового журнала событий. Если журнал существует, командлет New-EventLog регистрирует но вый источник для журнала событий. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MessageResourceFile <string> Задает путь к файлу, в котором содержатся строки форматирования сообщен ий для исходных событий. Этот файл также называется файлом сообщений со бытий. Файл должен находиться на компьютере, на котором создается журнал событ ий. Этот параметр не создает и не перемещает файлы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ParameterResourceFile <string> Задает путь к файлу, в котором содержатся строки, используемые для подс тановки параметров в описаниях событий. Этот файл также называется файл ом сообщений параметров. Файл должен находиться на компьютере, на котором создается журнал событ ий. Этот параметр не создает и не перемещает файлы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Source <string[]> Задает имена источников журналов событий, например названия приложений, записывающих данные в журнал событий. Это обязательный параметр. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Diagnostics.EventLogEntry ПРИМЕЧАНИЯ Чтобы использовать командлет New-EventLog в Windows Vista и более поздн их версиях Windows, необходимо запускать Windows PowerShell командой "З апуск от имени администратора". Чтобы создать источник событий в Windows Vista, Windows XP Professional или Windows Server 2003, необходимо быть членом группы "Администраторы " на целевом компьютере. При создании нового журнала событий и нового источника событий система регистрирует новый источник для нового журнала, однако журнал создается только при записи первого события. Операционная система сохраняет журналы событий в виде файлов. При созда нии нового журнала событий соответствующий файл сохраняется в каталоге "%SystemRoot%\System32\Config" на указанном компьютере. Имя файла состо ит из восьми первых символов значения свойства Log; файл имеет расширен ие EVT. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-eventlog -source TestApp -logname TestLog -MessageResourceFile C: \Test\TestApp.dll Описание ----------- Эта команда создает на локальном компьютере журнал событий TestLog и регист рирует для него новый источник. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$file = "C:\Program Files\TestApps\NewTestApp.dll" C:\PS> new-eventlog -computername Server01 -source NewTestApp -logname Appl ication -MessageResourceFile $file -CategoryResourceFile $file Описание ----------- Эта команда добавляет новый источник событий, NewTestApp, к журналу событий приложений на удаленном компьютере Server01. Для выполнения команды необходимо наличие файла NewTestApp.dll на компьютер е Server01. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135235 Clear-EventLog Get-EventLog Limit-EventLog New-EventLog Remove-EventLog Show-EventLog Write-EventLog Get-WinEvent New-Item ИМЯ New-Item ОПИСАНИЕ Создает новый элемент. СИНТАКСИС New-Item [-Path] <string[]> [-Credential <PSCredential>] [-Force] [-ItemTyp e <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTransaction] [<Comm onParameters>] New-Item -Name <string> [[-Path] <string[]>] [-Credential <PSCredential>] [ -Force] [-ItemType <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTr ansaction] [<CommonParameters>] ОПИСАНИЕ Командлет New-Item создает новый элемент и задает его значение. Типы создав аемых элементов зависят от местоположения этих элементов. Например, в файло вой системе командлет New-Item создает файлы и папки. В реестре командлет N ew-Item создает разделы и записи реестра. С помощью командлета New-Item можно также задавать значения создаваемых эле ментов. Например, при создании нового файла командлет New-Item можно исполь зовать для добавления в файл исходного содержимого. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету создать элемент, заменяющий существующий элемент, доступный только для чтения. Реализация варьируется от поставщика к пос тавщику. Дополнительные сведения см. в разделе About_Providers. Даже пр и использовании параметра Force командлет не может переопределить огран ичения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ItemType <string> Задает тип нового элемента, определяемый поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает имя нового элемента. Имя нового элемента можно задать с помощью этого параметра или включить это имя в значение параметра Path. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к местоположению нового элемента. Подстановочные знаки разр ешены. Можно задать имя нового элемента параметром Name или включить это имя в параметр Path. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Value <Object> Задает значение нового элемента. Также значение можно передать командле ту New-Item с помощью конвейера. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Значение для нового элемента можно передать командлету New-Item по конв ейеру. ВЫХОДНЫЕ ДАННЫЕ System.Object Командлет New-Item возвращает созданный им элемент. ПРИМЕЧАНИЯ Командлет New-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущ ем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см . в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-item -path . -name testfile1.txt -type "file" -value "This is a t ext string." Описание ----------- Эта команда создает в текущем каталоге текстовый файл с именем testfile1.tx t. Точка (.) в значении параметра Path обозначает текущий каталог. Текст, у казанный в кавычках после параметра Value, добавляется в файл в качестве ег о содержимого. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-item -path c:\ -name logfiles -type directory Описание ----------- Эта команда создает папку с именем Logfiles на диске C: Параметр Type указы вает, что создаваемый элемент является каталогом, а не файлом или другим об ъектом файловой системы. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>new-item -path $profile -type file -force Описание ----------- Эта команда создает профиль Windows PowerShell в местоположении, заданном п еременной $profile. Профили можно использовать для настройки Windows PowerShell. $profile являе тся автоматической (встроенной) переменной, в которой хранится путь и имя ф айла профиля "CurrentUser/CurrentHost". Несмотря на наличие в Windows Power Shell пути и имени соответствующего файла, по умолчанию профиль не существу ет. В этой команде переменная $profile представляет путь к файлу. Параметр Type (или InfoType) задает команду, создающую файл. Параметр Force позволяет со здать файл в местоположении, определенном путем к профилю, даже если указан ные в пути каталоги не существуют (они будут созданы оболочкой PowerShell). После создания нового профиля с помощью этой команды можно настроить оболоч ку, задав псевдонимы, функции и скрипты. Дополнительные сведения см. в разделах "about_Automatic_Variables" и "about _Profiles". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>new-item -type directory -path c:\ps-test\scripts Описание ----------- Эта команда создает новый каталог Scripts в каталоге C:\PS-Test. Имя нового каталога (Scripts) включено в значение параметра Path, вместо то го чтобы быть указанным в параметре Name. Синтаксис допускает два вида кома нды. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113353 about_Providers Get-Item Set-Item Remove-Item Clear-Item Invoke-Item Rename-Item Move-Item Copy-Item New-ItemProperty ИМЯ New-ItemProperty ОПИСАНИЕ Создает новое свойство элемента и задает значение этого свойства. Например, командлет New-ItemProperty можно использовать для создания и изменения зна чений и данных реестра, которые являются свойствами раздела реестра. СИНТАКСИС New-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Credential <P SCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include string[]>] [-PropertyType <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] New-ItemProperty [-Path] <string[]> [-Name] <string> [-Credential <PSCreden tial>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[ ]>] [-PropertyType <string>] [-Value <Object>] [-Confirm] [-WhatIf] [-UseTr ansaction] [<CommonParameters>] ОПИСАНИЕ Командлет New-ItemProperty создает новое свойство указанного элемента и зад ает значение этого свойства. Как правило, этот командлет используется для с оздания новых значений реестра, поскольку значения реестра являются свойств ами раздела реестра. Этот командлет не добавляет свойства в объект. Чтобы добавить свойство в эк земпляр объекта, используйте командлет Add-Member. Чтобы добавить свойство во все объекты определенного типа, отредактируйте файл Types.ps1xml. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зав исит от поставщика. Фильтры эффективнее других параметров, потому что п оставщик применяет их при извлечении объектов (вместо использования Win dows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету создать свойство объекта, которое было бы недоступ но пользователю другими способами. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Значение этого параметра определяет значение параметра Path. Введите эл емент пути или шаблон, например "*.txt". Подстановочные знаки разрешены . Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к свойству элемента. Значение параметра LiteralPath использ уется точно в том виде, в котором оно введено. Никакие символы не интер претируются как подстановочные знаки. Если путь включает escape-символы , его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретир овать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает имя нового свойства. Если свойство является записью реестра, это т параметр задает имя записи. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементу. Этот параметр определяет элемент, в который буд ет добавлено новое свойство. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PropertyType <string> Задает тип добавляемого свойства. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Value <Object> Задает значение свойства. Если свойство является записью реестра, этот параметр задает значение записи. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету New-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSCustomObject Командлет New-ItemProperty возвращает пользовательский объект, содержащ ий новое свойство. ПРИМЕЧАНИЯ Командлет New-ItemProperty предназначен для работы с данными, предостав ляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PSProvider". Дополнительные све дения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees - value 822 C:\PS> get-itemproperty hklm:\software\mycompany PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\soft ware\mycompany PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\soft ware PSChildName : mycompany PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry NoOfLocations : 2 NoOfEmployees : 822 Описание ----------- Эта команда добавляет новую запись реестра, NoOfEmployees, в раздел MyCompa ny куста "HKLM:\Software". В первой команде используется параметр Path для задания пути к разделу реес тра MyCompany. Параметр Name используется для задания имени записи, а парам етр Value — для задания значения записи. Вторая команда с помощью командлета Get-ItemProperty отображает новую запис ь реестра. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-item -path HKLM:\Software\MyCompany | new-Itemproperty -name NoOf Locations -value 3 Описание ----------- Эта команда добавляет новую запись реестра в раздел реестра. Для задания ра здела используется оператор конвейера (|), который позволяет передать объек т, представляющий раздел, командлету New-ItemProperty. В первой части команды используется командлет Get-Item для получения раздел а реестра MyCompany. С помощью оператора конвейера (|) результаты выполнени я команды передаются командлету New-ItemProperty, который добавляет новую з апись реестра, NoOfLocations, и ее значение, 3, в раздел MyCompany. Эта команда работает, поскольку функция привязки параметра в Windows PowerS hell связывает путь объекта RegistryKey, возвращаемого командлетом Get-Item , с параметром LiteralPath командлета New-ItemProperty. Дополнительные свед ения см. в разделе about_Pipelines. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113354 about_Providers Clear-ItemProperty Copy-ItemProperty Move-ItemProperty Rename-ItemProperty Get-ItemProperty Set-ItemProperty Remove-ItemProperty New-Module ИМЯ New-Module ОПИСАНИЕ Создает новый динамический модуль, который существует только в памяти. СИНТАКСИС New-Module [-Name] <string> [-ScriptBlock] <scriptblock> [-ArgumentList <Ob ject[]>] [-AsCustomObject] [-Cmdlet <string[]>] [-Function <string[]>] [-Re turnResult] [<CommonParameters>] New-Module [-ScriptBlock] <scriptblock> [-ArgumentList <Object[]>] [-AsCust omObject] [-Cmdlet <string[]>] [-Function <string[]>] [-ReturnResult] [<Com monParameters>] ОПИСАНИЕ Командлет New-Module создает динамический модуль из блока скрипта. Элементы динамического модуля, например функции и переменные, становятся немедленно доступны в рамках сеанса и остаются доступными до завершения сеанса. Как и для статических модулей, для динамического модуля по умолчанию экспор тируются командлеты и функции, но не экспортируются переменные и псевдонимы . Однако настройки по умолчанию можно изменить с помощью командлета Export- ModuleMember и параметров New-Module. Динамические модули существуют только в памяти, а не на диске. Как и элемен ты всех модулей, элементы динамических модулей выполняются в закрытой облас ти модуля, являющейся дочерней областью глобальной области. Командлет Get-M odule не может получить динамический модуль, но командлет Get-Command может получить экспортируемые элементы. Чтобы сделать динамический модуль доступным командлету Get-Module, передайт е команду New-Module по конвейеру командлету Import-Module или передайте ко мандлету Import-Module по конвейеру объект модуля, возвращенный командой Ne w-Module. Это действие добавляет динамический модуль в список Get-Module, н о не сохраняет модуль на диск и не делает модуль постоянно существующим. ПАРАМЕТРЫ -ArgumentList <Object[]> Указывает аргументы (значения параметров), которые передаются блоку скр ипта. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsCustomObject [<SwitchParameter>] Возвращает пользовательский объект с элементами, представляющими элемен ты модуля. При использовании параметра AsCustomObject команда New-Module создает д инамический модуль, импортирует элементы модуля в текущий сеанс и возвр ащает объект PSCustomObject, а не объект PSModuleInfo. Можно сохранить пользовательский объект в переменной и использовать точку для обращения к его элементам. Если модуль содержит несколько элементов с одинаковым именем, например функцию и переменную с именем "A", из пользовательского объекта доступе н только один элемент с каждым из имен. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Cmdlet <string[]> Экспортирует только указанные командлеты из модуля в текущий сеанс. Вве дите список командлетов, разделенных запятыми. Подстановочные знаки раз решены. По умолчанию экспортируются все командлеты из модуля. В блоке скрипта нельзя определять командлеты, но динамический модуль мо жет содержать командлеты, если он импортирует их из двоичного модуля. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Function <string[]> Экспортирует только указанные функции из модуля в текущий сеанс. Введит е список функций, разделенных запятыми. Подстановочные знаки разрешены. По умолчанию экспортируются все функции, определенные в модуле. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Name <string> Задает имя нового модуля. Кроме того, можно передать имя модуля командл ету New-Module по конвейеру. Значение по умолчанию представляет собой созданное автоматически имя, к оторое начинается со строки "__DynamicModule_" и заканчивается GUID, пр едставляющим собой путь к динамическому модулю. Требуется? true Позиция? 1 Значение по умолчанию "__DynamicModule_" + GUID Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -ReturnResult [<SwitchParameter>] Выполняет блок скрипта и возвращает результаты блока скрипта вместо воз врата объекта модуля. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ScriptBlock <scriptblock> Задает содержимое динамического модуля. Чтобы создать блок скрипта, зак лючите содержимое в скобки ( { } ). Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Можно передать строку с именем модуля командлету New-Module по конвейер у. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSModuleInfo, System.Management.Automation.PSC ustomObject или None По умолчанию командлет New-Module создает объект PSModuleInfo. Если исп ользуется параметр AsCustomObject, командлет создает объект PSCustomObj ect. Если используется параметр ReturnResult, он возвращает результат о бработки блока скрипта в динамическом модуле. ПРИМЕЧАНИЯ Командлет New-Module также можно вызывать с помощью псевдонима "nmo". Д ополнительные сведения см. в разделе about_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-module -scriptblock {function Hello {"Hello"}} Name : __DynamicModule_2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Path : 2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Description : Guid : 00000000-0000-0000-0000-000000000000 Version : 0.0 ModuleBase : ModuleType : Script PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {[Hello, Hello]} ExportedVariables : {} NestedModules : {} Описание ----------- Эта команда создает новый динамический модуль с функцией "Hello". Команда в озвращает объект модуля, представляющий новый динамический модуль. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-module -scriptblock {function Hello {"Hello"}} Name : __DynamicModule_2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Path : 2ceb1d0a-990f-45e4-9fe4-89f0f6ead0e5 Description : Guid : 00000000-0000-0000-0000-000000000000 Version : 0.0 ModuleBase : ModuleType : Script PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {[Hello, Hello]} ExportedVariables : {} NestedModules : {} C:\PS> get-module C:\PS> C:\PS> get-command Hello CommandType Name Definition ----------- ---- ---------- Function Hello "Hello" Описание ----------- В этом примере показано, что динамические модули не возвращаются командлето м Get-Module, но их экспортируемые элементы возвращаются командлетом Get-Co mmand. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>New-Module -scriptblock {$SayHelloHelp="Type 'SayHello', a space, and a name."; function SayHello ($name) { "Hello, $name" }; Export-ModuleMembe r -function SayHello -Variable SayHelloHelp} C:\PS> $SayHelloHelp Type 'SayHello', a space, and a name. C:\PS> SayHello Jeffrey Hello, Jeffrey Описание ----------- Эта команда использует командлет Export-ModuleMember для экспорта переменно й в текущий сеанс. Если команда Export-ModuleMember не используется, экспор тируется только функция. В выходных данных показано, что в сеанс были экспортированы и переменная, и функция. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>new-module -scriptblock {function Hello {"Hello"}} -name GreetingMod ule | import-module C:\PS> get-module Name : GreetingModule Path : d54dfdac-4531-4db2-9dec-0b4b9c57a1e5 Description : Guid : 00000000-0000-0000-0000-000000000000 Version : 0.0 ModuleBase : ModuleType : Script PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {[Hello, Hello]} ExportedVariables : {} NestedModules : {} C:\PS> get-command hello CommandType Name Definition ----------- ---- ---------- Function Hello "Hello" Описание ----------- Эта команда демонстрирует, как сделать динамический модуль доступным для ко мандлета Get-Module, передав динамический модуль по конвейеру командлету Im port-Module. Первая команда использует оператор конвейера (|) для отправки объекта модул я, созданного командлетом New-Module, командлету Import-Module. Команда исп ользует параметр Name командлета New-Module для назначения модулю понятного имени. Поскольку по умолчанию командлет Import-Module не возвращает никаки х объектов, у этой команды нет выходных данных. Вторая команда получает все модули в рамках сеанса с помощью командлета Get -Module. В результатах показано, что командлет Get-Module может получить но вый динамический модуль. Третья команда использует командлет Get-Command для получения экспортируемо й динамическим модулем функции Hello. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$m = new-module -scriptblock {function Hello ($name) {"Hello, $name"} ; function Goodbye ($name) {"Goodbye, $name"}} -AsCustomObject C:\PS> $m C:\PS> $m | get-member TypeName: System.Management.Automation.PSCustomObject Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Goodbye ScriptMethod System.Object Goodbye(); Hello ScriptMethod System.Object Hello(); PS C:\ps-test> $m.goodbye("Jane") Goodbye, Jane PS C:\ps-test> $m.hello("Manoj") Hello, Manoj PS C:\ps-test> goodbye Jane Goodbye, Jane PS C:\ps-test> hello Manoj Hello, Manoj Описание ----------- В этом примере показано, как использовать параметр AsCustomObject командлет а New-Module для создания пользовательского объекта с методами-скриптами, о тражающими экспортированные функции. Первая команда использует командлет New-Module для создания динамического м одуля с двумя функциями, Hello и Goodbye. Команда использует параметр AsCus tomObject для создания пользовательского объекта, а не объекта PSModuleInfo , который создается командлетом New-Module по умолчанию. Полученный пользов ательский объект сохраняется в переменной $m. Вторая команда пытается отобразить значение переменной $m. На экране не ото бражается ничего. Третья команда использует оператор конвейера (|) для отправки пользовательс кого объекта командлету Get-Member, который отображает свойства и методы по льзовательского объекта. В выходных данных показано, что у объекта есть мет оды-скрипты, представляющие функции Hello и Goodbye. Четвертая и пятая команды используют формат метода-скрипта для вызова функц ий Hello и Goodbye. Шестая и седьмая команды вызывают функции с указанием имени функции и значе ния параметра. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>new-module -scriptblock {function SayHello {"Hello, World"}; SayHell o} -returnResult Hello, World Описание ----------- Эта команда использует параметр ReturnResult, чтобы запросить результаты вы полнения блока скрипта вместо запроса объекта модуля. Блок скрипта в новом модуле определяет функцию SayHello, а затем вызывает е е. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141554 Get-Module Import-Module Remove-Module Export-ModuleMember about_Modules New-ModuleManifest ИМЯ New-ModuleManifest ОПИСАНИЕ Создает новый манифест модуля. СИНТАКСИС New-ModuleManifest [-Path] <string> -Author <string> -CompanyName <string> -Copyright <string> -Description <string> -FileList <string[]> -FormatsToPr ocess <string[]> -ModuleToProcess <string> -NestedModules <string[]> -Requi redAssemblies <string[]> -TypesToProcess <string[]> [-AliasesToExport <stri ng[]>] [-ClrVersion <Version>] [-CmdletsToExport <string[]>] [-DotNetFramew orkVersion <Version>] [-FunctionsToExport <string[]>] [-Guid <Guid>] [-Modu leList <Object[]>] [-ModuleVersion <Version>] [-PassThru] [-PowerShellHostN ame <string>] [-PowerShellHostVersion <Version>] [-PowerShellVersion <Versi on>] [-PrivateData <Object>] [-ProcessorArchitecture {None | MSIL | X86 | I A64 | Amd64}] [-RequiredModules <Object[]>] [-ScriptsToProcess <string[]>] [-VariablesToExport <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет New-ModuleManifest создает новый файл манифеста модуля (PSD1), за полняет его значения и сохраняет файл манифеста по указанному пути. Авторы модулей могут использовать этот командлет для создания манифеста для своего модуля. Манифест модуля представляет собой файл PSD1, в котором сод ержится хэш-таблица. Ключи и значения хэш-таблицы описывают содержимое и ат рибуты модуля, определяют требуемые компоненты, а также задают способ обраб отки компонентов. Манифесты не являются необходимым элементом модулей. Командлет New-ModuleManifest создает манифест, в котором используются все т иповые ключи манифеста, поэтому выходные данные по умолчанию можно использо вать в качестве шаблона манифеста. Чтобы добавить или изменить значения или добавить ключи модуля, не добавляемые в файл командлетом, откройте результ ирующий файл в текстовом редакторе. Для каждого из параметров командлета (за исключением параметров Path и Pass Thru) создается ключ модуля манифеста и его значение. Обязательным в манифе сте модуля является только ключ ModuleVersion. Однако, некоторые другие пар аметры данного командлета являются обязательными. Можно ввести команду "New -ModuleManifest" без параметров, и командлет запросит значения других обычн о используемых ключей. Чтобы оставить значение пустым, нажмите клавишу ENTE R. Полное описание форматов, области действия и требований к манифесту модуля см. в документе "Написание манифеста модуля" (How to Write a Module Manifes t) в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=14361 3 (на английском языке). ПАРАМЕТРЫ -AliasesToExport <string[]> Задает псевдонимы, экспортируемые модулем. Подстановочные знаки разреше ны. Этот параметр можно использовать для ограничения псевдонимов, экспортир уемых модулем. Он позволяет удалять псевдонимы из списка экспортируемых псевдонимов, но не позволяет добавлять псевдонимы в список. Если этот параметр опущен, командлет New-ModuleManifest создает ключ Al iasesToExport со значением * (все), означающим, что все псевдонимы, экс портируемые модулем, экспортируются манифестом. Требуется? false Позиция? named Значение по умолчанию * (все) Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Author <string> Задает автора модуля. Этот параметр является обязательным для командлета, но ключ Author не я вляется обязательным для манифеста. Если этот параметр не задан и его з начение не введено при запросе, командлет New-ModuleManifest создает кл юч Author и устанавливает в качестве значения этого ключа имя текущего пользователя. Требуется? true Позиция? named Значение по умолчанию Имя текущего пользователя Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ClrVersion <Version> Задает версию среды CLR платформы Microsoft .NET Framework, которая тре буется для работы модуля. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ CLRVersion со значением пустой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CmdletsToExport <string[]> Задает командлеты, экспортируемые модулем. Подстановочные знаки разреше ны. Этот параметр можно использовать для ограничения командлетов, экспортир уемых модулем. Оно позволяет удалять командлеты из списка экспортируемы х командлетов, но не позволяет добавлять командлеты в список. Если этот параметр опущен, командлет New-ModuleManifest создает ключ Cm dletsToExport со значением * (все), означающим, что все командлеты, экс портируемые модулем, экспортируются манифестом. Требуется? false Позиция? named Значение по умолчанию * (все) Принимать входные данные конвейера? false Принимать подстановочные знаки? true -CompanyName <string> Указывает компанию или поставщика, создавшего модуль. Этот параметр является обязательным для командлета, но ключ CompanyName не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest созда ет ключ CompanyName и устанавливает в качестве значения этого ключа стр оку "Unknown". Требуется? true Позиция? named Значение по умолчанию "Unknown" Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Copyright <string> Задает заявление об авторских правах на модуль. Этот параметр является обязательным для командлета, но ключ Copyright н е является обязательным для манифеста. Если этот параметр не задан и ег о значение не введено при запросе, командлет New-ModuleManifest создает ключ Copyright со значением "(c) <год> <имя_пользователя>. All rights reserved.", где <год> — это текущий год, а <имя_пользователя> — это зна чение ключа Author (если оно задано) или имя текущего пользователя. Требуется? true Позиция? named Значение по умолчанию (c) <имя_пользователя>, <год>. Все права защищены. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Description <string> Описывает содержимое модуля. Этот параметр является обязательным для командлета, но ключ Description не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest созда ет ключ Description с пустым строковым значением. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DotNetFrameworkVersion <Version> Задает версию платформы Microsoft .NET Framework, которая требуется для работы модуля. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ DotNetFrameWorkVersion со значением пустой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FileList <string[]> Задает все элементы, включенные в модуль. Этот ключ предназначен для выполнения функций полного списка ресурсов м одуля. Эти файлы не экспортируются с модулем автоматически. Этот параметр является обязательным для командлета, но ключ FileList не является обязательным для манифеста. Если этот параметр не задан, и ег о значение не введено при запросе, командлет New-ModuleManifest создает ключ FileList со значением, представляющим собой пустой массив. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FormatsToProcess <string[]> Задает файлы форматирования (PS1XML), которые выполняются при импорте м одуля. При импорте модуля Windows PowerShell выполняет командлет Update-Format Data с указанными файлами. Так как область действия файлов форматирован ия не ограничена, они влияют на все состояния сеанса в сеансе. Этот параметр является обязательным для командлета, но ключ FormatsToPr ocess не является обязательным для манифеста. Если этот параметр не зад ан, и его значение не введено при запросе, командлет New-ModuleManifest создает ключ FormatsToProcess со значением пустого массива. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FunctionsToExport <string[]> Задает функции, экспортируемые модулем. Подстановочные знаки разрешены. Этот параметр можно использовать для ограничения функций, экспортируемы х модулем. Он позволяет удалять функции из списка экспортируемых функци й, но не позволяет добавлять функции в список. Если этот параметр опущен, командлет New-ModuleManifest создает ключ Fu nctionsToExport со значением * (все), означающим, что все функции, эксп ортируемые модулем, экспортируются манифестом. Требуется? false Позиция? named Значение по умолчанию * (все) Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Guid <Guid> Задает уникальный идентификатор модуля. GUID позволяет отличать модули с одинаковыми именами. Если не указать этот параметр, командлет New-ModuleManifest создает нов ый ключ GUID в манифесте и создает GUID, который будет использоваться в качестве значения ключа. Чтобы создать новый GUID в среде Windows PowerShell, введите команду "[ guid]::NewGuid()". Требуется? false Позиция? named Значение по умолчанию GUID, созданный для модуля Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ModuleList <Object[]> Список всех модулей, упакованных с этим модулем. Введите имена всех модулей в виде строки или введите хэш-таблицу, указа в значения ключей ModuleName и GUID. Кроме того, у хэш-таблицы может им еться необязательный ключ ModuleVersion. Этот ключ предназначен для выполнения функций полного списка ресурсов м одуля. Автоматическая обработка этих модулей не производится. Если не указать этот параметр, командлет New-ModuleManifest создает нов ый ключ ModuleList в манифесте со значением пустого массива. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ModuleToProcess <string> Задает первичный или "основной" файл модуля. При импорте модуля элемент ы, экспортированные из файла основного модуля, импортируются в состояни е сеанса вызывающего объекта. Введите имя файла одного модуля скрипта ( PSM1) или двоичного модуля (DLL). Если у модуля есть файл манифеста, и в ключе ModuleToProcess не назначе н основной файл, манифест становится основным файлом для модуля, а моду ль становится "модулем манифеста" (значение параметра ModuleType равняе тся Manifest). Чтобы экспортировать элементы из файлов PSM1 или DLL в модуль, у которо го есть манифест, имена этих файлов должны быть указаны в значениях клю чей ModuleToProcess или NestedModules в манифесте. В противном случае и х элементы не экспортируются. Этот параметр является обязательным для командлета, но ключ ModuleToPro cess не является обязательным для манифеста. Если этот параметр не зада н, и его значение не введено при запросе, командлет New-ModuleManifest создает ключ ModuleToProcess со значением пустой строки. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ModuleVersion <Version> Задает версию модуля. Этот параметр не является обязательным для командлета, но ключ ModuleVe rsion является обязательным для манифеста. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ ModuleVersion со значением, равным "1.0". Требуется? false Позиция? named Значение по умолчанию 1.0 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NestedModules <string[]> Задает модули скрипта (PSM1) и двоичные модули (DLL), которые импортиру ются в состояние сеанса модуля. Файлы, указанные в ключе NestedModules, выполняются в порядке их перечисления в значении ключа. Обычно вложенные модули содержат команды, необходимые основному модулю для внутренней обработки. По умолчанию команды из вложенных модулей экс портируются из состояния сеанса модуля в состояние сеанса вызывающего о бъекта, но основной модуль может ограничить экспортируемые им команды ( например, с помощью команды Export-Module). Вложенные модули в состоянии сеанса модуля доступны основному модулю, н о не возвращаются командой Get-Module в состоянии сеанса вызывающего об ъекта. Скрипты (PS1), перечисленные в ключе NestedModules, выполняются в состо янии сеанса модуля, а не в состоянии сеанса вызывающего объекта. Чтобы запустить скрипт в состоянии сеанса вызывающего объекта, укажите имя фа йла скрипта в значении ключа ScriptsToProcess манифеста. Этот параметр является обязательным для командлета, но ключ NestedModul es не является обязательным для манифеста. Если этот параметр не задан и его значение не введено при запросе, командлет New-ModuleManifest соз дает ключ NestedModules со значением, представляющим собой пустой масси в. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Записывает результирующий манифест модуля в консоль в дополнение к созд анию файла PSD1. По умолчанию этот командлет не формирует никаких выход ных данных. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь и имя файла нового манифеста модуля. Укажите путь и имя фай ла с расширением PSD1, например "$pshome\Modules\MyModule\MyModule.psd1 ". Это обязательный параметр. Если указан путь к существующему файлу, командлет New-ModuleManifest пе резапишет имеющийся файл без предупреждения, если только у этого файла нет атрибута "только чтение". Манифест должен располагаться в каталоге модуля, а имя файла манифеста должно совпадать с именем каталога модуля (но в качестве расширения име ни файла манифеста должно использоваться PSD1). Примечание. Нельзя использовать переменные, например $pshome или $home, при указании значения параметра Path в ответ на запрос. Чтобы использо вать переменную, включите параметр Path в команду. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PowerShellHostName <string> Задает имя основной программы Windows PowerShell, необходимой для модул я. Введите имя основной программы, например "Windows PowerShell ISE Hos t" или "ConsoleHost". Подстановочные знаки запрещены. Чтобы выяснить имя основной программы, введите в программе "$host.name" . Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PowerShellHostName со значением пустой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PowerShellHostVersion <Version> Указывает минимальную версию основной программы Windows PowerShell, кот орая работает с этим модулем. Введите номер версии, например 1.1. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PowerShellHostName со значением пустой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PowerShellVersion <Version> Указывает минимальную версию Windows PowerShell, поддерживающую этот мо дуль. Введите 1.0 или 2.0. Требования к версиям больше 2.0 не вступили в силу. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PowerShellVersion со значением пустой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PrivateData <Object> Задает данные, которые передаются модулю при импорте. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ PrivateData со значением пустой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProcessorArchitecture <ProcessorArchitecture> Задает архитектуру процессора, необходимую для этого модуля. Допустимы значения x86, AMD64, IA64 и None (не известна или не указана). Если этот параметр не задан, командлет New-ModuleManifest создаст ключ ProcessorArchitecture со значением пустой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RequiredAssemblies <string[]> Задает файлы сборки (DLL), необходимые для работы модуля. Windows Power Shell загружает заданные сборки перед обновлением типов или форматов, и мпортом вложенных модулей или импортом файлов модуля, указанных в значе нии ключа ModuleToProcess. Используйте этот параметр для перечисления всех сборок, необходимых мод улю, включая сборки, которые должны быть загружены для обновления любых файлов форматирования или файлов типов, указанных в ключах FormatsToPr ocess и TypesToProcess, даже если эти сборки также указаны как двоичные модули в ключе NestedModules. Этот параметр является обязательным для командлета, но ключ RequiredAss emblies не является обязательным для манифеста. Если этот параметр не з адан, и его значение не введено при запросе, командлет New-ModuleManife st создает ключ RequiredAssemblies со значением пустого массива. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RequiredModules <Object[]> Задает модули, которые должны быть в глобальном состоянии сеанса. Если необходимые модули не находятся в глобальном состоянии сеанса, попытки импорта этого модуля завершатся с ошибкой. Введите имена всех модулей в виде строки или введите хэш-таблицу, указа в значения ключей ModuleName и GUID. Кроме того, у хэш-таблицы может им еться необязательный ключ ModuleVersion. Дополнительные сведения см. в примерах. Windows PowerShell не импортирует необходимые модули автоматически. Про веряется только наличие необходимых модулей. Однако модули могут содерж ать скрипты (PS1), импортирующие необходимые модули в глобальное состоя ние сеанса. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ RequiredModules со значением пустого массива. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ScriptsToProcess <string[]> Задает файлы скриптов (PS1), которые при импорте модуля выполняются в с остоянии сеанса вызывающего объекта. Можно использовать эти скрипты для подготовки среды, аналогично тому, как можно было бы использовать скри пт входа в систему. Чтобы указать скрипты, которые выполняются в состоянии сеанса модуля, и спользуйте ключ NestedModules. Если этот параметр не задан, командлет New-ModuleManifest создаст ключ ScriptsToProcess со значением пустого массива. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -TypesToProcess <string[]> Задает файлы типов (PS1XML), которые выполняются при импорте модуля. При импорте модуля Windows PowerShell выполняет командлет Update-TypeDa ta с указанными файлами. Так как область действия файлов типов не огран ичена, они влияют на все состояния сеанса в сеансе. Этот параметр является обязательным для командлета, но ключ TypesToProc ess не является обязательным для манифеста. Если этот параметр не задан , и его значение не введено при запросе, командлет New-ModuleManifest с оздает ключ TypesToProcess со значением пустого массива. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -VariablesToExport <string[]> Задает переменные, экспортируемые модулем. Подстановочные знаки разреше ны. Этот параметр можно использовать для ограничения переменных, экспортиру емых модулем. Оно позволяет удалять переменные из списка экспортируемых переменных, но не позволяет добавлять переменные в список. Если этот параметр опущен, командлет New-ModuleManifest создает ключ Va riablesToExport со значением * (все), означающим, что все переменные, э кспортируемые модулем, экспортируются манифестом. Требуется? false Позиция? named Значение по умолчанию * (все) Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет или System.String По умолчанию командлет New-ModuleManifest не формирует никаких выходных данных. При использовании параметра PassThru командлет создает объект System.String, представляющий манифест модуля. ПРИМЕЧАНИЯ Как правило, манифесты модулей не являются необходимым элементом модуле й. Тем не менее, манифест модуля необходим для экспорта сборки, установ ленной в глобальный кэш сборок. Чтобы добавить или изменить файлы в каталоге $pshome\Modules (%Windir%\ System32\WindowsPowerShell\v1.0\Modules), запустите Windows PowerShell командой "Запуск от имени администратора". "Сеанс" — это экземпляр среды выполнения Windows PowerShell. У сеанса м ожет быть одно или несколько состояний сеанса. По умолчанию сеанс имеет только глобальное состояние сеанса, но каждый импортированный модуль и меет свое собственное состояние сеанса. Состояния сеанса позволяют выпо лнять команды в модуле без влияния на глобальное состояние сеанса. "Состояние сеанса вызывающего объекта" представляет собой состояние сеа нса, в которое импортируется модуль. Обычно оно означает глобальное сос тояние сеанса, но если модуль импортирует вложенные модули, "вызывающий объект" является модулем и "состояние сеанса вызывающего объекта" — эт о состояние сеанса модуля. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>New-ModuleManifest Path: C:\Users\User01\Documents\WindowsPowerShell\Modules\Test-Module\Test- Module.psd1 NestedModules[0]: BackgroundModule.psm1 Author: Jinghao Liu CompanyName: Fabrikam, Inc. Copyright: Copyright © 2009 Liu Jinghao. All rights reserved. ModuleToProcess: TestModule.psm1 Description: Cmdlets to find common errors in scripts. TypesToProcess[0]: TestTypes.ps1xml FormatsToProcess[0]: TestFormat.ps1xml RequiredAssemblies[0]: Test.dll FileList[0]: Test-Module.psd1 FileList[1]: Test-Module.psm1 FileList[2]: BackgroundModule.psm1 FileList[3]: TestTypes.ps1xml FileList[4]: TestFormat.ps1xml FileList[5]: Test.dll FileList[6]: TestIcon.ico Описание ----------- Эта команда создает новый манифест модуля. Командлет запрашивает значения н еобходимых параметров, включая параметр Path, и создает новый файл манифест а в указанном местоположении. Выходные данные этой команды отображают ответы на запросы. Чтобы использова ть значения по умолчанию, нажмите клавишу ENTER. Формат приглашения командной строки и правила обработки фраз в кавычках и б ез кавычек зависят от основной программы, в которой выполняется Windows Pow erShell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>New-ModuleManifest -PowerShellVersion 1.0 -AliasesToExport JKBC, DRC, TAC Описание ----------- Эта команда создает новый манифест модуля. В команду входят параметры, кото рые не являются обязательными для командлета (для которых не выводится приг лашение). При ответе на приглашение можно указать значения других ключей ма нифеста. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>New-ModuleManifest -RequiredModules FileTransfer,@{ModuleName="Backgr oundModule";GUID="486569a2-2784-48bf-af15-70ba837a64d0";ModuleVersion="3.5" } Описание ----------- В этом примере показано, как использовать форматы строки и хэш-таблицы знач ения параметра RequiredModules. В одной команде могут использоваться как ст роки, так и хэш-таблицы. Эта команда создает манифест модуля для модуля, которому требуется модуль F ileTransfer и (воображаемый) модуль с именем "BackgroundModule". Команда использует строковый формат для указания имени модуля FileTransfer и формат хэш-таблицы для указания имени, GUID и версии модуля BackgroundMod ule. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141555 Import-Module Get-Module New-Module Remove-Module Export-ModuleMember Test-ModuleManifest about_Modules New-Object ИМЯ New-Object ОПИСАНИЕ Создает экземпляр объекта Microsoft .NET Framework или COM object. СИНТАКСИС New-Object -ComObject <string> [-Strict] [-Property <hashtable>] [<CommonPa rameters>] New-Object [-TypeName] <string> [[-ArgumentList] <Object[]>] [-Property <ha shtable>] [<CommonParameters>] ОПИСАНИЕ Командлет New-Object создает экземпляр объекта .NET Framework или COM-объек та. Можно указать или тип класса .NET Framework, или программный идентификатор (ProgID) COM-объекта. По умолчанию вводится полное имя класса .NET Framewor k; а командлет возвращает ссылку на экземпляр этого класса. Чтобы создать э кземпляр COM-объекта, укажите параметр ComObject и программный идентификато р объекта в качестве значения этого параметра. ПАРАМЕТРЫ -ArgumentList <Object[]> Задает список аргументов, которые передаются конструктору класса .NET F ramework. Элементы списка отделяются друг от друга с помощью запятых (, ). Псевдоним ArgumentList — Args. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComObject <string> Задает программный идентификатор (ProgID) COM-объекта. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Property <hashtable> Задает значения свойств и вызывает методы нового объекта. Введите хэш-таблицу, ключами которой являются имена свойств или методов , а значениями — значения свойств или аргументы методов. Командлет New- Object создает объект и задает значения всех свойств и вызывает все мет оды в том порядке, в котором они заданы в хэш-таблице. Если новый объект унаследован от класса PSObject и задается свойство, о тсутствующее в объекте, командлет New-Object добавляет указанное свойст во к объекту в виде NoteProperty. Если объект не является объектом PSOb ject, команда создает непрерывающую ошибку. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Strict [<SwitchParameter>] Устанавливает, что если создаваемый COM-объект использует сборку взаимо действия, должна возникать ошибка. Это позволяет отличать реальные COM- объекты от объектов .NET Framework с оболочками, вызываемыми из COM. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -TypeName <string> Задает полное имя класса .NET Framework. Невозможно одновременно указат ь параметр TypeName и параметр ComObject. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Object Командлет New-Object возвращает создаваемый объект. ПРИМЕЧАНИЯ В командлете New-Object реализованы наиболее востребованные возможности функции CreateObject языка VBScript. Например, команда Set objShell = CreateObject("Shell.Application") на VBScript в Windows PowerShell може т быть записана как $objShell = new-object -comobject "Shell.Applicatio n". Командлет New-Object расширяет функциональность среды сервера скриптов Windows, позволяя легко обращаться к объектам .NET Framework из командн ой строки и использовать их в скриптах. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-object -typename System.Version -argumentlist "1.2.3.4" Major Minor Build Revision ----- ----- ----- -------- 1 2 3 4 Описание ----------- Эта команда создает объект System.Version, используя в качестве конструктор а строку "1.2.3.4". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$ie = new-object -comobject InternetExplorer.Application -property @{ navigate2="www.microsoft.com"; visible = $true} Описание ----------- Эта команда создает экземпляр COM-объекта, представляющего приложение Inter net Explorer. Она использует параметр Property для вызова метода Navigate2 и задания значения $true для свойства Visible объекта, чтобы приложение ста ло видимым для пользователя. Эта команда эквивалентна следующей команде: $ie = new-object -comobject InternetExplorer.Application $ie.navigate2("www.microsoft.com") $ie.visible = $true -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$a=new-object -comobject Word.Application -strict -property @{visible =$true} New-Object : The object written to the pipeline is an instance of the type "Microsoft.Office.Interop.Word.ApplicationClass" from the component's prima ry interop assembly. If this type exposes different members than the IDispa tch members, scripts written to work with this object might not work if the primary interop assembly is not installed. At line:1 char:14 + $a=New-Object < -COM Word.Application -Strict; $a.visible=$true Описание ----------- Эта команда демонстрирует, что при выполнении командлета New-Object с парам етром Strict возникает непрерывающая ошибка, когда созданный COM-объект обр ащается к сборке взаимодействия. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$objshell = new-object -comobject "Shell.Application" C:\PS> $objshell | get-member C:\PS> $objshell.ToggleDesktop() Описание ----------- Эта команда с помощью параметра ComObject создает COM-объект с программным идентификатором "Shell.Application". Полученный объект культуры сохраняется в переменной $objShell. Вторая команда по конвейеру передает переменную $objShell командлету Get-Me mber, который отображает свойства и методы COM-объекта. Третья команда вызывает метод ToggleDesktop объекта, чтобы свернуть открыты е окна на рабочем столе. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113355 Compare-Object Select-Object Sort-Object ForEach-Object Group-Object Measure-Object Tee-Object Where-Object New-PSDrive ИМЯ New-PSDrive ОПИСАНИЕ Создает диск Windows PowerShell в текущем сеансе. СИНТАКСИС New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Cred ential <PSCredential>] [-Description <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет New-PSDrive создает диск Windows PowerShell, который "подключаетс я" или связывается с местоположением в хранилище данных, таким как сетевой диск, каталог на локальном компьютере или раздел реестра. Созданные диски Windows PowerShell можно использовать для доступа к данным в связанном хранилище данных, который осуществляется аналогично доступу к л юбому подключенному диску. Можно изменять местоположение на диске (при помо щи команд "set-location", "cd" или "chdir") и получать доступ к содержимому диска (при помощи команд "get-item", "get-childitem" или "dir"). Однако диски Windows PowerShell доступны только в Windows PowerShell. К ним нельзя получить доступ через проводник, WMI, модель COM, инфраструктуру Mi crosoft .NET Framework или при помощи средств, таких как Net Use. Диски Windows PowerShell существуют только в текущем сеансе Windows PowerS hell. Чтобы постоянно использовать диск, необходимо экспортировать сеанс, в котором добавлен диск, или сохранить команду New-PSDrive в своем профиле W indows PowerShell. Чтобы удалить диск, созданный с помощью командлета New-PSDrive, используйте командлет Remove-PSDrive. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, созданных коман длетом Get-Credential. При вводе имени пользователя система запросит па роль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Description <string> Задает краткое описание диска. Введите любую строку. Чтобы просмотреть описания всех дисков Windows PowerShell в системе, вв едите команду "get-psdrive | format name, description". Чтобы просмотре ть описание конкретного диска Windows PowerShell, введите команду "(get -psdrive <имя_диска>).description". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает имя нового диска. В качестве имени можно использовать любую допу стимую строку символов. Имя не ограничивается буквой диска. Имена диско в Windows PowerShell вводятся с учетом регистра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PSProvider <string> Задает поставщика Windows PowerShell, поддерживающего диски данного тип а. Например, если диск Windows PowerShell связан с общим сетевым ресурсом или каталогом файловой системы, поставщиком Windows PowerShell будет Fi leSystem. Если диск Windows PowerShell связан с разделом реестра, испол ьзуется поставщик Registry. Чтобы просмотреть список поставщиков для вашего сеанса Windows PowerShe ll, введите команду "get-psprovider". Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Root <string> Задает местоположение хранилища данных, которое отображает диск Windows PowerShell. В частности, можно указать общий сетевой ресурс (например, \\Server01\P ublic), локальный каталог (например, C:\Program Files) или раздел реест ра (например HKLM:\Software\Microsoft). Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Scope <string> Задает область для диска. Допустимые значения: "Global", "Local", "Scri pt" или номер относительно текущей области (от 0 до количества областей , где 0 — текущая область, а 1 — ее родительская область). По умолчанию используется значение "Local". Дополнительные сведения см. в разделе a bout_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSDriveInfo ПРИМЕЧАНИЯ Командлет New-PSDrive предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "get-psprovider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public Name Provider Root ---- -------- ---- P FileSystem \\Server01\Public Описание ----------- Эта команда создает диск Windows PowerShell, функционирующий как подключенн ый сетевой диск в Windows. Команда создает диск Windows PowerShellс именем "P:", который подключается к общему сетевому ресурсу "\\Server01\Public". Параметр Name используется для задания имени диска, параметр PSProvider — д ля задания поставщика Windows PowerShell FileSystem, а параметр Root — для задания общего сетевого ресурса. После выполнения команды содержимое общего ресурса "\\Server01\Public" появ ляется в оглавлении диска "P:". Чтобы просмотреть содержимое, введите коман ду "dir p:". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-psdrive -name MyDocs -psprovider FileSystem -root "C:\Documents a nd Settings\User01\My Documents" -Description "Maps to my My Documents fold er." Name Provider Root ---- -------- ---- MyDocs FileSystem C:\Documents and Settings\User01\My Documents Описание ----------- Эта команда создает диск Windows PowerShell, предоставляющий быстрый доступ к локальному каталогу. Она создает диск с именем "MyDocs:", который подклю чается к каталогу "C:\Documents and Settings\User01\My Documents" на локальном компь ютере. Параметр Name используется для задания имени диска, параметр PSProvider — д ля задания поставщика Windows PowerShell FileSystem, параметр Root — для за дания пути к папке My Documents, а параметр Description — для создания опис ания диска. После выполнения команды содержимое папки My Documents появляется в оглавле нии диска "MyDocs:". Чтобы просмотреть содержимое, введите команду "dir myd ocs:". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software \MyCompany Name Provider Root ---- -------- ---- MyCompany Registry HKEY_LOCAL_MACHINE\Software\MyCo... Описание ----------- Эта команда создает диск Windows PowerShell, предоставляющий быстрый доступ к часто проверяемому разделу реестра. Она создает диск с именем MyCompany, который подключается к разделу реестра "HKLM\Software\MyCompany". Параметр Name используется для задания имени диска, параметр PSProvider — д ля задания поставщика Windows PowerShell Registry, а параметр Root — для за дания раздела реестра. После выполнения команды содержимое раздела MyCompany появляется в оглавлен ии диска "MyCompany:". Чтобы просмотреть содержимое, введите команду "dir M yCompany:". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>new-psdrive -name PsDrive -psprovider FileSystem -root \\Server01\Pub lic C:\PS> $drive = new-object -com wscript.network C:\PS> $drive.MapNetworkDrive("X:", "\\Server01\Public") C PS:\> get-psdrive public, x Name Provider Root ---- -------- ---- PsDrive FileSystem \\Server01\public X FileSystem X:\ C:\PS>get-psdrive psdrive, x | get-member TypeName: System.Management.Automation.PSDriveInfo Name MemberType Definition ---- ---------- ---------- CompareTo Method System.Int32 CompareTo(PSDriveInfo drive), Equals Method System.Boolean Equals(Object obj), GetHashCode Method System.Int32 GetHashCode() ... C:\PS> net use Status Local Remote Network --------------------------------------------------------------------------- X: \\server01\public Microsoft Windows Network C:\PS> get-wmiobject win32_logicaldisk | ft deviceid deviceid -------- C: D: X: C:\PS> get-wmiobject win32_networkconnection LocalName RemoteName ConnectionState Status --------- ---------- --------------- ------ X: \\products\public Disconnected Unavailable Описание ----------- Этот пример демонстрирует различие между диском Windows, подключенным к общ ему сетевому ресурсу, и диском Windows PowerShell, подключенным к этому же общему сетевому ресурсу. Первая команда с помощью командлета New-PSDrive создает диск Windows PowerS hell с именем "PSDrive:", который подключается к общему сетевому ресурсу "\ \Server01\Public". Во втором наборе команд используется командлет New-Object, позволяющий созд ать объект Wscript.Network COM и использовать его метод MapNetworkDrive для подключения общего сетевого ресурса "\\Server01\Public" к диску "X:" на ло кальном компьютере. Теперь можно сравнить два диска. При выполнении команды Get-PSDrive диски в ыглядят одинаково, хотя имя общего сетевого ресурса отображается только в к орне диска PsDrive:. Передача объектов дисков командлету Get-Member позволяет убедиться, что эти объекты имеют один и тот же тип — System.Management.Automation.PSDriveInfo . Однако команды "net use", Get-WmiObject (отображает экземпляры класса Win32 _LogicalDisk) и Get-WmiObject (отображает экземпляры класса Win32_NetworkCo nnection) находят только диск "X:", который был создан с помощью объекта Ws cript.Network. Это обусловлено тем, что диски Windows PowerShell распознают ся только оболочкой Windows PowerShell. Если закрыть сеанс Windows PowerShell и затем открыть новый сеанс, диск PSD rive: исчезнет, а диск X: останется. Поэтому при выборе способа подключения сетевых дисков следует учитывать сле дующие факторы: причину использования диска, необходимость сохранения диска и необходимость сделать диск видимым для других компонентов Windows. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113357 about_Providers Get-PSDrive Remove-PSDrive New-PSSession ИМЯ New-PSSession ОПИСАНИЕ Создает постоянное подключение к локальному или удаленному компьютеру. СИНТАКСИС New-PSSession [[-ComputerName] <string[]>] [-ApplicationName <string>] [-Au thentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-CertificateThumbprint <string>] [-Config urationName <string>] [-Credential <PSCredential>] [-Name <string[]>] [-Por t <int>] [-SessionOption <PSSessionOption>] [-UseSSL] [-ThrottleLimit <int> ] [<CommonParameters>] New-PSSession [[-Session] <PSSession[]>] [-Name <string[]>] [-ThrottleLimit <int>] [<CommonParameters>] New-PSSession [-ConnectionURI] <Uri[]> [-AllowRedirection] [-Authentication {Default | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-CertificateThumbprint <string>] [-ConfigurationName <string>] [-Credential <PSCredential>] [-Name <string[]>] [-SessionOption PSSessionOption>] [-ThrottleLimit <int>] [<CommonParameters>] ОПИСАНИЕ Командлет New-PSSession создает сеанс Windows PowerShell (PSSession) на лок альном или удаленном компьютере. При создании сеанса PSSession Windows Powe rShell создает постоянное подключение к удаленному компьютеру. Используйте сеанс PSSession для выполнения нескольких команд, работающих с общими данными, например функцией или значением переменной. Для выполнения команд в сеансе PSSession используйте командлет Invoke-Command. Чтобы испол ьзовать сеанс PSSession для интерактивного взаимодействия с удаленным компь ютером, используйте командлет Enter-PSSession. Дополнительные сведения см. в разделе about_PSSessions. Параметр ComputerName командлета Enter-PSSession или командлета Invoke-Comm and позволяет выполнять команды на удаленном компьютере без создания сеанса PSSession. При использовании параметра ComputerName Windows PowerShell соз дает временное подключение, которое используется для интерактивного сеанса или выполнения заданной команды и затем закрывается. ПАРАМЕТРЫ -AllowRedirection [<SwitchParameter>] Разрешает перенаправление данного соединения на альтернативный универса льный код ресурса URI. При использовании параметра ConnectionURI удаленный узел может вернуть инструкцию с перенаправлением на другой URI. По умолчанию Windows Power Shell не перенаправляет соединения, но можно воспользоваться параметром AllowRedirection и разрешить перенаправление соединений. Кроме того, можно ограничить число операций перенаправления подключения , присвоив соответствующее значение свойству MaximumConnectionRedirecti onCount привилегированной переменной $PSSessionOption или свойству Maxi mumConnectionRedirectionCount значения параметра SessionOption. Значение по умолчанию равно 5. Дополнительные сведения см. в описании п араметра SessionOption, а также в разделе New-PSSessionOption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ApplicationName <string> Задает сегмент имени приложения в URI подключения. Этот параметр служит для указания имени приложения, если в команде не используется параметр ConnectionURI. По умолчанию используется значение привилегированной переменной $PSSess ionApplicationName на локальном компьютере. Если эта привилегированная переменная не определена, используется значение по умолчанию "WSMAN". Э то значение подходит для большинства случаев. Дополнительные сведения с м. в разделе about_Preference_Variables. Служба WinRM использует имя приложения для выбора прослушивателя для об служивания запроса подключения. Значение этого параметра должно соответ ствовать значению свойства URLPrefix прослушивателя на удаленном компью тере. Требуется? false Позиция? named Значение по умолчанию WSMAN Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Authentication <AuthenticationMechanism> Задает механизм, используемый при проверке подлинности учетных данных п ользователя. Допустимые значения: "Default", "Basic", "Credssp", "Diges t", "Kerberos", "Negotiate" и "NegotiateWithImplicitCredential". По умо лчанию используется значение "Default". Проверка подлинности CredSSP доступна только в Windows Vista, Windows S erver 2008 и более поздних версиях Windows. Дополнительные сведения о значениях этого параметра см. в описании пере числения System.Management.Automation.Runspaces.AuthenticationMechanism в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkID=144 382 (на английском языке). Внимание Проверка подлинности CredSSP, при которой учетные данные поль зователя передаются на удаленный компьютер, предназначена для команд, к оторые должны пройти процедуру проверки подлинности на нескольких ресур сах, например при доступе к удаленному общему сетевому ресурсу. Такой м еханизм повышает угрозы безопасности удаленных операций. Если безопасно сть удаленного компьютера нарушена, передаваемые ему учетные данные мог ут использоваться для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Default Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CertificateThumbprint <string> Задает цифровой сертификат с открытым ключом (X509) учетной записи поль зователя, который располагает разрешением для выполнения этого действия . Введите отпечаток сертификата. Сертификаты используются при проверке подлинности на основе сертификата клиента. Их можно сопоставить только с учетными записями локальных пол ьзователей; они не работают с учетными записями доменов. Чтобы получить отпечаток сертификата, воспользуйтесь командой Get-Item или Get-ChildItem в Windows PowerShell на диске Cert:. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Создает постоянное подключение (сеанс PSSession) к заданному компьютеру . Если введены несколько имен компьютеров, командлет New-PSSession созд ает несколько сеансов PSSession, по одному для каждого из компьютеров. По умолчанию используется значение "Локальный компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескол ьких удаленных компьютеров. Чтобы указать локальный компьютер, введите имя компьютера, "localhost" или точку (.). Если пользователь и удаленны й компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Кроме того, можно передать имя компьютера (в кавычках) ко мандлету New-PSSession по конвейеру. Для использования IP-адреса в значении параметра ComputerName в команду необходимо включить параметр Credential. Кроме того, необходимо настро ить компьютер на использование транспорта HTTPS или включить IP-адрес у даленного компьютера в список TrustedHosts WinRM на локальном компьютер е. Инструкции по добавлению имени компьютера в список TrustedHosts см. в статье "Добавление компьютера в список доверенных узлов" в разделе ab out_Remote_Troubleshooting. Примечание. Чтобы включить локальный компьютер в значение параметра Com puterName под управлением Windows Vista и более поздних версий Windows, необходимо запускать Windows PowerShell командой "Запуск от имени адми нистратора". Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -ConfigurationName <string> Задает конфигурацию нового сеанса PSSession. Введите имя конфигурации или полный универсальный код ресурса (URI) для конфигурации сеанса. Если указано только имя конфигурации, перед ним д обавляется следующий URI схемы: http://schemas.microsoft.com/powershell . Конфигурация сеанса находится на удаленном компьютере. Если указанная к онфигурация сеанса не существует на удаленном компьютере, команда завер шается с ошибкой. По умолчанию используется значение привилегированной переменной $PSSess ionConfigurationName на локальном компьютере. Если значение этой привил егированной переменной не установлено, используется значение по умолчан ию "Microsoft.PowerShell". Дополнительные сведения см. в разделе about_ Preference_Variables. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -ConnectionURI <Uri[]> Задает универсальный идентификатор ресурса (URI), определяющий конечную точку соединения. Значение URI должно быть указано полностью. Строка имеет следующий формат: <Транспорт>://<Имя_компьютера>:<Порт>/ По умолчанию используется следующее значение: http://localhost:80/WSMAN Допустимые значения сегмента транспорта в URI: HTTP и HTTPS. Если в ком анде не указан параметр ConnectionURI, для указания значений URI можно использовать параметры UseSSL, ComputerName, Port и ApplicationName. Если конечный компьютер перенаправляет соединение на другой URI, Window s PowerShell предотвращает перенаправление, если в команде не задан пар аметр AllowRedirection. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\User01" или "Use r@Domain.com", или введите объект PSCredential, например объект, возвра щаемый командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Задает понятное имя сеанса PSSession. Это имя можно использовать для идентификации сеанса PSSession при испол ьзовании других командлетов, например Get-PSSession или Enter-PSSession . Имя не должно быть уникальным в рамках компьютера или текущего сеанса . Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Port <int> Задает сетевой порт на удаленном компьютере, используемый для данной ко манды. По умолчанию используется значение "Порт 80" (HTTP-порт). Перед использованием альтернативного порта необходимо настроить прослуш иватель WinRM на удаленном компьютере на прослушивание этого порта. Для настройки прослушивателя используйте следующие команды: 1. winrm delete winrm/config/listener?Address=*+Transport=HTTP 2. winrm create winrm/config/listener?Address=*+Transport=HTTP @{Port=& quot;<номер-порта>"} Не используйте параметр Port, если этого можно избежать. Порт, указанны й в команде, распространяется на все компьютеры и сеансы, в которых исп ользуется эта команда. Параметр альтернативного порта может позволить п редотвратить выполнение этой команды на всех компьютерах. Требуется? false Позиция? named Значение по умолчанию 80 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Session <PSSession[]> Использует заданный сеанс PSSession в качестве модели для нового сеанса PSSession. Этот параметр создает новые сеансы PSSession с такими же св ойствами, как у заданных сеансов PSSession. Введите переменную, содержащую объекты PSSession, либо команду, создающ ую или получающую объекты PSSession, например New-PSSession или Get-PSS ession. Для результирующих сеансов PSSession устанавливаются те же имена компью теров, имена приложений, URI подключений, порты, имена конфигураций, ог раничения скорости и значения параметра SSL, что и для исходных, но у р езультирующих сеансов другие отображаемые имена, идентификаторы и идент ификаторы экземпляров (GUID). Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -SessionOption <PSSessionOption> Устанавливает расширенные параметры сеанса. Введите объект SessionOptio n, созданный с помощью командлета New-PSSessionOption. Значения по умолчанию для параметров определяются значением привилегиро ванной переменной $PSSessionOption, если оно задано. В противном случае в сеансе используются системные значения по умолчанию. Описание параметров сеанса, включая значения по умолчанию, см. в раздел е New-PSSessionOption. Дополнительные сведения о привилегированной пере менной $PSSessionOption см. в разделе about_Preference_Variables. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Задает максимальное количество одновременных соединений, которые могут быть установлены для выполнения данной команды. Если этот параметр не з адан или для него введено значение 0 (ноль), используется значение по у молчанию 32. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию 32 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Использует протокол SSL (Secure Sockets Layer) для установки подключени я к удаленному компьютеру. По умолчанию SSL не используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. UseSSL — это дополнительная мера защиты, которая позвол яет передавать данные по подключению HTTPS, а не по подключению HTTP. Если используется этот параметр, но установить SSL-соединение с портом, указанным в команде, не удается, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String, System.URI, System.Management.Automation.Runspaces.PSSession Можно передать объект ComputerName (строку), ConnectionURI (URI) или Se ssion (PSSession) командлету New-PSSession по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.Runspaces.PSSession ПРИМЕЧАНИЯ Этот командлет использует инфраструктуру удаленного взаимодействия Wind ows PowerShell. Чтобы использовать этот командлет, локальный компьютер и все удаленные компьютеры должны быть настроены на удаленное взаимодей ствие Windows PowerShell. Дополнительные сведения см. в разделе about_R emote_Requirements. Чтобы создать сеанс PSSession на локальном компьютере под управлением W indows Vista и более поздних версий Windows, необходимо запускать Windo ws PowerShell командой "Запуск от имени администратора". По окончании работы с сеансом PSSession используйте командлет Remove-PS Session для удаления сеанса PSSession и освобождения занятых им ресурсо в. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$s = new-pssession Описание ----------- Эта команда создает новый сеанс PSSession на локальном компьютере и сохраня ет объект PSSession в переменной $s. Теперь этот сеанс PSSession можно использовать для выполнения команд на лок альном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$Server01 = new-pssession -ComputerName Server01 Описание ----------- Эта команда создает новый сеанс PSSession на компьютере Server01 и сохраняе т его в переменной $Server01. При создании нескольких сеансов PSSession присваивайте их переменным с поня тными именами. Это упростит управление сеансами PSSession в последующих ком андах. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s1, $s2, $s3 = new-session -computername server1,server2,server3 Описание ----------- Эта команда создает три новых сеанса PSSession, по одному на каждом из комп ьютеров, указанных параметром ComputerName. Команда использует оператор присваивания (=) для присвоения новых сеансов P SSession массиву переменных $s1, $s2 и $s3. Она присваивается сеанс PSSessi on с компьютером Server01 переменной $s1, сеанс PSSession с компьютером Ser ver02 — переменной $s2, и сеанс PSSession с компьютером Server03 — переменн ой $s3. При присвоении нескольких объектов массиву переменных Windows PowerShell пр исваивает каждый объект соответствующей переменной в массиве. Если количест во объектов превосходит количество переменных, все оставшиеся объекты присв аиваются последней переменной. Если количество переменных превышает количес тво объектов, значения лишних переменные остаются неопределенными (NULL). -------------------------- ПРИМЕР 4 -------------------------- C:\PS>new-pssession -computername Server01 -port 8081 -useSSL -Configuratio nName E12 Описание ----------- Эта команда создает новый сеанс PSSession на компьютере Server01, который п одключается к порту сервера 8081 и использует протокол SSL. Для нового сеан са PSSession используется альтернативная конфигурация сеанса "Е12". Перед назначением порта необходимо настроить прослушиватель WinRM на удален ном компьютере на прослушивание порта 8081. Дополнительные сведения см. в о писании параметра Port. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>new-pssession -session $s -credential domain01\user01 Описание ----------- Эта команда создает новый сеанс PSSession с такими же свойствами, как у сущ ествующего сеанса PSSession. Этот формат команды можно использовать в случа е, если существующих сеансов PSSession уже недостаточно и необходимо создат ь новый сеанс PSSession для снятия некоторой нагрузки по обработке запросов . Эта команда использует параметр Session командлета New-PSSession для задани я сеанса PSSession, сохраненного в переменной $s. Для выполнения команды ис пользуются учетные данные пользователя "Domain1\Admin01". -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$global:s = new-pssession -computername server1.domain44.corpnet.fabr ikam.com -credential domain01\admin01 Описание ----------- В этом примере показано, как создать сеанс PSSession в глобальной области н а компьютере, принадлежащем к другому домену. По умолчанию сеансы PSSession, созданные с использованием командной строки, создаются в локальной области, а сеансы PSSession, созданные с использован ием скрипта — в области скрипта. Чтобы создать сеанс PSSession в глобальной области, создайте новый сеанс PS Session и затем сохраните PSSession в переменной, которая отображается в гл обальную область. В этом примере переменная $s отображается в глобальную об ласть. Параметр ComputerName используется в команде для задания удаленного компьют ера. Поскольку учетная запись пользователя и компьютер принадлежат к разным доменам, с учетными данными пользователя необходимо использовать полное до менное имя компьютера. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>$rs = get-content c:\test\servers.txt | new-PSsession -throttleLimit 50 Описание ----------- Эта команда создает сеанс PSSession на каждом из 200 компьютеров, указанных в файле Servers.txt, и сохраняет результирующий сеанс PSSession в переменн ой $rs. Для сеансов PSSession указано ограничение скорости, равное 50. Эту команду можно использовать при хранении имен компьютеров в базе данных, электронной таблице, текстовом файле или другом формате, преобразуемом в т екстовый. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$s = new-PSSession -URI http://Server01:91/NewSession -credential dom ain01\user01 Описание ----------- Эта команда создает сеанс PSSession на компьютере Server01 и сохраняет его в переменной $s. В ней используются параметр URI для указания транспортного протокола, удаленного компьютера, порта и альтернативной конфигурации сеан са. Кроме того, в ней используется параметр Credential для указания учетной записи пользователя, который располагает разрешением для создания сеанса н а удаленном компьютере. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>$s = new-PSSession -computername (import-csv servers.csv) -credential domain01\admin01 -throttlelimit 16 C:\PS> invoke-command -session $s -scriptblock {get-process powershell} -As Job Описание ----------- Эти команды создают группу сеансов PSSession и запускают фоновое задание в рамках каждого сеанса PSSession. Первая команда создает сеанс PSSession на каждом из компьютеров, указанных в файле Servers.csv. Она создает сеансы PSSession с помощью командлета New- PSSession. В качестве значения параметра ComputerName используется команда, которая импортирует файл Servers.csv и считывает его содержимое с помощью командлета Import-Csv. Эта команда использует параметр Credential для создания сеансов PSSession в соответствии с разрешением администратора домена и параметр ThrottleLimit для ограничения команды до 16 одновременных подключений. Команда сохраняет сеансы PSSession в переменной $s. Вторая команда использует параметр AsJob командлета Invoke-Command для запу ска фонового задания, которое выполняет команду "Get-Process PowerShell" в каждом из сеансов, сохраненных в переменной $s. Дополнительные сведения о фоновых заданиях см. в разделах about_Jobs и abou t_Remote_Jobs. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>new-PSSession -ConnectionURI https://management.exchangelabs.com/Mana gement Описание ----------- Эта команда создает новый сеанс PSSession, который подключается к компьютер у, заданному с помощью URI, а не имени компьютера. -------------------------- ПРИМЕР 11 -------------------------- C:\PS>$so = New-WSManSessionOption -SkipCACheck PS C:\> new-pssession -ConnectionUri https://management.exchangelabs.com/Ma nagement -SessionOption $so -credential server01\admin01 Описание ----------- В этом примере демонстрируется создание и использование параметра SessionOp tion. Первая команда создает параметр сеанса с помощью командлета New-WSManSessio nOption. Результирующий объект SessionOption сохраняется в параметре $so. Вторая команда использует параметр в рамках нового сеанса. Команда создает новый сеанс с помощью командлета New-PSSession. Значением параметра Session Option является объект SessionOption, сохраненный в переменной $so. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135237 about_PSSessions about_Remote Get-PSSession Remove-PSSession Enter-PSSession Exit-PSSession Invoke-Command New-PSSessionOption ИМЯ New-PSSessionOption ОПИСАНИЕ Создает объект, содержащий дополнительные параметры для PSSession. СИНТАКСИС New-PSSessionOption [-ApplicationArguments <PSPrimitiveDictionary>] [-Cance lTimeOut <int>] [-Culture <CultureInfo>] [-IdleTimeOut <int>] [-MaximumRece ivedDataSizePerCommand <int>] [-MaximumReceivedObjectSize <int>] [-MaximumR edirection <int>] [-NoCompression] [-NoEncryption] [-NoMachineProfile] [-Op enTimeOut <int>] [-OperationTimeOut <int>] [-ProxyAccessType {None | IEConf ig | WinHttpConfig | AutoDetect | NoProxyServer}] [-ProxyAuthentication {De fault | Basic | Negotiate | NegotiateWithImplicitCredential | Credssp | Dig est | Kerberos}] [-ProxyCredential <PSCredential>] [-SkipCACheck] [-SkipCNC heck] [-SkipRevocationCheck] [-UICulture <CultureInfo>] [-UseUTF16] [<Commo nParameters>] ОПИСАНИЕ Командлет New-PSSessionOption создает объект, содержащий дополнительные пар аметры для PSSession. Можно использовать этот объект в качестве значения па раметра SessionOption в командлетах, создающих PSSession, например New-PSSe ssion, Enter-PSSession и Invoke-Command. При запуске без параметров командлет New-PSSessionOption создает объект, со держащий значения по умолчанию для всех параметров. Так как все свойства до пускают редактирование, можно использовать получающийся объект как шаблон и создать стандартные объекты параметров для предприятия. ПАРАМЕТРЫ -ApplicationArguments <PSPrimitiveDictionary> Задает хэш-таблицу, без интерпретации отправляемую напрямую в конфигура цию сеанса. Эта хэш-таблица доступна конфигурации сеанса в виде свойств а класса PSSenderInfo. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CancelTimeOut <int> Определяет время ожидания оболочкой Windows PowerShell завершения опера ции отмены (CTRL + C), по истечении которого операция прерывается. Введ ите значение в миллисекундах. Значением по умолчанию является 60000 (одна минута). Значение 0 (ноль) означает отсутствие времени ожидания; время выполнения команды не огран ичено. Требуется? false Позиция? named Значение по умолчанию 60000 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Culture <CultureInfo> Задает культуру, используемую для PSSession. Введите имя культуры в фор мате <код_языка2>-<код_страны/региона2> (например, "ja-jP"), переменную , содержащую объект CultureInfo или команду, получающую объект CultureI nfo, например "get-culture". Значение по умолчанию — $null, и в сеансе PSSession используется культу ра, заданная в операционной системе в момент создания сеанса PSSession. Требуется? false Позиция? named Значение по умолчанию Текущая культура Принимать входные данные конвейера? false Принимать подстановочные знаки? false -IdleTimeOut <int> Определяет, сколько времени сеанс PSSession остается открытым, если уда ленный компьютер не получает никаких данных от локального компьютера, в ключая контрольный сигнал. По истечению этого интервала сеанс PSSession закрывается. Введите значение в миллисекундах. По умолчанию используется значение 24 0000 (4 мин). Минимальное значение равно 60000 (1 мин). Если время ожидания при простое задано как на локальном, так и на удале нном компьютере, в сеансе PSSession используется меньшее из значений. Н а локальном компьютере время ожидания при простое может быть задано либ о с помощью этого параметра, либо путем задания времени ожидания при пр остое в привилегированной переменной $PSSessionOption. На удаленном ком пьютере время ожидания при простое может быть задано в конфигурации WS- Management (WSMAN:\localhost\shell\idletimeout). Требуется? false Позиция? named Значение по умолчанию 240000 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumReceivedDataSizePerCommand <int> Задает максимальное количество байтов, которые локальный компьютер може т принять с удаленного компьютера в одной команде. Введите значение в б айтах. По умолчанию ограничение на размер данных отсутствует. Этот параметр служит для защиты ресурсов на клиентском компьютере. Требуется? false Позиция? named Значение по умолчанию Без ограничений Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumReceivedObjectSize <int> Задает максимальный размер объекта, который локальный компьютер может п ринять с удаленного компьютера. Введите значение в байтах. По умолчанию ограничение на размер данных отсутствует. Этот параметр служит для защиты ресурсов на клиентском компьютере. Требуется? false Позиция? named Значение по умолчанию Без ограничений Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumRedirection <int> Определяет, сколько раз оболочка Windows PowerShell перенаправляет соед инение на альтернативный универсальный код ресурса URI до того, как про исходит сбой соединения. По умолчанию используется значение 5. Значение 0 (ноль) запрещает перенаправление. Этот параметр используется в сеансе PSSession только в том случае, если в команде, создавшей сеанс PSSession, использовался параметр AllowRedi rection. Требуется? false Позиция? named Значение по умолчанию 5 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoCompression [<SwitchParameter>] Отключает сжатие пакетов в сеансе PSSession. Сжатие использует больше ц иклов работы процессора, но ускоряет передачу. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoEncryption [<SwitchParameter>] Отключает шифрование данных. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoMachineProfile [<SwitchParameter>] Запрещает загрузку профиля пользователя Windows. В результате сеанс PSS ession может быть создан быстрее, но в нем недоступны специфичные для п ользователя параметры реестра, такие элементы, как переменные среды, а также сертификаты. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OpenTimeOut <int> Определяет, как долго клиентский компьютер ожидает установления подключ ения сеанса. После завершения этого интервала команда установления подк лючения завершается сбоем. Введите значение в миллисекундах. По умолчанию используется значение 180000 (3 мин). Значение 0 (ноль) оз начает отсутствие времени ожидания; время выполнения команды не огранич ено. Требуется? false Позиция? named Значение по умолчанию 180000 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OperationTimeOut <int> Определяет максимальное время выполнения любой операции в сеансе PSSess ion. По истечению этого интервала операция завершается сбоем. Введите з начение в миллисекундах. По умолчанию используется значение 180000 (3 мин). Значение 0 (ноль) оз начает отсутствие времени ожидания; время выполнения операции не ограни чено. Требуется? false Позиция? named Значение по умолчанию 180000 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProxyAccessType <ProxyAccessType> Определяет механизм, используемый для разрешения имени узла. Допустимы значения IEConfig, WinHttpConfig, AutoDetect, NoProxyServer и None. По умолчанию используется значение None. Сведения о значениях этого параметра см. в описании перечисления System .Management.Automation.Remoting.ProxyAccessType в библиотеке MSDN по ад ресу http://go.microsoft.com/fwlink/?LinkId=144756 (на английском языке ). Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProxyAuthentication <AuthenticationMechanism> Задает метод проверки подлинности, используемый для разрешения прокси-с ервера. Допустимы значения Basic, Digest и Negotiate. По умолчанию испо льзуется значение Negotiate. Сведения о значениях этого параметра см. в описании перечисления System .Management.Automation.Runspaces.AuthenticationMechanism в библиотеке M SDN по адресу http://go.microsoft.com/fwlink/?LinkID=144382 (на английс ком языке). Требуется? false Позиция? named Значение по умолчанию Negotiate Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProxyCredential <PSCredential> Задает учетные данные, используемые при проверке подлинности прокси-сер вера. Введите переменную, содержащую объект PSCredential, или команду, получающую объект PSCredential, например Get-Credential. Если этот пара метр не установлен, учетные данные не задаются. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SkipCACheck [<SwitchParameter>] Указывает, что при подключении по протоколу HTTPS клиент не проверяет, подписан ли сертификат сервера доверенным центром сертификации (ЦС). Этот параметр следует использовать, только если удаленный компьютер явл яется доверенным с использованием другого механизма, например если удал енный компьютер входит в сеть, которая является физически изолированной и безопасной, или если удаленный компьютер указан в качестве доверенно го узла в конфигурации WinRM. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SkipCNCheck [<SwitchParameter>] Указывает, что общее имя сертификата (CN) сервера не обязано соответств овать имени узла сервера. Этот параметр используется только при удаленн ых взаимодействиях, выполняемых по протоколу HTTPS. Используйте этот параметр только для доверенных компьютеров. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SkipRevocationCheck [<SwitchParameter>] Состояние отзыва сертификата сервера не проверяется. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UICulture <CultureInfo> Задает культуру пользовательского интерфейса, используемую в сеансе PSS ession. Введите имя культуры в формате <код_языка2>-<код_страны/региона2> (напр имер, "ja-jP"), переменную, содержащую объект CultureInfo или команду, получающую объект CultureInfo, например Get-Culture. Значение по умолчанию — $null, и в сеансе PSSession используется культу ра пользовательского интерфейса, заданная в операционной системе в моме нт создания сеанса PSSession. Требуется? false Позиция? named Значение по умолчанию Текущая культура пользовательского интерфейса Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseUTF16 [<SwitchParameter>] Кодировать запрос в кодировке UTF16, а не в кодировке UTF8. Требуется? false Позиция? named Значение по умолчанию False (кодировка UTF8) Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.Remoting.PSSessionOption ПРИМЕЧАНИЯ Если в команде создания сеанса PSSession не использовался параметр Sess ionOption, параметры сеанса определяются значениями свойств привилегиро ванной переменной $PSSessionOption, если она задана. Сведения о перемен ной $PSSessionOption см. в разделе about_Preference_Variables. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>New-PSSessionOption MaximumConnectionRedirectionCount : 5 NoCompression : False NoMachineProfile : False ProxyAccessType : IEConfig ProxyAuthentication : Negotiate ProxyCredential : SkipCACheck : False SkipCNCheck : False SkipRevocationCheck : False OperationTimeout : 00:03:00 NoEncryption : False UseUTF16 : False Culture : UICulture : MaximumReceivedDataSizePerCommand : MaximumReceivedObjectSize : ApplicationArguments : OpenTimeout : 00:03:00 CancelTimeout : 00:01:00 IdleTimeout : 00:04:00 Описание ----------- Эта команда создает объект параметров сеанса со значениями по умолчанию для всех параметров. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$pso = new-pssessionoption -Culture "fr-fr" -MaximumReceivedObjectSiz e 10MB C:\PS> new-pssession -computerName Server01 -SessionOption $pso Описание ----------- В этом примере демонстрируется использование объекта параметров сеанса для настройки сеанса. Первая команда создает новый объект параметров сеанса и сохраняет его значе ние в переменной $pso. Вторая команда использует командлет New-PSSession для создания сеанса PSSes sion на удаленном компьютере Server01. Эта команда использует объект параме тров сеанса в значении переменной $pso в качестве значения параметра Sessio nOption команды. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>enter-pssession -computername Server01 -sessionOption (new-pssessiono ption -noEncryption -noCompression) Описание ----------- Эта команда создает интерактивный сеанс с компьютером Server01 с использова нием командлета Enter-PSSession. Значение параметра SessionOption — это ком анда New-PSSessionOption с параметрами-переключателями NoEncryption и NoCom pression. Команда New-PSSessionOption заключена в круглые скобки, чтобы обеспечить ее выполнение до команды Enter-PSSession. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = new-pssessionoption MaximumConnectionRedirectionCount : 5 NoCompression : False NoMachineProfile : False ProxyAccessType : IEConfig ProxyAuthentication : Negotiate ProxyCredential : SkipCACheck : False SkipCNCheck : False SkipRevocationCheck : False OperationTimeout : 00:03:00 NoEncryption : False UseUTF16 : False Culture : UICulture : MaximumReceivedDataSizePerCommand : MaximumReceivedObjectSize : ApplicationArguments : OpenTimeout : 00:03:00 CancelTimeout : 00:01:00 IdleTimeout : 00:04:00 C:\PS> $a.UICulture = (get-UICulture) C:\PS> $a.OpenTimeout = (new-timespan -minutes 4) C:\PS> $a.MaximumConnectionRedirectionCount = 1 C:\PS> $a MaximumConnectionRedirectionCount : 1 NoCompression : False NoMachineProfile : False ProxyAccessType : IEConfig ProxyAuthentication : Negotiate ProxyCredential : SkipCACheck : False SkipCNCheck : False SkipRevocationCheck : False OperationTimeout : 00:03:00 NoEncryption : False UseUTF16 : False Culture : UICulture : en-US MaximumReceivedDataSizePerCommand : MaximumReceivedObjectSize : ApplicationArguments : OpenTimeout : 00:04:00 CancelTimeout : 00:01:00 IdleTimeout : 00:04:00 Описание ----------- В этом примере показано, что объект параметров сеанса можно редактировать. Все свойства доступны для чтения и записи. Используйте этот метод для создания стандартного объекта сеанса для предпри ятия, затем создайте его специализированные варианты для определенных целей . -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000 Описание ----------- Эта команда создает привилегированную переменную $PSSessionOption. Если в сеансе существует привилегированная переменная $PSSessionOption, она определяет значения по умолчанию для параметров сеансов PSSession, созданн ых с помощью командлетов New-PSSession, Enter-PSSession и Invoke-Command. Чтобы переменная $PSSessionOption была доступна для всех сеансов, добавьте ее в свой сеанс Windows PowerShell и в свой профиль Windows PowerShell. Сведения о переменной $PSSessionOption см. в разделе about_Preference_Varia bles. Дополнительные сведения о профилях см. в разделе about_Profiles. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$skipCN = new-pssessionoption -SkipCNCheck C:\PS> new-pssession -computername 171.09.21.207 -UseSSL -credential domain 01\user01 -sessionOption $skipCN Описание ----------- Этот пример показывает, как использовать объект SessionOption для выполнени я всех требований к конфигурации удаленного сеанса. Первая команда с помощью командлета New-PSSessionOption создает объект пара метров сеанса со свойством SkipCNCheck. Команда сохраняет полученный объект сеанса в переменной $skipCN. Вторая команда использует командлет New-PSSession для создания нового сеанс а PSSession на удаленном компьютере. Переменная $skipCN используется в знач ении параметра SessionOption. Так как компьютер определяется по его IP-адресу, значение параметра Compute rName не соответствует ни одному из обычных имен в сертификате, используемо м для SSL. В результате требуется параметр SkipCNCheck. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144305 Enter-PSSession New-PSSession Invoke-Command New-Service ИМЯ New-Service ОПИСАНИЕ Создает новую службу Windows. СИНТАКСИС New-Service [-Name] <string> [-BinaryPathName] <string> [-Credential <PSCre dential>] [-DependsOn <string[]>] [-Description <string>] [-DisplayName <st ring>] [-StartupType {Automatic | Manual | Disabled}] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет New-Service создает в реестре и базе данных служб новую запись сл ужбы Windows. Для новой службы требуется задать исполняемый файл, который б удет выполняться во время работы службы. Параметры этого командлета позволяют задать отображаемое имя, описание, тип запуска и зависимости службы. ПАРАМЕТРЫ -BinaryPathName <string> Задает путь к исполняемому файлу службы. Это обязательный параметр. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, возвращенных командлетом Get-Credential. При вводе имени п ользователя система запросит пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DependsOn <string[]> Задает имена других служб, от которых зависит новая служба. При вводе н ескольких имен служб необходимо разделять их запятыми. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Description <string> Задает описание службы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DisplayName <string> Задает отображаемое имя службы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает имя службы. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -StartupType <ServiceStartMode> Задает тип запуска службы. По умолчанию используется значение "Automat ic". Допустимые значения: -- Manual: запуск службы осуществляется только вручную — пользователем (с помощью диспетчера служб) или приложением. -- Automatic: запуск службы осуществляется (или уже осуществлен) операц ионной системой при ее запуске. Если автоматически запускаемая службы з ависит от службы, запускаемой вручную, последняя также запускается авто матически при запуске системы. -- Disabled: служба отключена и не может быть запущена ни пользователем , ни приложением. Требуется? false Позиция? named Значение по умолчанию Automatic Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController Командлет New-Service возвращает объект, представляющий новую службу. ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista и более поздних верси ях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-service -name TestService -binaryPathName "C:\WINDOWS\System32\sv chost.exe -k netsvcs" Описание ----------- Эта команда создает новую службу с именем "TestService". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-service -name TestService -path "C:\WINDOWS\System32\svchost.exe -k netsvcs" -dependson NetLogon -displayName "Test Service" -StartupType Ma nual -Description "This is a test service." Описание ----------- Эта команда создает новую службу с именем "TestService". В ней используются параметры командлета New-Service для задания описания, типа запуска и отоб ражаемого имени новой службы. Для задания параметра BinaryPathName в первой команде используется псевдони м параметра Path. Кроме того, можно использовать псевдоним "-bpn". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-wmiobject win32_service -filter "name='testservice'" ExitCode : 0 Name : testservice ProcessId : 0 StartMode : Auto State : Stopped Status : OK Описание ----------- Эта команда с помощью параметра Get-WmiObject получает объект Win32_Service новой службы. Этот объект включает информацию о режиме запуска и описание службы. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113359 Get-Service Start-Service Stop-Service Restart-Service Resume-Service Set-Service Suspend-Service New-TimeSpan ИМЯ New-TimeSpan ОПИСАНИЕ Создает объект TimeSpan. СИНТАКСИС New-TimeSpan [[-Start] <DateTime>] [[-End] <DateTime>] [<CommonParameters>] New-TimeSpan [-Days <int>] [-Hours <int>] [-Minutes <int>] [-Seconds [<CommonParameters>] ОПИСАНИЕ Командлет New-TimeSpan создает объект TimeSpan, представляющий интервал вре мени. Объект TimeSpan позволяет прибавлять и вычитать время из объектов Dat eTime. Без параметров команда New-Timespan возвращает объект TimeSpan, представляю щий нулевой промежуток времени. ПАРАМЕТРЫ -Days <int> Указывает дни в промежутке времени. По умолчанию используется значение 0. Требуется? false Позиция? named Значение по умолчанию 0 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -End <DateTime> Указывает конец промежутка времени. По умолчанию задаются текущие дата и время. Требуется? false Позиция? 2 Значение по умолчанию Текущая дата и время Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Hours <int> Указывает часы в промежутке времени. Значение по умолчанию — 0. Требуется? false Позиция? named Значение по умолчанию 0 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Minutes <int> Указывает минуты в промежутке времени. По умолчанию используется значен ие 0. Требуется? false Позиция? named Значение по умолчанию 0 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Seconds <int> Указывает продолжительность промежутка времени в секундах. По умолчанию используется значение 0. Требуется? false Позиция? named Значение по умолчанию 0 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Start <DateTime> Указывает начало промежутка времени. Введите строку, представляющую дат у и время, например "3/15/09", или объект DateTime, например объект, во звращаемый командой Get-Date. По умолчанию задаются текущие дата и время. Требуется? false Позиция? 1 Значение по умолчанию Текущая дата и время Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.DateTime Объект DateTime, представляющий время начала, можно передать командлету New-TimeSpan по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Timespan Командлет New-TimeSpan возвращает объект, представляющий промежуток вре мени. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$timespan = new-timespan -hour 1 -minute 25 Описание ----------- Эта команда создает объект TimeSpan, определяющий промежуток длительностью 1 час 25 минут, и сохраняет его в переменной $timespan. Кроме того, она ото бражает представление объекта TimeSpan. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-timespan -end (get-date -year 2010 -month 1 -day 1) Описание ----------- В этом примере создается новый объект TimeSpan, представляющий промежуток в ремени между временем выполнения команды и 1 января 2010 года. В этой команде не требуется указывать параметр Start, поскольку значением п араметра Start по умолчанию являются текущие дата и время. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$90days = new-timespan -days 90 C:\PS> (get-date) + $90days Описание ----------- Эти команды возвращают дату на 90 дней позже текущей даты. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113360 Set-Date Get-Date New-Variable ИМЯ New-Variable ОПИСАНИЕ Создает новую переменную. СИНТАКСИС New-Variable [-Name] <string> [[-Value] <Object>] [-Description <string>] [ -Force] [-Option {None | ReadOnly | Constant | Private | AllScope}] [-PassT hru] [-Scope <string>] [-Visibility {Public | Private}] [-Confirm] [-WhatIf ] [<CommonParameters>] ОПИСАНИЕ Командлет New-Variable создает в Windows PowerShell новую переменную. Перем енной можно присвоить значение в момент ее создания, либо можно присвоить и ли изменить его после создания переменной. Параметры командлета New-Variable позволяют задавать свойства переменной, н апример делать ее доступной только для чтения или константой, задавать обла сть переменной и определять, является переменная открытой или закрытой. Обычно для создания переменной нужно ввести ее имя и значение, например "$v ar = 3", но командлет New-Variable позволяет использовать его параметры. ПАРАМЕТРЫ -Description <string> Задает описание переменной. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет создать новую переменную с именем уже существующей доступной только чтения переменной. По умолчанию переменную можно перезаписать, если у нее нет параметра Re adOnly или Constant. Дополнительные сведения см. в описании параметра O ption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает имя новой переменной. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Option <ScopedItemOptions> Задает значение свойства Options новой переменной. Допустимые значения: -- None: не определяет параметров (по умолчанию используется "None"). -- ReadOnly: значение переменной не может быть изменено, если не исполь зовать параметр Force. Для удаления переменной можно использовать коман длет Remove-Variable. -- Constant: переменную нельзя удалить, а ее свойства нельзя изменить. Значение "Constant" доступно только при создании псевдонима. Невозможно изменить на "Constant" значение этого параметра для существующей перем енной. -- Private: переменная доступна только в области, определенной параметр ом Scope. Она наследуется дочерними областями. (Это значение не связано со значением "Private" параметра Visibility.) -- AllScope: переменная копируется во все создаваемые области. Чтобы увидеть свойство переменных Options, введите команду "get-variabl e| format-table -property name, options -autosize". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий новую переменную. По умолчанию этот к омандлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <string> Определяет область новой переменной. Допустимые значения: "Global", "Lo cal", "Script" или номер относительно текущей области (от 0 до количест ва областей, где 0 — текущая область, а 1 — ее родительская область). П о умолчанию используется значение "Local". Дополнительные сведения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Value <Object> Задает начальное значение переменной. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Visibility <SessionStateEntryVisibility> Определяет видимость переменной за пределами области, в которой она был а создана. Этот параметр предназначен для использования в скриптах и ко мандах, которые будут предоставляться другим пользователям. Допустимые значения: -- Public: переменная видима. ("Public" является значением по умолчанию .) -- Private: переменная невидима. Если переменная закрыта (Private), она не появляется в списках переменн ых, например в списках, возвращаемых командлетом Get-Variable, или при отображении диска Variable:. Выполнение команд чтения или изменения зна чения частной переменной возвращает ошибку. Но пользователи могут выпол нять команды, использующие частные переменные, если эти команды были на писаны в сеансах, в которых были определены эти переменные. Требуется? false Позиция? named Значение по умолчанию Public Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Значение можно передать командлету New-Variable с помощью конвейера. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSVariable Если задан параметр PassThru, командлет New-Variable создает объект Sys tem.Management.Automation.PSVariable, представляющий новую переменную. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>new-variable days Описание ----------- Эта команда создает переменную с именем "days". Сразу же после выполнения к оманды эта переменная никакого значения не имеет. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>new-variable zipcode -value 98033 Описание ----------- Эта команда создает переменную "zipcode" и присваивает ей значение "98033". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>new-variable -name max -value 256 -option readonly new-variable -name max -value 1024 new-variable -name max -value 1024 -force C:\PS> new-variable -name max -value 256 -option readonly C:\PS> new-variable -name max -value 1024 New-Variable : A variable with name 'max' already exists. At line:1 char:13 + new-variable < -name max -value 1024 C:\PS> new-variable -name max -value 1024 -force Описание ----------- В этом примере показано, как использовать параметр ReadOnly командлета New- Variable для защиты переменной от перезаписи. Первая команда создает новую переменную Max и присваивает ей значение 256. При этом используется параметр Option со значением ReadOnly. Вторая команда пытается создать еще одну переменную с таким же именем. Эта команда возвращает ошибку, поскольку первая переменная доступна только для чтения. В третьей команде используется параметр Force, чтобы обойти защиту от перез аписи переменной. В этом случае попытка создать новую переменную с таким же именем завершается успешно. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>new-variable -name counter -visibility private #Effect of private variable in a module. C:\PS> get-variable c* Name Value ---- ----- Culture en-US ConsoleFileName ConfirmPreference High CommandLineParameters {} C:\PS> $counter "Cannot access the variable '$counter' because it is a private variable" C:\PS> Get-Counter Name Value ---- ----- Counter1 3.1415 ... Описание ----------- Эта команда демонстрирует поведение частной переменной в модуле. Модуль сод ержит командлет Get-Counter, у которого имеется закрытая переменная "Counte r". При создании переменной команда использует параметр Visibility со значе нием "Private". В примере вывода показано поведение частной переменной. Пользователь, загру зивший модуль, не может видеть или изменять значение переменной Counter, од нако команды в модуле могут обращаться к переменной Counter и изменять ее. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113361 Get-Variable Set-Variable Remove-Variable Clear-Variable New-WebServiceProxy ИМЯ New-WebServiceProxy ОПИСАНИЕ Создает прокси-объект веб-службы, позволяющий использовать веб-службу и упр авлять ей в Windows PowerShell. СИНТАКСИС New-WebServiceProxy [-URI] <Uri> [[-Class] <string>] [[-Namespace] <string> ] [<CommonParameters>] New-WebServiceProxy [-URI] <Uri> [[-Class] <string>] [[-Namespace] <string> ] [-Credential <PSCredential>] [<CommonParameters>] New-WebServiceProxy [-URI] <Uri> [[-Class] <string>] [[-Namespace] <string> ] [-UseDefaultCredential] [<CommonParameters>] ОПИСАНИЕ Командлет New-WebServiceProxy позволяет использовать веб-службу в Windows P owerShell. Командлет подключается к веб-службе и создает прокси-объект веб- службы в Windows PowerShell. Этот прокси-объект можно использовать для упра вления веб-службой. Веб-служба — это программа на основе XML, используемая для обмена данными п о сети, в частности по сети Интернет. Платформа Microsoft .NET Framework пр едоставляет прокси-объекты веб-служб, позволяющие представлять веб-службы в виде объектов .NET Framework. ПАРАМЕТРЫ -Class <string> Задает имя прокси-класса, создаваемого командлетом для веб-службы. Знач ение этого параметра используется со значением параметра Namespace для формирования полного имени класса. Значение по умолчанию формируется из URI. Требуется? false Позиция? 2 Значение по умолчанию Формируется из URI Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Это альтернатива использованию параметра UseDefaultCred ential. Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, созданных коман длетом Get-Credential. При вводе имени пользователя система запросит па роль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Namespace <string> Задает пространство имен нового класса. Значение этого параметра используется со значением параметра Class для формирования полного имени класса. По умолчанию используется значение " Microsoft.PowerShell.Commands.NewWebserviceProxy.AutogeneratedTypes" пл юс тип, сформированный из URI. Можно задать значение параметра Namespace, чтобы иметь возможность дост упа к нескольким веб-службам с одним и тем же именем. Требуется? false Позиция? 3 Значение по умолчанию Microsoft.PowerShell.Commands.NewW ebserviceProxy.AutogeneratedTypes Принимать входные данные конвейера? false Принимать подстановочные знаки? false -URI <Uri> Задает URI веб-службы. Введите URI или путь и имя файла, в котором соде ржится описание службы. URI должен ссылаться на страницу ASMX или на страницу, возвращающую опи сание службы. Чтобы получить описание веб-службы, созданной с помощью A SP.NET, добавьте строку "?WSDL" к URL-адресу веб-службы (например, http ://www.contoso.com/MyWebService.asmx?WSDL). Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseDefaultCredential [<SwitchParameter>] Задает для параметра UseDefaultCredential в результирующем прокси-объек те значение True. Это альтернатива использованию параметра Credential. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает входные данные по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Прокси-объект веб-службы Пространство имен и класс объекта определяются параметрами команды. По умолчанию генерируется объект по входному URI. ПРИМЕЧАНИЯ Командлет New-WebServiceProxy использует класс System.Net.WebClient для загрузки указанной веб-службы. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$zip = New-WebServiceProxy -uri http://www.webservicex.net/uszip.asmx ?WSDL Описание ----------- Эта команда с помощью командлета New-WebServiceProxy создает прокси-объект .NET Framework веб-службы US Zip в Windows PowerShell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$URI = "http://www.webservicex.net/uszip.asmx?WSDL" C:\PS> $zip = New-WebServiceProxy -uri $URI -namespace WebServiceProxy -cla ss ZipClass Описание ----------- Эта команда с помощью командлета New-WebServiceProxy создает прокси-объект .NET .NET Framework веб-службы US Zip. Первая команда сохраняет URI веб-службы в переменной $URI. Вторая команда создает прокси-объект веб-службы. Параметр URI используется для задания URI, а параметры Namespace и Class — для задания пространства и мен и класса объекта. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$zip | get-member -type method TypeName: WebServiceProxy.USZip Name MemberType Definition ---- ---------- ---------- Abort Method System.Void Abort( BeginGetInfoByAreaCode Method System.IAsyncResul BeginGetInfoByCity Method System.IAsyncResul BeginGetInfoByState Method System.IAsyncResul BeginGetInfoByZIP Method System.IAsyncResul CreateObjRef Method System.Runtime.Rem Discover Method System.Void Discov Dispose Method System.Void Dispos EndGetInfoByAreaCode Method System.Xml.XmlNode EndGetInfoByCity Method System.Xml.XmlNode EndGetInfoByState Method System.Xml.XmlNode EndGetInfoByZIP Method System.Xml.XmlNode Equals Method System.Boolean Equ GetHashCode Method System.Int32 GetHa GetInfoByAreaCode Method System.Xml.XmlNode GetInfoByCity Method System.Xml.XmlNode GetInfoByState Method System.Xml.XmlNode GetInfoByZIP Method System.Xml.XmlNode GetLifetimeService Method System.Object GetL GetType Method System.Type GetTyp InitializeLifetimeService Method System.Object Init ToString Method System.String ToSt Описание ----------- Эта команда с помощью командлета Get-Member отображает методы прокси-объект а веб-службы, хранящегося в переменной $zip. Эти методы используются в след ующем примере. Обратите внимание, что значение параметра TypeName прокси-объекта, WebServi ceProxy, отражает имена пространства имен и класса, указанные в предыдущем примере. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$zip.getinfobyzip(20500).table CITY : Washington STATE : DC ZIP : 20500 AREA_CODE : 202 TIME_ZONE : E Описание ----------- В этой команде используется прокси-объект веб-службы, хранящийся в переменн ой Zip. Команда использует метод GetInfoByZip прокси-объекта и его свойство Table. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135238 New-Service New-WSManInstance ИМЯ New-WSManInstance ОПИСАНИЕ Создает новый экземпляр ресурса управления. СИНТАКСИС New-WSManInstance [-ApplicationName <string>] [-ComputerName <string>] [-Cr edential <PSCredential>] [-Port <int>] [-UseSSL] [-SelectorSet] <hashtable> -ResourceURI <Uri> [-AuthenticationMechanism <AuthenticationMechanism>] [- SessionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>] New-WSManInstance [-ConnectionURI <Uri>] [-SelectorSet] <hashtable> -Resour ceURI <Uri> [-AuthenticationMechanism <AuthenticationMechanism>] [-SessionO ption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>] ОПИСАНИЕ Командлет New-WSManInstance создает новый экземпляр ресурса управления. Для создания нового экземпляра ресурса управления используется URI ресурса и н абор значений или входной файл. Для создания экземпляра ресурса управления командлет использует уровень сое динений/транспорта WinRM. ПАРАМЕТРЫ -ApplicationName <string> Задает имя приложения для подключения. По умолчанию параметр Applicatio nName имеет значение "WSMAN". Полный идентификатор удаленной конечной т очки имеет следующий формат: <протокол>://<сервер>:<порт>/ Пример: http://server01:8080/WSMAN Службы IIS, которые обрабатывают сеанс, перенаправляют запросы с данной конечной точкой указанному приложению. Значение по умолчанию "WSMAN" п одходит для большинства случаев. Этот параметр предназначен для использ ования, когда большое число компьютеров устанавливают удаленные подключ ения к одному компьютеру, на котором работает Windows PowerShell. В это м случае для повышения эффективности веб-службы WS-Management размещают ся в службах IIS. Требуется? false Позиция? named Значение по умолчанию wsman Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AuthenticationMechanism <AuthenticationMechanism> Задает механизм проверки подлинности, используемый на сервере. Возможны е значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Default: использовать метод проверки подлинности, реализованный прото колом WS-Management. Это значение используется по умолчанию. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Kerberos: выполняется взаимная проверка подлинности компьютера и серв ера с использованием сертификатов Kerberos. - Negotiate: при использовании схемы Negotiate между компьютером и серв ером или прокси происходит обмен данными по принципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности . Например, это значение параметра разрешает согласование одного из дву х методов проверки подлинности: Kerberos или NTLM. - CredSSP: использовать проверку подлинности CredSSP (Credential Securi ty Service Provider), при которой пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускаю тся на одном удаленном компьютере, но собирают данные с других удаленны х компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Чтобы задать локальный компьютер, введите имя компьютера, "localhost " или точку (.). Локальный компьютер используется по умолчанию. Если по льзователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Значение этого параметра можно перед ать командлету по конвейеру. Требуется? false Позиция? named Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConnectionURI <Uri> Задает конечную точку соединения. Строка имеет следующий формат: <протокол>://<сервер>:<порт>/ Следующая строка представляет собой правильно отформатированное значени е для этого параметра: http://Server01:8080/WSMAN Значение URI должно быть указано полностью. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Domain.com". Или укажите объект PSCredential, наприме р возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -File <File> Задает путь к файлу, который используется для создания ресурса управлен ия. Ресурс управления указывается с помощью параметров ResourceURI и Se lectorSet. Например, в следующей команде используется параметр File: invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Serv ice -SelectorSet @{Name="spooler"} -File c:\input.xml -authentication d efault Эта команда вызывает метод StopService [дескриптор] службы очереди печа ти, используя входные данные из файла. В файле (Input.xml) содержатся с ледующие данные: <p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1 /wmi/root/cimv2/Win32_Service"/> Требуется? Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OptionSet <hashtable> Передает службе набор параметров для изменения или уточнения запроса. П ередаваемые параметры похожи на параметры, используемые в оболочках ком андной строки: они зависят от конкретной службы. Можно задать произволь ное количество параметров. В следующем примере показано синтаксическое выражение, позволяющее пере дать значения 1, 2 и 3 параметрам a, b и c соответственно: -OptionSet @{a=1;b=2;c=3} Требуется? Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Port <int> Задает порт, используемый клиентом для подключения к службе WinRM. Если в качестве транспорта выбран HTTP, по умолчанию используется порт 80. Если в качестве транспорта выбран HTTPS, по умолчанию используется порт 443. При использовании в качестве транспорта HTTPS значение параметра ComputerName должно соответствовать общему имени сертификата сервера. О днако, если в качестве элемента параметра SessionOption указан параметр SkipCNCheck, общее имя сертификата сервера не обязательно должно соотв етствовать имени узла сервера. Параметр SkipCNCheck следует использоват ь только в случае доверенных компьютеров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ResourceURI <Uri> Содержит универсальный идентификатор ресурса (URI) экземпляра или класс а ресурса. URI используется для определения конкретного типа ресурса, н апример диска или процесса, на компьютере. URI состоит из префикса и пути к ресурсу. Пример: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Log icalDisk http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSenso r Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SelectorSet <hashtable> Задает набор пар значений, которые используются для выбора конкретных э кземпляров ресурса управления. Параметр SelectorSet используется в случ ае существования нескольких экземпляров ресурса. Значение параметра Sel ectorSet представляет собой хэш-таблицу. В следующем примере показано, как задать значение для этого параметра: -SelectorSet @{Name="WinRM";ID="yyy"} Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -SessionOption <hashtable> Определяет расширенные параметры сеанса WS-Management. Введите объект S essionOption, созданный с помощью командлета New-WSManSessionOption. До полнительные сведения о доступных параметрах см. в разделе New-WSManSes sionOption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Указывает, что для установки подключения к удаленному компьютеру должен использоваться протокол SSL (Secure Sockets Layer). По умолчанию SSL н е используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. Параметр UseSSL позволяет указать, что необходимо испол ьзовать дополнительную меру защиты: протокол HTTPS вместо HTTP. Если ук азан этот параметр, однако используемый для подключения порт не поддерж ивает SSL, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ValueSet <hashtable> Задает хэш-таблицу, которая позволяет изменить ресурс управления. Ресур с управления указывается с помощью параметров ResourceURI и SelectorSet . Значение параметра ValueSet должно быть хэш-таблицей. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Set-WmiInstance (один из командлетов инструментария управлени я Windows [WMI]) аналогичен данному командлету. Для создания или обновл ения экземпляров WMI командлет Set-WmiInstance использует уровень соеди нений/транспорта DCOM. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>New-WSManInstance winrm/config/Listener -SelectorSet @{Transport=HTTP S} -ValueSet @{Hostname="HOST";CertificateThumbprint="XXXXXXXXXX"} Описание ----------- Эта команда создает экземпляр HTTPS-прослушивателя WS-Management на всех IP -адресах. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141448 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan New-WSManSessionOption ИМЯ New-WSManSessionOption ОПИСАНИЕ Создает хэш-таблицу параметров сеанса WS-Management для использования в кач естве входных параметров следующих командлетов WS-Management: Get-WSManInstance Set-WSManInstance Invoke-WSManAction Connect-WSMan СИНТАКСИС New-WSManSessionOption [-NoCompression <switch>] [-NoProxy <switch>] [-Prox yAuthentication <string>] [-ProxyPassword <string>] [-ProxyUserName <string >] [-SkipCACheck <switch>] [-SkipCNCheck <switch>] [-SkipRevocation <switch >] [-SPNPort <int>] [-Timeout <int>] [-UnEncrypted <switch>] [-UseIEProxyco nfig <switch>] [-UseProxyAutoDetection <switch>] [-UseWinHTTPProxyConfig <s witch>] [-UTF16 <switch>] [<CommonParameters>] ОПИСАНИЕ Создает хэш-таблицу параметров сеанса WSMan, которую можно передавать коман длетам WSMan: Get-WSManInstance Set-WSManInstance Invoke-WSManAction Connect-WSMan ПАРАМЕТРЫ -NoCompression <switch> Отключить сжатие пакетов в сеансе. По умолчанию сжатие включено, и паке ты, передаваемые между клиентов и сервером, сжимаются. Сжатие потребляе т больше циклов процессора, но ускоряет передачу. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoProxy <switch> Не использовать прокси-сервер. Все имена узлов будут разрешаться локаль но. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProxyAuthentication <string> Задает метод проверки подлинности, используемый на прокси-сервере. Возм ожные значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Negotiate (по умолчанию): при использовании схемы Negotiate между ком пьютером и сервером или прокси-сервером происходит обмен данными по при нципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности. Примеры — протокол Kerberos и NTLM. Требуется? false Позиция? named Значение по умолчанию Negotiate Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProxyPassword <string> Задает пароль для проверки подлинности на прокси-сервере. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProxyUserName <string> Задает имя пользователя для проверки подлинности на прокси-сервере. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SkipCACheck <switch> Указывает, что при подключении по протоколу HTTPS клиент не проверяет, подписан ли сертификат сервера доверенным центром сертификации (ЦС). Эт от параметр следует использовать, только если удаленный компьютер являе тся доверенным по другим причинам, например, если удаленный компьютер в ходит в сеть, которая является физически изолированной и безопасной, ил и если удаленный компьютер указан в качестве доверенного узла в конфигу рации WS-Management. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SkipCNCheck <switch> Указывает, что общее имя сертификата (CN) сервера не обязано соответств овать имени узла сервера. (Используется только при удаленных взаимодейс твиях по протоколу HTTPS.) Этот параметр следует использовать только на доверенных компьютерах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SkipRevocation <switch> Не проверять состояние отзыва сертификата сервера. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SPNPort <int> Задает номер порта для добавления к имени участника-службы (SPN) удален ного сервера в подключении. Имя участника-службы используется при прим енении механизма проверки подлинности Kerberos или Negotiate. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Timeout <int> Задает время ожидания для операции WS-Management в миллисекундах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UnEncrypted <switch> Не использовать шифрование при удаленных операциях по протоколу HTTP. Примечание. По умолчанию передача данных в незашифрованном виде запреще на; необходимо разрешить ее в локальной конфигурации. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseIEProxyconfig <switch> Использовать конфигурацию прокси-сервера Internet Explorer для текущего пользователя. Этот вариант используется по умолчанию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseProxyAutoDetection <switch> Определять прокси-сервер автоматически. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseWinHTTPProxyConfig <switch> Использовать конфигурацию прокси-сервера для WinHTTP. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UTF16 <switch> Кодировать запрос в кодировке UTF16, а не в кодировке UTF8. По умолчани ю используется кодировка UTF8. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ SessionOption ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141449 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Test-WSMan Out-Default ИМЯ Out-Default ОПИСАНИЕ Отправляет выходные данные в модуль форматирования по умолчанию и в командл ет вывода по умолчанию. СИНТАКСИС Out-Default [-InputObject <psobject>] [<CommonParameters>] ОПИСАНИЕ Командлет Out-Default отправляет данные в модуль форматирования по умолчани ю и в командлет вывода по умолчанию. Данный командлет не влияет на форматир ование или выходные данные команд Windows PowerShell. Это заполнитель, позв оляющий написать собственную функцию Out-Default или командлет. ПАРАМЕТРЫ -InputObject <psobject> Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ ВЫХОДНЫЕ ДАННЫЕ ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113362 Out-File ИМЯ Out-File ОПИСАНИЕ Отправляет вывод в файл. СИНТАКСИС Out-File [-FilePath] <string> [[-Encoding] <string>] [-Append] [-Force] [-I nputObject <psobject>] [-NoClobber] [-Width <int>] [-Confirm] [-WhatIf] [<C ommonParameters>] ОПИСАНИЕ Командлет Out-File отправляет вывод в файл. Командлет Out-File можно исполь зовать вместо оператора перенаправления (>), если нужно указать дополнитель ные данные с помощью параметров этого командлета. ПАРАМЕТРЫ -Append [<SwitchParameter>] Записывает выходные данные в конец существующего файла, а не замещает е го содержимое. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Encoding <string> Задает тип кодировки, используемой в файле. Допустимые значения: "Unico de", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default" и "OEM". По умолчанию используется кодировка "Unicode". Значение "Default" соответствует кодировке текущей кодовой страницы ANS I. "OEM" соответствует идентификатору кодовой страницы текущего производит еля оригинального оборудования для операционной системы. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <string> Задает путь к выходному файлу. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету перезаписать существующий файл, доступный только д ля чтения. Даже при использовании параметра Force командлет не может пе реопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Указывает объекты, которые будут записаны в файл. Введите переменную, с одержащую объекты, либо получающую их команду или выражение. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -NoClobber [<SwitchParameter>] Не будет перезаписывать существующий файл (то есть заменять его содержи мое). По умолчанию, если файл существует по указанному пути, командлет Out-File перезаписывает файл без предупреждения. Если одновременно испо льзуются параметры Append и NoClobber, выходные данные записываются в к онец существующего файла. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Width <int> Указывает число знаков в каждой выходной строке. Все остальные знаки ус екаются, а не переносятся на следующую строку. Если данный параметр опу щен, ширина определяется характеристиками основного приложения. Значени е по умолчанию для консоли Windows PowerShell равно 80 (знаков). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Out-File по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Out-File не формирует никакого вывода. ПРИМЕЧАНИЯ Командлеты Out не форматируют объекты, а только обрабатывают их и отпра вляют в указанное назначение для отображения. Если передать неформатиро ванный объект в командлет Out, он перед обработкой отправит его в форма тирующий командлет. Командлеты Out не содержат параметров для указания имен или путей. Для передачи данных командлетам, содержащие слово Out (командлеты Out), исп ользуйте оператор конвейера (|), чтобы передать выходные данные команды Windows PowerShell командлету. Также можно хранить данные в переменной и использовать параметр InputObject для передачи данных в командлет. Д ополнительные сведения см. в примерах. Командлет Out-File отправляет данные, но не создает никаких объектов вы вода. Если передать по конвейеру вывод командлета Out-File командлету G et-Member, командлет Get-Member сообщит, что никакие объекты не указаны . -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process | out-file -filepath C:\Test1\process.txt Описание ----------- Эта команда отправляет список процессов, выполняемых на компьютере, в файл Process.txt. Если этот файл не существует, командлет Out-File создаст его. Имя параметра FilePath указывать необязательно, поэтому данную команду можн о переписать как "get-process | outfile C:\Test1\process.txt". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process | out-file C:\Test1\process.txt -noclobber Out-File : File C:\Test1\process.txt already exists and NoClobber was speci fied. At line:1 char:23 + get-process | out-file < process.txt -noclobber Описание ----------- Эта команда также отправляет список процессов в файл Process.txt, но в ней используется параметр NoClobber, который предотвращает перезапись существую щего файла. При выполнении такой команды с параметром NoClobber для существ ующего файла будет выведено сообщение об ошибке. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$a = get-process C:\PS> out-file -filepath C:\Test1\process.txt -inputobject $a -encoding AS CII -width 50 Описание ----------- Эти команды отправляют список процессов, выполняемых на компьютере, в файл Process.txt. Текст имеет кодировку ASCII, чтобы его могли обрабатывать прог раммы поиска, такие как Findstr и Grep. По умолчанию командлет Out-File исп ользует формат Unicode. Первая команда получает список процессов и сохраняет его в переменной $a. В торая команда с помощью командлета Out-File отправляет список процессов в ф айл Process.txt. Параметр InputObject указывает, что ввод хранится в переменной $a. Параметр Encoding используется для преобразования вывода в формат ASCII. Параметр W idth ограничивает длину каждой строки в файле 50 знаками. Так как строки вы вода после 50 знаков усекаются, самый правый столбец таблицы процессов не в ыводится. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>set-location hklm:\software c:\PS>get-acl mycompany\mykey | out-file -filepath c:\ps\acl.txt c:\PS>get-acl mycompany\mykey | out-file -filepath filesystem::acl.txt Описание ----------- Эти команды показывают, как использовать командлет Out-File в контексте, от личном от диска FileSystem. Первая команда делает текущим расположением раздел реестра HKLM:\Software. Вторая и третья команды делают то же самое. Они с помощью командлета Get-Ac l получают дескриптор безопасности подраздела реестра HKLM\Software\MyCompa ny\MyKey. Оператор конвейера передает результат командлету Out-File, которы й отправляет его в файл Acl.txt. Командлет Out-File не поддерживается поставщиком реестра Windows PowerShell , поэтому в качестве значения параметра FilePath нужно указать или имя диск а файловой системы (такое как "c:"), или имя поставщика с двумя двоеточиями "FileSystem::". Вторая и третья команды демонстрируют применение этих спос обов. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113363 Out-String Out-Null Out-Host Out-Printer Out-Default Tee-Object Out-GridView ИМЯ Out-GridView ОПИСАНИЕ Отправляет результаты в интерактивную таблицу в отдельном окне. СИНТАКСИС Out-GridView [-InputObject <psobject>] [-Title <string>] [<CommonParameters >] ОПИСАНИЕ Командлет Out-GridView пересылает результаты выполнения команды в окно табл ицы, в котором они отображаются в виде интерактивной таблицы. Для использо вания этого компонента требуется Microsoft .NET Framework 3.5 с пакетом обн овления 1 (SP1). Для работы с данными можно использовать следующие функции таблицы. -- Скрытие, показ и изменение порядка столбцов. Чтобы скрыть, показать или изменить порядок столбцов, щелкните заголовок столбца правой кнопкой мыши и выберите команду "Выбор столбцов". -- Сортировка. Чтобы отсортировать данные, щелкните заголовок столбца. Щелк ните еще раз, чтобы перейти от сортировки по возрастанию к сортировке по уб ыванию. -- Быстрый фильтр. Поле "Фильтр" в верхней части окна позволяет выполнять п оиск по тексту таблицы. Можно искать текст в конкретном столбце, искать по символам или по нескольким словам. -- Фильтрация по критериям. Для создания правил фильтрации данных используй те раскрывающееся меню добавления критериев. Эта функция бывает очень полез ной при работе с крупными наборами данных, например с журналами событий. -- Копирование и вставка. Чтобы скопировать строки с данными из таблицы Out -GridView, используйте сочетание клавиш CTRL+C (копирование). Затем эти дан ные можно вставить в программу для работы с текстом или электронными таблиц ами. Чтобы получить инструкции по использованию этих функций, введите команду "g et-help out-gridview -full" и ознакомьтесь с подразделом "Использование фун кций окна таблицы" в разделе ПРИМЕЧАНИЯ. ПАРАМЕТРЫ -InputObject <psobject> Принимает входные значения для командлета Out-GridView. При использовании параметра InputObject для отправки коллекции из более чем одного объекта в командлет Out-GridView командлет Out-GridView обр абатывает коллекцию как один объект коллекции и отображает одну строку, представляющую эту коллекцию. Чтобы отобразить каждый из объектов в к оллекции, необходимо передавать объекты командлету Out-GridView с помощ ью оператора конвейера (|). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Title <string> Задает текст, который отображается в строке заголовка окна Out-GridView . По умолчанию в строке заголовка отображается команда, вызвавшая командл ет Out-GridView. Требуется? false Позиция? named Значение по умолчанию Текущая команда Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Командлету Out-GridView можно передать любой объект. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Out-GridView не возвращает никаких объектов. ПРИМЕЧАНИЯ ПРИМЕЧАНИЯ К OUT-GRIDVIEW ---------------------- Microsoft .NET Framework 3.5 с пакетом обновления 1 (SP1) можно загрузи ть из Центра загрузки Майкрософт. Поскольку этому командлету требуется пользовательский интерфейс, он не работает в ОС Windows Server, установленной в варианте Server Core. Нельзя открывать окно таблицы на удаленном компьютере с помощью удаленн ой команды. Результаты выполнения команд, передаваемые командлету, не могут быть пр едварительно отформатированы, например с помощью командлетов Format-Tab le и Format-Wide. Чтобы выбрать свойства, используйте командлет Select- Object. Десериализованный вывод удаленных команд не может быть правильно отформ атирован в окне таблицы. СОЧЕТАНИЯ КЛАВИШ ДЛЯ OUT-GRIDVIEW ----------------------------------- Использование следующих сочетаний клавиш позволяет ускорить выполнение многих задач. Клавиши: Действие: ------------- ----------------------------------------------------- ----------- TAB Перемещение курсора из поля фильтра к меню добавления критериев таблицы и обратно. СТРЕЛКА ВВЕРХ Перемещение на одну строку вверх. Можно перемеща ться до заголовков столбцов. СТРЕЛКА ВНИЗ Перемещение на одну строку вниз. СТРЕЛКА ВЛЕВО В строке заголовков столбцов перемещение на один с толбец влево. СТРЕЛКА ВПРАВО В строке заголовков столбцов перемещение на один столбец вправо. КЛАВИША КОНТЕКСТНОГО МЕНЮ В строке заголовков столбцов отображение пар аметра "Выбор столбцов". ВВОД или ПРОБЕЛ В строке заголовков столбцов сортировка данных в столбц ах (переключение A-Z, Z-A). ИСПОЛЬЗОВАНИЕ ФУНКЦИЙ ОКНА ТАБЛИЦЫ ---------------------------------------- В следующих разделах описано, как использовать функции окна, отображаем ого командлетом Out-GridView. Скрытие, показ и изменение порядка столбцов -------------------------------------- Скрытие и показ столбца. 1. Щелкните заголовок любого столбца правой кнопкой мыши и выберите ком анду "Выбор столбцов". 2. В диалоговом окне "Выбор столбцов" с помощью клавиш со стрелками пер емещайте столбцы между полями "Выбранные столбцы" и "Доступные столбцы" . В окне таблицы будут отображаться только столбцы из поля "Выбранные с толбцы". Изменение порядка столбцов. -- Перетащите столбец в нужное место. - или - 1. Щелкните заголовок любого столбца правой кнопкой мыши и выберите ком анду "Выбор столбцов". 2. В диалоговом окне "Выбор столбцов" с помощью кнопок "Вверх" и "Вниз" измените порядок столбцов. В окне таблицы столбцы в верхней части спис ка отображаются левее столбцов в нижней части списка. Сортировка данных в таблице ---------------------- -- Чтобы отсортировать данные, щелкните заголовок столбца. -- Чтобы изменить порядок сортировки, еще раз щелкните заголовок столбц а. При каждом щелчке одного и того же заголовка порядок сортировки меня ется с возрастающего на убывающий и наоборот. Текущий порядок обозначае тся треугольником в заголовке столбца. Выбор данных в таблице ------------------------ -- Чтобы выбрать строку, щелкните строку или воспользуйтесь стрелками в верх и вниз для перехода к нужной строке. -- Чтобы выбрать все строки (кроме строки заголовков), нажмите сочетани е клавиш CTRL+A. -- Чтобы выбрать последовательные строки, нажмите и удерживайте клавишу SHIFT, щелкая соответствующие строки или выбирая их с помощью клавиш с о стрелками. -- Чтобы выбрать непоследовательные строки, нажмите клавишу CTRL и щелк ните строки для выбора. Выбирать столбцы невозможно. Кроме того, невозможно выбрать всю строку заголовков столбцов. Копирование столбцов ---------------------- -- Чтобы скопировать из таблицы одну или несколько строк, выберите эти строки и нажмите сочетание клавиш CTRL+C. Затем эти данные можно вставить в программу для работы с текстом или эл ектронными таблицами. Невозможно копировать столбцы или части строк. Кр оме того, невозможно скопировать всю строку заголовков столбцов. Поиск по таблице (быстрый фильтр) --------------------------------- Для поиска данных в таблице используйте поле "Фильтр". При вводе текста в это поле будут отображаться только элементы, содержащие вводимый тек ст. -- Поиск текста. Чтобы найти в таблице фрагмент текста, введите этот те кст в поле "Фильтр". -- Поиск по нескольким словам. Чтобы выполнить в таблице поиск по неско льким словам, введите эти слова, разделив их запятыми. В таблице Out-Gr idView будут показаны строки, содержащие все эти слова (логическое И). -- Поиск точных фраз. Для поиска фраз, включающих пробелы или специальн ые знаки, заключите эти фразы в кавычки. В таблице Out-GridView будут п оказаны строки, включающие точные совпадения для искомой фразы. -- Поиск по столбцам. Для поиска текста в одном или нескольких столбцах используйте следующий формат: <столбец>:<текст> [<столбец>: Например, чтобы найти слово "Net" в столбце DisplayName, в поле "Фи льтр" введите: displayname:net Чтобы найти строки, содержащие слово "Net" в столбцах DisplayName и Name, введите в поле "Фильтр": displayname:net name:net -- Отключение поиска. Чтобы снова вывести полную таблицу, нажмите кнопк у с красным знаком X в правом верхнем углу поля "Фильтр" или удалите те кст из поля "Фильтр". Фильтрация таблицы с помощью критериев -------------------------------- Для определения элементов, которые должны отображаться в таблице, можно использовать правила или "критерии". Элементы отображаются только в то м случае, если они удовлетворяют всем заданным критериям. Доступные кри терии определяются свойствами объектов, отображаемых в окне таблицы и т ипами .NET Framework этих свойств. Все критерии имеют следующий формат: <столбец> <оператор> <значение> Критерии для различных свойство объединяются с помощью оператора AND. К ритерии для одного свойства объединяются с помощью оператора OR. Изменя ть эти логические связи невозможно. Критерии влияют только на выводимый результат. Он не удаляет элементы и з таблицы. Добавление критериев --------------------------- 1. Чтобы отобразить кнопку меню "Добавить критерии", щелкните стрелку " Развернуть" в верхнем правом углу окна. 2. Нажмите кнопку меню "Добавить критерии". 3. Щелкните, чтобы выбрать столбцы (свойства). Можно выбрать одно или н есколько свойств. 4. После выбора свойств нажмите кнопку "Добавить". 5. Чтобы отменить выбор, нажмите кнопку "Отмена". 6. Чтобы добавить дополнительные критерии, снова нажмите кнопку добавле ния критериев. Изменение критерия -------------------- -- Чтобы изменить оператор, щелкните синее значение оператора, а затем выберите в раскрывающемся списке другой оператор. -- Чтобы ввести или изменить значение, введите значение в поле значения . Если введено недопустимое значение, появляется круглый значок X. Чтоб ы удалить его, измените значение. -- Чтобы создать инструкцию OR, добавьте критерий с тем же свойством. Удаление критериев ------------------------- -- Чтобы удалить выбранные критерии, щелкните красный значок X рядом с каждым из критериев. -- Чтобы удалить все критерии, нажмите кнопку "Очистить все". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process | out-gridview Описание ----------- Эта команда получает выполняемые на локальном компьютере процессы и отправл яет их в окно таблицы. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$p = get-process C:\PS> $p | out-gridview Описание ----------- Эта команда также получает выполняемые на локальном компьютере процессы и о тправляет их в окно таблицы. Первая команда использует команду Get-Process для получения процессов компь ютера и сохраняет объекты процессов в переменной $p. Вторая команда передает переменную $p в командлет Out-GridView с помощью оп ератора конвейера (|). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | select-object -property name, workingset, peakworkingse t | sort-object -property workingset -desc | out-gridview Описание ----------- Эта команда выводит в окно таблицы форматированную таблицу. Она с помощью командлета Get-Process получает выполняющиеся на компьютере п роцессы. Затем с помощью оператора конвейера (|) она передает командлету Select-Obje ct объекты процессов. Команда использует параметр Property командлета Selec t-Object, чтобы выбрать для отображения в таблице свойства Name, WorkingSet и PeakWorkingSet. С помощью другого оператора конвейера отфильтрованные объекты передаются ко мандлету Sort-Object, который сортирует их по убыванию значения свойства Wo rkingSet. Последняя часть команды с помощью оператора конвейера (|) передает отформат ированную таблицу командлету Out-GridView. Теперь для поиска, сортировки и фильтрации данных можно использовать функци и таблицы. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>($a = get-childitem -path $pshome -recurse) | out-gridview Описание ----------- Эта команда сохраняет результаты в переменной и передает ее командлету Out- GridView. Команда использует командлет Get-ChildItem для получения файлов из каталога установки Windows PowerShell и его подкаталогов. Путь к каталогу установки сохраняется в автоматической переменной $pshome. Команда использует оператор присваивания (=), чтобы сохранить результаты в переменной $a, и оператор конвейера (|), чтобы передать этот результат кома ндлету Out-GridView. Скобки определяют порядок выполнения операций в команде. В результате вывод команды Get-ChildItem сохраняется в переменной $a до передачи командлету O ut-GridView. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-process -computername Server01| ogv -title "Processes - Server01" Описание ----------- Эта команда отображает в окне таблицы выполняемые на компьютере Server01 пр оцессы. Команда использует "ogv", встроенный псевдоним командлета Out-GridView, кот орый задает заголовок окна с помощью параметра Title. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>invoke-command -ComputerName S1, S2, S3 -scriptblock {get-culture} | out-gridview Описание ----------- Этот пример показывает правильный формат отправки данных, собранных с удале нных компьютеров, командлету Out-GridView. Команда использует командлет Invoke-Command для выполнения команды Get-Cult ure на трех удаленных компьютерах. С помощью оператора конвейера (|) она пе редает возвращенные данные командлету Out-GridView. Обратите внимание, что блок скрипта, содержащий выполняемые удаленно команд ы, не включает команду Out-GridView. В противном случае команда выдавала бы ошибку при попытке открыть окна таблицы на всех удаленных компьютерах. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113364 Out-Host ИМЯ Out-Host ОПИСАНИЕ Отправляет вывод в командную строку. СИНТАКСИС Out-Host [-InputObject <psobject>] [-Paging] [<CommonParameters>] ОПИСАНИЕ Командлет Out-Host отправляет вывод основному приложению Windows PowerShell для отображения. Основное приложение отображает вывод в командной строке. Так как командлет Out-Host используется по умолчанию, его можно не указыват ь, если только не нужно с помощью его параметров изменить способ отображени я данных. ПАРАМЕТРЫ -InputObject <psobject> Задает объекты, которые будут выведены на консоль. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Paging [<SwitchParameter>] Отображает по одной странице вывода и ждет ввода пользователя для отобр ажения следующих страниц, как и традиционная команда "more". По умолчан ию все выходные данные отображаются на одной странице. Размер страницы определяется характеристиками основного приложения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Out-Host по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Out-Host не формирует никаких выходных данных. Однако основна я программа может отображать полученные с помощью командлета Out-Host о бъекты. ПРИМЕЧАНИЯ Командлет Out-Host также можно вызывать с помощью встроенного псевдоним а "oh". Дополнительные сведения см. в разделе About_Aliases. Командлеты, содержащие команду Out (командлеты Out) не форматируют объе кты, а только обрабатывают их и отправляют в указанное назначение для о тображения. Если передать неформатированный объект в командлет Out, он перед обработкой отправит его в форматирующий командлет. Командлеты Out не содержат параметров для указания имен или путей. Для передачи данных командлету Out используйте оператор конвейера (|), чтоб ы передать выходные данные команды Windows PowerShell командлету. Также можно хранить данные в переменной и использовать параметр InputObject для передачи данных в командлет. Дополнительные сведения см. в примерах . Командлет Out-Host отправляет данные, но не создает никаких объектов вы вода. Если передать по конвейеру вывод командлета Out-Host командлету G et-Member, командлет Get-Member сообщит, что не указано ни одного объек та. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process | out-host -paging Описание ----------- Эта команда отображает сведения о выполняемых в системе процессах по одной странице. Для получения объектов, представляющих процессы в системе, исполь зуется команда Get-Process. Оператор конвейера (|) отправляет результаты ко мандлету Out-Host, который выводит их на консоль. Параметр Paging указывает , что данные нужно выводить по одной странице. Такой же формат используется при выполнении встроенной в Windows PowerShell функции Help. Эта функция получает данные, возвращенные командлетом Get-He lp, после чего с помощью параметра Paging командлета Out-Host выводит их по одной странице, используя следующий формат команды: get-help $args[0] | ou t-host -paging). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$a = get-history C:\PS>out-host -InputObject $a Описание ----------- Эти команды выводят журнал сеанса в командной строке. Первая команда получа ет с помощью командлета Get-History журнал сеанса и сохраняет его в перемен ной $a. Вторая команда отображает содержимое переменной $a с помощью команд лета Out-Host, указывая на нее Out-Host с помощью параметра InputObject. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113365 Out-Printer Out-Null Out-File Out-String Out-Default Write-Host Out-Null ИМЯ Out-Null ОПИСАНИЕ Удаляет вывод вместо того, чтобы отправить его на консоль. СИНТАКСИС Out-Null [-InputObject <psobject>] [<CommonParameters>] ОПИСАНИЕ Командлет Out-Null отправляет вывод устройству NULL, по сути удаляя данные. ПАРАМЕТРЫ -InputObject <psobject> Указывает удаленный объект. Введите переменную, содержащую объекты, либ о команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Out-Null по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Out-Null не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлеты, содержащие команду Out (командлеты Out) не содержат парамет ров для указания имен или путей. Для передачи данных командлету Out исп ользуйте оператор конвейера (|), чтобы передать выходные данные команды Windows PowerShell командлету. Также можно хранить данные в переменной и использовать параметр InputObject для передачи данных в командлет. Д ополнительные сведения см. в примерах. Командлет Out-Null не возвращает никаких объектов вывода. Если передать по конвейеру вывод командлета Out-Null командлету Get-Member, командле т Get-Member сообщит, что не указано ни одного объекта. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-childitem | out-null Описание ----------- Эта команда возвращает элементы, хранящиеся в локальном каталоге, но потом удаляет их, вместо того чтобы передать по конвейеру или вывести в командной строке. Это позволяет избавиться от ненужного вывода. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113366 Out-Printer Out-Host Out-File Out-String Out-Default Out-Printer ИМЯ Out-Printer ОПИСАНИЕ Отправляет вывод на принтер. СИНТАКСИС Out-Printer [[-Name] <string>] [-InputObject <psobject>] [<CommonParameters >] ОПИСАНИЕ Командлет Out-Printer отправляет вывод на принтер по умолчанию или на альте рнативный принтер, если он указан. ПАРАМЕТРЫ -InputObject <psobject> Указывает объекты, которые будут выведены на принтер. Введите переменну ю, содержащую объекты, либо команду или выражение для получения объекто в. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string> Указывает альтернативный принтер. Имя параметра ("Name") указывать необ язательно. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Out-Printer по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Out-Printer не возвращает никаких объектов. ПРИМЕЧАНИЯ Командлет Out-Printer также можно вызывать с помощью встроенного псевдо нима "lp". Дополнительные сведения см. в разделе About_Aliases. Командлеты, содержащие команду Out (командлеты Out) не форматируют объе кты, а только обрабатывают их и отправляют в указанное назначение для о тображения. Если передать неформатированный объект в командлет Out, он перед обработкой отправит его в форматирующий командлет. Командлеты Out не содержат параметров для указания имен или путей. Для передачи данных командлету Out используйте оператор конвейера (|), чтоб ы передать выходные данные команды Windows PowerShell командлету. Также можно хранить данные в переменной и использовать параметр InputObject для передачи данных в командлет. Дополнительные сведения см. в примерах . Командлет Out-Printer отправляет данные, но не создает никаких объектов вывода. Если передать по конвейеру вывод командлета Out-Printer команд лету Get-Member, командлет Get-Member сообщит, что не указано ни одного объекта. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-content $pshome\about_signing.help.txt | Out-Printer Описание ----------- Эта команда отправляет содержимое файла справки about_Signing на принтер по умолчанию. Этот пример показывает, как распечатать файл, даже если командл ет Out-Printer не имеет параметра Path. Для получения содержимого файла справки в этой команде используется командл ет Get-Content. Путь к файлу включает встроенную переменную $pshome, в кото рой хранится установочный каталог Windows PowerShell. Оператор конвейера (| ) передает результаты командлету Out-Printer, который отправляет их на прин тер по умолчанию. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>"Hello, World" | out-printer -name "\\Server01\Prt-6B Color" Описание ----------- Эта команда печатает фразу "Hello, World" на принтере "Prt-6B Color", устан овленном в системе Server01. Параметр Name в этой команде используется для указания альтернативного принтера. Имя этого параметра указывать необязател ьно. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$h = get-help -full get-wmiobject C:\PS> out-printer -inputobject $h Описание ----------- Эти команды печатают полную версию справки по командлету Get-WmiObject. Пер вая команда получает с помощью командлета Get-Help полную версию справки по командлету Get-WmiObject и сохраняет ее в переменной $h. Вторая команда от правляет полученные сведения принтеру по умолчанию. Для передачи значения п еременной $h командлету Out-Printer используется параметр InputObject. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113367 Out-Host Out-Null Out-String Out-File Out-Default Out-String ИМЯ Out-String ОПИСАНИЕ Отправляет объекты основному приложению в виде последовательности строк. СИНТАКСИС Out-String [-InputObject <psobject>] [-Stream] [-Width <int>] [<CommonParam eters>] ОПИСАНИЕ Командлет Out-String преобразует объекты, которыми управляет Windows PowerS hell, в массив строк. По умолчанию командлет Out-String накапливает строки и возвращает их как одну строку, однако с помощью параметра stream можно за дать вывод Out-String по одной строке за раз. Этот командлет позволяет упра влять строковым выводом и проводить в нем поиск, как и при работе с традици онными оболочками, если использование объектов менее удобно. ПАРАМЕТРЫ -InputObject <psobject> Указывает объекты, которые будут записаны в строку. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Stream [<SwitchParameter>] Передает строки для каждого объекта отдельно. По умолчанию строки для к аждого объекта накапливаются и отправляются в виде одной строки. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Width <int> Указывает число знаков в каждой выходной строке. Все остальные знаки ус екаются, а не переносятся на следующую строку. Если данный параметр опу щен, ширина определяется характеристиками основного приложения. Значени е по умолчанию для основного приложения PowerShell.exe равно 80 (знаков ). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты можно передать командлету Out-String по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.String Командлет Out-String возвращает строку, которую создает из объекта ввод а. ПРИМЕЧАНИЯ Командлеты, содержащие команду Out (командлеты Out) не форматируют объе кты, а только обрабатывают их и отправляют в указанное назначение для о тображения. Если передать неформатированный объект в командлет Out, он перед обработкой отправит его в форматирующий командлет. Командлеты Out не содержат параметров для указания имен или путей. Для передачи данных командлету Out используйте оператор конвейера (|), чтоб ы передать выходные данные команды Windows PowerShell командлету. Также можно хранить данные в переменной и использовать параметр InputObject для передачи данных в командлет. Дополнительные сведения см. в примерах . -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-content C:\test1\testfile2.txt | out-string Описание ----------- Эта команда отправляет содержимое файла Testfile2.txt на консоль в виде одн ой строки. Для получения содержимого файла в этой команде используется кома ндлет Get-Content. Оператор конвейера (|) передает содержимое файла командл ету Out-String, который отправляет его на консоль в виде строки. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$c = get-culture | select-object * C:\PS> out-string -inputobject $c -width 100 Описание ----------- Эти команды получают региональные параметры, заданные для текущего пользова теля, и преобразуют полученные данные в строки. Первая команда получает рег иональные параметры с помощью командлета Get-Culture. Оператор конвейера (| ) отправляет результат командлету Select-Object, который выбирает все свойс тва (*) объекта региональных параметров, возвращенного командлетом Get-Cult ure. Затем результаты сохраняются в переменной $c. Вторая команда с помощью командлета Out-String преобразует объект CultureIn fo в последовательность строк (по одной для каждого свойства). Для передачи значения переменной $c командлету Out-String используется параметр InputOb ject. Параметр width имеет значение 100 знаков на строку, что предотвращает обрезку строк. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-alias | out-string -stream | select-string "Get-Command" Описание ----------- Эта команда отображает псевдонимы, включающие фразу "Get-Command". Командле т Get-Alias используется ею для получения набора объектов AliasInfo (каждый представляет один псевдоним, определенный в оболочке). Этот пример демонст рирует различие между работой с объектами и работой со строками. Оператор конвейера (|) отправляет вывод командлета Get-Alias командлету Out -String, который преобразует объекты в набор строк. Параметр Stream указыва ет, что вывод должен быть отправлен как отдельные строки, а не как одна объ единенная строка. Еде один оператор конвейера отправляет строки командлету Select-String, который выбирает строки, содержащие слова "Get-Command". Если опустить параметр Stream, эта команда отобразит все псевдонимы, потому что командлет Select-String найдет слова "Get-Command" в единственной стро ке, возвращенной командлетом Out-String, а механизм форматирования отобрази т эту строку в виде таблицы. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113368 Out-File Out-Null Out-Host Out-Printer Out-Default Pop-Location ИМЯ Pop-Location ОПИСАНИЕ Меняет текущее местоположение на местоположение, указанное в последней запи си стека. Запись с местоположением может быть извлечена как из стека, задан ного по умолчанию, так и из стека, созданного с помощью командлета Push-Loc ation. СИНТАКСИС Pop-Location [-PassThru] [-StackName <string>] [-UseTransaction] [<CommonPa rameters>] ОПИСАНИЕ Командлет Pop-Location изменяет текущее местоположение на местоположение, у казанное в последней записи стека, сделанной с помощью командлета Push-Loca tion. Запись с местоположением может быть извлечена как из стека, заданного по умолчанию, так и из стека, созданного с помощью команды Push-Location. ПАРАМЕТРЫ -PassThru [<SwitchParameter>] Передает по конвейеру объект, представляющий местоположение. По умолчан ию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -StackName <string> Задает альтернативный стек. Командлет Pop-Location извлекает последнее добавленное местоположение из этого стека. Этот стек затем становится т екущим. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету Pop-Location по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PathInfo Если задан параметр PassThru, командлет Pop-Location создает объект Sys tem.Management.Automation.PathInfo, представляющий местоположение. В пр отивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Pop-Location также можно вызывать с помощью встроенного псевд онима "popd". Дополнительные сведения см. в разделе About_Aliases. Командлет Pop-Location предназначен для работы с данными, предоставляем ыми любым поставщиком. Чтобы получить список поставщиков, доступных в т екущем сеансе, введите команду "Get-PSProvider". Дополнительные сведени я см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>pop-location Описание ----------- Эта команда меняет текущее местоположение на местоположение, указанное в по следней записи текущего стека. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>pop-location -stackname Stack2 Описание ----------- Эта команда меняет текущее местоположение на местоположение, указанное в по следней записи стека Stack2. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>pushd HKLM:\Software\Microsoft\PowerShell pushd Cert:\LocalMachine\TrustedPublisher popd popd PS C:\> push-location HKLM:\Software\Microsoft\PowerShell PS HKLM:\Software\Microsoft\PowerShell> push-location Cert:\LocalMachine\Tr ustedPublisher PS cert:\LocalMachine\TrustedPublisher> popd PS HKLM:\Software\Microsoft\PowerShell> popd PS C:\ps-test> Описание ----------- В этих командах командлеты Push-Location и Pop-Location используются для пе ремещения между местоположениями, поддерживаемыми разными поставщиками Wind ows PowerShell. В указанных командах командлеты Push-Location и Pop-Locatio n вызываются с помощью своих псевдонимов "pushd" и "popd", соответственно. Первая команда помещает текущее местоположение файловой системы в стек и пе реходит на диск HKLM, поддерживаемый поставщиком реестра Windows PowerShell . Вторая команда помещает текущее местоположение реестра в стек и переходит к местоположению, поддерживаемому поставщиком сертификатов Windows PowerSh ell. Две последние команды извлекают целевые местоположения из стека. Первая ком анда "popd" возвращает к диску Registry, а вторая — к диску файловой систем ы. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113369 about_Providers Push-Location Set-Location Get-Location prompt prompt Push-Location ИМЯ Push-Location ОПИСАНИЕ Добавляет текущее местоположение в начало списка местоположений ("стек"). СИНТАКСИС Push-Location [[-LiteralPath] <string>] [-PassThru] [-StackName <string>] [ -UseTransaction] [<CommonParameters>] Push-Location [[-Path] <string>] [-PassThru] [-StackName <string>] [-UseTra nsaction] [<CommonParameters>] ОПИСАНИЕ Командлет Push-Location добавляет текущее местоположение в начало списка ме стоположений, называемого "стеком". Текущее местоположение можно добавить в стек по умолчанию или в стек, созданный пользователем. При указании пути к омандлет Push-Location записывает текущее местоположение в стек, а затем пе реходит из текущего местоположения в местоположение, указанное в пути. В ст ек можно поместить только текущее местоположение. ПАРАМЕТРЫ -LiteralPath <string> Задает путь к новому местоположению. В отличие от параметра Path, значе ние параметра LiteralPath используется в том виде, в котором оно введен о. Никакие символы не интерпретируются как подстановочные знаки. Если п уть включает escape-символы, его нужно заключить в одиночные кавычки. О диночные кавычки указывают оболочке Windows PowerShell, что никакие сим волы не следует интерпретировать как escape-символы. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает по конвейеру объект, представляющий местоположение. По умолчан ию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Заменяет текущее местоположение другим местоположением, определенным да нным путем, после добавления текущего местоположения в стек. Введите пу ть к любому местоположению, поставщик которого поддерживает данный кома ндлет. Подстановочные знаки разрешены. Имя параметра ("Path") указывать необязательно. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -StackName <string> Задает имя стека. Текущее местоположение записывается в этот стек, и эт от стек становится текущим. Если стек не существует, он создается. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь (но не литеральный путь), можно передать команд лету Push-Location по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PathInfo Если задан параметр PassThru, командлет Push-Location создает объект Sy stem.Management.Automation.PathInfo, представляющий местоположение. В п ротивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Push-Location также можно вызывать с помощью встроенного псев донима "pushd". Дополнительные сведения см. в разделе About_Aliases. Стек — это структура данных с методом доступа к элементам LIFO (Last-In First-Out, "последним пришел — первым вышел"). Стек можно представить в виде вертикального списка, в котором доступным является только самый верхний элемент. Добавление элемента ("push") возможно только в вершину стека, извлечение элемента ("pop") — также только из вершины стека. Чт обы получить доступ к элементам, находящимся ниже вершины стека, сначал а необходимо извлечь все элементы, расположенные над ними. Командлет Push-Location предназначен для работы с данными, предоставляе мыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PSProvider". Дополнительные сведен ия см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>push-location C:\Windows Описание ----------- Эта команда помещает текущее местоположение в стек по умолчанию, а затем из меняет текущее местоположение на C:\Windows. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>push-location HKLM:\Software\Policies -stackname RegFunction Описание ----------- Эта команда помещает текущее местоположение в стек RegFunction, а затем изм еняет текущее местоположение на HKLM:\Software\Policies. В данной команде п оказано, что командлет Push-Location можно использовать вместе с поставщико м реестра Windows PowerShell. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>push-location Описание ----------- Эта команда помещает текущее местоположение в стек по умолчанию. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>push-location ~ -stackname Stack2 Описание ----------- Эта команда помещает текущее местоположение в новый стек Stack2, а затем из меняет текущее местоположение на домашний каталог (%USERPROFILE%), обознача емый в команде знаком тильды (~) или переменной $home. Указанный стек Stack 2 становится текущим. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113370 about_Providers Pop-Location Set-Location Get-Location Read-Host ИМЯ Read-Host ОПИСАНИЕ Считывает из консоли строку ввода. СИНТАКСИС Read-Host [[-Prompt] <Object>] [-AsSecureString] [<CommonParameters>] ОПИСАНИЕ Командлет Read-Host считывает из консоли строку ввода. Эту команду можно ис пользовать для запроса данных у пользователя. Поскольку вводимые данные мож но сохранить в виде защищенной строки, с помощью этой команды можно запраши вать у пользователей конфиденциальные данные, например пароли, а также общи е данные. ПАРАМЕТРЫ -AsSecureString [<SwitchParameter>] Отображает звездочки (*) вместо вводимых пользователем знаков. При использовании этого параметра выводом командлета Read-Host является объект SecureString (System.Security.SecureString). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Prompt <Object> Задает текст сообщения для пользователя. Введите строку. Строку, содерж ащую пробелы, необходимо заключать в кавычки. Например, "Введите целое число: ". Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.String или System.Security.SecureString В случае использования параметра AsSecureString командлет Read-Host воз вращает объект SecureString. В противном случае будет возвращена обычна я строка. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$age = read-host "Please enter your age:" Описание ----------- Эта команда выводит запрос "Please enter your age:" (Введите свой возраст:) . После ввода значения и нажатия клавиши ВВОД введенное значение сохраняетс я в переменной $age. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$pwd_secure_string = read-host "Enter a Password:" -assecurestring Описание ----------- Эта команда выводит запрос "Enter a Password:" (Введите пароль:). При вводе значения вместо вводимых символов появляются звездочки (*). При нажатии кл авиши ВВОД введенное значение будет сохранено в переменной $pwd_secure_stri ng как объект SecureString. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113371 Get-Host Out-Host Write-Host ConvertFrom-SecureString Receive-Job ИМЯ Receive-Job ОПИСАНИЕ Получает результаты фоновых заданий Windows PowerShell в текущем сеансе. СИНТАКСИС Receive-Job [-Job] <Job[]> [[-ComputerName] <string[]>] [-Keep] [-NoRecurse ] [<CommonParameters>] Receive-Job [[-InstanceId] <Guid[]>] [-Keep] [-NoRecurse] [<CommonParameter s>] Receive-Job [-Job] <Job[]> [[-Location] <string[]>] [-Keep] [-NoRecurse] [ CommonParameters>] Receive-Job [[-Name] <string[]>] [-Keep] [-NoRecurse] [<CommonParameters>] Receive-Job [-Job] <Job[]> [[-Session] <PSSession[]>] [-Keep] [-NoRecurse] [<CommonParameters>] Receive-Job [-Id] <Int32[]> [-Keep] [-NoRecurse] [<CommonParameters>] ОПИСАНИЕ Командлет Receive-Job получает результаты фоновых заданий Windows Powershel l. Используйте командлет Receive-Job для получения результатов заданий, зап ущенных с использованием командлета Start-Job или параметра AsJob любого ко мандлета. Результаты можно получить для всех задания или для выбранных зада ний по имени, идентификатору, идентификатору экземпляра, имени компьютера, местоположению, сеансу, либо передав объект задания в командлет. При запуске фонового задания Windows PowerShell задание запускается, но его результаты не отображаются мгновенно. Вместо этого команда возвращает объе кт, представляющий фоновое задание. Объект задания содержит полезные сведен ия о задании, но не содержит результатов выполнения. Этот метод позволяет п родолжать работать в рамках сеанса, пока задание выполняется. Дополнительны е сведения о фоновых заданиях Windows PowerShell см. в разделе about_Jobs. Чтобы получить результаты выполнения команды, используйте командлет Receive -Job. Командлет Receive-Job получает результаты, которые были созданы к мом енту подачи команды Receive-Job. Если результаты пока не получены в полном объеме, можно выполнить дополнительные команды Receive-Job, чтобы получить оставшиеся результаты. По умолчанию результаты работы заданий удаляются из системы сразу после их получения, но можно использовать параметр Keep для сохранения результатов и возможности повторного их получения. Чтобы удалить результаты задания, пол учите их еще раз (без параметра Keep), закройте сеанс или воспользуйтесь ко мандлетом Remove-Job, чтобы удалить задание из сеанса. ПАРАМЕТРЫ -ComputerName <string[]> Получает результаты заданий, которые выполнялись на заданных компьютера х. Введите имена компьютеров. По умолчанию используется значение "Все з адания в пределах текущего сеанса". Этот параметр позволяет выбирать из результатов заданий, сохраненных на локальном компьютере. В нем не содержатся данные удаленных компьютеров . Чтобы получить результаты выполнения задания, сохраненные на удаленны х компьютерах, используйте командлет Invoke-Command для удаленного выпо лнения команды Receive-Job. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Id <Int32[]> Получает результаты заданий с указанными идентификаторами. По умолчанию используется значение "Все задания в пределах текущего сеанса". ID — это целое значение, которое однозначно определяет задание в предел ах текущего сеанса. Это значение проще запомнить и ввести, чем идентифи катор экземпляра, но оно уникально только в рамках текущего сеанса. Мож но ввести один или несколько идентификаторов (разделенных запятыми). Чт обы найти значение идентификатора задания, введите "Get-Job" без параме тров. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid[]> Получает результаты заданий с указанными идентификаторами экземпляров. По умолчанию используется значение "Все задания в пределах текущего сеа нса". Идентификатор экземпляра — это GUID, который однозначно определяет зада ние на компьютере. Чтобы определить идентификатор экземпляра задания, и спользуйте командлет Get-Job. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Job <Job[]> Задает задание, для которого получаются результаты. Этот параметр необх одим в команде Receive-Job. Введите переменную, содержащую задание, либ о введите команду, получающую задание. Объект задания можно также перед ать командлету Receive-Job по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Keep [<SwitchParameter>] Сохраняет результаты задания в системе даже после их получения. По умол чанию результаты задания удаляются после того, как они получены. Чтобы удалить результаты, воспользуйтесь командлетом Receive-Job, чтобы снова получить их без параметра Keep, а затем закройте сеанс, или восп ользуйтесь командлетом Remove-Job, чтобы удалить задание из сеанса. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Location <string[]> Получает только результаты заданий с указанным местоположением. По умол чанию используется значение "Все задания в пределах текущего сеанса". Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Получает результаты заданий с указанным понятным именем. По умолчанию и спользуется значение "Все задания в пределах текущего сеанса". Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -NoRecurse [<SwitchParameter>] Получает только результаты указанного задания. По умолчанию функция Rec eive-Job также получает результаты всех дочерних заданий указанного зад ания. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Session <PSSession[]> Получает результаты заданий, которые выполнялись в рамках заданного сеа нса Windows PowerShell (PSSession). Введите переменную, содержащую объе кт PSSession, или команду, получающую объект PSSession, например Get-PS Session. По умолчанию используется значение "Все задания в пределах тек ущего сеанса". Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.Job Кроме того, можно передать объекты заданий командлету Receive-Job по ко нвейеру. ВЫХОДНЫЕ ДАННЫЕ PSObject Командлет Receive-Job возвращает результаты выполнения команд в задании . ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$job = start-job -scriptblock {get-process} C:\PS> receive-job -job $job Описание ----------- Эти команды используют параметр Job для получения результатов конкретного з адания. Первая команда запускает задание, выполняющее команду "Get-Process" , с помощью командлета Start-Job. Команда использует оператор присваивания (=) для сохранения результирующего объекта задания в переменной $job. Вторая команда использует командлет Receive-Job для получения результатов з адания. Для указания задания используется параметр Job. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$job = start-job -scriptblock {get-process} C:\PS> $job | receive-job Описание ----------- Этот пример очень напоминает пример 2, отличие заключается в использовании оператора конвейера (|) для отправки объекта задания командлету Receive-Job . В результате операции команде не обязательно использовать параметра Job д ля указания задания. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$j = invoke-command -computername Server01, Server02, Server03 -scrip tblock {get-service} -AsJob C:\PS> $j.childjobs Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 2 Job2 Completed True Server01 get-service 3 Job3 Completed True Server02 get-service 4 Job4 Completed True Server03 get-service C:\PS> receive-job -name Job3 -keep Status Name DisplayName PSComputerName ------ ----------- ----------- -------------- Running AeLookupSvc Application Experience Server02 Stopped ALG Application Layer Gateway Service Server02 Running Appinfo Application Information Server02 Running AppMgmt Application Management Server02 Описание ----------- Эти команды используют параметр Name командлета команды Receive-Job для пол учения результатов одного из нескольких фоновых заданий, выполняющихся на у даленных компьютерах. Первая команда с помощью командлета Invoke-Command запускает на трех удален ных компьютерах фоновое задание, выполняющее команду Get-Service. Параметр AsJob используется для выполнения команды в качестве фонового задания. Полу ченный объект задания сохраняется в переменной $j. При использовании параметра AsJob командлета Invoke-Command для запуска зад ания объект задания создается на локальном компьютере, даже если само задан ие выполняется на удаленных компьютерах. Поэтому для управления заданием мо жно использовать локальные команды. Также при использовании AsJob Windows PowerShell возвращает один объект зад ания, содержащий дочернее задание для каждого из запущенных заданий. В этом случае объект задания содержит три дочерних задания, по одному для каждого из заданий на каждом из удаленных компьютеров. Вторая команда использует обращение через точку для отображения значения св ойства ChildJobs объекта задания, сохраненного в переменной $j. Выходные да нные показывают, что команда создала три дочерних задания, по одному задани ю на каждом из удаленных компьютеров. Третья команда использует командлет Receive-Job для получения результатов д очернего задания Job3, которое выполняется на компьютере Server02. Параметр Name используется в ней для указания имени дочернего задания, а параметр K eep — для сохранения результатов задания даже после их получения. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$s = new-pssession -computername Server01, Server02, Server03 C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog -logname system}} C:\PS> $j Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Completed True Localhost get-eventlog system 2 Job2 Completed True Localhost get-eventlog system 3 Job3 Completed True Localhost get-eventlog system C:\PS> $results = invoke-command -session $s -scriptblock {param($j) receiv e-job -job $j} -ArgumentList $j Описание ----------- В этом примере показано, как получать результаты удаленных заданий, выполня емых на трех удаленных компьютерах. Первая команда использует командлет New-PSSession для создания трех сеансов PSSession, по одному на каждом из удаленных серверов, указанных в команде. Она сохраняет сеансы PSSession в переменной $s. Вторая команда использует командлет Invoke-Command для выполнения команды S tart-Job в каждом из сеансов PSSession, заданных в переменной $s. Задание в ыполняет команду Get-Eventlog, которая получает события из журнала системны х событий. Результаты сохраняются в переменной $j. Поскольку команда использует командлет Invoke-Command для выполнения команд ы Start-Job, на трех компьютерах запускаются три независимых задания. Таким образом, команда возвращает три объекта задания, представляющие три задани я, которые выполняются на трех разных компьютерах. Третья команда выводит три объекта задания, сохраненные в переменной $j. Четвертая команда использует командлет Invoke-Command для выполнения команд ы Receive-Job в каждом из сеансов PSSession, заданных в переменной $s, и со хранения результатов в переменной $results. Поскольку переменная $j является локальной, блок скрипта использует ключево е слово "param" для объявления переменных в команде и параметр ArgumentList для задания значения переменной $j. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113372 about_Jobs about_Job_Details about_Remote_Jobs Start-Job Get-Job Wait-Job Stop-Job Remove-Job Invoke-Command Register-EngineEvent ИМЯ Register-EngineEvent ОПИСАНИЕ Создает подписку на события, создаваемые обработчиком Windows PowerShell и командлетом New-Event. СИНТАКСИС Register-EngineEvent [-SourceIdentifier] <string> [[-Action] <scriptblock>] [-Forward] [-MessageData <psobject>] [-SupportEvent] [<CommonParameters>] ОПИСАНИЕ Командлет Register-EngineEvent создает подписку на события, создаваемые обр аботчиком Windows PowerShell и командлетом New-Event. Для задания события и спользуйте параметр SourceIdentifier. Этот командлет позволяет подписаться на "существующие" события обработчика, а также на события, создаваемые командлетом New-Event. Эти события автомат ически добавляются в очередь событий сеанса без оформления подписки. Однако создание подписки позволяет перенаправлять события, задавать действия для реагирования на них, а также отменять подписку. При возникновении события, для которого создана подписка, это событие добав ляется в очередь событий сеанса. Чтобы получить события из очереди событий, используйте командлет Get-Event. При создании подписки на событие в сеанс добавляется подписчик на это событ ие. Чтобы получить подписчики на события в сеансе, используйте командлет Ge t-EventSubscriber. Чтобы отменить подписку, воспользуйтесь командлетом Unre gister-Event, удаляющим подписчик на событие из сеанса. ПАРАМЕТРЫ -Action <scriptblock> Задает команды для обработки событий. Когда происходит событие, вместо передачи события в очередь событий выполняются эти команды. Чтобы созда ть блок скрипта, заключите команды в фигурные скобки ( { } ). Значение параметра Action может включать автоматические переменные $Eve nt, $EventSubscriber, $Sender, $SourceEventArgs и $SourceArgs, предоста вляющие информацию о событии в блок скрипта Action. Дополнительные свед ения см. в разделе about_Automatic_Variables. Если задано действие, командлет Register-EngineEvent возвращает объект задания события, представляющего это действие. Командлеты Job позволяют управлять заданием события. Требуется? false Позиция? 102 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Forward [<SwitchParameter>] Отправляет события по данной подписке сеансу на локальном компьютере. Э тот параметр используется при регистрации для получения событий на удал енном компьютере или в удаленном сеансе. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MessageData <psobject> Задает дополнительные данные, связанные с событием. Значение этого пара метра хранится в свойстве MessageData объекта события. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SourceIdentifier <string> Задает идентификатор источника события, для которого создается подписка . Идентификатор источника должен быть уникальным в пределах текущего се анса. Это обязательный параметр. Значение этого параметра присваивается свойству SourceIdentifier объект а подписчика и объектов событий, связанных с данной подпиской. Требуется? true Позиция? 101 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SupportEvent [<SwitchParameter>] Скрывает подписку на события. Этот параметр используется, если текущая подписка является частью более сложного механизма регистрации событий и не должна обнаруживаться независимым образом. Чтобы просмотреть или отменить подписку, созданную с использованием пар аметра SupportEvent, воспользуйтесь параметром Force командлетов Get-Ev entSubscriber и Unregister-Event. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету Register-EngineEvent по конвейеру . ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSEventJob При использовании параметра Action командлет Register-EngineEvent возвр ащает объект System.Management.Automation.PSEventJob. В противном случа е командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$s = new-pssession -computername Server01, Server02 C:\PS> invoke-command -session $s { Register-EngineEvent -sourceIdentifier ([System.Management.Automation.PsEngineEvent]::Exiting) -forward } Описание ----------- Эта команда создает подписку на событие обработчика Windows PowerShell на д вух удаленных компьютерах. Первая команда создает сеанс PSSession на каждом из удаленных компьютеров. Вторая команда использует командлет Invoke-Command для выполнения команды R egister-EngineEvent в рамках удаленного сеанса. Для определения события команда Register-EngineEvent использует параметр So urceIdentifier. А для перенаправления событий из удаленного сеанса в локаль ный сеанс используется параметр Forward. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$j = register-engineEvent -sourceIdentifier PowerShell.ProcessCreated -action { $processName | add-content processLog.txt } C:\PS> get-event C:\PS> $results = $j | receive-job C:\PS> unregister-event PowerShell.ProcessCreated Описание ----------- Эта команда показывает, как использовать командлеты Job для управления объе ктом задания события, возвращаемым командлетом Register-EngineEvent при зад ании параметра Action. Управление заданием события осуществляется так же, как и любым другим задан ием Windows PowerShell. Дополнительные сведения см. в разделе about_jobs. В этом примере для получения результатов задания используется командлет Rece ive-Job. Чтобы удалить задание из сеанса, используйте командлет Remove-Job. Чтобы от менить подписку на событие, используйте командлет Unregister-Event. Чтобы у далить события из очереди событий, используйте командлет Remove-Event. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135243 Register-ObjectEvent Register-WmiEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event Get-Job Receive-Job Remove-Job Wait-Job Register-ObjectEvent ИМЯ Register-ObjectEvent ОПИСАНИЕ Создает подписку на события, создаваемые объектами Microsoft .NET Framework . СИНТАКСИС Register-ObjectEvent [-InputObject] <psobject> [-EventName] <string> [[-Sou rceIdentifier] <string>] [[-Action] <scriptblock>] [-Forward] [-MessageData <psobject>] [-SupportEvent] [<CommonParameters>] ОПИСАНИЕ Командлет Register-ObjectEvent создает подписку на события, создаваемые объ ектами .NET Framework на локальном или удаленном компьютере. При возникновении события, для которого создана подписка, это событие добав ляется в очередь событий сеанса. Чтобы получить события из очереди событий, используйте командлет Get-Event. С помощью параметров командлета Register-ObjectEvent можно задавать значени я свойств событий, которые позволяют идентифицировать события в очереди. Кр оме того, можно использовать параметр Action, чтобы определить действия, вы полняемые после возникновения события, для которого создана подписка, или п араметр Forward для перенаправления удаленных событий в очередь событий в л окальном сеансе. При создании подписки на событие в сеанс добавляется подписчик на это событ ие. Чтобы получить подписчики на события в сеансе, используйте командлет Ge t-EventSubscriber. Чтобы отменить подписку, воспользуйтесь командлетом Unre gister-Event, удаляющим подписчик на событие из сеанса. ПАРАМЕТРЫ -Action <scriptblock> Задает команды для обработки событий. Когда происходит событие, вместо передачи события в очередь событий выполняются эти команды. Чтобы созда ть блок скрипта, заключите команды в фигурные скобки ( { } ). Значение параметра Action может включать автоматические переменные $Eve nt, $EventSubscriber, $Sender, $SourceEventArgs и $SourceArgs, предоста вляющие информацию о событии в блок скрипта Action. Дополнительные свед ения см. в разделе about_Automatic_Variables. Если задано действие, командлет Register-ObjectEvent возвращает объект задания события, представляющего это действие. Командлеты Job позволяют управлять заданием события. Требуется? false Позиция? 102 Значение по умолчанию Нет. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EventName <string> Задает событие, для которого создается подписка. Введите имя события. Э то обязательный параметр. Значение этого параметра не равно имени, выбранному при создании подпис ки на событие. Это имя события, предоставляемое объектом .NET Framework . Например, у класса ManagementEventWatcher имеются события "EventArriv ed" и "Stopped." Чтобы получить имя события, используйте командлет Get- Member. Требуется? true Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Forward [<SwitchParameter>] Отправляет события по данной подписке удаленному сеансу. Этот параметр используется при регистрации для получения событий на удаленном компьют ере или в удаленном сеансе. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объект .NET Framework, который создает события. Укажите переменн ую, содержащую объект, либо введите команду или выражение, получающие е го. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MessageData <psobject> Задает любые дополнительные данные, которые следует связать с этой подп иской на события. Значение этого параметра присваивается свойству Messa geData для всех событий, связанных с данной подпиской. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SourceIdentifier <string> Задает имя, выбранное для подписки. Выбираемое имя должно быть уникальн ым в пределах текущего сеанса. По умолчанию используется значение GUID, назначенное Windows PowerShell. Значение этого параметра присваивается свойству SourceIdentifier объект а подписчика и объектов событий, связанных с данной подпиской. Требуется? false Позиция? 101 Значение по умолчанию GUID Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SupportEvent [<SwitchParameter>] Скрывает подписку на события. Этот параметр используется, если текущая подписка является частью более сложного механизма регистрации событий и не должна обнаруживаться независимым образом. Чтобы просмотреть или отменить подписку, созданную с использованием пар аметра SupportEvent, воспользуйтесь параметром Force командлетов Get-Ev entSubscriber и Unregister-Event. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Register-ObjectEvent по конвейер у. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$query = New-Object System.Management.WqlEventQuery "__InstanceCreati onEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'" C:\PS> $processWatcher = New-Object System.Management.ManagementEventWatche r $query C:\PS> register-objectEvent -inputObject $processWatcher -eventName "EventA rrived" Описание ----------- В этом примере создается подписка на события, создаваемые при запуске новог о процесса. Для получения событий EventArrived команда использует объект ManagementEven tWatcher. Объект запроса указывает, что события являются событиями создания экземпляров класса Win32_Process. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$query = New-Object System.Management.WqlEventQuery "__InstanceCreati onEvent", (New-Object TimeSpan 0,0,1), "TargetInstance isa 'Win32_Process'" C:\PS> $processWatcher = New-Object System.Management.ManagementEventWatche r $query C:\PS> $action = { New-Event "PowerShell.ProcessCreated" -Sender $sender -E ventArguments $SourceEventArgs.NewEvent.TargetInstance } C:\PS> register-objectEvent -inputObject $processWatcher -eventName "EventA rrived" -action $action Id Name State HasMoreData Location Comma nd -- ---- ----- ----------- -------- ----- -- 2 422cfe5a-65e... Running True New-E vent "PowerShe... Описание ----------- В этом примере показано, как задать действие для реагирования на событие. П ри задании действия создаваемые события не добавляются в очередь событий. В место этого действие отвечает на событие. В этом примере при возникновении события создания экземпляра, свидетельству ющего о запуске нового процесса, создается событие ProcessCreated. Действие использует автоматические переменные $Sender и $SourceEventArgs, з аполняемые только для действий событий. Команда Register-ObjectEvent возвращает объект задания, представляющий дейс твие, запускающее фоновое задание. Для управления фоновыми заданиями можно использовать командлеты Job, например Get-Job и Receive-Job. Дополнительные сведения см. в разделе about_Jobs. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s = new-pssession -computername Server01, Server02 C:\PS> invoke-command -session $s -filepath ProcessCreationEvent.ps1 C:\PS> invoke-command -session $s { get-event } # ProcessCreationEvent.ps1 function Enable-ProcessCreationEvent { $query = New-Object System.Management.WqlEventQuery "__InstanceCreationE vent", ` (New-Object TimeSpan 0,0,1), ` "TargetInstance isa 'Win32_Process'" $processWatcher = New-Object System.Management.ManagementEventWatcher $q uery $identifier = "WMI.ProcessCreated" Register-ObjectEvent -input $processWatcher -eventName "EventArrived" ` -sourceIdentifier $identifier -messageData "Test" -forward } } EnableProcessCreationEvent Описание ----------- В этом примере показано, как подписаться на события объекта на удаленных ко мпьютерах. Первая команда создает сеансы PSSession на двух удаленных компьютерах и сох раняет эти сеансы в переменной $s. Вторая команда с помощью параметра FilePath командлета Invoke-Command выпол няет скрипт ProcessCreationEvent.ps1 в каждом из сеансов PSSessions в перем енной $s. Скрипт включает команду Register-ObjectEvent, которая создает подписку на с обытия создания экземпляров объекта Win32_Process через объект ManagementEv entWatcher и событие EventArrived. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$timer = New-Object Timers.Timer C:\PS> $timer.Interval = 500 C:\PS> $job = Register-ObjectEvent -inputObject $timer -eventName Elapsed - sourceIdentifier Timer.Random -Action {$random = Get-Random -Min 0 -Max 100 } C:\PS> $job.gettype().fullname System.Management.Automation.PSEventJob C:\PS> $job | format-list -property * State : Running Module : __DynamicModule_6b5cbe82-d634-41d1-ae5e-ad7fe8d57fe0 StatusMessage : HasMoreData : True Location : Command : $random = Get-Random -Min 0 -Max 100 JobStateInfo : Running Finished : System.Threading.ManualResetEvent InstanceId : 88944290-133d-4b44-8752-f901bd8012e2 Id : 1 Name : Timer.Random ChildJobs : {} ... C:\PS> $timer.Enabled = $true C:\PS> & $job.module {$random} 60 C:\PS> & $job.module {$random} 47 Описание ----------- В этом примере показано использование динамического модуля в объекте PSEven tJob, который создается при включении свойства Action в регистрацию события . Первая команда с помощью командлета New-Object создает объект таймера. Втор ая команда устанавливает интервал времени таймера равным 500 (миллисекундам ). Третья команда регистрирует событие Elapsed объекта таймера с помощью коман длета Register-ObjectEvent. Она содержит действие, обрабатывающее событие. Когда интервал времени таймера истекает, появляется событие, и выполняются команды, содержащиеся в действии. В этом случае командлет Get-Random создае т случайное число от 0 до 100 и сохраняет его в переменной $random. При использовании параметра Action в команде Register-ObjectEvent эта коман да возвращает объект PSEventJob, представляющий действие. Команда сохраняет объект задания в переменной $job. Объект PSEventJob, возвращаемый командлетом Register-ObjectEvent, содержитс я также в свойстве Action подписчика на событие. Дополнительные сведения см . в разделе Get-EventSubscriber. Четвертая команда показывает, что переменная $job содержит объект PSEventJo b. Пятая команда использует командлет Format-List для отображения всех свой ств объекта PSEventJob в списке. Объект PSEventJob включает свойство Module, содержащее динамический модуль скрипта, который реализует действие. Шестая команда включает таймер. В остальных командах используется оператор вызова (&) для вызова команды в модуле и отображения значения переменной $random. Оператор вызова можно исп ользовать для вызова любой команды в модуле, включая команды, которые не эк спортируются. В этом случае команды показывают случайное число, создаваемое при появлении события Elapsed. Дополнительные сведения о модулях см. в разделе about_Modules. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135244 Register-EngineEvent Register-WmiEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event Register-PSSessionConfiguration ИМЯ Register-PSSessionConfiguration ОПИСАНИЕ Создает и регистрирует новую конфигурацию сеанса. СИНТАКСИС Register-PSSessionConfiguration [-AssemblyName] <string> [-ConfigurationTyp eName] <string> [-ApplicationBase <string>] [-Name] <string> [-Force] [-Max imumReceivedDataSizePerCommandMB <double>] [-MaximumReceivedObjectSizeMB <d ouble>] [-NoServiceRestart] [-ProcessorArchitecture <string>] [-SecurityDes criptorSDDL <string>] [-ShowSecurityDescriptorUI] [-StartupScript <string>] [-ThreadApartmentState {STA | MTA | Unknown}] [-ThreadOptions {Default | U seNewThread | ReuseThread | UseCurrentThread}] [-Confirm] [-WhatIf] [<Commo nParameters>] ОПИСАНИЕ Командлет Register-PSSessionConfiguration. создает и регистрирует новую кон фигурацию сеанса на локальном компьютере. Этот расширенный командлет предна значен для использования системными администраторами и позволяет управлять конфигурациями сеансов для пользователей. В каждом удаленном сеансе Windows PowerShell используется конфигурация сеан са. Создавая сеанс подключения к компьютеру, пользователи могут выбрать кон фигурацию или использовать конфигурации по умолчанию, регистрируемые при вк лючении удаленного взаимодействия Windows PowerShell. Пользователи также мо гут задавать привилегированную переменную $PSSessionConfigurationName, кото рая указывает конфигурацию по умолчанию для сеансов, создаваемых в текущем сеансе. Конфигурация сеанса используется для настройки среды для сеанса. Конфигурац ию можно определить с помощью сборки, реализующей новый класс конфигурации, или скрипта, выполняемого в сеансе. Конфигурация может определять, какие к оманды доступны в сеансе, а также включать параметры для защиты компьютера, например параметры, ограничивающие объем данных, принимаемых сеансом удале нно в одном объекте или команде. Также можно задать дескриптор безопасност и, определяющий разрешения, необходимые для использования конфигурации. ПАРАМЕТРЫ -ApplicationBase <string> Задает путь к файлу сборки (*.dll), указанному в значении параметра Ass emblyName. Этот параметр следует использовать в случае, если значение п араметра AssemblyName не включает путь. По умолчанию используется текущ ий каталог. Требуется? false Позиция? named Значение по умолчанию Текущий каталог Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AssemblyName <string> Задает имя файла сборки (*.dll), в котором определен тип конфигурации. Задать путь к DLL-файлу можно в этом параметре или в значении параметра ApplicationBase. При задании параметра ConfigurationTypeName этот параметр является обяз ательным. Требуется? true Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConfigurationTypeName <string> Задает полное имя типа Microsoft .NET Framework, используемого для этой конфигурации. Задаваемый тип должен реализовывать класс System.Managem ent.Automation.Remoting.PSSessionConfiguration. Для задания файла сборки (DLL), реализующего тип конфигурации, использу йте параметры AssemblyName и AssemblyBase. Создание типа позволяет управлять большим количеством аспектов конфигур ации сеанса, например предоставлять или скрывать определенные параметры командлетов или задавать ограничения на объем данных или размер объект ов, которые не смогут переопределять пользователи. Если опустить этот параметр, для конфигурации сеанса используется класс DefaultRemotePowerShellConfiguration. Требуется? true Позиция? 3 Значение по умолчанию System.Management.Automation.Remot ing.PSSessionConfiguration Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Подавляет все запросы пользователю и перезапускает службу WinRM без зап роса подтверждения. Перезапуск службы обеспечивает вступление изменений конфигурации в силу. Чтобы предотвратить перезапуск и подавить запрос на перезапуск, использ уйте параметр NoServiceRestart. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumReceivedDataSizePerCommandMB <double> Ограничивает объем данных, которые могут быть переданы данному компьюте ру в любой отдельно взятой удаленной команде. Укажите объем данных в ме габайтах (МБ). По умолчанию используется значение "50 МБ". Если ограничение на объем данных определено в типе конфигурации, заданн ом параметром ConfigurationTypeName, используется ограничение из типа к онфигурации, а значение этого параметра игнорируется. Требуется? false Позиция? named Значение по умолчанию 50 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumReceivedObjectSizeMB <double> Ограничивает объем данных, которые могут быть переданы данному компьюте ру в любом отдельно взятом объекте. Укажите объем данных в мегабайтах ( МБ). По умолчанию используется значение "10 МБ". Если ограничение на размер объекта определено в типе конфигурации, зада нном параметром ConfigurationTypeName, используется ограничение из типа конфигурации, а значение этого параметра игнорируется. Требуется? false Позиция? named Значение по умолчанию 10 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает имя конфигурации сеанса. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoServiceRestart [<SwitchParameter>] Не перезапускает службу WinRM и подавляет запрос на перезапуск службы. По умолчанию при вводе команды Register-PSSessionConfiguration предлага ется перезапустить службу WinRM, чтобы новая конфигурация сеанса вступи ла в силу. Пока служба WinRM не будет перезапущена, новая конфигурация сеанса не действует. Чтобы перезапустить службу WinRM без запроса подтверждения, используйте параметр Force. Чтобы перезапустить службу WinRM вручную, используйте командлет Restart-Service. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ProcessorArchitecture <string> Задает архитектуру процессора для конфигурации. Это значение определяет , 32- или 64-разрядная версия хост-процесса Windows PowerShell запускае тся при использовании данной конфигурации. Допустимые значения: "x86", "AMD64" и "IA64". Значение по умолчанию определяется архитектурой процессора компьютера, на котором размещена конфигурация сеанса. Требуется? false Позиция? named Значение по умолчанию Архитектура процессора компьютера. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SecurityDescriptorSDDL <string> Задает строку в формате языка определения дескрипторов безопасности (SD DL) для конфигурации. Эта строка определяет разрешения, необходимые для использования новой к онфигурации сеанса. Для использования конфигурации в сеансе пользовател и должны иметь как минимум разрешение на запуск конфигурации ("Выполнен ие (Invoke)"). В случае сложного дескриптора безопасности вместо этого параметра можно использовать параметр ShowSecurityDescriptorUI. Использовать оба парам етра в одной команде нельзя. Если опустить этот параметр, для данной конфигурации будет использовать ся корневой элемент SDDL для службы WinRM. Для просмотра или изменения корневого элемента SDDL используйте поставщик WS-Management. Например: "get-item wsman:\localhost\service\rootSDDL". Чтобы получить дополнител ьные сведения о поставщике WS-Management, введите команду "get-help wsm an". Требуется? false Позиция? named Значение по умолчанию Значение корневого элемента SDDL Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ShowSecurityDescriptorUI [<SwitchParameter>] Выводит лист свойств, помогающий создать строку SDDL для конфигурации с еанса. Лист свойств отображается после ввода команды Register-PSSession Configuration и перезапуска службы WinRM. При задании разрешений для конфигурации сеанса помните, что для использ ования конфигурации в сеансе пользователи должны иметь как минимум разр ешение на запуск конфигурации ("Выполнение (Invoke)"). Параметр SecurityDescriptorSDDL и этот параметр нельзя использовать в о дной команде. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -StartupScript <string> Задает полный путь к скрипту Windows PowerShell. Заданный скрипт выполн яется в новом сеансе, для которого используется данная конфигурация сеа нса. Скрипт можно использовать для дальнейшей настройки сеанса. Если скрипт выдает ошибку (даже непрерывающую), сеанс не создается, и команда New-P SSession пользователя завершается неудачей. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThreadApartmentState <ApartmentState> Определяет состояние подразделения потоков в сеансе. Допустимые значени я: "STA", "MTA" и "Unknown". По умолчанию используется значение "Unknow n". Требуется? false Позиция? named Значение по умолчанию Unknown Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThreadOptions <PSThreadOptions> Определяет способ создания и использования потоков при выполнении коман д в сеансе. Допустимые значения: "Default", "ReuseThread", "UseCurrentT hread" и "UseNewThread". По умолчанию используется значение "UseCurrent Thread". Требуется? false Позиция? named Значение по умолчанию UseCurrentThread Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Microsoft.WSMan.Management.WSManConfigContainerElement ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запускать Windows PowerShel l командой "Запуск от имени администратора". Этот командлет формирует XML-код, представляющий собой конфигурацию под ключаемого модуля WS-Management, и отправляет этот XML-код службе WS-Ma nagement, которая регистрирует подключаемый модуль на локальном компьют ере ("new-item wsman:\localhost\plugin"). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>register-pssessionConfiguration -name NewShell -applicationBase c:\My Shells\ -assemblyName MyShell.dll -configurationTypeName MyClass Описание ----------- Эта команда регистрирует новую конфигурацию сеанса NewShell. Параметры Appl icationName и ApplicationBase используются для указания местоположения файл а MyShell.dll, который задает командлеты и поставщики в конфигурации сеанса . Кроме того, используется параметр ConfigurationTypeName для указания ново го класса, используемого для дальнейшей настройки сеанса. Для использования этой конфигурации пользователи должны будут ввести команд у "new-pssession -configurationname newshell". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>register-pssessionConfiguration -name MaintenanceShell -startupScript c:\ps-test\Maintenance.ps1 Описание ----------- Эта команда регистрирует на локальном компьютере конфигурацию MaintenanceSh ell. Параметр StartupScript используется для указания скрипта Maintenance.p s1. Когда пользователь вводит команду New-PSSession и выбирает конфигурацию Mai ntenanceShell, в новом сеансе выполняется скрипт Maintenance.ps1. Этот скри пт может настраивать сеанс, в том числе импортировать модули, добавлять осн астки Windows PowerShell и задавать политику выполнения для сеанса. Если ск рипт выдаст какую-либо ошибку, в том числе непрерывающую, команда New-PSSes sion завершится неудачей. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$sddl = "O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;FA;SA;GWGX;;WD) " C:\PS> register-pssessionconfiguration -name AdminShell -securityDescriptor SDDL $sddl -maximumReceivedObjectSizeMB 20 -startupScript c:\scripts\AdminS hell.ps1 Описание ----------- Этот пример регистрирует конфигурацию сеанса AdminShell. Первая команда сохраняет пользовательскую строку SDDL в переменной $sddl. Вторая команда регистрирует новую оболочку. В команде используется параметр SecurityDescritorSDDL для задания строки SDDL из переменной $sddl и параме тр MaximumReceivedObjectSizeMB для увеличения ограничения на размер объекта . Кроме того, используется параметр StartupScript для указания скрипта, исп ользуемого для настройки параметра. В качестве альтернативы параметру SecurityDescriptorSDDL можно использовать параметр ShowSecurityDescriptorUI для вывода листа свойств, с помощью кото рого можно будет задать разрешения для конфигурации сеанса. При нажатии кно пки "ОК" в листе свойств формируется строка SDDL для конфигурации сеанса. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$s = register-pssessionConfiguration -name MaintenanceShell -startupS cript c:\ps-test\Maintenance.ps1 C:\PS> $s WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin Name Type Keys ---- ---- ---- MaintenanceShell Container {Name=MaintenanceShell} C:\PS> $s.getType().fullname TypeName: Microsoft.WSMan.Management.WSManConfigContainerElement C:\PS> $s | format-list -property * PSPath : Microsoft.WSMan.Management\WSMan::localhost\Plugin\Main tenanceShell PSParentPath : Microsoft.WSMan.Management\WSMan::localhost\Plugin PSChildName : MaintenanceShell PSDrive : WSMan PSProvider : Microsoft.WSMan.Management\WSMan PSIsContainer : True Keys : {Name=MaintenanceShell} Name : MaintenanceShell TypeNameOfElement : Container C:\PS> dir wsman:\localhost\plugin Name Type Keys ---- ---- ---- MaintenanceShell Container {Name=MaintenanceShell} microsoft.powershell Container {Name=microsoft.powershell} microsoft.powershell32 Container {Name=microsoft.powershell32 } Описание ----------- Этот пример показывает, что команда Register-PSSessionConfiguration возвращ ает элемент WSManConfigContainerElement. Также в нем показано, как найти эл ементы-контейнеры на диске WSMan:. Первая команда регистрирует конфигурацию сеанса MaintenanceShell с помощью командлета Register-PSSessionConfiguration. Она сохраняет объект, возвращен ный командлетом, в переменной $s. Вторая команда отображает содержимое переменной $s. Третья команда с помощью метода GetType и его свойства FullName отображает имя типа объекта, возвращенного командлетом Register-PSSessionConfiguration . Четвертая команда с помощью командлета Format-List отображает все свойства объекта, возвращенного командлетом Register-PSSessionConfiguration, в виде списка. Из свойства PSPath видно, что объект хранится в каталоге на диске W SMan:. Пятая команда с помощью командлета Get-ChildItem отображает элементы в папк е WSMan:\LocalHost\PlugIn. В этой папке находится новая конфигурация Mainte nanceShell и две конфигурации по умолчанию, входящие в комплект Windows Pow erShell. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>register-pssessionconfiguration -name WithProfile -startupScript add- profile.ps1 # Add-Profile.ps1 . c:\users\admin01\documents\windowspowershell\profile.ps1 Описание ----------- Эта команда создает и регистрирует конфигурацию сеанса WithProfile на локал ьном компьютере. В ней используется параметр StartupScript, который дает Wi ndows PowerShell указание выполнять указанный скрипт в любом сеансе, для ко торого используется данная конфигурация. Также отображается содержимое указанного скрипта (Add-Profile.ps1). Скрипт содержит единственную команду, в которой используется запись с точками для запуска профиля CurrentUserAllHosts пользователя в текущей области сеанса. Дополнительные сведения о профилях см. в разделе about_Profiles. Дополнител ьные сведения о записи с точками см. в разделе about_Scopes. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144306 about_Session_Configurations Disable-PSSessionConfiguration Enable-PSSessionConfiguration Get-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration WS-Management Provider Register-WmiEvent ИМЯ Register-WmiEvent ОПИСАНИЕ Подписывает на событие инструментария управления Windows (WMI). СИНТАКСИС Register-WmiEvent [-Class] <string> [[-SourceIdentifier] <string>] [[-Actio n] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-F orward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-T imeout <Int64>] [<CommonParameters>] Register-WmiEvent [-Query] <string> [[-SourceIdentifier] <string>] [[-Actio n] <scriptblock>] [-ComputerName <string>] [-Credential <PSCredential>] [-F orward] [-MessageData <psobject>] [-Namespace <string>] [-SupportEvent] [-T imeout <Int64>] [<CommonParameters>] ОПИСАНИЕ Командлет Register-WmiEvent создает подписку на события WMI на локальном ил и удаленном компьютере. При возникновении события WMI, для которого создана подписка, это событие д обавляется в очередь событий локального сеанса, даже если оно произошло на удаленном компьютере. Чтобы получить события из очереди событий, используйт е командлет Get-Event. С помощью параметров командлета Register-WmiEvent можно создавать подписки на события на удаленных компьютерах и задавать значения свойств событий, ко торые позволяют идентифицировать события в очереди. Также можно использоват ь параметр Action для задания действий, выполняемых при возникновении событ ия, для которого создана подписка. При создании подписки на событие в сеанс добавляется подписчик на это событ ие. Чтобы получить подписчики на события в сеансе, используйте командлет Ge t-EventSubscriber. Чтобы отменить подписку, воспользуйтесь командлетом Unre gister-Event, удаляющим подписчик на событие из сеанса. ПАРАМЕТРЫ -Action <scriptblock> Задает команды для обработки событий. Когда происходит событие, вместо передачи события в очередь событий выполняются команды, заданные параме тром Action. Чтобы создать блок скрипта, заключите команды в фигурные с кобки ( { } ). Значение параметра Action может включать автоматические переменные $Eve nt, $EventSubscriber, $Sender, $SourceEventArgs и $SourceArgs, предоста вляющие информацию о событии в блок скрипта Action. Дополнительные свед ения см. в разделе about_Automatic_Variables. Если задано действие, командлет Register-WmiEvent возвращает объект зад ания события, представляющего это действие. Для управления заданием соб ытия можно использовать командлеты, имеющие в составе существительное " Job" (командлеты Job). Требуется? false Позиция? 102 Значение по умолчанию Событие добавляется в очередь собы тий. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Class <string> Задает событие, для которого создается подписка. Укажите класс WMI, кот орый создает события. В каждой команде необходимо указывать параметр Cl ass или Query. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает удаленный компьютер. По умолчанию используется значение "Локальн ый компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя. Требуется? false Позиция? named Значение по умолчанию Локальный компьютер Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, возвращенных командлетом Get-Credential. При вводе имени п ользователя система запросит пароль. Требуется? false Позиция? named Значение по умолчанию Учетные данные текущего пользовате ля Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Forward [<SwitchParameter>] Отправляет события по данной подписке сеансу на локальном компьютере. Э тот параметр используется при регистрации для получения событий на удал енном компьютере или в удаленном сеансе. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MessageData <psobject> Задает любые дополнительные данные, которые следует связать с этой подп иской на события. Значение этого параметра присваивается свойству Messa geData для всех событий, связанных с данной подпиской. Требуется? false Позиция? named Значение по умолчанию Нет. Значение свойства MessageData — NULL. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Namespace <string> Задает пространство имен класса WMI. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Query <string> Задает запрос на языке запросов WMI (WQL), определяющий класс событий W MI. Пример запроса: "select * from __InstanceDeletionEvent". Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SourceIdentifier <string> Задает имя, выбранное для подписки. Выбираемое имя должно быть уникальн ым в пределах текущего сеанса. По умолчанию используется значение GUID, назначенное Windows PowerShell. Значение этого параметра присваивается свойству SourceIdentifier объект а подписчика и объектов событий, связанных с данной подпиской. Требуется? false Позиция? 101 Значение по умолчанию GUID Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SupportEvent [<SwitchParameter>] Скрывает подписку на события. Этот параметр используется, если текущая подписка является частью более сложного механизма регистрации событий и не должна обнаруживаться независимым образом. Чтобы просмотреть или отменить подписку, созданную с использованием пар аметра SupportEvent, воспользуйтесь параметром Force командлетов Get-Ev entSubscriber и Unregister-Event. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Timeout <Int64> Определяет время ожидания оболочкой Windows PowerShell завершения выпол няемой команды. По умолчанию используется значение 0 (ноль), указывающее, что время ожи дания не задано; в этом случае Windows PowerShell ожидает завершения ко манды бесконечно долго. Требуется? false Позиция? named Значение по умолчанию 0 Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Объекты невозможно передать командлету Register-WmiEvent по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista и более поздних верси ях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted" Описание ----------- Эта команда создает подписку на события, создаваемые классом Win32_ProcessS tartTrace. Этот класс создает событие при каждом запуске процесса. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>register-wmiEvent -query "select * from __instancecreationevent withi n 5 where targetinstance isa 'win32_process'" -sourceIdentifier "WMIProcess " -messageData "Test 01" -timeout 500 Описание ----------- В этой команде используется запрос для подписки на события создания экземпл яров класса Win32_process. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$action = { get-history | where { $_.commandline -like "*start-proces s*" } | export-cliXml "commandHistory.clixml" } C:\PS> register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "ProcessStarted" -action $action Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 ProcessStarted NotStarted False get-history | wher e {... Описание ----------- В этом примере показано, как использовать действие для реагирования на собы тие. В этом случае при запуске процесса все команды Start-Process текущего сеанса записываются в XML-файл. При использовании параметра Action командлет Register-WmiEvent возвращает ф оновое задание, представляющее действие события. Для управления заданиями с обытий можно использовать командлеты Job, например Get-Job и Receive-Job. Дополнительные сведения см. в разделе about_Jobs. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>register-wmiEvent -class 'Win32_ProcessStartTrace' -sourceIdentifier "Start" -computername Server01 C:\PS> get-event -sourceIdentifier "Start" Описание ----------- В этом примере показано, как выполнить регистрацию на получение сведений о событиях, происходящих на удаленном компьютере Server01. WMI передает события на локальный компьютер и сохраняет их в очереди событи й в текущем сеансе. Чтобы извлечь события, выполните локальную команду Get- Event. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135245 Register-ObjectEvent Register-EngineEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event Registry ИМЯ ПОСТАВЩИКА Registry ДИСКИ HKLM:, HKCU: ОПИСАНИЕ Предоставляет доступ к разделам и значениям системного реестра в Windows Po werShell. ОПИСАНИЕ Поставщик Windows PowerShell Registry позволяет извлекать, добавлять, измен ять, очищать и удалять разделы и значения реестра в Windows PowerShell. Разделы реестра представлены как экземпляры класса Microsoft.Win32.Registry Key. Значения реестра представлены экземплярами класса PSCustomObject. Поставщик Registry позволяет получить доступ к иерархическому пространству имен, состоящему из разделов и подразделов. Значения и данные реестра не яв ляются компонентами этой иерархии. Вместо этого они являются свойствами каж дого из разделов. Поставщик Registry поддерживает все командлеты, содержащие слово Item (кома ндлеты Item), такие как Get-Item, Copy-Item и Rename-Item. Для работы с раз делами и подразделами реестра используются командлеты группы Item. Поставщи к Registry также поддерживает командлеты, содержащие слово ItemProperty (ко мандлеты ItemProperty). Для работы со значениями и данными реестра использу ются командлеты группы ItemProperty. Использовать командлеты, содержащие сл ово Content (командлеты Content), при работе с поставщиком Registry нельзя. Каждый раздел реестра защищен дескриптором безопасности. Для просмотра деск риптора безопасности раздела можно использовать командлет Get-Acl. ВОЗМОЖНОСТИ ShouldProcess ЗАДАЧИ ЗАДАЧА: Просмотр реестра -------------------------- ПРИМЕР 1 -------------------------- Эта команда задает в качестве текущего положения раздел реестра HKEY_LO CAL_MACHINE\Software. set-location hklm:\software -------------------------- ПРИМЕР 2 -------------------------- Эта команда отображает текущее положение. get-location ЗАДАЧА: Управление разделами реестра -------------------------- ПРИМЕР 1 -------------------------- Эта команда отображает сведения о каждом непосредственном подразделе ра здела реестра HKEY_LOCAL_MACHINE\Software. get-childitem -path hklm:\software -------------------------- ПРИМЕР 2 -------------------------- Эта команда создает новый подраздел TestNew в подразделе HKCU:\Environm ent. new-item -path hkcu:\Environment\TestNew -------------------------- ПРИМЕР 3 -------------------------- Эта команда удаляет подраздел TestNew в разделе HKEY_CURRENT_USER\Envir onment. remove-item -path hkcu:\Environment\TestNew -------------------------- ПРИМЕР 4 -------------------------- Эта команда копирует раздел TestNew в подраздел TestCopy. copy-item -path hkcu:\Environment\TestNew hkcu:\Environment\TestNew\T estCopy -------------------------- ПРИМЕР 5 -------------------------- Эта команда отображает сведения обо всех подразделах раздела реестра HK EY_LOCAL_MACHINE\Software. get-childitem -path hklm:\Software -recurse -------------------------- ПРИМЕР 6 -------------------------- Эта команда перемещает раздел реестра HKEY_CURRENT_USER\Environment\tes tnewcopy и его свойства, а также подразделы и их свойства, в раздел HKE Y_CURRENT_USER\Environment\testnew. move-item -path hkcu:\environment\testnewcopy ` -destination hkcu:\environment\testnew -------------------------- ПРИМЕР 7 -------------------------- Эта команда изменяет имя раздела реестра HKEY_CURRENT_USER\Environment\ testnew на HKEY_CURRENT_USER\Environment\test. rename-item -path hkcu:\environment\testnew\ -newname test -------------------------- ПРИМЕР 8 -------------------------- Эта команда отображает дескриптор безопасности указанного элемента реес тра. get-acl -path hkcu:\environment\testnew | format-list -property * ЗАДАЧА: Управление записями реестра -------------------------- ПРИМЕР 1 -------------------------- Эта команда отображает имя и данные значения каждой записи реестра в ра зделе реестра HKEY_CURRENT_USER\Environment. get-itemproperty -path hkcu:\Environment Запись реестра "По умолчанию" возвращается только в том случае, если он а содержит значение. -------------------------- ПРИМЕР 2 -------------------------- Эта команда отображает имя и данные значения записи реестра Temp в разд еле реестра HKEY_CURRENT_USER\Environment. get-itemproperty -path hkcu:\Environment -name Temp -------------------------- ПРИМЕР 3 -------------------------- Эта команда создает запись реестра "pstest" в разделе HKEY_CURRENT_USER и присваивает ей значение "pstestvalue". new-itemproperty -path hkcu:\environment -name "pstest" -value "pstestv alue" -------------------------- ПРИМЕР 4 -------------------------- Эта команда присваивает записи реестра "pstest" в разделе HKEY_CURRENT_ USER\Environment значение "updatedvalue". set-itemproperty -path hkcu:\environment -name pstest -value "updatedvalue" -------------------------- ПРИМЕР 5 -------------------------- Эта команда изменяет имя записи реестра "pstest" в разделе HKEY_CURRENT _USER\Environment на "pstestnew". rename-itemproperty -path hkcu:\environment -name pstest ` -newname pstestnew -------------------------- ПРИМЕР 6 -------------------------- Эта команда копирует запись реестра "pstestnew" из раздела HKEY_CURRENT _USER\Environment в раздел HKEY_CURRENT_USER\Environment\testnewcopy. copy-itemproperty -path hkcu:\environment ` -destination hkcu:\environment\testnewcopy -name pstestnew -------------------------- ПРИМЕР 7 -------------------------- Эта команда перемещает запись реестра "pstestnew" из раздела HKEY_CURRE NT_USER\Environment\testnewcopy в раздел HKEY_CURRENT_USER\Environment\ testnew. move-itemproperty -path hkcu:\environment\testnewcopy ' -destination hkcu:\environment\testnew -name pstestnew -------------------------- ПРИМЕР 8 -------------------------- Эта команда очищает значение записи реестра "pstestnew" в разделе HKEY_ CURRENT_USER\Environment\testnew. clear-itemproperty -path hkcu:\environment\testnew -name pstestnew Для очистки значения записи реестра по умолчанию в подразделе можно исп ользовать командлет Clear-Item. Например, следующая команда очищает зна чение записи по умолчанию в разделе реестра HKEY_CURRENT_USER\Environme nt\testnew. clear-item -path hkcu:\environment\testnew -------------------------- ПРИМЕР 9 -------------------------- Эта команда удаляет запись реестра "pstestnew" из раздела реестра HKEY_ CURRENT_USER\Environment\testnew. remove-itemproperty -path hkcu:\environment\testnew ` -name pstestnew -------------------------- ПРИМЕР 10 -------------------------- Эта команда изменяет значение записи реестра по умолчанию в разделе HKE Y_CURRENT_USER\Environment\testnew на "значение по умолчанию". set-itemproperty -path hkcu:\environment\testnew ` -name "(default)" -value "default value" Обновить значение по умолчанию в разделе реестра можно также при помощи командлета Set-Item. Например, следующая команда обновляет значение по умолчанию раздела реестра testnew. set-item -path hkcu:\environment\testnew -value "другое значение по умо лчанию" ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ -Type <Microsoft.Win32.RegistryValueKind> Задает типы данных, используемые для хранения значений реестра, либо оп ределяет тип данных значения в реестре. String Определяет строку, заканчивающуюся символом NULL. Эквивалентно типу REG_SZ. ExpandString Определяет строку, заканчивающуюся символом NULL и содержащую н еразвернутые ссылки на переменные среды, которые развертываются при извлечении значения. Эквивалентно типу REG_EXPAND_SZ. Binary Определяет двоичные данные в любой форме. Эквивалентно типу REG _BINARY. DWord Определяет 32-разрядное двоичное число. Эквивалентно типу REG_D WORD. MultiString Определяет массив строк, заканчивающихся символом NULL. Массив заканчивается двумя символами NULL. Эквивалентно типу REG_MULTI _SZ. QWord Определяет 64-разрядное двоичное число. Эквивалентно типу REG_Q WORD. Unknown Указывает неподдерживаемый тип данных реестра, например REG_RES OURCE_LIST. Поддерживаемые командлеты: Set-Item ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ about_Providers Remove-Computer ИМЯ Remove-Computer ОПИСАНИЕ Удаление локального компьютера из домена или рабочей группы. СИНТАКСИС Remove-Computer [[-Credential] <PSCredential>] [-Force] [-PassThru] [-Confi rm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-Computer удаляет локальный компьютер из его текущей рабоче й группы или домена. При удалении компьютера из домена командлет Remove-Computer также отключает учетную запись домена для этого компьютера. Если компьютер находится в домене, необходимо указать учетные данные, даже если они являются учетными данными текущего пользователя, и перезагрузить к омпьютер для вступления изменений в силу. Для получения результатов выполнения команды используются параметры Verbose и PassThru. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Чтобы удалить компьютер из домена, необходимо использовать параметр Cre dential даже в случае использования учетных данных текущего пользовател я. Требуется? false Позиция? 2 Значение по умолчанию Учетные данные текущего пользовате ля Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает результаты выполнения команды. В противном случае этот коман длет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.ComputerChangeInfo Если задан параметр PassThru, командлет Remove-Computer возвращает объе кт ComputerChangeInfo. В противном случае этот командлет не формирует н икаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-computer Описание ----------- Эта команда удаляет компьютер из рабочей группы. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>remove-computer -credential domain01\admin01 -passthru -verbose; rest art-computer Описание ----------- Эти команды удаляют локальный компьютер из домена, к которому он присоедине н. Первая команда удаляет компьютер из домена. Параметр Credential используетс я в команде для предоставления учетных данных администратора домена. Параме тр PassThru и общий параметр Verbose используются для отображения информаци и об успешном или неудачном выполнении команды. Вторая команда использует командлет Restart-Computer для перезапуска компью тера, что необходимо для завершения операции удаления. Точка с запятой (;) разделяет две команды. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135246 Add-Computer Checkpoint-Computer Remove-Computer Restart-Computer Restore-Computer Stop-Computer Test-Connection Remove-Event ИМЯ Remove-Event ОПИСАНИЕ Удаляет события из очереди событий. СИНТАКСИС Remove-Event [-EventIdentifier] <int> [-Confirm] [-WhatIf] [<CommonParamete rs>] Remove-Event [-SourceIdentifier] <string> [-Confirm] [-WhatIf] [<CommonPara meters>] ОПИСАНИЕ Командлет Remove-Event удаляет события из очереди событий в текущем сеансе. Этот командлет удаляет только те события, которые в данный момент находятся в очереди. Чтобы отменить регистрацию или подписку на событие, используйте командлет Unregister-Event. ПАРАМЕТРЫ -EventIdentifier <int> Удаляет только событие с заданным идентификатором события. В каждой ком анде необходимо указывать параметр EventIdentifier или SourceIdentifier . Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -SourceIdentifier <string> Удаляет только события с указанным идентификатором источника. Подстанов очные знаки запрещены. В каждой команде необходимо указывать параметр E ventIdentifier или SourceIdentifier. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSEventArgs События из командлета Get-Event можно передавать командлету Remove-Even t по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-event -sourceIdentifier "ProcessStarted" Описание ----------- Эта команда удаляет из очереди события с идентификатором источника "Process Started". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>remove-event -eventIdentifier 30 Описание ----------- Эта команда удаляет из очереди событие с идентификатором, равным 30. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-event | remove-event Описание ----------- Эта команда удаляет из очереди событий все события. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135247 Register-ObjectEvent Register-EngineEvent Register-WmiEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event Remove-EventLog ИМЯ Remove-EventLog ОПИСАНИЕ Удаляет журнал событий или отменяет регистрацию источника событий. СИНТАКСИС Remove-EventLog [-LogName] <string[]> [[-ComputerName] <string[]>] [-Confir m] [-WhatIf] [<CommonParameters>] Remove-EventLog [[-ComputerName] <string[]>] [-Source <string[]>] [-Confirm ] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-EventLog удаляет файл журнала событий с локального или уда ленного компьютера и отменяет регистрацию всех источников событий для журна ла. Кроме того, этот командлет можно использовать для отмены регистрации ис точников событий без удаления каких-либо журналов событий. Командлеты, в имени которых содержится существительное EventLog (командлеты EventLog) работают только с классическими журналами событий. Чтобы получат ь события из журналов, основанных на технологии журнала событий Windows (в Windows Vista и более поздних версиях Windows), используйте командлет Get-W inEvent. ПАРАМЕТРЫ -ComputerName <string[]> Задает удаленный компьютер. По умолчанию используется значение "Локальн ый компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Remove-EventLog можно использовать, даже если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LogName <string[]> Задает журналы событий. Введите имена (значение свойства Log; а не свой ства LogDisplayName) одного или нескольких журналов событий, разделенны е запятыми. Подстановочные знаки запрещены. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Source <string[]> Отменяет регистрацию указанных источников событий. Введите имена источн иков (не имена исполняемых файлов), разделяя их запятыми. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Чтобы использовать командлет Remove-EventLog в Windows Vista и более по здних версиях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". Если удалить журнал событий, а затем повторно создать его, регистрация источников событий, которые использовались с прежним журналом, будет не возможна. Приложения, которые использовали источники событий для внесен ия записей в исходный журнал, не будут записывать данные в новый журнал . После отмены регистрации источника событий для конкретного журнала этом у источнику может быть запрещена запись данных в другие журналы. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-eventlog -logname MyLog Описание ----------- Эта команда удаляет журнал событий MyLog с локального компьютера и отменяет регистрацию источников событий для этого журнала. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>remove-eventlog -logname MyLog, TestLog -computername Server01, Serve r02, localhost Описание ----------- Эта команда удаляет журналы событий MyLog и TestLog с локального компьютера ("localhost") и удаленных компьютеров Server01 и Server02. Команда также о тменяет регистрацию источников событий для этих журналов. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>remove-eventlog -source MyApp Описание ----------- Эта команда удаляет источник событий MyApp из журналов на локальном компьют ере. После выполнения команды программа MyApp не сможет записывать данные в какие-либо журналы событий. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-eventlog -list Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteAsNeeded 22,923 Application 15,168 0 OverwriteAsNeeded 53 DFS Replication 512 7 OverwriteOlder 0 Directory Service 15,168 7 OverwriteOlder 0 Hardware Events 512 7 OverwriteOlder 0 Internet Explorer 20,480 0 OverwriteAsNeeded 0 Key Management Service 30,016 0 OverwriteAsNeeded 50,060 Security 15,168 0 OverwriteAsNeeded 27,592 System 15,360 0 OverwriteAsNeeded 18,355 Windows PowerShell 15,168 7 OverwriteAsNeeded 12 ZapLog C:\PS> remove-eventlog -logname ZapLog C:\PS> get-eventlog -list Max(K) Retain OverflowAction Entries Log ------ ------ -------------- ------- --- 15,168 0 OverwriteAsNeeded 22,923 Application 15,168 0 OverwriteAsNeeded 53 DFS Replication 512 7 OverwriteOlder 0 Directory Service 15,168 7 OverwriteOlder 0 Hardware Events 512 7 OverwriteOlder 0 Internet Explorer 20,480 0 OverwriteAsNeeded 0 Key Management Service 30,016 0 OverwriteAsNeeded 50,060 Security 15,168 0 OverwriteAsNeeded 27,592 System 15,360 0 OverwriteAsNeeded 18,355 Windows PowerShell Описание ----------- Эти команды демонстрируют, как вывести список журналов событий на компьютер е и проверить, что команда Remove-EventLog выполнена успешно. Первая команда выводит список всех журналов событий на локальном компьютере . Вторая команда удаляет журнал событий ZapLog. Третья команда повторно выводит список журналов событий. Журнал событий Zap Log больше не отображается в списке. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'" | foreach {$_.sources} MyApp TestApp C:\PS> remove-eventlog -source MyApp C:\PS> get-wmiobject win32_nteventlogfile -filter "logfilename='TestLog'} | foreach {$_.sources} TestApp Описание ----------- Эти команды с помощью командлета Get-WmiObject выводят список источников со бытий на локальном компьютере. Эти команды можно использовать для проверки успешного выполнения команды или удаления источника событий. Первая команда получает источники событий журнала TestLog на локальном комп ьютере. Одним из источников является MyApp. Во второй команде используется параметр Source командлета Remove-EventLog, позволяющий удалить источник событий MyApp. Третья команда идентична первой. Она позволяет убедиться, что источник собы тий MyApp удален. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135248 Clear-EventLog Get-EventLog Limit-EventLog New-EventLog Remove-EventLog Show-EventLog Write-EventLog Get-WinEvent Remove-Item ИМЯ Remove-Item ОПИСАНИЕ Удаляет заданные элементы. СИНТАКСИС Remove-Item [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclud e <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Recurse] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] Remove-Item [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <stri ng[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-Recurse] [-Confi rm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-Item удаляет один и более элементов. Данный командлет подд ерживается многими поставщиками, поэтому он может удалять элементы различны х типов, включая файлы, каталоги, разделы реестра, переменные, псевдонимы и функции. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету удалить элементы, которые не могут быть изменены д ругим образом, например скрытые файлы, файлы только для чтения, псевдон имы или переменные только для чтения. Командлет не может удалять псевдо нимы или переменные, являющиеся константами. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_P roviders. Даже при использовании параметра Force командлет не может пер еопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Удаляет только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.t xt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к удаляемым элементам. В отличие от значения параметра Path , значение параметра LiteralPath используется точно в том виде, в котор ом оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночн ые кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, чт о никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к удаляемым элементам. Подстановочные знаки разрешены. Имя параметра ("-Path") указывать необязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Recurse [<SwitchParameter>] Удаляет элементы из указанных местоположений и из всех дочерних элемент ов этих местоположений. Параметр Recurse работает в данном командлете некорректно. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь (но не литеральный путь), можно передать команд лету Remove-Item по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ К командлету Remove-Item также можно обращаться с помощью одного из вст роенных псевдонимов "del", "erase", "rmdir", "rd", "ri" или "rm". Допол нительные сведения см. в разделе About_Aliases. Командлет Remove-Item предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-item C:\Test\*.* Описание ----------- Эта команда удаляет все файлы из папки C:\Test, имена которых содержат точк у (.). Так как в данной команде указана точка, то она не может использовать ся для удаления каталогов и файлов без расширения. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>remove-item * -include *.doc -exclude *1* Описание ----------- Эти команды удаляют из текущей папки все файлы с расширением .doc, имена ко торых не содержат "1". Подстановочный знак (*) используется для обозначения всего содержимого текущей папки. Для указания файлов, которые необходимо у далить, используются параметры Include и Exclude. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>remove-item -path C:\Test\hidden-RO-file.txt -force Описание ----------- Эта команда удаляет файл, имеющий атрибуты "скрытый" и "только для чтения". Для задания файла используется параметр Path. Для предоставления прав на у даление указанного файла используется параметр Force. Файлы с атрибутами "т олько для чтения" или "скрытый" нельзя удалить без указания параметра Force . -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-childitem * -include *.csv -recurse | remove-item Описание ----------- Эта команда рекурсивно удаляет все CSV-файлы в текущем каталоге, включая вс е вложенные. Так как параметр Recurse не может использоваться в данном командлете, в ком анде используется командлет Get-Childitem, который извлекает необходимые фа йлы, и оператор конвейера, передающий их командлету Remove-Item. В команде Get-ChildItem параметр Path имеет значение *, что обозначает соде ржимое текущей папки. В данной команде для рекурсивного извлечения данных и спользуется параметр Recurse, а параметр Include указывает обработку только CSV-файлов. При указании типа файлов в пути, например "-path *.csv", командлет интерпре тирует объект поиска как файл без потомков, и происходит ошибка, связанная с параметром Recurse. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>remove-item hklm:\software\mycompany\OldApp -recurse Описание ----------- Эта команда удаляет раздел реестра OldApp, включая все его вложенные раздел ы и параметры. Для удаления раздела используется командлет Remove-Item. Пут ь указывается, а необязательное имя параметра (Path) опускается. При использовании параметра Recurse происходит рекурсивное удаление всего с одержимого раздела OldApp. Если в разделе содержатся подразделы и параметр Recurse не указан, отображается запрос на подтверждение удаления содержимог о раздела. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113373 about_Providers Clear-Item Copy-Item Get-Item Invoke-Item Move-Item New-Item Remove-ItemProperty Rename-Item Set-Item Remove-ItemProperty ИМЯ Remove-ItemProperty ОПИСАНИЕ Удаляет свойство элемента и его значение. СИНТАКСИС Remove-ItemProperty [-LiteralPath] <string[]> [-Name] <string[]> [-Credenti al <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Incl ude <string[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] Remove-ItemProperty [-Path] <string[]> [-Name] <string[]> [-Credential <PSC redential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <st ring[]>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-ItemProperty удаляет свойство элемента и его значение. Его можно использовать для удаления параметров реестра и их значений. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету удалить свойство объекта, которое было бы недоступ но пользователю другими способами. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Удаляет только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*.t xt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к свойству элемента. Значение параметра LiteralPath использ уется точно в том виде, в котором оно введено. Никакие символы не интер претируются как подстановочные знаки. Если путь включает escape-символы , его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретир овать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Задает имена извлекаемых свойств. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементу, свойства которого удаляются. Подстановочные зна ки разрешены. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь (но не литеральный путь), можно передать команд лету Remove-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Командлет Remove-ItemProperty также можно вызывать с помощью встроенног о псевдонима "rp". Чтобы получить дополнительные сведения, см. раздел a bout_Alias. При работе с поставщиком реестра Windows PowerShell параметры реестра с читаются свойствами разделов и вложенных разделов реестра. Для работы с этими параметрами можно использовать командлеты ItemProperty. Командлет Remove-ItemProperty предназначен для работы с данными, предос тавляемыми любым поставщиком. Чтобы получить список поставщиков, доступ ных в текущем сеансе, введите команду "Get-PSProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-itemproperty -path HKLM:\Software\SmpApplication -name SmpProp erty Описание ----------- Эта команда удаляет значение реестра SmpProperty и его данные из подраздела SmpApplication раздела "HKEY_LOCAL_MACHINE\Software". Так как команда запускается с диска файловой системы (C:\PS>), она включает полный путь к подразделу SmpApplication, включая диск HKLM: и раздел Softw are. Для задания удаляемого параметра реестра используется параметр Name. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-location HKCU:\Software\MyCompany\MyApp PS HKCU:\Software\MyCompany\MyApp> remove-itemproperty -path . -Name Option s -confirm Описание ----------- Данные команды удаляют параметр реестра Options и его значение из вложенног о раздела MyApp раздела HKEY_CURRENT_USER\Software\MyCompany. Первая команда с помощью командлета Set-Location изменяет текущее местополо жение на раздел Software\MyCompany\MyApp на диске HKEY_CURRENT_USER (HKCU:) . Вторая команда использует командлет Remove-Item для удаления параметра реес тра Options и его значения из вложенного раздела MyApp. Так как параметр Pa th является обязательным, то в команде используется точка (.) для задания т екущего местоположения. Для задания удаляемого параметра реестра использует ся параметр Name. Для подтверждения на удаление параметра используется пара метр Confirm. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-item -path HKLM:\Software\MyCompany | remove-itemproperty -name N oOfEmployees Описание ----------- Эта команда удаляет значение реестра NoOfEmployees и его данные из раздела "HKLM\Software\MyCompany". С помощью командлета Get-Item эта команда получает элемент, представляющий раздел реестра. Объект передается командлету Remove-ItemProperty с помощью оператора конвейера (|). Для задания имени значения реестра используется па раметр Name командлета Remove-ItemProperty. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113374 about_Providers Clear-ItemProperty Copy-ItemProperty Get-ItemProperty Move-ItemProperty New-ItemProperty Remove-Item Rename-ItemProperty Set-ItemProperty Remove-Job ИМЯ Remove-Job ОПИСАНИЕ Удаляет фоновое задание Windows PowerShell. СИНТАКСИС Remove-Job [-Id] <Int32[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters >] Remove-Job [-Command <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirm] [-WhatIf] [<CommonP arameters>] Remove-Job [-Job] <Job[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters> ] Remove-Job [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParam eters>] Remove-Job [-State {NotStarted | Running | Completed | Failed | Stopped | B locked}] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-Job удаляет фоновые задания Windows PowerShell, которые бы ли запущены с использованием командлета Start-Job или параметра AsJob любог о командлета. Этот командлет можно использовать для удаления всех или выбранных заданий п о имени, идентификатору, идентификатору экземпляра, команде или состоянию, либо передав объект задания командлету Remove-Job. Если команда Remove-Job вводится без параметров или значений параметров, она не оказывает никакого действия. Перед удалением выполняемого задания остановите его с помощью командлета St op-Job. Попытка удалить выполняемое задание приведет к завершению команды с ошибкой. Для удаления выполняемого задания используется параметр Force ком анды Remove-Job. Если не удалить фоновое задание, оно останется в глобальном кэше заданий до тех пор, пока не будет закрыт сеанс, в рамках которого было создано задани е. ПАРАМЕТРЫ -Command <string[]> Удаляет задания, в команды которых входят заданные слова. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Force [<SwitchParameter>] Удаляет задание, даже если его состояние имеет значение "Running". Без указания параметра Force команда Remove-Job не удалит выполняемое задан ие. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <Int32[]> Удаляет фоновые задания с указанными идентификаторами. ID — это целое значение, которое однозначно определяет задание в предел ах текущего сеанса. Это значение проще запомнить и ввести, чем идентифи катор экземпляра, но оно уникально только в рамках текущего сеанса. Мож но ввести один или несколько идентификаторов (разделенных запятыми). Чт обы найти значение идентификатора задания, введите "Get-Job" без параме тров. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid[]> Удаляет задания с указанными идентификаторами экземпляров. Идентификатор экземпляра — это GUID, который однозначно определяет зада ние на компьютере. Чтобы определить идентификатор экземпляра задания, и спользуйте командлет Get-Job или выведите сведения об объекте задания. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Job <Job[]> Указывает задания, которые требуется удалить. Укажите переменную, содер жащую задания, либо введите команду, получающую их. Для передачи задани й командлету Remove-Job можно также использовать оператор конвейера. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Удаляет только задания с указанными понятными именами. Подстановочные з наки разрешены. Поскольку понятное имя может быть не уникальным даже в рамках сеанса, п ри удалении заданий по имени следует использовать параметры WhatIf и Co nfirm. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -State <JobState> Удаляет только задания с указанным состоянием. Допустимые значения: "No tStarted", "Running", "Completed", "Stopped", "Failed" и "Blocked". Для удаления заданий с состоянием "Running" используйте параметр Force. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.Job Объект задания можно передать командлету Remove-Job по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$batch = get-job -name BatchJob C:\PS> $batch | remove-job Описание ----------- Эти команды удаляют фоновое задание BatchJob из текущего сеанса. Первая ком анда использует командлет Get-Job для получения объекта, представляющего за дание, а затем сохраняет задание в переменной $batch. Вторая команда переда ет задание в командлет Remove-Job с помощью оператора конвейера (|). Эта команда эквивалентна использованию параметра Job командлета Remove-Job, например "remove-job -job $batch". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-job | remove-job Описание ----------- Эта команда удаляет все задания в текущем сеансе. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>remove-job -state NotStarted Описание ----------- Эта команда удаляет в текущем сеансе все задания, которые еще не были запущ ены. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>remove-job -name *batch -force Описание ----------- Эта команда удаляет в текущем сеансе все задания, понятные имена которых за канчиваются на "batch", в том числе выполняемые задания. Параметр Name командлета Remove-Job используется для указания шаблона имени задания, а параметр Force — для обеспечения удаления всех заданий, включая задания, которые могут выполняться в данный момент. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob C:\PS> $j | remove-job Описание ----------- В этом примере показано, как использовать командлет Remove-Job для удаления задания, запущенного на удаленном компьютере с использованием параметра As Job командлета Invoke-Command. Первая команда использует командлет Invoke-Command для запуска задания на к омпьютере Server01. Параметр AsJob используется для запуска команды в виде фонового задания. Полученный объект задания сохраняется в переменной $j. Поскольку в команде используется параметр AsJob, объект задания создается н а локальном компьютере, даже если само задание выполняется на удаленном ком пьютере. Поэтому для управления заданием можно использовать локальные коман ды. Вторая команда удаляет задание с помощью командлета Remove-Job. Для передач и задания, сохраненного в переменной $j, в командлет Remove-Job используетс я оператор конвейера (|). Обратите внимание, что это локальная команда. Для удаления задания, запущенного на удаленном компьютере с использованием пар аметра AsJob, удаленная команда не требуется. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$s = new-pssession -computername Server01 C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {get -process} -name MyJob} C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob} Описание ----------- В этом примере показано, как удалить задание, запущенное с использованием к омандлета Invoke-Command для выполнения команды Start-Job. В этом случае об ъект задания создается на удаленном компьютере, а для управления заданием и спользуются удаленные команды. Первая команда создает сеанс PSSession (постоянное подключение) для компьют ера Server01 с использованием командлета New-PSSession. Постоянное подключе ние необходимо для удаленного выполнения команды Start-Job. Команда сохраня ет сеанс PSSession в переменной $s. Вторая команда использует командлет Invoke-Command для выполнения команды S tart-Job в сеансе PSSession, указанном в переменной $s. Задание запускает к оманду Get-Process. Параметр Name командлета Start-Job используется для зад ания понятного имени нового задания. Третья команда использует командлет Invoke-Command для выполнения команды R emove-Job в сеансе PSSession, указанном в переменной $s. Команда использует параметр Name командлета Remove-Job для указания удаляемого задания. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>$j = start-job -script {get-process powershell} C:\PS> $j | format-list -property * C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed C:\PS> $j = start-job -script {get-process powershell} C:\PS> $j | format-list -property * HasMoreData : False StatusMessage : Location : localhost Command : get-process powershell JobStateInfo : Failed Finished : System.Threading.ManualResetEvent InstanceId : dce2ee73-f8c9-483e-bdd7-a549d8687eed Id : 1 Name : Job1 ChildJobs : {Job2} Output : {} Error : {} Progress : {} Verbose : {} Debug : {} Warning : {} StateChanged : C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed Описание ----------- В этом примере показано, как удалить задание, используя его идентификатор э кземпляра. Первая команда использует командлет Start-Job для запуска фонового задания. Полученный объект задания сохраняется в переменной $j. Вторая команда передает объект задания, указанный в переменной $j, в команд у Format-List с помощью оператора конвейера (|). Команда Format-List исполь зует параметр Property со значением * (все) для отображения всех свойств об ъекта задания в списке. Для объекта задания отображаются значения свойств ID и InstanceID, а также других свойств объекта. Третья команда использует команду Remove-Job для удаления задания в текущем сеансе. Чтобы создать команду, можно скопировать значение InstanceID из от ображения объекта и вставить его. Чтобы скопировать значение в консоли Windows PowerShell, выделите его мышью и нажмите клавишу ВВОД. Чтобы вставить значение, щелкните правой кнопкой м ыши. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113377 about_Jobs about_Job_Details about_Remote_Jobs Start-Job Get-Job Receive-Job Wait-Job Stop-Job Invoke-Command Remove-Module ИМЯ Remove-Module ОПИСАНИЕ Удаляет модули из текущего сеанса. СИНТАКСИС Remove-Module [-ModuleInfo] <PSModuleInfo[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Module [-Name] <string[]> [-Force] [-Confirm] [-WhatIf] [<CommonPara meters>] ОПИСАНИЕ Командлет Remove-Module удаляет члены модуля из текущего сеанса. Если модуль содержит сборку (DLL), все члены, реализованные в сборке, удаля ются, но сборка не выгружается. ПАРАМЕТРЫ -Force [<SwitchParameter>] Удаляет модули, даже если свойство AccessMode имеет значение ReadOnly. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ModuleInfo <PSModuleInfo[]> Задает объекты модулей, которые требуется удалить. Введите переменную, содержащую объект модуля (PSModuleInfo), либо команду, получающую объек т модуля, например Get-Module. Кроме того, можно передать объекты модул ей в Remove-Module с помощью конвейера. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Определяет имена удаляемых модулей. Подстановочные знаки разрешены. Кр оме того, можно передать строки имени в Remove-Module с помощью конвейе ра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? true -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String, System.Management.Automation.PSModuleInfo Имена модулей (строки) и объекты модулей можно передать в Remove-Module по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Remove-Module не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Remove-Module также можно вызывать с помощью псевдонима "rmo" . Дополнительные сведения см. в разделе about_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-module -name BitsTransfer Описание ----------- Эта команда удаляет модуль BitsTransfer из текущего сеанса. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-module | remove-module Описание ----------- Эта команда удаляет все модули из текущего сеанса. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>"FileTransfer", "PSDiagnostics" | remove-module -verbose VERBOSE: Performing operation "Remove-Module" on Target "filetransfer (Path : 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\f iletransfer\filetransfer.psd1')". VERBOSE: Performing operation "Remove-Module" on Target "Microsoft.Backgrou ndIntelligentTransfer.Management (Path: 'C:\Windows\ assembly\GAC_MSIL\Microsoft.BackgroundIntelligentTransfer.Management\1.0.0. 0__31bf3856ad364e35\Microsoft.BackgroundIntelligentTransfe r.Management.dll')". VERBOSE: Performing operation "Remove-Module" on Target "psdiagnostics (Pat h: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ psdiagnostics\psdiagnostics.psd1')". VERBOSE: Removing imported function 'Start-Trace'. VERBOSE: Removing imported function 'Stop-Trace'. VERBOSE: Removing imported function 'Enable-WSManTrace'. VERBOSE: Removing imported function 'Disable-WSManTrace'. VERBOSE: Removing imported function 'Enable-PSWSManCombinedTrace'. VERBOSE: Removing imported function 'Disable-PSWSManCombinedTrace'. VERBOSE: Removing imported function 'Set-LogProperties'. VERBOSE: Removing imported function 'Get-LogProperties'. VERBOSE: Removing imported function 'Enable-PSTrace'. VERBOSE: Removing imported function 'Disable-PSTrace'. VERBOSE: Performing operation "Remove-Module" on Target "PSDiagnostics (Pat h: 'C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ psdiagnostics\PSDiagnostics.psm1')". Описание ----------- Эта команда удаляет модули FileTransfer и PSDiagnostics из текущего сеанса. Команда передает имена модулей в командлет Remove-Module с помощью оператор а конвейера (|). Общий параметр Verbose используется для получения подробно й информации об удаляемых членах. Подробные сообщения описывают удаляемые элементы. Эти сообщения различаются , поскольку модуль BitsTransfer включает сборку, реализующие его командлеты , и вложенный модуль с собственной сборкой. Модуль PSDiagnostics включает ф айл скрипта модуля (PSM1), который экспортирует функции. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$a = get-module BitsTransfer C:\PS> remove-module -moduleInfo $a Описание ----------- Эта команда удаляет модуль BitsTransfer с использованием параметра ModuleIn fo. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141556 Get-Module Import-Module about_modules Remove-PSBreakpoint ИМЯ Remove-PSBreakpoint ОПИСАНИЕ Удаляет из текущей консоли точки останова. СИНТАКСИС Remove-PSBreakpoint [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters >] Remove-PSBreakpoint [-Breakpoint] <Breakpoint[]> [-Confirm] [-WhatIf] [<Com monParameters>] ОПИСАНИЕ Командлет Remove-PSBreakpoint удаляет точку останова. Введите объект или ид ентификатор точки останова. При удалении точки останова объект точки останова становится недоступным и перестает функционировать. Если объект точки останова был сохранен в переме нной, ссылка сохранится, но точка останова не будет работать. Remove-PSBreakpoint — это один из нескольких командлетов, предназначенных д ля отладки скриптов Windows PowerShell. Дополнительные сведения об отладчик е Windows PowerShell см. в разделе about_Debuggers. ПАРАМЕТРЫ -Breakpoint <Breakpoint[]> Задает точки останова для удаления. Введите переменную, содержащую объе кты точек останова, либо команду, получающую объекты точек останова, на пример Get-PSBreakpoint. Кроме того, можно передать объекты точек остан ова командлету Remove-PSBreakpoint по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Id <Int32[]> Удаляет точки останова с заданными идентификаторами. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.Breakpoint Кроме того, можно передать объекты точек останова командлету Remove-PSB reakpoint по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-breakpoint | remove-breakpoint Описание ----------- Эта команда удаляет все точки останова в текущей консоли. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$b = set-psbreakpoint -script sample.ps1 -variable Name C:\PS> $b | remove-psbreakpoint Описание ----------- Эта команда удаляет точку останова. Первая команда использует командлет Set-PSBreakpoint, чтобы создать точку о станова на переменной Name в скрипте Sample.ps1. После этого она сохраняет в переменной $b объект точки останова. Вторая команда использует командлет Remove-PSBreakpoint, чтобы удалить эту новую точку останова. С помощью оператора конвейера (|) она передает объект точки останова в переменной $b командлету Remove-PSBreakpoint. В результате выполнения этой команды при запуске скрипта он будет выполнен до конца без остановки. Кроме того, командлет Get-PSBreakpoint не будет воз вращать эту точку останова. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>remove-psbreakpoint -id 2 Описание ----------- Эта команда удаляет точку останова с идентификатором 2. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>function del-psb { get-psbreakpoint | remove-psbreakpoint } Описание ----------- Эта простая функция удаляет все точки останова в текущей консоли. С помощью командлета Get-PSBreakpoint она получает точки останова. Затем с помощью о ператора конвейера (|) она передает точки останова командлету Remove-PSBrea kpoint, который удаляет их. В результате вместо более длинной команды пользователь вводит "del-psb". Чтобы сохранить эту функцию, ее следует добавить в профиль Windows PowerShe ll. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113375 about_Debuggers Set-PSBreakpoint Get-PSBreakpoint Enable-PSBreakpoint Disable-PSBreakpoint Get-PSCallStack Remove-PSDrive ИМЯ Remove-PSDrive ОПИСАНИЕ Удаляет диск Windows PowerShell из заданного местоположения. СИНТАКСИС Remove-PSDrive [-LiteralName] <string[]> [-Force] [-PSProvider <string[]>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters >] Remove-PSDrive [-Name] <string[]> [-Force] [-PSProvider <string[]>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-PSDrive удаляет диски Windows PowerShell, созданные с помо щью командлета New-PSDrive. Командлет Remove-PSDrive не может удалить диски Windows или подключенные се тевые диски, созданные с помощью других методов, и не может удалить текущий рабочий диск. ПАРАМЕТРЫ -Force [<SwitchParameter>] Позволяет командлету удалить текущий диск Windows PowerShell. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralName <string[]> Задает имя диска Windows PowerShell. Значение параметра LiteralName используется точно в том виде, в котором оно введено. Никакие символы не интерпретируются как подстановочные зн аки. Если имя включает escape-символы, его нужно заключить в одиночные кавычки ('). Одиночные кавычки указывают оболочке Windows PowerShell, ч то никакие символы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Задает имена удаляемых дисков Windows PowerShell. Не следует вводить дв оеточие (:) после имени диска. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PSProvider <string[]> Удаляет все диски Windows PowerShell, связанные с указанным поставщиком Windows PowerShell. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Scope <string> Принимает индекс, указывающий область, из которой удаляется диск. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSDriveInfo Объект диска можно передать командлету Remove-PSDrive по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Командлет Remove-PSDrive предназначен для работы с данными, предоставля емыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "get-psprovider". Дополнительные сведе ния см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-psdrive -name smp Описание ----------- Эта команда удаляет диск Windows PowerShell с именем "smp". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113376 about_Providers Get-PSDrive New-PSDrive Remove-PSSession ИМЯ Remove-PSSession ОПИСАНИЕ Закрывает один или несколько сеансов Windows PowerShell (PSSession). СИНТАКСИС Remove-PSSession [[-ComputerName] <string[]>] [-Confirm] [-WhatIf] [<Common Parameters>] Remove-PSSession [-Id] <Int32[]> [-Confirm] [-WhatIf] [<CommonParameters>] Remove-PSSession [-InstanceId <Guid[]>] [-Confirm] [-WhatIf] [<CommonParame ters>] Remove-PSSession [-Name <string[]>] [-Confirm] [-WhatIf] [<CommonParameters >] Remove-PSSession [-Session] <PSSession[]> [-Confirm] [-WhatIf] [<CommonPara meters>] ОПИСАНИЕ Командлет Remove-PSSession закрывает сеансы Windows PowerShell (PSSession) в текущем сеансе. Он останавливает все команды, выполняющиеся в сеансах PSS ession, закрывает сеанс PSSession и освобождает ресурсы, используемые таким сеансом. Если сеанс PSSession подключен к удаленному компьютеру, командлет Remove-PSSession также закрывает подключение между локальным и удаленным к омпьютерами. Чтобы удалить сеанс PSSession, введите имя сеанса, имя компьютера, идентифи катор или идентификатор экземпляра сеанса (параметр Name, ComputerName, ID или InstanceID соответственно), Если сеанс PSSession сохранен в переменной, объект сеанса остается в переме нной, но состояние сеанса изменяется на "Closed". ПАРАМЕТРЫ -ComputerName <string[]> Закрывает сеансы PSSession, связанные с указанными компьютерами. Подста новочные знаки разрешены. Введите имя NetBIOS, IP-адрес или полное доменное имя одного или нескол ьких удаленных компьютеров. Чтобы указать локальный компьютер, введите имя компьютера, "localhost" или точку (.). Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Id <Int32[]> Закрывает сеансы PSSession с указанными идентификаторами. Введите один или несколько идентификаторов (разделенных запятыми) или используйте оп ератор диапазона (..), чтобы задать диапазон идентификаторов. Идентификатор — это целое значение, которое однозначно определяет сеанс PSSession в пределах текущего сеанса. Это значение проще запомнить и в вести, чем InstanceId, но оно уникально только в рамках текущего сеанса . Чтобы определить идентификатор сеанса PSSession, используйте команду Get-PSSession без параметров. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid[]> Закрывает сеансы PSSession с указанными идентификаторами экземпляров. Идентификатор экземпляра — это GUID, который однозначно определяет сеан с PSSession в пределах текущего сеанса. Идентификатор InstanceID являет ся уникальным даже при выполнении нескольких сеансов на одном компьютер е. Идентификатор экземпляра InstanceID хранится в свойстве InstanceID объе кта, представляющего сеанс PSSession. Чтобы определить идентификаторы э кземпляров InstanceID сеансов PSSession в текущем сеансе, введите коман ду "get-pssession | format-table Name, ComputerName, InstanceId". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Закрывает сеансы PSSession с указанными понятными именами. Подстановочн ые знаки разрешены. Поскольку понятное имя сеанса PSSession может быть не уникальным, при и спользовании параметра Name следует рассмотреть возможность использован ия параметра WhatIf или Confirm в команде Remove-PSSession. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Session <PSSession[]> Указывает объекты сеансов PSSession, которые требуется закрыть. Введит е переменную, содержащую объекты PSSession, либо команду, создающую или получающую объекты PSSession, например New-PSSession или Get-PSSession . Кроме того, можно передать один или несколько объектов сеансов в Remo ve-PSSession по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.Runspaces.PSSession Можно передать объект сеанса командлету Remove-PSSession по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Remove-PSSession не возвращает никаких объектов. ПРИМЕЧАНИЯ Параметр ID является обязательным. Нельзя вводить команду remove-pssess ion без параметров. Чтобы удалить все сеансы PSSession в текущем сеансе , введите команду "get-pssession | remove-pssession". В сеансе PSSession используется постоянное подключение к удаленному ком пьютеру. Сеанс PSSession следует создать для выполнения последовательно сти команд, работающих с общими данными. Дополнительные сведения см. в разделе about_PSSessions. Сеансы PSSession относятся к текущему сеансу. При закрытии сеанса созда нные в нем сеансы PSSession принудительно закрываются. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-pssession -id 1, 2 Описание ----------- Эта команда удаляет сеансы PSSession с идентификаторами "1" и "2". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-pssession | remove-pssession C:\PS> remove-pssession -session (get-pssession) C:\PS> $s = get-pssession C:\PS> remove-pssession -session $s". Описание ----------- Эти команды удаляют все сеансы PSSession в текущем сеансе. Несмотря на то ч то три команды имеют различный формат, они выполняют одни и те же действия. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$r = get-pssession -computername Serv* $r | remove-pssession Описание ----------- Эти команды закрывают сеансы PSSession, связанные с компьютерами, имена кот орых начинаются на "Serv". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-pssession | where {$_.port -eq 90} | remove-pssession Описание ----------- Эта команда закрывает сеансы PSSession, подключенные к порту 90. С помощью этого формата команды можно задать сеансы PSSession, используя свойства, от личные от ComputerName, Name, InstanceID и ID. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-pssession | ft computername, instanceID -auto ComputerName InstanceId ------------ ---------------- Server01 875d231b-2788-4f36-9f67-2e50d63bb82a localhost c065ffa0-02c4-406e-84a3-dacb0d677868 Server02 4699cdbc-61d5-4e0d-b916-84f82ebede1f Server03 4e5a3245-4c63-43e4-88d0-a7798bfc2414 TX-TEST-01 fc4e9dfa-f246-452d-9fa3-1adbdd64ae85 C:\PS> remove-pssession -InstanceID fc4e9dfa-f246-452d-9fa3-1adbdd64ae85 Описание ----------- Эти команды закрывают сеанс PSSession, используя его идентификатор экземпля ра (RemoteRunspaceID). Первая команда получает сведения о сеансах PSSession в текущем сеансе с исп ользованием командлета Get-PSsession. С помощью оператора конвейера (|) сеа нсы PSSession передаются командлету Format-Table (псевдоним: ft), который ф орматирует их свойства ComputerName и InstanceID в виде таблицы. Параметр A utoSize ("auto") сжимает столбцы при отображении. В отображаемых результатах можно найти сеанс PSSession, который требуется з акрыть, а затем скопировать и вставить его свойство InstanceID во вторую ко манду. Вторая команда использует командлет Remove-PSSession для удаления сеанса PS Session с указанным идентификатором экземпляра. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>function EndPSS { get-pssession | remove-pssession } Описание ----------- Эта функция удаляет все сеансы PSSession в текущем сеансе. После добавления этой функции в профиль Windows PowerShell для удаления всех сеансов достат очно будет ввести "endpss". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135250 about_PSSessions about_Remote New-PSSession Get-PSSession Enter-PSSession Exit-PSSession Invoke-Command Remove-PSSnapin ИМЯ Remove-PSSnapin ОПИСАНИЕ Удаляет оснастки Windows PowerShell из текущего сеанса. СИНТАКСИС Remove-PSSnapin [-Name] <string[]> [-PassThru] [-Confirm] [-WhatIf] [<Commo nParameters>] ОПИСАНИЕ Командлет Remove-PSSnapin удаляет оснастку Windows PowerShell из текущего с еанса. Он используется для удаления оснасток, которые были добавлены в обол очку Windows PowerShell, но его нельзя использовать для удаления оснасток, установленных вместе с Windows PowerShell. После удаления оснастки из текущего сеанса она остается загруженной, однако командлеты и поставщики оснастки будут недоступны в данном сеансе. ПАРАМЕТРЫ -Name <string[]> Задает имена оснасток Windows PowerShell, которые требуется удалить из текущего сеанса. Имя параметра ("Name") указывать необязательно. В знач ении разрешается использовать подстановочные знаки (*). Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -PassThru [<SwitchParameter>] Возвращает объект, представляющий оснастку. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSSnapInInfo Можно передать объект оснастки командлету Remove-PSSnapin по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSSnapInInfo По умолчанию командлет Remove-PsSnapin не формирует никаких выходных да нных. При использовании параметра PassThru командлет создает объект Sys tem.Management.Automation.PSSnapInInfo, представляющий оснастку. ПРИМЕЧАНИЯ Командлет Remove-PSSnapin также можно вызывать с помощью встроенного пс евдонима "rsnp". Дополнительные сведения см. в разделе about_Aliases. Командлет Remove-PSSnapin не проверяет версию Windows PowerShell перед удалением оснастки из сеанса. Если оснастка не может быть удалена, отоб ражается предупреждение, и команда завершается с ошибкой. Командлет Remove-PSSnapin влияет только на текущий сеанс. Если в профил ь Windows PowerShell добавлена команда Add-PSSnapin, для удаления оснас тки из будущих сеансов эту команду следует удалить. Инструкции см. в ра зделе about_Profiles. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-pssnapin -name Microsoft.Exchange Описание ----------- Эта команда удаляет из текущего сеанса оснастку Microsoft.Exchange. После в ыполнения команды командлеты и поставщики, поддерживаемые этой оснасткой, б удут недоступны в этом сеансе. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-PSSnapIn smp* | remove-PSSnapIn Описание ----------- Эта команда удаляет из текущего сеанса оснастки Windows PowerShell, имена к оторых начинаются с "smp". С помощью командлета Get-PSSnapin команда получает объекты, представляющие оснастки. Оператор конвейера (|) передает результаты командлету Remove-PSSn apin, который удаляет их из сеанса. Поддерживаемые оснасткой поставщики и к омандлеты более не доступны в сеансе. При передаче объектов командлету Remove-PSSnapin по конвейеру имена объекто в связываются с параметром Name, который принимает по конвейеру объекты, со держащие свойство Name. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>remove-pssnapin -name *event* Описание ----------- Эта команда удаляет все оснастки Windows PowerShell, в именах которых содер жится слово "event". В этой команде используется имя параметра "Name", одна ко имя параметра можно опустить, поскольку оно является необязательным. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113378 Add-PSSnapin Get-PSSnapin about_Profiles Remove-Variable ИМЯ Remove-Variable ОПИСАНИЕ Удаляет переменную и ее значение. СИНТАКСИС Remove-Variable [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-Variable удаляет переменную вместе с ее значением из облас ти, в которой она определена, например из текущей консоли. Этот командлет н ельзя использовать для удаления переменных, определенных как константы, и с истемных переменных. ПАРАМЕТРЫ -Exclude <string[]> Исключает указанные элементы. Значение данного параметра определяет зна чение параметра Name. Введите часть имени или шаблон, например "s*". По дстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету удалить переменную, даже если файл доступен только для чтения. Даже при использовании параметра Force командлет не может удалить константу. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Удаляет только указанные элементы. Значение данного параметра определяе т значение параметра Name. Введите часть имени или шаблон, например "s* ". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Указывает имя удаляемой переменной. Имя параметра ("Name") указывать не обязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Scope <string> Задает область действия псевдонима. Допустимые значения: "Global", "Loc al", "Script" или номер относительно текущей области (от 0 до количеств а областей, где 0 — текущая область, а 1 — ее родительская область). По умолчанию используется значение "Local". Дополнительные сведения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSVariable Кроме того, можно передать объект переменной командлету Remove-Variable по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Изменения действуют только в пределах текущей области, например сеанса. Чтобы удалить переменную из всех сеансов, следует добавить в профиль W indows PowerShell команду Remove-Variable. Командлет Remove-Variable также можно вызывать с помощью встроенного пс евдонима "rv". Дополнительные сведения см. в разделе About_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>remove-variable Smp Описание ----------- Эта команда удаляет переменную $Smp. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113380 Set-Variable Get-Variable Clear-Variable New-Variable about_Profiles Remove-WmiObject ИМЯ Remove-WmiObject ОПИСАНИЕ Удаляет экземпляр существующего класса инструментария управления Windows (W MI). СИНТАКСИС Remove-WmiObject [-Class] <string> [-Authentication {Default | None | Conne ct | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Author ity <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-Ena bleAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Imperso nate | Delegate}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-Throt tleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-WmiObject [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Co mputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-ThrottleLimit <int>] [- Confirm] [-WhatIf] [<CommonParameters>] Remove-WmiObject -InputObject <ManagementObject> [-AsJob] [-ThrottleLimit int>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-WmiObject -Path <string> [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-Enable AllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonat e | Delegate}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-Throttle Limit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-WmiObject [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Co mputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-ThrottleLimit <int>] [- Confirm] [-WhatIf] [<CommonParameters>] Remove-WmiObject [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Co mputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-ThrottleLimit <int>] [- Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-WmiObject удаляет экземпляр существующего класса WMI. ПАРАМЕТРЫ -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания. Этот параметр служит дл я запуска команд, выполнение которых занимает длительное время. Запускает команду в качестве фонового задания. Этот параметр служит для запуска команд, выполнение которых занимает длительное время. При использовании параметра AsJob команда возвращает объект, представля ющий фоновое задание, а затем отображает командную строку. Пока задание выполняется можно продолжать работу в сеансе. Если командлет Remove-Wm iObject используется для работы с удаленным компьютером, задание создае тся на локальном компьютере, и результаты с удаленных компьютеров автом атически возвращаются на локальный компьютер. Для управления заданием и спользуйте командлеты, в именах которых содержится существительное Job (командлеты Job). Чтобы получить результаты задания, используйте команд лет Receive-Job. Примечание. Чтобы использовать этот параметр для удаленных компьютеров, для локального и удаленного компьютеров должно быть настроено удаленно е взаимодействие. Кроме того, при работе с компьютером под управлением Windows Vista и более поздних версий Windows необходимо запускать Windo ws PowerShell командой "Запуск от имени администратора". Дополнительные сведения см. в разделе about_Remote_Requirements. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в р азделах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationLevel> Задает уровень проверки подлинности, используемый для WMI-соединения. Д опустимые значения: -1: Unchanged 0: Default 1: None (проверка подлинности не используется). 2: Connect (проверка подлинности выполняется только при установке клиен том подключения к приложению). 3: Call (проверка подлинности выполняется только в начале каждого вызов а при получении запроса приложением). 4: Packet (проверка подлинности выполняется при обработке всех данных, полученных от клиента). 5: PacketIntegrity (для всех данных, передаваемых между клиентом и прил ожением, проводится проверка подлинности и проверка целостности). 6: PacketPrivacy (используются свойства других уровней проверки подлинн ости, все данные шифруются). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authority <string> Задает центр, который используется для проверки подлинности WMI-соедине ния. Можно указать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра Authority значение "ntlm domain:<имя_домена>", где <имя_домена> — допустимое имя домена NTLM. Чт обы использовать Kerberos, укажите "kerberos:<имя_домена>\<имя_сервера> ". При подключении к локальному компьютеру нельзя использовать параметр Authority. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Class <string> Задает имя удаляемого класса WMI. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Используйте имя локального компьютера, "localhost" или точку (.) что бы указать "Локальный компьютер". Локальный компьютер используется по у молчанию. Если пользователь и удаленный компьютер находятся в разных до менах, необходимо использовать полное доменное имя. Можно передать знач ение этому параметру по конвейеру. Этот параметр не использует функцию удаленного взаимодействия Windows P owerShell, которая использует протокол WS-Management. Параметр Computer Name командлета Get-WmiObject можно использовать, даже если компьютер н е настроен на выполнение удаленных команд по протоколу WS-Management. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Contoso.com". Или укажите объект PSCredential, наприм ер объект, возвращенный командлетом Get-Credential. При вводе имени пол ьзователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EnableAllPrivileges [<SwitchParameter>] Включает все привилегии текущего пользователя перед вызовом WMI из кома нды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Impersonation <ImpersonationLevel> Задает используемый уровень олицетворения. Допустимые значения: 0: Default (считывает значение уровня представления по умолчанию из лок ального реестра, обычно это значение равняется "3: Impersonate"). 1: Anonymous (скрывает учетные данные вызывающего). 2: Identify (позволяет объектам запрашивать учетные данные вызывающего) . 3: Impersonate (позволяет объектам использовать учетные данные вызывающ его). 4: Delegate (позволяет объектам разрешать другим объектам использовать учетные данные вызывающего). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ManagementObject> Задает объект ManagementObject, используемый в качестве входных данных. При использовании этого параметра все остальные параметры игнорируются . Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Locale <string> Задает предпочтительную локаль для объектов WMI. Значение параметра Loc ale задается как массив в формате MS_<LCID> в желаемом порядке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Namespace <string> При использовании с параметром Class данный параметр задает пространств о имен хранилища WMI, в котором находится указанный класс WMI. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к классу WMI или экземпляру класса WMI, который требуется у далить. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Дает возможность пользователю указать пороговое значение количества опе раций WMI, которые могут выполняться одновременно. Этот параметр исполь зуется вместе с параметром AsJob. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.ManagementObject Объект управления можно передать командлету Remove-WmiObject по конвейе ру. ВЫХОДНЫЕ ДАННЫЕ None или System.Management.Automation.RemotingJob Если задан параметр AsJob, этот командлет возвращает объект задания. В противном случае командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>notepad C:\PS> $np = get-wmiobject -query "select * from win32_process where name=' notepad.exe'" C:\PS> $np | remove-wmiobject Описание ----------- Эта команда закрывает все экземпляры программы Notepad.exe. Первая команда запускает экземпляр Блокнота (Notepad). Во второй команде используется командлет Get-WmiObject для извлечения экзем пляров Win32_Process, соответствующих программе Notepad.exe, затем они сохр аняются в переменной $np. Третья команда передает объект в переменной $np командлету Remove-WmiObject , который удаляет все экземпляры программы Notepad.exe. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$a = Get-WMIObject -query "Select * From Win32_Directory Where Name = 'C:\\Test'" C:\PS> $a | Remove-WMIObject Описание ----------- Эта команда удаляет каталог C:\Test. Первая команда с помощью командлета Get-WMIObject запрашивает каталог C:\Te st и сохраняет его в переменной $a. Вторая команда передает по конвейеру переменную $a командлету Remove-WMIObj ect, который удаляет каталог. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113381 Get-WmiObject Invoke-WmiMethod Set-WmiInstance Get-WSManInstance Invoke-WSManAction New-WSManInstance Remove-WSManInstance Remove-WSManInstance ИМЯ Remove-WSManInstance ОПИСАНИЕ Удаляет экземпляр ресурса управления. СИНТАКСИС Remove-WSManInstance [-ApplicationName <string>] [-ComputerName <string>] [ -Port <int>] [-UseSSL] [[-SelectorSet] <hashtable>] [-AuthenticationMechani sm <AuthenticationMechanism>] [-Credential <PSCredential>] [-OptionSet <has htable>] [-ResourceURI <Uri>] [-SessionOption <hashtable>] [<CommonParamete rs>] Remove-WSManInstance [-ConnectionURI <Uri>] [[-SelectorSet] <hashtable>] [- AuthenticationMechanism <AuthenticationMechanism>] [-Credential <PSCredenti al>] [-OptionSet <hashtable>] [-ResourceURI <Uri>] [-SessionOption <hashtab le>] [<CommonParameters>] ОПИСАНИЕ Командлет Remove-WSManInstance удаляет экземпляр ресурса управления, заданн ый параметрами ResourceURI и SelectorSet. Для удаления экземпляра ресурса управления командлет использует уровень сое динений/транспорта WinRM. ПАРАМЕТРЫ -ApplicationName <string> Задает имя приложения для подключения. По умолчанию параметр Applicatio nName имеет значение "WSMAN". Полный идентификатор удаленной конечной т очки имеет следующий формат: <протокол>://<сервер>:<порт>/ Пример: http://server01:8080/WSMAN Службы IIS, которые обрабатывают сеанс, перенаправляют запросы с данной конечной точкой указанному приложению. Значение по умолчанию "WSMAN" п одходит для большинства случаев. Этот параметр предназначен для использ ования, когда большое число компьютеров устанавливают удаленные подключ ения к одному компьютеру, на котором работает Windows PowerShell. В это м случае для повышения эффективности веб-службы WS-Management размещают ся в службах IIS. Требуется? false Позиция? named Значение по умолчанию wsman Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AuthenticationMechanism <AuthenticationMechanism> Задает механизм проверки подлинности, используемый на сервере. Возможны е значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Default: использовать метод проверки подлинности, реализованный прото колом WS-Management. Это значение используется по умолчанию. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Kerberos: выполняется взаимная проверка подлинности компьютера и серв ера с использованием сертификатов Kerberos. - Negotiate: при использовании схемы Negotiate между компьютером и серв ером или прокси происходит обмен данными по принципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности . Например, это значение параметра разрешает согласование одного из дву х методов проверки подлинности: Kerberos или NTLM. - CredSSP: использовать проверку подлинности CredSSP (Credential Securi ty Service Provider), при которой пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускаю тся на одном удаленном компьютере, но собирают данные с других удаленны х компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Чтобы задать локальный компьютер, введите имя компьютера, "localhost " или точку (.). Локальный компьютер используется по умолчанию. Если по льзователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Значение этого параметра можно перед ать командлету по конвейеру. Требуется? false Позиция? named Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConnectionURI <Uri> Задает конечную точку соединения. Строка имеет следующий формат: <протокол>://<сервер>:<порт>/ Следующая строка представляет собой правильно отформатированное значени е для этого параметра: http://Server01:8080/WSMAN Значение URI должно быть указано полностью. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Domain.com". Или укажите объект PSCredential, наприме р возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -OptionSet <hashtable> Передает службе набор параметров для изменения или уточнения запроса. П ередаваемые параметры похожи на параметры, используемые в оболочках ком андной строки: они зависят от конкретной службы. Можно задать произволь ное количество параметров. В следующем примере показано синтаксическое выражение, позволяющее пере дать значения 1, 2 и 3 параметрам a, b и c соответственно: -OptionSet @{a=1;b=2;c=3} Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Port <int> Задает порт, используемый клиентом для подключения к службе WinRM. Если в качестве транспорта выбран HTTP, по умолчанию используется порт 80. Если в качестве транспорта выбран HTTPS, по умолчанию используется порт 443. При использовании в качестве транспорта HTTPS значение параметра ComputerName должно соответствовать общему имени сертификата сервера. О днако, если в качестве элемента параметра SessionOption указан параметр SkipCNCheck, общее имя сертификата сервера не обязательно должно соотв етствовать имени узла сервера. Параметр SkipCNCheck следует использоват ь только в случае доверенных компьютеров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ResourceURI <Uri> Содержит универсальный идентификатор ресурса (URI) экземпляра или класс а ресурса. URI используется для определения конкретного типа ресурса, н апример диска или процесса, на компьютере. URI состоит из префикса и пути к ресурсу. Пример: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Log icalDisk http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSenso r Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SelectorSet <hashtable> Задает набор пар значений, которые используются для выбора конкретных э кземпляров ресурса управления. Параметр SelectorSet используется в случ ае существования нескольких экземпляров ресурса. Значение параметра Sel ectorSet представляет собой хэш-таблицу. В следующем примере показано, как задать значение для этого параметра: -SelectorSet @{Name="WinRM";ID="yyy"} Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -SessionOption <hashtable> Определяет расширенные параметры сеанса WS-Management. Введите объект S essionOption, созданный с помощью командлета New-WSManSessionOption. До полнительные сведения о доступных параметрах см. в разделе New-WSManSes sionOption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Указывает, что для установки подключения к удаленному компьютеру должен использоваться протокол SSL (Secure Sockets Layer). По умолчанию SSL н е используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. Параметр UseSSL позволяет указать, что необходимо испол ьзовать дополнительную меру защиты: протокол HTTPS вместо HTTP. Если ук азан этот параметр, однако используемый для подключения порт не поддерж ивает SSL, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Remove-WmiObject (один из командлетов инструментария управлен ия Windows [WMI]) аналогичен данному командлету. Для создания или обнов ления экземпляров WMI командлет Remove-WmiObject использует уровень сое динений/транспорта DCOM. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Remove-WSManInstance winrm/config/Listener -SelectorSet Address=test. fabrikam.com;Transport=http Описание ----------- Удаляет HTTP-прослушиватель WS-Management на компьютере. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141453 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Set-WSManInstance Set-WSManQuickConfig Test-WSMan Remove-WmiObject Rename-Item ИМЯ Rename-Item ОПИСАНИЕ Переименовывает элемент в пространстве имен поставщика Windows PowerShell. СИНТАКСИС Rename-Item [-Path] <string> [-NewName] <string> [-Credential <PSCredential >] [-Force] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonPara meters>] ОПИСАНИЕ Командлет Rename-Item изменяет имя указанного элемента. При использовании д анного командлета содержимое элемента не изменяется. Нельзя использовать командлет Rename-Item для перемещения элемента, наприме р, посредством задания пути вместе с новым именем. Чтобы переместить и пере именовать элемент, воспользуйтесь командлетом Move-Item. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету переименовать элементы, которые не могут быть изме нены другим образом, например скрытые файлы, файлы только для чтения, п севдонимы или переменные только для чтения. Командлет не может изменять псевдонимы или переменные, являющиеся константами. Реализация варьируе тся от поставщика к поставщику. Дополнительные сведения см. в разделе A bout_Providers. Даже при использовании параметра Force командлет не мож ет переопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NewName <string> Задает новое имя элемента. Введите только имя, а не путь и имя. Если вв ести путь, отличный от указанного в параметре Path, командлет Rename-It em выдает ошибку. Чтобы переименовать и переместить элемент, воспользуй тесь командлетом Move-Item. В значении параметра NewName нельзя использовать подстановочные знаки. Чтобы задать имена для нескольких файлов, используйте оператор Replace в регулярном выражении. Чтобы получить дополнительные сведения об опера торе Replace, введите команду "get-help about_comparison_operators". По рядок использования см. в примерах. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает по конвейеру объект, представляющий элемент. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к переименовываемому элементу. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Rename-Item по конве йеру. ВЫХОДНЫЕ ДАННЫЕ Нет или объект, представляющий переименованный элемент. При использовании параметра Passthru командлет Rename-Item создает объе кт, представляющий переименованный элемент. В противном случае этот ком андлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Rename-Item предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>rename-item -path c:\logfiles\daily_file.txt -newname monday_file.txt Описание ----------- Эта команда переименовывает файл daily_file.txt в monday_file.txt. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>rename-item -path project.txt -newname d:\archive\old-project.txt Rename-Item : Cannot rename because the target specified represents a path or device name. At line:1 char:12 + rename-item < -path project.txt -newname d:\archive\old-project.txt + CategoryInfo : InvalidArgument: (:) [Rename-Item], PSArgumen tException + FullyQualifiedErrorId : Argument,Microsoft.PowerShell.Commands.Rename ItemCommand C:\PS> move-item -path project.txt -destination d:\archive\old-project.txt # Command succeeds Описание ----------- В этом примере показано, что командлет Rename-Item не позволяет одновременн о переименовать и переместить элемент. В качестве значения параметра NewNam e можно задать путь только в случае, если этот путь совпадает со значением параметра Path. Во всех остальных случаях разрешается использовать только н овое имя. Первая команда с помощью командлета Rename-Item изменяет имя файла project. txt, расположенного в текущем каталоге, присваивая ему новое имя old-projec t.txt, после чего предпринимается попытка перемещения файла в каталог "D:\A rchive". В результате формируется сообщение об ошибке. Вторая команда представляет правильный способ перемещения и переименования файла с помощью командлета Move-Item. Командлет Move-Item позволяет задать в значении параметра Destination как новый путь, так и новое имя. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>rename-item HKLM:\Software\MyCompany\Advertising -NewName Marketing Описание ----------- Эта команда с помощью командлета Rename-Item переименовывает раздел реестра Advertising в Marketing. После выполнения команды имя раздела изменяется, а записи реестра в этом разделе не изменяются. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-childItem *.txt | rename-item -newname { $_.name -replace '\.txt' ,'.log' } Описание ----------- В этом примере показано, как использовать оператор Replace для переименован ия нескольких файлов, даже несмотря на то что в значении параметра NewName нельзя использовать подстановочные знаки. Эта команда переименовывает все файлы с расширением ".txt" в текущем катало ге в файлы с расширением ".log". С помощью командлета Get-ChildItem эта команда получает все файлы из текуще го каталога, имеющие расширение ".txt". Затем с помощью оператора конвейера (|) результирующие файлы передаются командлету Rename-Item. В командлете Rename-Item значение параметра NewName является блоком скрипта , который выполняется до передачи значения параметру NewName. В блоке скрипта автоматическая переменная $_ представляет каждый объект фай ла, передаваемый команде по конвейеру. Команда использует обращение через т очку (.), чтобы получить значение свойства Name каждого объекта файла. Опер атор Replace заменяет расширение ".txt" каждого файла расширением ".log". Поскольку оператор Replace работает с регулярными выражениями, точка в нача ле строки "txt" интерпретируется как любой символ. Чтобы точка интерпретиро валась исключительно как точка (.), используется escape-символ — обратная к осая черта (\). Обратная косая черта не требуется в записи ".log", потому ч то это срока, а не регулярное выражение. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113382 about_Providers Clear-Item Invoke-Item Move-Item Rename-ItemProperty Set-Item New-Item Remove-Item Get-Item Copy-Item Rename-ItemProperty ИМЯ Rename-ItemProperty ОПИСАНИЕ Переименовывает свойство элемента. СИНТАКСИС Rename-ItemProperty [-LiteralPath] <string> [-Name] <string> [-NewName] <st ring> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTrans action] [<CommonParameters>] Rename-ItemProperty [-Path] <string> [-Name] <string> [-NewName] <string> [ -Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Forc e] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Rename-ItemProperty изменяет имя указанного свойства элемента. Пр и этом значение свойства не изменяется. Например, командлет Rename-ItemProp erty можно использовать для изменения имени записи реестра. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету переименовать свойство объекта, которое было бы не доступно пользователю другими способами. Реализация варьируется от пост авщика к поставщику. Дополнительные сведения см. в разделе About_Provid ers. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Определяет только элементы, которые будут обработаны командлетом, и иск лючает все остальные. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string> Задает путь к свойству элемента. Значение параметра LiteralPath использ уется точно в том виде, в котором оно введено. Никакие символы не интер претируются как подстановочные знаки. Если путь включает escape-символы , его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретир овать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает текущее имя переименовываемого свойства. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -NewName <string> Задает новое имя свойства. Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий свойство элемента. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к переименовываемому элементу. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь (но не литеральный путь), можно передать команд лету Rename-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSCustomObject Если задан параметр PassThru, командлет Rename-ItemProperty создает объ ект PSCustomObject, представляющий переименованное свойство элемента. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Remove-ItemProperty предназначен для работы с данными, предос тавляемыми любым поставщиком. Чтобы получить список поставщиков, доступ ных в текущем сеансе, введите команду "Get-PSProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>rename-itemproperty -path HKLM:\Software\SmpApplication -name config -newname oldconfig Описание ----------- Эта команда переименовывает запись реестра в разделе HKEY_LOCAL_MACHINE\Sof tware\SmpApplication с именем "config" в "oldconfig". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113383 about_Providers Rename-Item Clear-ItemProperty Copy-ItemProperty Get-ItemProperty Move-ItemProperty New-ItemProperty Remove-ItemProperty Set-ItemProperty Reset-ComputerMachinePassword ИМЯ Reset-ComputerMachinePassword ОПИСАНИЕ Сбрасывает пароль учетной записи компьютера. СИНТАКСИС Reset-ComputerMachinePassword [-Server <string>] [-Confirm] [-WhatIf] [<Com monParameters>] ОПИСАНИЕ Командлет Reset-ComputerMachinePassword изменяет пароль учетной записи, исп ользуемой компьютерами для прохождения проверки подлинности на контроллерах домена. Этот командлет можно использовать для сброса пароля локального ком пьютера. ПАРАМЕТРЫ -Server <string> Задает имя контроллера домена, используемого при задании пароля учетной записи компьютера. Это необязательный параметр. Если этот параметр не указан, команда выпо лняется текущим контроллером домена. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Reset-ComputerMachinePassword Описание ----------- Эта команда сбрасывает пароль локального компьютера. Команда выполняется с использованием учетных данных текущего пользователя. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Reset-ComputerMachinePassword -server DC01 Описание ----------- Эта команда сбрасывает пароль локального компьютера с помощью контроллера д омена DC01. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>invoke-command -computername Server01 -scriptblock {reset-computermac hinepassword} Описание ----------- Эта команда с помощью командлета Invoke-Command запускает команду Reset-Com puterMachinePassword на удаленном компьютере Server01. Дополнительные сведения о выполнении удаленных команд в Windows PowerShell см. в разделе about_remote_requirements, а также в разделе, посвященном ком андлету Invoke-Command. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135252 Resolve-Path ИМЯ Resolve-Path ОПИСАНИЕ Разрешает значения подстановочных знаков в пути и отображает содержимое, на ходящееся по заданному пути. СИНТАКСИС Resolve-Path [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Relat ive] [-UseTransaction] [<CommonParameters>] Resolve-Path [-Path] <string[]> [-Credential <PSCredential>] [-Relative] [- UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Resolve-Path интерпретирует подстановочные знаки в пути и отображ ает элементы и контейнеры, которые находятся в указанном местоположении, на пример файлы и папки или разделы и подразделы реестра. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, созданных коман длетом Get-Credential. При вводе имени пользователя система запросит па роль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь, который требуется разрешить. Значение параметра LiteralPat h используется точно в том виде, в котором оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escap e-символы, его нужно заключить в одиночные кавычки. Одиночные кавычки у казывают оболочке Windows PowerShell, что никакие символы не следует ин терпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь Windows PowerShell, который требуется разрешить. Это обязат ельный параметр. Можно также передать строку пути командлету Resolve-Pa th по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Relative [<SwitchParameter>] Возвращает относительный путь. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Resolve-Path по конв ейеру. ВЫХОДНЫЕ ДАННЫЕ System.String Командлет Resolve-Path возвращает строку с разрешенным путем. ПРИМЕЧАНИЯ Командлеты, в именах которых содержится существительное Path (командлет ы Path), оперируют именами путей и возвращают эти имена в сокращенном ф ормате, который поддерживается всеми поставщиками Windows PowerShell. О ни предназначены для использования в программах и скриптах, в которых т ребуется отображать имя пути или его часть в конкретном формате. Исполь зуйте их аналогично другим командам для работы с путями, таким как Dirn ame, Normpath, Realpath и Join. Командлеты Path можно использовать с несколькими поставщиками, включая FileSystem, Registry и Certificate. Командлет Resolve-Path предназначен для работы с данными, предоставляем ыми любым поставщиком. Чтобы получить список поставщиков, доступных в т екущем сеансе, введите команду "Get-PSProvider". Дополнительные сведени я см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>resolve-path ~ C:\Users\User01 Описание ----------- Эта команда разрешает путь, представленный символом "~", который обозначает путь к корневому каталогу. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>resolve-path windows C:\Windows Описание ----------- При запуске из корневого каталога диска C: эта команда возвращает путь к ка талогу Windows на диске C:. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>"C:\windows\*" | resolve-path Описание ----------- Эта команда возвращает все вложенные каталоги каталога C:\Windows. Эта кома нда передает строку пути командлету Resolve-Path с помощью оператора конвей ера (|). -------------------------- ПРИМЕР 4 -------------------------- C:\PS>resolve-path \\Server01\public Описание ----------- Эта команда разрешает UNC-путь и возвращает ресурсы совместного использован ия этого пути. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>resolve-path c:\prog* -relative ..\Program Files ..\Program Files (x86) ..\programs.txt Описание ----------- Эта команда возвращает относительные пути для каталогов в корне диска C:. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>resolve-path -literalPath test[xml] Описание ----------- Эта команда разрешает путь ко вложенному каталогу Test[xml] текущего катало га. В ней используется параметр LiteralPath для указания, что скобки не явл яются символами регулярного выражения. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113384 about_Providers Test-Path Split-Path Convert-Path Join-Path Restart-Computer ИМЯ Restart-Computer ОПИСАНИЕ Перезапускает ("перезагружает") операционную систему локального и удаленных компьютеров. СИНТАКСИС Restart-Computer [[-ComputerName] <string[]>] [[-Credential] <PSCredential> ] [-AsJob] [-Authentication {Default | None | Connect | Call | Packet | Pac ketIntegrity | PacketPrivacy | Unchanged}] [-Force] [-Impersonation {Defaul t | Anonymous | Identify | Impersonate | Delegate}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Restart-Computer перезапускает операционную систему локального и удаленных компьютеров. С помощью параметров командлета Restart-Computer можно выполнять операции п ерезагрузки в качестве фонового задания, задавать уровни проверки подлиннос ти, использовать другие учетные данные, ограничивать количество одновременн о выполняемых операций, а также принудительно перезагружать компьютер. Этому командлету не требуется удаленное взаимодействие Windows PowerShell, за исключением случаев с использованием параметра AsJob. ПАРАМЕТРЫ -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания. Примечание. Чтобы использовать этот параметр, локальный и удаленный ком пьютер должны быть настроены на удаленное взаимодействие, и запуск Wind ows PowerShell под управлением Windows Vista и более поздних версий Win dows должен выполняться командой "Запуск от имени администратора". Допо лнительные сведения см. в разделе about_Remote_Requirements. При использовании параметра AsJob команда немедленно возвращает объект, представляющий фоновое задание. Можно продолжить работу в рамках данно го сеанса, пока задание завершается. Задание создается на локальном ком пьютере, и результаты с удаленных компьютеров автоматически возвращаютс я на локальный компьютер. Чтобы управлять заданием, используйте командл еты Job. Чтобы получить результаты задания, используйте командлет Recei ve-Job. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в р азделах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationLevel> Задает уровень проверки подлинности, используемый для WMI-соединения. ( Командлет Restart-Computer использует WMI.) По умолчанию используется з начение "Packet". Допустимые значения: Unchanged: уровень проверки подлинности такой же, как и у предыду щей команды. Default: проверка подлинности Windows. None: проверка подлинности COM не используется. Connect: проверка подлинности COM уровня соединения. Call: проверка подлинности COM уровня вызова. Packet: проверка подлинности COM уровня пакета. PacketIntegrity: проверка подлинности COM уровня целостности пакета. PacketPrivacy: проверка подлинности COM уровня конфиденциальности пак ета. Требуется? false Позиция? named Значение по умолчанию 4 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает один или несколько удаленных компьютеров. По умолчанию используе тся значение "Локальный компьютер". Введите имя NETBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName можно использовать, даже если компьютер не наст роен на выполнение удаленных команд. Требуется? false Позиция? 1 Значение по умолчанию . Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, возвращаемый командлетом Get-Credential. Требуется? false Позиция? 2 Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Принудительно инициирует немедленную перезагрузку компьютеров. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Impersonation <ImpersonationLevel> Задает уровень олицетворения при вызове WMI. (Командлет Restart-Compute r использует WMI.) По умолчанию используется значение "Impersonate". Допустимые значения: Default: олицетворение по умолчанию. Anonymous: скрывает идентификатор вызывающего. Identify: позволяет объектам запрашивать учетные данные вызывающего . Impersonate: позволяет объектам использовать учетные данные вызывающег о. Требуется? false Позиция? named Значение по умолчанию Impersonate Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Задает максимальное количество одновременных соединений, которые могут быть установлены для выполнения данной команды. Если этот параметр не з адан или для него введено значение 0, используется значение по умолчани ю 32. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию 32 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ None или System.Management.Automation.RemotingJob Если задан параметр AsJob, командлет возвращает объект задания. В проти вном случае командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ В этом командлете используется метод Win32Shutdown класса WMI WIN32_Ope ratingSystem. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>restart-computer Описание ----------- Эта команда перезагружает локальный компьютер. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>restart-computer -computername Server01, Server02, localhost Описание ----------- Эта команда перезагружает два удаленных компьютера: Server01 и Server02, а также локальный компьютер, указанный как "localhost". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$j = restart-computer -computername Server01, Server02 -asjob C:\PS> $results = $j | receive-job C:\PS> $results Описание ----------- В приведенных командах команда Restart-Computer выполняется в качестве фоно вого задания на двух удаленных компьютерах, после чего выводятся результаты . В первой команде используется параметр AsJob для выполнения команды в качес тве фонового задания. Полученный объект задания сохраняется в переменной $j . Во второй команде объект задания, сохраненный в переменной $j, с помощью оп ератора конвейера передается командлету Receive-Job, который получает резул ьтаты выполнения задания. Результаты сохраняются в переменной $results. Третья команда отображает результаты, сохраненные в переменной $results. Поскольку при использовании параметра AsJob задание создается на локальном компьютере и результаты автоматически возвращаются на локальный компьютер, команду Receive-Job можно выполнять как локальную команду. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>restart-computer -comp Server01 -impersonation anonymous -authenticat ion PacketIntegrity Описание ----------- Эта команда перезагружает удаленный компьютер Server01. В команде использую тся настроенные параметры олицетворения и проверки подлинности. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$s = get-content domain01.txt C:\PS> $c = get-credential domain01\admin01 C:\PS> restart-computer -computername $s -force -throttlelimit 10 -credenti al $c Описание ----------- Эти команды принудительно инициируют немедленную перезагрузку всех компьюте ров в домене Domain01. Первая команда получает список компьютеров в домене и сохраняет его в перем енной $s. Вторая команда получает учетные данные администратора домена и сохраняет их в переменной $c. Третья команда перезагружает компьютеры. Параметр ComputerName используется для передачи списка компьютеров в переменной $s, параметр Force — для прин удительной немедленной перезагрузки, а параметр Credential — для передачи у четных данных, сохраненных в переменной $c. Кроме того, с помощью параметра ThrottleLimit количество устанавливаемых командой одновременных соединений ограничивается десятью. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135253 Add-Computer Checkpoint-Computer Remove-Computer Restore-Computer Stop-Computer Test-Connection Restart-Service ИМЯ Restart-Service ОПИСАНИЕ Останавливает, а затем запускает заново одну или несколько служб. СИНТАКСИС Restart-Service [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Restart-Service -DisplayName <string[]> [-Exclude <string[]>] [-Force] [-In clude <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Restart-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonPar ameters>] ОПИСАНИЕ Командлет Restart-Service передает сообщение об остановке каждой указанной службы программе Windows Service Controller. Если служба уже была остановле на ранее, то она перезапускается без сообщения об ошибке. Службы можно зада вать с помощью их служебных имен или отображаемых имен. Также можно использ овать параметр InputObject и передавать объекты, представляющие перезапуска емые службы. ПАРАМЕТРЫ -DisplayName <string[]> Задает отображаемые имена перезапускаемых служб. Подстановочные знаки р азрешены. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные службы. Значение данного параметра определяет значе ние параметра Name. Введите часть имени или шаблон, например "s*". Подс тановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Переопределяет ограничения, препятствующие выполнению команды, не ставя под угрозу безопасность. Например, параметр Force остановит и перезапу стит службу, у которой есть зависимые службы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Перезапускает только указанные службы. Значение данного параметра опред еляет значение параметра Name. Введите часть имени или шаблон, например "s*". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ServiceController[]> Задает объекты ServiceController, представляющие перезапускаемые службы . Введите переменную, содержащую объекты, либо команду или выражение дл я получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена перезапускаемых служб. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий службу. По умолчанию этот командлет н е формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController, System.String Можно передать объект службы или строку, содержащую имя службы, по конв ейеру командлету Restart-Service. ВЫХОДНЫЕ ДАННЫЕ Нет или System.ServiceProcess.ServiceController Если задан параметр PassThru, командлет Restart-Service создает объект System.ServiceProcess.ServiceController, представляющий перезапущенную службу. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Restart-Service может использоваться для управления службами, только если у текущего пользователя есть на это разрешение. Некорректн ая работа команды может быть обусловлена отсутствием требуемых разрешен ий. Чтобы извлечь имена служб и отображаемые имена служб на текущем компьют ере, введите команду "get-service". Имена служб содержатся в столбце "N ame", а отображаемые имена — в столбце "DisplayName". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>restart-service wmi Описание ----------- Эта команда перезапускает службу инструментария управления Windows (WMI) на локальном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>restart-service -displayname net* -exclude "net logon" Описание ----------- Эта команда перезапускает все службы, отображаемые имена которых начинаются с "Net", за исключением службы "Net Logon". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-service net* | where-object {$_.Status -eq "Stopped"} | restart-s ervice Описание ----------- Эта команда запускает все остановленные сетевые службы компьютера. Для извлечения всех объектов, представляющих службы компьютера с именами, н ачинающимися с "net", используется командлет Get-Service. (Необязательное и мя параметра Name опускается.) Оператор конвейера (|) пересылает объекты сл ужб командлету Where-Object, который выбирает только службы с состоянием "S topped" (остановлена). Следующий оператор конвейера пересылает выбранные сл ужбы командлету Restart-Service. На практике, чтобы узнать о последствиях в ыполнения команды до ее использования, используется параметр WhatIf. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113385 Start-Service Stop-Service Suspend-Service Resume-Service New-Service Get-Service Set-Service Restore-Computer ИМЯ Restore-Computer ОПИСАНИЕ Запускает восстановление системы на локальном компьютере. СИНТАКСИС Restore-Computer [-RestorePoint] <int> [-Confirm] [-WhatIf] [<CommonParamet ers>] ОПИСАНИЕ Командлет Restore-Computer восстанавливает локальный компьютер до указанной точки восстановления системы. Команда Restore-Computer перезапускает компьютер. Восстановление выполняетс я в ходе операции перезагрузки. ПАРАМЕТРЫ -RestorePoint <int> Задает порядковый номер точки восстановления. Чтобы определить порядко вый номер, используйте команду Get-ComputerRestorePoint. Это обязательн ый параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Чтобы использовать командлет Restore-Computer в Windows Vista и более п оздних версиях Windows, необходимо запускать Windows PowerShell командо й "Запуск от имени администратора". Этот командлет использует класс SystemRestore инструментария управления Windows (WMI). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>restore-computer -RestorePoint 253 Описание ----------- Эта команда восстанавливает локальный компьютер до точки восстановления с п орядковым номером 253. Поскольку параметр RestorePoint является позиционным, имя параметра можно о пустить. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>restore-computer 255 -confirm Confirm Are you sure you want to perform this action? Performing operation "Restore-Computer" . [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (defa ult is "Y"): Описание ----------- та команда восстанавливает локальный компьютер до точки восстановления с по рядковым номером 255. Для запроса подтверждения перед фактическим выполнени ем операции используется параметр Confirm. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Get-ComputerRestorePoint C:\PS> Restore-Computer -RestorePoint 255 C:\PS> Get-ComputerRestorePoint -LastStatus Описание ----------- Приведенные команды выполняют восстановление системы и затем проверяют резу льтат восстановления. Первая команда с помощью командлета Get-ComputerRestorePoint получает точки восстановления на локальном компьютере. Вторая команда с помощью командлета Restore-Computer восстанавливает компью тер до точки восстановления с порядковым номером 255. Третья команда с помощью параметра LastStatus командлета Get-ComputerRestor ePoint проверяет состояние операции восстановления. Поскольку команда Resto re-Computer принудительно перезапускает компьютер, эта команда вводится пос ле перезапуска. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135254 Get-ComputerRestorePoint Enable-ComputerRestore Disable-ComputerRestore Restart-Computer Resume-Service ИМЯ Resume-Service ОПИСАНИЕ Возобновляет работу приостановленных служб. СИНТАКСИС Resume-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[] >] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Resume-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <str ing[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Resume-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [ -Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Resume-Service отсылает сообщение о возобновлении работы диспетче ру служб Windows для каждой указанной службы. Если служба была приостановле на, ее работа будет возобновлена. Если служба запущена, сообщение игнорируе тся. Службы можно задавать с помощью их имен или отображаемых имен. Кроме т ого, можно с помощью параметра InputObject передавать объекты, представляющ ие возобновляемые службы. ПАРАМЕТРЫ -DisplayName <string[]> Задает отображаемые имена возобновляемых служб. Подстановочные знаки ра зрешены. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные службы. Значение данного параметра определяет значе ние параметра Name. Введите часть имени или шаблон, например "s*". Подс тановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Возобновляет работу только указанных служб. Значение данного параметра определяет значение параметра Name. Введите часть имени или шаблон, нап ример "s*". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ServiceController[]> Задает объекты ServiceController, представляющие возобновляемые службы. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена возобновляемых служб. Имя параметра указывать необязательно. Можно использовать "-Name" или е го псевдоним ("-ServiceName") либо опустить имя параметра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий службу. По умолчанию этот командлет н е формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController или System.String. Можно передать объект службы или строку, содержащую имя службы, по конв ейеру командлету Resume-Service. ВЫХОДНЫЕ ДАННЫЕ Нет или System.ServiceProcess.ServiceController Если задан параметр PassThru, командлет Resume-Service создает объект S ystem.ServiceProcess.ServiceController, представляющий восстановленную службу. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Состояние приостановленных служб имеет значение "Paused". При возобновл ении их работы состояние имеет значение "Running". Командлет Resume-Service может использоваться для управления службами, только если у текущего пользователя есть на это разрешение. Некорректна я работа команды может быть обусловлена отсутствием требуемых разрешени й. Чтобы извлечь имена служб и отображаемые имена служб на текущем компьют ере, введите команду "get-service". Имена служб содержатся в столбце Na me, а отображаемые имена — в столбце DisplayName. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>resume-service sens Описание ----------- Эта команда возобновляет работу службы System Event Notification (имя служб ы в команде — "sens") на локальном компьютере. В команде используется парам етр Name для задания имени службы, при этом имя параметра опускается, так к ак оно является необязательным. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-service | where-object {$_.Status -eq "Paused"} | resume-service Описание ----------- Эта команда возобновляет работу всех приостановленных служб компьютера. Пер вая команда извлекает все службы на компьютере. Оператор конвейера (|) пере дает результаты командлету Where-Object, который выбирает из них те, у кото рых свойство Status имеет значение "Paused" (приостановлена). Следующий опе ратор конвейера передает результаты командлету Resume-Service, который возо бновляет работу приостановленных служб. На практике, чтобы узнать о последствиях выполнения команды без ее использо вания, используется параметр WhatIf. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113386 Get-Service Start-Service Stop-Service Restart-Service Suspend-Service Set-Service New-Service Select-Object ИМЯ Select-Object ОПИСАНИЕ Выбирает указанные свойства объекта или набора объектов. Также он может выб ирать уникальные объекты из массива объектов или выбирать указанное число о бъектов с начала или с конца массива объектов. СИНТАКСИС Select-Object [[-Property] <Object[]>] [-ExcludeProperty <string[]>] [-Expa ndProperty <string>] [-First <int>] [-InputObject <psobject>] [-Last [-Skip <int>] [-Unique] [<CommonParameters>] Select-Object [-Index <Int32[]>] [-InputObject <psobject>] [-Unique] [<Comm onParameters>] ОПИСАНИЕ Командлет Select-Object получает только указанные свойства объекта или набо ра объектов. Также он может выбирать уникальные объекты из массива объектов или выбирать указанное число объектов с начала или с конца массива объекто в. При использовании командлета Select-Object для выбора указанных свойств он копирует значения этих свойств из объектов ввода и создает новые объекты, к оторые содержат указанные свойства со скопированными значениями. Для указания свойств, которые требуется выбрать, используйте параметр Prope rty. Либо используйте параметры First, Last, Unique, Skip и Index, чтобы вы брать конкретные объекты из массива объектов ввода. Для более тонкой фильтр ации объектов используйте командлет Where-Object. ПАРАМЕТРЫ -ExcludeProperty <string[]> Исключает указанные свойства из выбора. Подстановочные знаки разрешены. Этот параметр действует только, если команда включает параметр Propert y. Значением параметра свойства может быть вычисляемое свойство, то есть х эш-таблица, задающая имя и вычисляющая значение для отображения свойств а. Допустимые ключи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> Дополнительные сведения см. в примерах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -ExpandProperty <string> Задает выбираемое свойство и указывает, что необходимо попытаться разве рнуть это свойство. В имени свойства разрешается использовать подстано вочные знаки. Например, если заданное свойство является массивом, необходимо включить в вывод каждое значение массива. Если свойство содержит объект, в выво де отображаются все свойства этого объекта. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -First <int> Указывает количество объектов, считая с начала массива объектов ввода, которые нужно выбрать. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Index <Int32[]> Выбирает объекты из массива на основании значений их индексов. Введите индексы, разделенные запятыми. Индексы в массиве начинаются с 0, где 0 обозначает первое значение, а ( n-1) — последнее значение. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты для отправки командлету по конвейеру. Этот параметр позв оляет отправлять объекты командлету Select-Object по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Last <int> Указывает количество объектов, считая с конца массива объектов ввода, к оторые нужно выбрать. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Property <Object[]> Указывает, какие свойства нужно выбрать. Подстановочные знаки разрешены . Значение параметра Property может быть новым вычисляемым свойством. Что бы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые кл ючи: -- Name (или Label) <строка> -- Expression <строка> или <блок скрипта> Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Skip <int> Пропускает (не выбирает) указанное число элементов. По умолчанию значен ие параметра Skip отсчитывается от начала массива или списка объектов, однако если для команды задан параметр Last, отсчет ведется от конца сп иска или массива. В отличие от параметра Index, значения которого отсчитываются от 0, зна чения параметра Skip отсчитываются от 1. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Unique [<SwitchParameter>] Указывает, что если несколько объектов ввода имеют одинаковые свойства и их значения, то будет выбран только один из объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект можно передать командлету Select-Object по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject ПРИМЕЧАНИЯ Командлет Select-Object также можно вызывать с помощью встроенного псев донима "select". Дополнительные сведения см. в разделе About_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process | select-object ProcessName,Id,WS Описание ----------- Эта команда отображает список процессов. При этом отображаются только имеющ иеся у процессов свойства name, ID и Working Set (WS). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process | select-object processname -expandproperty modules | format-list ProcessName : 00THotkey Size : 256 Company : TOSHIBA Corporation FileVersion : 1, 0, 0, 27 ProductVersion : 6, 2, 0, 0 Description : THotkey Product : TOSHIBA THotkey ModuleName : 00THotkey.exe FileName : C:\WINDOWS\system32\00THotkey.exe BaseAddress : 4194304 Описание ----------- Эта команда отображает сведения о модулях, используемых выполняемыми на ком пьютере процессами. Для вывода сведений, содержащихся в свойстве modules, и спользуется параметр ExpandProperty. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | sort-object -property WS | select-object -Last 5 Handles NPM(K) PM(K) WS(K) VS(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 2866 320 33432 45764 203 222.41 1292 svchost 577 17 23676 50516 265 50.58 4388 WINWORD 826 11 75448 76712 188 19.77 3780 Ps 1367 14 73152 88736 216 61.69 676 Ps 1612 44 66080 92780 380 900.59 6132 INFOPATH Описание ----------- Эта команда отображает сведения о пяти процессах, использующих наибольший о бъем памяти. Командлет Sort-Object используется для сортировки процессов по объему используемой памяти (Working Set), а командлет Select-Object — для выбора пяти последних элементов итогового массива объектов. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process | select-object -property ProcessName,@{Name="Start Day"; Expression = {$_.StartTime.DayOfWeek}} ProcessName StartDay ---- -------- alg Wednesday ati2evxx Wednesday ati2evxx Thursday ... Описание ----------- Эта команда отображает имена выполняемых на компьютере процессов и названия дней, когда они были запущены. Значения параметра Property — ProcessName и вычисляемое свойство "Start Day ". Свойство "Start Day" добавляется с помощью хэш-таблицы с ключами Label и Expression. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>"a","b","c","a","a","a" | select-object -unique a b c Описание ----------- Эта команда выводит уникальные знаки из массива знаков. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$a = get-eventlog -log "Windows PowerShell" C:\PS> $a | select-object -index 0, ($a.count - 1) Описание ----------- Эти команды получают первое (самое позднее) и последнее (самое раннее) собы тия из журнала событий Windows PowerShell. С помощью командлета Get-EventLog первая команда получает все события журна ла Windows PowerShell. Она сохраняет события в переменной $a. Вторая команда с помощью оператора конвейера (|) передает события в перемен ной $a в командлет Select-Object. Команда Select-Object использует параметр Index, чтобы выбрать элементы по их индексам. Индекс первого события равен 0. Индекс последнего события равен числу элементов в переменной $a минус 1 . -------------------------- ПРИМЕР 7 -------------------------- C:\PS>new-pssession -computername (get-content servers.txt | select-object -skip 1) Описание ----------- Эта команда создает сеанс PSSession на каждом из компьютеров, указанных в ф айле Servers.txt, кроме первого компьютера. Эта команда использует командлет Select-Object, чтобы выбрать в списке все компьютеры, кроме первого. Полученный список компьютеров передается командл ету New-PSSession в качестве значения параметра ComputerName. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113387 Where-Object Group-Object Sort-Object Select-String ИМЯ Select-String ОПИСАНИЕ Находит текст в строках и файлах. СИНТАКСИС Select-String [-Path] <string[]> [-Pattern] <string[]> [-AllMatches] [-Case Sensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string[]>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<CommonP arameters>] Select-String -InputObject <psobject> [-Pattern] <string[]> [-AllMatches] [ -CaseSensitive] [-Context <Int32[]>] [-Encoding <string>] [-Exclude <string []>] [-Include <string[]>] [-List] [-NotMatch] [-Quiet] [-SimpleMatch] [<Co mmonParameters>] ОПИСАНИЕ Командлет Select-String осуществляет поиск текста и текстовых шаблонов во в ходных строках и файлах. Его можно использовать, как команду Grep в UNIX и Findstr в Windows. Работа командлета Select-String основана на текстовых строках. По умолчанию Select-String находит первое совпадение в каждой строке и отображает для к аждого совпадения имя файла, номер строки и полный текст найденной строки. Однако можно сделать так, чтобы командлет искал несколько совпадений в стро ке, выводил текст до и после совпадения или выводил только логическое значе ние (true или false), указывающее, было ли найдено совпадение. Командлет Select-String использует поиск по регулярным выражениям, но он та кже позволяет находить простые совпадения, выполняя поиск введенного фрагме нта текста. Командлет Select-String может выводить все найденные совпадения или останав ливаться после первого совпадения для каждого входного файла. Кроме того, о н может выводить весь текст, который не соответствует заданному шаблону. Можно также установить для командлета Select-String конкретную кодировку, н апример при поиске по файлам в кодировке Юникод. ПАРАМЕТРЫ -AllMatches [<SwitchParameter>] Выполняет поиск более одного совпадения в каждой из текстовых строк. Бе з этого параметра командлет Select-String находит только первое совпаде ние в каждой из текстовых строк. Найдя в текстовой строке несколько совпадений, Select-String все равно возвращает для нее только один объект MatchInfo, однако свойство Matche s для этой строки содержит все совпадения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CaseSensitive [<SwitchParameter>] Сопоставление учитывает регистр. По умолчанию сопоставление выполняется без учета регистра. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Context <Int32[]> Записывает заданное число строк до и после строки с совпадением. Это по зволяет видеть совпадение в контексте. Если в качестве значения этого параметра указать одно число, оно будет определять число отображаемых строк до и после совпадения. Если в качес тве значения этого параметра указать два числа, первое из них будет опр еделять число отображаемых строк до совпадения, а второе — после совпад ения. По умолчанию строки с совпадением помечаются правой угловой скобкой (ко д ASCII 62) в первом отображаемом столбце. Непомеченные строки формирую т контекст. Этот параметр не изменяет числа объектов, создаваемых командлетом Selec t-String. Select-String создает один объект MatchInfo (Microsoft.PowerS hell.Commands.MatchInfo) для каждого совпадения. Контекст сохраняется в массиве строк в свойстве Context объекта. При передаче результата выполнения команды Select-String другой команде Select-String по конвейеру принимающая команда ищет текст только в стр оке с совпадением (значении свойства Line объекта MatchInfo), но не в т ексте строк контекста. В результате параметр Context не учитывается при нимающей командой Select-String. Если контекст включает совпадение, то объект MatchInfo для каждого совп адения включает все строки контекста, общие строки выводятся на экран т олько один раз. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Encoding <string> Задает предположительную кодировку файла, по которому должен осуществля ться поиск с помощью командлета Select-String. По умолчанию используетс я значение UTF8. Допустимые значения: "UTF7", "UTF8", "UTF32", "ASCII", "Unicode", "BigE ndianUnicode", "Default" и "OEM". Значение Default соответствует кодиро вке текущей системной кодовой страницы ANSI. OEM соответствует идентифи катору кодовой страницы текущего изготовителя оборудования для операцио нной системы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Включает только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*. txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает текст для поиска. Укажите переменную, содержащую текст, либо вве дите команду или выражение, получающие его. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -List [<SwitchParameter>] Возвращает только первое совпадение для каждого из входных файлов. По у молчанию командлет Select-String возвращает объект MatchInfo для каждог о найденного совпадения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NotMatch [<SwitchParameter>] Находит текст, который не соответствует заданному шаблону. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к файлам для поиска. Подстановочные знаки разрешены. Местоп оложением по умолчанию является локальный каталог. Укажите файлы в каталоге, например "log1.txt", "*.doc" или "*.*". Если указать только каталог, команда завершится сбоем. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Pattern <string[]> Задает текста для поиска. Введите строку или регулярное выражение. Если введена строка, используйте параметр SimpleMatch. Дополнительные сведения о регулярных выражениях см. about_Regular_Expre ssions. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Quiet [<SwitchParameter>] Возвращает логическое значение (true или false) вместо объекта MatchInf o. Значение будет равно "true", если найдено соответствие шаблону, в пр отивном случае — "false". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SimpleMatch [<SwitchParameter>] Вместо сопоставления по регулярному выражению будет использоваться прос тое сопоставление. При простом сопоставлении командлет Select-String ищ ет во входных данных текст, указанный в параметре Pattern. Он не интерп ретирует значение параметра Pattern в качестве регулярного выражения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Любой объект, содержащий метод ToString, можно передать командлету Sele ct-String по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.MatchInfo or System.Boolean По умолчанию вывод состоит из объектов MatchInfo — по одному на каждое совпадение. При использовании параметра Quiet возвращается логическое з начение, указывающее, найден ли шаблон. ПРИМЕЧАНИЯ Командлет Select-String похож на команду Grep в UNIX и FindStr в Window s. Для использования командлета Select-String в качестве значения параметр а Pattern необходимо ввести текст, который требуется найти. Для задания текста для поиска выполните следующее. -- Введите текст в виде заключенной в кавычки строки и передайте его ко мандлету Select-String по конвейеру. -- Сохраните текстовую строку в переменной и укажите эту переменную в к ачестве значения параметра InputObject. -- Если текст хранится в файлах, укажите путь к этим файлам с помощью п араметра Path. По умолчанию командлет Select-String интерпретирует значение параметра Pattern в качестве регулярного выражения. (Дополнительные сведения см. about_Regular_Expressions.) Однако с помощью параметра SimpleMatch можн о отключить сопоставление с использованием регулярных выражений. Параме тр SimpleMatch ищет во входных данных экземпляры значения параметра Pat tern. По умолчанию выводом командлета Select-String является объект MatchInfo , который включает подробные сведения о совпадениях. Сведения, которые содержатся в этом объекте, бывают полезными при поиске текста в файлах, поскольку у объекта MatchInfo имеются такие свойства, как Filename и L ine. Если входные данные не являются файлом, эти параметры имеют значен ие InputStream. Если выводить сведения, содержащиеся в объекте MatchInfo, не требуется, можно использовать параметр Quiet, возвращающий значение типа Boolean (true или false), которое вместо объекта MatchInfo показывает, было ли найдено совпадение. При сопоставлении фраз командлет Select-String использует текущую, зада нную для системы. Чтобы определить текущие региональные параметры, испо льзуйте командлет Get-Culture. Чтобы просмотреть все свойства объекта MatchInfo, введите команду: select-string -path test.txt -pattern "test" | get-member | format-list -property * -------------------------- ПРИМЕР 1 -------------------------- C:\PS>"Hello","HELLO" | select-string -pattern "HELLO" -casesensitive Описание ----------- Эта команда выполняет поиск с учетом регистра в тексте, переданном в команд у Select-String по конвейеру. В результате Select-String находит только строку "HELLO", поскольку "Hello" не является совпадением. Поскольку каждый из заключенных в кавычки фрагментов считается отдельной ст рокой, без параметра -CaseSensitive командлет Select-String распознал бы в качестве совпадений оба фрагмента. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>select-string -path *.xml -pattern "the the" Описание ----------- Эта команда ищет во всех XML-файлах в текущем каталоге строки, включающие с лова "the the", и отображает их. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>select-string -path $pshome\en-US\*.txt -pattern "@" Описание ----------- Эта команда ищет в файлах концептуальной справки Windows PowerShell (about_ *.txt) сведения об использовании символа (@). Для указания пути в этой команде используется значение автоматической перем енной $pshome, в которой хранится путь к каталогу установки Windows PowerSh ell. В данном примере команда осуществляет поиск по каталогу en-US, в котор ом содержатся файлы справки Windows PowerShell на английском (США) языке. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>function search-help { $pshelp = "$pshome\es\about_*.txt", "$pshome\en-US\*dll-help.xml" select-string -path $pshelp -pattern $args[0] } Описание ----------- Эта простая функция использует командлет Select-String для поиска заданной строки в файлах справки Windows PowerShell. В данном примере функция осущес твляет поиск по каталогу en-US, в котором содержатся файлы справки на англи йском (США) языке. Чтобы найти с помощью этой функции строку, например "psdrive", введите "sea rch-help psdrive". Чтобы использовать эту функцию в произвольной консоли Windows PowerShell, з амените путь на расположение файлов справки Windows PowerShell в конкретной системе, а затем скопируйте функцию в профиль Windows PowerShell. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$events = get-eventlog -logname application -newest 100 C:\PS> $events | select-string -inputobject {$_.message} -pattern "failed" Описание ----------- В этом примере осуществляется поиск строки "failed" в 100 последних события х журнала "Приложение" средства "Просмотр событий". Первая команда с помощью командлета Get-EventLog получает 100 последних зап исей из журнала событий "Приложение". После этого она сохраняет события в п еременной $events. Вторая команда с помощью оператора конвейера (|) передает объекты из переме нной $events в командлет Select-String. Для представления входных данных в переменной $events она использует параметр InputObject. Значение параметра InputObject равно значению свойства Message каждого передаваемого по конвей еру объекта. Текущий объект представляется символом $_. Когда событие поступает в конвейер, командлет Select-String ищет строку "fa iled" в свойстве Message этого события и отображает строки, содержащие совп адение. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-childitem c:\windows\system32\* -include *.txt -recurse | select-string -pattern "Microsoft" -casesensitive Описание ----------- Эта команда ищет во всех TXT-файлах, хранящихся в подкаталогах каталога C:\ Windows\System32, строку "Microsoft". Параметр CaseSensitive указывает, что буква "M" в слове "Microsoft" должна быть прописной, а остальные буквы — с трочными, чтобы командлет Select-String обнаружил совпадение. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>select-string -path process.txt -pattern idle, svchost -notmatch Описание ----------- Эта команда находит в файле Process.txt строки, не содержащие слов "idle" и "svchost". -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$f = select-string -path audit.log -pattern "logon failed" -context 2 , 3 C:\PS> $f.count C:\PS> ($f)[0].context | format-list Описание ----------- Первая команда ищет в файле Audit.Log фразу "logon failed". Она использует параметр Context, чтобы вывести 2 строки до совпадения и 3 строки после нег о. Вторая команда использует свойство Count массивов объектов для отображения количества найденных совпадений (в данном случае оно равно 2). Третья команда отображает строки, хранящиеся в свойстве Context объекта Mat chInfo. Для указания первого совпадения (0 в массиве с отсчетом от нуля) ис пользуются квадратные скобки, а для отображения значения свойства Context в виде списка — командлет Format-List. Вывод состоит из двух объектов MatchInfo — по одному на каждое совпадение. Строки контекста сохраняются в свойстве Context объекта MatchInfo. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>$a = get-childitem $pshome\en-us\about*.help.txt | select-string -pat tern transcript C:\PS> $b = get-childitem $pshome\en-us\about*.help.txt | select-string -pa ttern transcript -allmatches C:\PS> $a C:\Windows\system32\WindowsPowerShell\v1.0\en-us\about_Pssnapins.help.txt:3 9: Start-Transcript and Stop-Transcript. C:\PS> $b C:\Windows\system32\WindowsPowerShell\v1.0\en-us\about_Pssnapins.help.txt:3 9: Start-Transcript and Stop-Transcript. C:\PS>> $a.matches Groups : {Transcript} Success : True Captures : {Transcript} Index : 13 Length : 10 Value : Transcript C:\PS> $b.matches Groups : {Transcript} Success : True Captures : {Transcript} Index : 13 Length : 10 Value : Transcript Groups : {Transcript} Success : True Captures : {Transcript} Index : 33 Length : 10 Value : Transcript Описание ----------- В этом примере показано действие параметра AllMatches командлета Select-Str ing. Параметр AllMatches позволяет находить все совпадения в строке, а не п о одному совпадению. Первая команда в этом примере ищет вхождения слова "transcript" в файлах ко нцептуальной справки Windows PowerShell (справка "about"). Вторая команда и дентична первой за исключением того, что в ней используется параметр AllMat ches. Вывод первой команды сохраняется в переменной $a. Вывод второй команды сохр аняется в переменной $b. При выводе значений переменных по умолчанию они отображаются одинаково, как показано в примере вывода. Однако пятая и шестая команда отображают значение свойства Matches каждого из объектов. Свойство Matches для первой команды содержит только одно совпа дение (т. е. один объект System.Text.RegularExpressions.Match), в то время как свойство Matches второй команды содержит объекты для обоих совпадений в строке. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113388 about_Comparison_Operators about_Regular_Expressions Select-XML ИМЯ Select-XML ОПИСАНИЕ Находит текст в XML-строке или документе. СИНТАКСИС Select-XML -Content <string[]> [-Xpath] <string> [-Namespace <hashtable>] [ <CommonParameters>] Select-XML [-Path] <string[]> [-Xpath] <string> [-Namespace <hashtable>] [ CommonParameters>] Select-XML [-Xml] <XmlNode[]> [-Xpath] <string> [-Namespace <hashtable>] [ CommonParameters>] ОПИСАНИЕ Командлет Select-XML позволяет использовать запросы XPath для поиска текста в XML-строках и документах. Введите запрос XPath и с помощью параметров Co ntent, Path или Xml укажите источник данных XML для поиска. ПАРАМЕТРЫ -Content <string[]> Задает строку, которая содержит XML-код для поиска. Кроме того, можно передать строки командлету Select-XML по конвейеру. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Namespace <hashtable> Задает хэш-таблицу пространств имен, используемых в XML. Используйте фо рмат @{<имя пространства имен> = <значение пространства имен>}. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь и имена XML-файлов для поиска. Подстановочные знаки разреш ены. Требуется? true Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -Xml <XmlNode[]> Задает один или более узлов XML. В каждой команде необходимо указывать параметр Path или XML. XML-документ обрабатывается как коллекция узлов XML. При передаче XML-д окумента командлету Select-XML по конвейеру поиск в каждом из узлов док умента ведется отдельно по мере того, как соответствующий узел проходит по конвейеру. Требуется? true Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Xpath <string> Задает поисковый запрос XPath. В языке запросов учитывается регистр. Эт о обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String или System.Xml.XmlNode Путь или узел XML можно передать командлету Select-XML по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Xml.XmlElement или System.Xml.XmlText ПРИМЕЧАНИЯ XPath — это стандартный язык, предназначенный для определения частей XM L-документа. Дополнительные сведения о языке XPath см. в разделе "Фильт ры выбора" раздела "Выбор событий" библиотеки MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkId=143608. См. также раздел "Справочник по XPath" в библиотеке MSDN по адресу http://g o.microsoft.com/fwlink/?LinkId=143609. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$path = "$env:windir\System32\WindowsPowerShell\v1.0\Types.ps1xml" C:\PS> select-xml -path $path -xpath "/Types/Type/Members/AliasProperty" Описание ----------- В этом примере показан поиск дочерних элементов узла AliasProperty в файле Types.ps1xml. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>select-xml -path test*.xml, help.xml -xpath "/Tests/Test[1]/Name" Описание ----------- Для поиска по нескольким XML-файлам в этой команде используется командлет S elect-XML. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>[xml]$Types = get-content "$env:windir\System32\WindowsPowerShell\v1. 0\Types.ps1xml" C:\PS> select-xml -xml $Types -xpath "//MethodName" Описание ----------- В этом примере показано, как передать XML-документ командлету Search-Path п о конвейеру. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$namespace = @{command="http://schemas.microsoft.com/maml/dev/command /2004/10"; maml="http://schemas.microsoft.com/maml/2004/10"; dev="http://sc hemas.microsoft.com/maml/dev/2004/10"} C:\PS> $path = "$env:windir\System32\WindowsPowerShell\V1.0\en-us\*dll-Help .xml" C:\PS> select-xml -path $path -namespace $namespace -xpath "//command:name" Text Node Path ---- ---- ---- Add-Computer name C:\Windows\System32\WindowsPowerShell\V ... Add-Content name C:\Windows\System32\WindowsPowerShell\V ... Checkpoint-Computer name C:\Windows\System32\WindowsPowerShell\V ... Clear-Content name C:\Windows\System32\WindowsPowerShell\V ... Clear-EventLog name C:\Windows\System32\WindowsPowerShell\V ... ... Описание ----------- В этом примере показано, как использовать командлет Select-XML для поиска п о XML-файлам справки по командлетам Windows PowerShell. Первая команда создает хэш-таблицу, представляющую пространство имен XML, и сохраняет ее в переменной $namespace. Вторая команда сохраняет путь к файлам справки в переменной $path. Третья команда использует Select-Xml для обнаружения в коде XML имен команд летов путем поиска в файлах тегов Command:Name. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>select-xml -content $xml -xpath "//edition" C:\PS> $xml = @" <?xml version="1.0" encoding="utf-8"?> <Book> <projects> <project name="Book1" date="2009-01-20"> <editions> <edition language="English">En.Book1.com</edition> <edition language="German">Ge.Book1.Com</edition> <edition language="French">Fr.Book1.com</edition> <edition language="Polish">Pl.Book1.com</edition> </editions> </project> </projects> </Book> "@ C:\PS> select-xml -content $xml -xpath "//edition" Text Node Path ---- ---- ---- En.Book1.com edition InputStream Ge.Book1.Com edition InputStream Fr.Book1.com edition InputStream Pl.Book1.com edition InputStream C:\PS> $xml | select-xml -xpath "//edition" Text Node Path ---- ---- ---- En.Book1.com edition InputStream Ge.Book1.Com edition InputStream Fr.Book1.com edition InputStream Pl.Book1.com edition InputStream Описание ----------- В этом примере параметр Content командлета Select-XML используется для поис ка автономной строки в коде XML. Первая команда сохраняет автономную строку в переменной $xml. Вторая команда использует параметр Content, чтобы задать код XML в переменн ой $xml. Третья команда эквивалентна второй. С помощью оператора конвейера (|) она п ередает код XML в переменной $xml командлету Select-XML. Чтобы получить дополнительные сведения об автономный строках, введите коман ду about_Quoting_Rules. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135255 ConvertTo-XML Send-MailMessage ИМЯ Send-MailMessage ОПИСАНИЕ Отправляет сообщение электронной почты. СИНТАКСИС Send-MailMessage [-To] <string[]> [-Subject] <string> -From <string> [[-Bod y] <string>] [[-SmtpServer] <string>] [-Attachments <string[]>] [-Bcc ng[]>] [-BodyAsHtml] [-Cc <string[]>] [-Credential <PSCredential>] [-Delive ryNotificationOption {None | OnSuccess | OnFailure | Delay | Never}] [-Enco ding <Encoding>] [-Priority {Normal | Low | High}] [-UseSsl] [<CommonParame ters>] ОПИСАНИЕ Командлет Send-MailMessage отправляет из Windows PowerShell сообщение элект ронной почты. ПАРАМЕТРЫ -Attachments <string[]> Задает путь и имена файлов, отправляемых с сообщением электронной почты в качестве вложения. Можно использовать этот параметр или передать пут и и имена файлов командлету Send-MailMessage по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Bcc <string[]> Задает адреса электронной почты, которые получают копию сообщения, но н е указываются в списке получателей. Введите имена (необязательно) и адр ес электронной почты, например "Имя <someone@example.com>". Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Body <string> Задает текст (содержимое) сообщения электронной почты. Требуется? false Позиция? 3 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -BodyAsHtml [<SwitchParameter>] Указывает, что значение параметра Body содержит код HTML. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Cc <string[]> Задает адреса электронной почты, по которым отправляется копия сообщени я. Введите имена (необязательно) и адрес электронной почты, например "И мя <someone@example.com>". Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, возвращенных ко мандлетом Get-Credential. Требуется? false Позиция? named Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DeliveryNotificationOption <DeliveryNotificationOptions> Задает параметры уведомления о доставке для сообщения электронной почты . Можно задать несколько значений. По умолчанию используется значение " None". У этого параметра имеется псевдоним "dno". Уведомления о доставке отправляются в сообщениях электронной почты по а дресу, заданному в значении параметра To. Допустимые значения: -- None: уведомление отсутствует. -- OnSuccess: уведомить в случае успешной доставки. -- OnFailure: уведомить в случае неудачной доставки. -- Delay: уведомить в случае задержки доставки. -- Never: не уведомлять никогда. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Encoding <Encoding> Задает кодировку текста и темы письма. Допустимые значения: ASCII, UTF8 , UTF7, UTF32, Unicode, BigEndianUnicode, Default и OEM. По умолчанию и спользуется значение ASCII. Требуется? false Позиция? named Значение по умолчанию ASCII Принимать входные данные конвейера? false Принимать подстановочные знаки? false -From <string> Задает адрес, с которого отправляется сообщение. Введите имя (необязате льно) и адрес электронной почты, например "Имя <someone@example.com>". Это обязательный параметр. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Priority <MailPriority> Задает важность сообщения электронной почты. Допустимые значения: Norma l, High и Low. По умолчанию используется значение Normal. Требуется? false Позиция? named Значение по умолчанию Normal. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SmtpServer <string> Задает имя SMTP-сервера, через который отправляется сообщение электронн ой почты. Значением по умолчанию является привилегированная переменная $PSEmailSe rver. Если привилегированная переменная не задана, а этот параметр опущ ен, выполнение команды завершается сбоем. Требуется? false Позиция? 4 Значение по умолчанию $PSEmailServer Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Subject <string> Задает тему сообщения электронной почты. Это обязательный параметр. Требуется? true Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -To <string[]> Задает адрес, по которому отправляется сообщение. Введите имена (необяз ательно) и адрес электронной почты, например "Имя <someone@example.com> ". Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSsl [<SwitchParameter>] Использует протокол SSL (Secure Sockets Layer) для установки подключени я к удаленному компьютеру для отправки почты. По умолчанию SSL не испол ьзуется. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Путь и имена файлов вложений можно передать командлету Send-MailMessage по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>send-mailmessage -to "User01 <user01@example.com>" -from "User02 <use r02@example.com>" -subject "Test mail" Описание ----------- Эта команда отправляет сообщение электронной почты от пользователя User01 п ользователю User02. У сообщения имеется тема, которая является обязательной, но нет текста, кот орый задавать необязательно. Кроме того, поскольку параметр SmtpServer не з адан, командлет Send-MailMessage использует в качестве SMTP-сервера значени е привилегированной переменной $PSEmailServer. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>send-mailmessage -from "User01 <user01@example.com>" -to "User02 <use r02@example.com>", "User03 <user03@example.com>" -subject "Sending the Atta chment" -body "Forgot to send the attachment. Sending now." -Attachment "da ta.csv" -priority High -dno onSuccess, onFailure -smtpServer smtp.fabrikam. com Описание ----------- Эта команда отправляет сообщение электронной почты с вложением от пользоват еля User01 двум другим пользователям. Она устанавливает уровень важности "High" и запрашивает уведомление по элек тронной почте в случае доставки сообщений или сбоя доставки. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>send-mailmessage -to "User01 <user01@example.com>" -from "ITGroup <it dept@example.com>" -cc "User02 <user02@example.com>" -bcc ITMgr <itmgr@exam ple.com> -subject "Don't forget today's meeting" -credential domain01\admi n01 -useSSL Описание ----------- Эта команда отправляет сообщение электронной почты от пользователя User01 в список рассылки ITGroup с копией (CC) пользователю User02 и скрытой копией (BCC) ИТ-менеджеру (ITMgr). Команда использует учетные данные администратора домена и параметр UseSSL. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135256 Set-Acl ИМЯ Set-Acl ОПИСАНИЕ Изменяет дескриптор безопасности указанного ресурса, например файла или раз дела реестра. СИНТАКСИС Set-Acl [-Path] <string[]> [-AclObject] <ObjectSecurity> [-Exclude <string[ ]>] [-Filter <string>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatI f] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Set-Acl изменяет дескриптор безопасности указанного ресурса, тако го как файл или раздел реестра, в соответствии со значением предоставленног о дескриптором безопасности. Чтобы использовать командлет Set-Acl, воспользуйтесь параметром Path для оп ределения ресурса, дескриптор безопасности которого нужно изменить, и испол ьзуйте параметр AclObject, чтобы предоставить дескриптор безопасности со зн ачениями, которые нужно применить. Командлет Set-Acl использует значение па раметра как образец и изменяет значения в дескрипторе безопасности ресурса в соответствии со значениями в параметре AclObject. ПАРАМЕТРЫ -AclObject <ObjectSecurity> Задает список управления доступом с заданными значениями свойств. Коман длет Set-Acl изменяет список управления доступом ресурса, заданного пар аметром Path, в соответствии со значениями в указанном объекте безопасн ости. Вывод командлета Get-Acl можно сохранить в переменной, а затем использо вать параметр AclObject, чтобы передать переменную, или ввести команду Get-Acl. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Изменяет только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*. txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий дескриптор безопасности. По умолчани ю этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Определяет ресурс, дескриптор безопасности которого требуется изменить. Введите путь к ресурсу, например путь к файлу или разделу реестра. Под становочные знаки разрешены. Если объект безопасности передается командлету Set-Acl (с помощью парам етра AclObject или путем передачи объекта из Get-Acl и Set-Acl) и парам етр Path пропущен (имя и значение), то командлет Set-Acl использует пут ь, включенный в объект безопасности. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Security.AccessControl.ObjectSecurity Дескриптор безопасности можно передать командлету Set-Acl по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Отсутствует или объект безопасности По умолчанию командлет Set-Acl не формирует никаких выходных данных. Од нако если использовать параметр "-Passthru", он создает объект безопасн ости. Тип объекта безопасности зависит от типа ресурса. ПРИМЕЧАНИЯ Командлет Set-Acl поддерживается поставщиками файловой системы и реестр а Windows PowerShell. Поэтому ее можно использовать для изменения дескр ипторов безопасности файлов, каталогов и разделов реестра. При указании нескольких значений параметра разделяйте их запятыми. Напр имер: "<имя-параметра> <значение1>, <значение2>". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$DogACL = get-acl c:\dog.txt C:\PS>set-acl -path C:\cat.txt -AclObject $DogACL Описание ----------- Эти команды копируют значения из дескриптора безопасности файла Dog.txt в д ескриптор безопасности файла Cat.txt. После завершения работы команд дескри пторы безопасности файлов Dog.txt и Cat.txt идентичны. В первой команде используется командлет Get-Acl, чтобы получить дескриптор безопасности файла Dog.txt. Оператор назначения (=) сохраняет дескриптор бе зопасности в качестве значения переменной $DogACL. Вторая команда использует Set-Acl, чтобы изменить значения списка ACL файла Cat.txt на значения из переменной $DogACL. Значение параметра Path представляет собой путь к файлу Cat.txt. Значение п араметра AclObject — образец списка ACL, в данном случае список ACL файла D og.txt, как он был сохранен в переменной $DogACL. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-acl c:\dog.txt | set-acl -path C:\cat.txt Описание ----------- Эта команда почти такая же, как команда в предыдущем примере, за исключение м того, что в ней используется оператор конвейера для передачи дескриптора безопасности, извлеченного в команде Get-Acl, в команду Set-Acl. В первой команде используется командлет Get-Acl, чтобы получить дескриптор безопасности файла Dog.txt. Оператор конвейера (|) передает объект, который представляет дескриптор безопасности файла Dog.txt, в команду Set-Acl. Во второй команде используется командлет Set-Acl, чтобы применить дескрипто р безопасности файла Dog.txt к файлу Cat.txt. После завершения работы коман ды списки ACL файлов Dog.txt и Cat.txt идентичны. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$newACL = get-acl file0.txt C:\PS>get-childitem c:\temp -recurse -include *.txt -force | set-acl -aclob ject $newacl Описание ----------- Эти команды применяют дескрипторы безопасности в файле File0.txt ко всем те кстовым файлам в каталоге "C:\Temp" и во всех его вложенных каталогах. Первая команда получает дескриптор безопасности файла File0.txt в текущем к аталоге и использует оператор назначения (=), чтобы сохранить его в перемен ной $newACL. Первая команда в конвейере использует командлет Get-ChildItem, чтобы получи ть все текстовые файлы в каталоге "C:\Temp". Параметр Recurse расширяет дей ствие команды на все вложенные каталоги "C:\temp". Параметр Include огранич ивает набор извлеченных файлов файлами с расширением ".txt". Параметр Force позволяет извлечь скрытые файлы, которые в противном случае были бы пропущ ены. (Нельзя указать "c:\temp\*.txt", так как параметр Recurse применяется к каталогам, а не файлам.) Оператор конвейера (|) передает объекты, представляющие извлеченные файлы, в команду Set-Acl, которая применяет дескриптор безопасности в параметре Ac lObject ко всем файлам в конвейере. На практике лучше использовать параметр Whatif со всеми командами Set-Acl, которые могут влиять больше, чем на один ресурс. В этом случае второй коман дой в конвейере будет "set-acl -aclobject $newacl -whatif". Эта команда пер ечисляет файлы, на которые воздействует команда. После просмотра результато в можно вновь запустить команду без параметра Whatif. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113389 Get-Acl Set-Alias ИМЯ Set-Alias ОПИСАНИЕ Создает или изменяет псевдоним (альтернативное имя) командлета или другого элемента команды в текущем сеансе Windows PowerShell. СИНТАКСИС Set-Alias [-Name] <string> [-Value] <string> [-Description <string>] [-Forc e] [-Option {None | ReadOnly | Constant | Private | AllScope}] [-PassThru] [-Scope <string>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Set-Alias создает или изменяет псевдоним (альтернативное имя) ком андлета или элемента команды, такого как функция, скрипт, файл или другой и сполняемый элемент. Командлет Set-Alias можно также использовать для назнач ения текущего псевдонима новой команде и для изменения любых свойств псевдо нима, например его описания. Если не добавить псевдоним в профиль Windows P owerShell, то изменения псевдонима будут утрачены при окончании сеанса или закрытии Windows PowerShell. ПАРАМЕТРЫ -Description <string> Задает описание псевдонима. Можно ввести любую строку. Если описание со держит пробелы, его нужно заключить в кавычки. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету задавать псевдоним, доступный только для чтения. Д ля создания доступных только для чтения псевдонимов, следует использова ть параметр Option. Параметр Force не позволяет задать постоянный псевд оним. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает новый псевдоним. В псевдониме можно использовать любые буквы или цифры, но первым знаком не может быть цифра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Option <ScopedItemOptions> Определяет значение свойства Options псевдонима. Допустимые значения: -- None: не определяет параметров (по умолчанию). -- ReadOnly: свойства псевдонима изменить нельзя, если только не исполь зовать параметр Force. Для удаления псевдонима воспользуйтесь командлет ом Remove-Item. -- Constant: псевдоним нельзя удалить, а его свойства нельзя изменить. Значение "Constant" доступно только при создании псевдонима. Нельзя при своить значение "Constant" параметру существующего псевдонима. -- Private: псевдоним доступен только в области, определенной параметро м Scope. Он невидим за пределами области. -- AllScope: псевдоним копируется во все создаваемые области. Чтобы увидеть свойство псевдонимов Options, введите команду "get-alias| format-table -property Name, Definition, Options -autosize". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий псевдоним. По умолчанию этот командле т не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <string> Задает область действия псевдонима. Допустимые значения: "Global", "Loc al", "Script" или номер относительно текущей области (от 0 до количеств а областей, где 0 — текущая область, а 1 — ее родительская область). По умолчанию используется значение "Local". Дополнительные сведения см. в разделе about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Value <string> Задает имя командлета или элемента команды, для которого создается псев доним. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.AliasInfo Если задан параметр PassThru, командлет Set-Alias создает объект System .Management.Automation.AliasInfo, представляющий псевдоним. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Псевдоним — это альтернативное имя командлета или элемента команды. Для выполнения командлета можно использовать как его полное имя, так и люб ой его псевдоним. Дополнительные сведения см. в разделе About_Aliases. Для создания нового псевдонима используйте командлет Set-Alias или New- Alias. Для удаления псевдонима используйте командлет Remove-Item. Командлет может иметь несколько псевдонимов, но один псевдоним может бы ть связан только с одним командлетом. Если с помощью командлета set-ali as псевдоним назначается другому командлету, то он больше не связан с п режним командлетом. Псевдоним можно создать для командлета, но не для команды с параметрами и значениями. Например, можно создать псевдоним для командлета Set-Loc ation, но для команды "Set-Location C:\Windows\System32" этого сделать нельзя. Чтобы назначить псевдоним команде, создайте функцию, включающую эту команду, и определите псевдоним для этой функции. Чтобы сохранить псевдонимы, действительные в ходе текущего сеанса, и ис пользовать их в другом сеансе, добавьте в профиль Windows PowerShell ко манду set-alias. По умолчанию профили не существуют. Чтобы создать проф иль в месте, на которое указывает путь, хранящийся в переменной $profil e, введите команду "new-item -type file -force $profile". Чтобы вывести значение переменной $profile, введите "$profile". Кроме того, сохранить псевдонимы текущего сеанса можно, скопировав их в файл с помощью командлета Export-Alias, а затем добавив их в список пс евдонимов нового сеанса с помощью командлета Import-Alias. Командлет Set-Alias также можно вызывать с помощью встроенного псевдони ма "sal". Дополнительные сведения см. в разделе About_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-alias -name list -value get-childitem Описание ----------- Эта команда создает для командлета Get-ChildItem псевдоним "list". После со здания этого псевдонима его можно использовать в командной строке и скрипта х вместо имени командлета Get-ChildItem. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-alias list get-location Описание ----------- Эта команда связывает псевдоним "list" с командлетом Get-Location. Если псе вдоним "list" связан с другим командлетом, эта команда меняет привязку и де лает его псевдонимом только командлета Get-Location. Эта команда имеет тот же формат, что и команда в предыдущем примере, но в н ей опущены необязательные имена параметров -Name и -Value. Опуская имена па раметров, следует указывать их значения в заданном в команде порядке. В дан ном случае значение параметра -Name ("list") должно быть указано первым, а значение параметра -Value ("get-location") вторым. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-alias scrub remove-item -option readonly -passthru | format-list Описание ----------- Эта команда связывает псевдоним "scrub" с командлетом Remove-Item. Чтобы эт от псевдоним нельзя было удалить или назначить другому командлету, в данной команде используется параметр -option со значением "ReadOnly". Параметр PassThru указывает оболочке Windows PowerShell, что необходимо по конвейеру передать объект, представляющий новый псевдоним, командлету Forma t-List. Если бы параметр PassThru не был указан, этот командлет не возврати л бы никаких данных, которые можно было бы отобразить в виде списка или как -либо иначе. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>Set-Alias np c:\windows\notepad.exe Описание ----------- Эта команда связывает псевдоним "np" с исполняемым файлом "Блокнота". После выполнения этой команды для запуска "Блокнота" достаточно будет ввести в к омандной строке Windows PowerShell команду "np". Этот пример показывает, что псевдонимы можно создавать не только для команд летов, но и для исполняемых файлов и других элементов. Эту команду можно сделать более универсальной, представив каталог C\Windows с помощью переменной среды "Windir" (${env:windir}). Тогда команда примет вид "set-alias np ${env:windir}\notepad.exe". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>function CD32 {set-location c:\windows\system32} C:\PS>set-alias go cd32 Описание ----------- Эти команды показывают, как назначить псевдоним команде с параметрами или д аже нескольким командам, объединенным в конвейер. Псевдоним можно создать для командлета, но не для команды, включающей коман длет и его параметры. Однако, поместив команду в функцию или скрипт, можно создать один или несколько псевдонимов для имени этой функции или скрипта. В данном примере пользователю нужно создать псевдоним для команды "set-loca tion c:\windows\system32", где "set-location" — командлет, а "C:\Windows\Sy stem32" — значение параметра Path. Для этого в первой команде создается функция "CD32", содержащая команду Set -Location. Вторая команда создает псевдоним "go" для функции CD32. После этого для вып олнения команды Set-Location можно вводить как "CD32", так и "go". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113390 Get-Alias New-Alias Export-Alias Import-Alias Set-AuthenticodeSignature ИМЯ Set-AuthenticodeSignature ОПИСАНИЕ Добавляет подпись Authenticode, чтобы подписать скрипт Windows PowerShell и ли другой файл. СИНТАКСИС Set-AuthenticodeSignature [-FilePath] <string[]> [-Certificate] <X509Certif icate2> [-Force] [-HashAlgorithm <string>] [-IncludeChain <string>] [-Times tampServer <string>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Set-AuthenticodeSignature добавляет подпись Authenticode в любой файл, совместимый с протоколом SIP (Subject Interface Package). В файле скрипта Windows PowerShell подпись имеет вид блока текста, который указывает конец инструкций, выполняемых в скрипте. Если при запуске командл ета в файле уже есть подпись, то эта подпись удаляется. ПАРАМЕТРЫ -Certificate <X509Certificate2> Задает сертификат, который будет использоваться для подписания скрипта или файла. Введите переменную, в которой хранится объект, представляющи й сертификат, или выражение, которое получает сертификат. Чтобы найти сертификат, воспользуйтесь командлетом Get-PfxCertificate и ли Get-ChildItem на диске сертификата (Cert:). Если сертификат недейств ителен или не имеет заверителя подписи кода, то команда завершается сбо ем. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <string[]> Указывает путь к подписываемому файлу. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету добавлять подпись в файл, доступный только для чте ния. Даже при использовании параметра Force командлет не может переопре делить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -HashAlgorithm <string> Задает алгоритм хэширования, который использует Windows для расчета циф ровой подписи для файла. По умолчанию он задан как SHA1, что является а лгоритмом хэширования в Windows по умолчанию. Файлы, подписанные с использованием другого алгоритма хэширования, могу т не распознаваться в других системах. Требуется? false Позиция? named Значение по умолчанию SHA1 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -IncludeChain <string> Определяет, какие сертификаты в цепочке доверия сертификатов включаются в цифровую подпись. "NotRoot" — значение по умолчанию. Допустимые значения: Signer: включает в себя только сертификат подписавшего. NotRoot: включает в себя все сертификаты в цепочке сертификатов, за иск лючением корневого центра. All: включает в себя все сертификаты в цепочке сертификатов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -TimestampServer <string> Использует заданный сервер отметок времени, чтобы добавить к подписи от метку времени. Введите URL-адрес сервера отметок времени в виде строки. Отметка времени представляет собой значение точного времени, когда серт ификат был добавлен в файл. Отметка времени защищает скрипт от сбоев в случае истечения срока действия сертификата, поскольку пользователи и п рограммы могут проверить, что сертификат действовал в момент подписания . Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь к файлу, можно передать командлету Set-Authenti codeSignature по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.Signature ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$cert=Get-ChildItem -Path cert:\CurrentUser\my -CodeSigningCert C:\PS>Set-AuthenticodeSignature -FilePath PsTestInternet2.ps1 -certificate $cert Описание ----------- Эти команды извлекают сертификат подписи кода из поставщика сертификата Win dows PowerShell и используют его, чтобы подписать скрипт Windows PowerShell . Первая команда использует командлет Get-ChildItem и поставщик сертификата W indows PowerShell, чтобы получить сертификаты во вложенном каталоге "Cert:\ CurrentUser\My" хранилища сертификатов. (Cert: это диск, предоставленный по ставщиком сертификата.) Параметр CodeSigningCert, который поддерживается то лько поставщиком сертификата, обеспечивает извлечение сертификатов только с заверителем подписи кода. Команда сохраняет результат в переменной $cert. Вторая команда подписывает скрипт PSTestInternet2.ps1 с помощью командлета Set-AuthenticodeSignature. Параметр FilePath указывает имя скрипта, а парам етр Certificate указывает, что сертификат хранится в переменной $cert. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$cert = Get-PfxCertificate C:\Test\Mysign.pfx C:\PS>Set-AuthenticodeSignature -Filepath ServerProps.ps1 -Cert $cert Описание ----------- Эти команды используют командлет Get-PfxCertificate для поиска сертификата подписи кода. Затем они используют его для подписи скрипта Windows PowerShe ll. Первая команда использует командлет Get-PfxCertificate, чтобы найти сертифи кат "C:\Test\MySign.pfx" и сохранить его в переменной $cert. Во второй команде командлет Set-AuthenticodeSignature используется для подп иси скрипта. Параметр FilePath подписи Set-AuthenticodeSignature указывает путь к файлу подписываемого скрипта, а параметр Cert передает переменную $c ert, в которой содержится сертификат, в Set-AuthenticodeSignature. Если файл сертификата защищен паролем, то оболочка Windows PowerShell проси т ввести пароль. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Set-AuthenticodeSignature -filepath c:\scripts\Remodel.ps1 -certifica te $cert -IncludeChain All -TimeStampServer "http://timestamp.fabrikam.com/ scripts/timstamper.dll" Описание ----------- Эта команда добавляет цифровую подпись, которая включает корневой центр в ц епочке доверия, и подписывается сторонним сервером штампов времени. Команда использует параметр FilePath, чтобы указать подписываемый скрипт, и параметр Certificate, чтобы указать сертификат, сохраненный в переменной $ cert. Она использует параметр IncludeChain, чтобы включить все подписи в це почке доверия (включая корневой центр сертификации). Кроме того, она исполь зует параметр TimeStampServer, чтобы добавить к подписи отметку времени. Эт о защищает скрипт от сбоя в случае истечения срока действия сертификата. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113391 about_Signing about_Execution_Policies Get-AuthenticodeSignature Get-PfxCertificate Get-ExecutionPolicy Set-ExecutionPolicy Set-Content ИМЯ Set-Content ОПИСАНИЕ Записывает новое содержимое в элемент или заменяет им старое. СИНТАКСИС Set-Content [-LiteralPath] <string[]> [-Value] <Object[]> [-Credential <PSC redential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <st ring[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParamet ers>] Set-Content [-Path] <string[]> [-Value] <Object[]> [-Credential <PSCredenti al>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]> ] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Set-Content предназначен для обработки строк, он записывает новое содержимое в указанный элемент (например, файл) или заменяет старое содерж имое элемента. В отличие от командлета Add-Content, который добавляет содер жимое в конец файла, командлет Set-Content заменяет существующие в файле да нные новыми. Новое содержимое можно ввести в команде или передать командлет у Set-Content по конвейеру. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету задать содержимое файла, даже если файл доступен т олько для чтения. Реализация варьируется от поставщика к поставщику. До полнительные сведения см. в разделе About_Providers. Даже при использов ании параметра Force командлет не может переопределить ограничения безо пасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Изменяет только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*. txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к элементу, получающему содержимое. В отличие от значения п араметра Path, значение параметра LiteralPath используется точно в том виде, в котором оно введено. Никакие символы не интерпретируются как по дстановочные знаки. Если путь включает escape-символы, его нужно заключ ить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows P owerShell, что никакие символы не следует интерпретировать как escape-с имволы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий содержимое. По умолчанию этот командл ет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементу, получающему содержимое. Подстановочные знаки ра зрешены. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Value <Object[]> Задает новое содержимое элемента. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Объект, содержащий новое значение для элемента, можно передать командле ту Set-Content по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.String При использовании параметра Passthru командлет Set-Content создает объе кт System.String, представляющий содержимое. В противном случае этот ко мандлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Set-Content также можно вызывать с помощью встроенного псевдо нима "sc". Дополнительные сведения см. в разделе About_Aliases. Командлет Set-Content предназначен для обработки строк. Если командлету Set-Content передаются по конвейеру нестроковые объекты, они преобразу ются перед записью в строковой тип. Для записи объектов в файлы использ уется командлет Out-File. Командлет Set-Content предназначен для работы с данными, предоставляемы ми любым поставщиком. Чтобы получить список поставщиков, доступных в те кущем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-content -path C:\Test1\test*.txt -value "Hello, World" Описание ----------- Эта команда удаляет содержимое всех файлов из папки Test1, имена которых на чинаются с "test" и которые содержат строку "Hello, World". Этот пример пок азывает, как задать содержимое в тексте команды. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-date | set-content C:\Test1\date.csv Описание ----------- Эта команда создает файл из строк переменной длины с разделителями-запятыми (CSV), в котором содержатся только текущие время и дата. Для извлечения те кущего системного времени и даты используется командлет Get-Date. Оператор конвейера передает результат командлету Set-Content, который создает файл и записывает в него содержимое. Если папка Test1 не существует, команда завершается ошибкой. Если не сущест вует файл, команда его создает. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>(get-content Notice.txt) | foreach-object {$_ -replace "Warning", "Ca ution"} | set-content Notice.txt Описание ----------- Эта команда заменяет в файле Notice.txt все вхождения слова "Warning" на "C aution". Для получения содержимого файла Notice.txt в этой команде используется кома ндлет Get-Content. Результаты с помощью оператора конвейера передаются кома ндлету ForEach-Object, который применяет выражение к каждой строке содержим ого, полученного с помощью Get-Content. В указанном выражении для обращения к текущему элементу используется знак "$_", а заменяемый текст задается с помощью параметра Replace. Следующий оператор конвейера передает измененное содержимое командлету Set- Content, который заменяет указанный текст файла Notice.txt новым содержимым . Скобки, в которые заключен командлет Get-Content, обеспечивают, что операци я Set не будет начата до завершения операции Get. Без них команда завершитс я с ошибкой, так как две указанных функции будут пытаться одновременно полу чить доступ к одному и тому же файлу. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113392 about_Providers Add-Content Get-Content Clear-Content Set-Date ИМЯ Set-Date ОПИСАНИЕ Устанавливает системное время на компьютере. СИНТАКСИС Set-Date [-Adjust] <TimeSpan> [-DisplayHint {Date | Time | DateTime}] [-Con firm] [-WhatIf] [<CommonParameters>] Set-Date [-Date] <DateTime> [-DisplayHint {Date | Time | DateTime}] [-Confi rm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Set-Date изменяет системные дату и время, заменяя их указанными з начениями. Указать новую дату и время можно в виде строки, или передав кома ндлету Set-Date объект DateTime или TimeSpan. Для указания новой даты или в ремени используйте параметр Date. Для указания интервала изменения использу йте параметр Adjust. ПАРАМЕТРЫ -Adjust <TimeSpan> Прибавляет или вычитает указанное значение из текущей даты и времени. М ожно вводить изменения в стандартном формате даты и времени для использ уемой локали либо использовать параметр Adjust, чтобы передать объект T imeSpan от командлета New-TimeSpan командлету Set-Date. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Date <DateTime> Устанавливает указанные значения даты и времени. Можно ввести новую дат у в кратком формате даты, а время в стандартном формате времени для исп ользуемой локали. Или можно передать объект Date-Time из командлета Get -Date. Если задана только дата (без времени), командлет Set-Date устанавливает время на полночь указанной даты. Если указано только время, дата не из меняется. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -DisplayHint <DisplayHintType> Определяет, какие элементы даты и времени будут отображаться. Допустимые значения: -- date: отображается только дата; -- time: отображается только время; -- datetime: отображаются дата и время. Этот параметр влияет только на выводимый результат. Он не влияет на объ ект DateTime, возвращаемый командлетом Get-Date. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.DateTime Можно передать дату в Set-Date с помощью конвейера. ВЫХОДНЫЕ ДАННЫЕ System.DateTime Командлет Set-Date возвращает объект, представляющий заданную им дату. ПРИМЕЧАНИЯ Используя этот командлет для изменения даты и времени на компьютере, бу дьте внимательны. Из-за изменения даты или времени компьютер может не п олучать системные события и обновления, которые запускаются в определен ный день или момент времени. Для предотвращения ошибок используйте пара метры -WhatIf и -Confirm. Для работы с объектами DateTime и TimeSpan, которые используются с кома ндлетом Set-Date, можно применять стандартные методы .NET, такие как Ad dDays, AddMonths и FromFileTime. Дополнительные сведения см. в разделах "Методы объектов DateTime" и "Методы объектов TimeSpan". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Set-Date -Date (Get-Date).AddDays(3) Описание ----------- Эта команда добавляет к текущей системной дате три дня. На время она не вли яет. Параметр Date используется в этой команде для указания даты. Командлет Get-Date возвращает текущие значения даты и времени, после чего для объект ов DateTime вызывается метод AddDays платформы .NET, добавляющий к текущей дате 3 дня. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-date -adjust -0:10:0 -displayHint time Описание ----------- Эта команда переводит текущее системное время на 10 минут назад. Параметр A djust используется в ней для указания интервала изменения (минус 10 минут) в стандартном формате времени текущей локали. Параметр DisplayHint указывае т, что должно быть отображено только время; но он не влияет на объект DateT ime, возвращаемый командлетом Set-Date. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$t = get-date C:\PS>set-date -date $t Описание ----------- Эти команды изменяют системные дату и время компьютера, заменяя их значение м, сохраненным в переменной $t. Первая команда получает дату и сохраняет ее в переменной $t. Вторая команда с помощью параметра Date передает объект D ateTime из переменной $t командлету Set-Date. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$90mins = new-timespan -minutes 90 C:\PS>set-date -adjust $90mins Описание ----------- Эти команды переводят системное время на локальном компьютере на 90 минут в перед. Первая команда с помощью командлета New-Timespan создает объект Time Span, определяющий 90-минутный интервал, после чего сохраняет его в перемен ной $90mins. Вторая команда с помощью параметра Adjust командлета Set-Date изменяет время на интервал, который определяется объектом TimeSpan, сохране нным в переменной $90mins. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113393 Get-Date New-TimeSpan Set-ExecutionPolicy ИМЯ Set-ExecutionPolicy ОПИСАНИЕ Изменяет пользовательские параметры политики выполнения Windows PowerShell. СИНТАКСИС Set-ExecutionPolicy [-ExecutionPolicy] {Unrestricted | RemoteSigned | AllSi gned | Restricted | Default | Bypass | Undefined} [[-Scope] {Process | Curr entUser | LocalMachine | UserPolicy | MachinePolicy}] [-Force] [-Confirm] [ -WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Set-ExecutionPolicy изменяет пользовательские параметры политики выполнения Windows PowerShell. Чтобы выполнить эту команду в Windows Vista, Windows Server 2008 и более по здних версиях Windows, необходимо запустить Windows PowerShell с параметром "Запуск от имени администратора", даже если пользователь является членом г руппы "Администраторы" компьютера. Политика выполнения — часть стратегии безопасности оболочки Windows PowerSh ell. Она определяет, можно ли загружать файлы конфигурации (в том числе про филь Windows PowerShell) и выполнять скрипты, и определяет, для выполнения каких скриптов, если такие имеются, требуется цифровая подпись. Дополнительные сведения см. в разделе about_Execution_Policies. ПАРАМЕТРЫ -ExecutionPolicy <ExecutionPolicy> Задает новую политику выполнения для оболочки. Имя параметра ("Name") у казывать необязательно. Допустимые значения: -- Restricted: не загружает файлы конфигурации и не выполняет скрипты. "Restricted" — значение по умолчанию. -- AllSigned: требует, чтобы все скрипты и файлы конфигурации были подп исаны доверенным издателем, в том числе скрипты, подготовленные на лока льном компьютере. -- RemoteSigned: требует, чтобы все скрипты и файлы конфигурации, загру женные из Интернета, были подписаны доверенным издателем. -- Unrestricted: загружает все файлы конфигурации и выполняет все скрип ты. Если запущен неподписанный скрипт, который был загружен из Интернет а, то программа просит ввести разрешение перед запуском. -- Bypass: ничего не блокируется, и никакие предупреждения и запросы не появляются. Undefined: удаляет текущую назначенную политику выполнения из текущей о бласти. Этот параметр не удаляет политику выполнения, заданную в област и групповой политики. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Force [<SwitchParameter>] Подавляет все запросы. По умолчанию Set-ExecutionPolicy отображает пред упреждение при каждом изменении политики выполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <ExecutionPolicyScope> Задает область политики выполнения. По умолчанию используется значение LocalMachine. Допустимые значения: -- Process: действие политики выполнения распространяется только на тек ущий процесс Windows PowerShell. -- CurrentUser: действие политики выполнения распространяется только на текущего пользователя. -- LocalMachine: действие политики выполнения распространяется на всех пользователей компьютера. Чтобы удалить политику выполнения из конкретной области, задайте для по литики выполнения этой области значение Undefined. Требуется? false Позиция? 2 Значение по умолчанию LocalMachine Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.ExecutionPolicy, System.String Объект политики выполнения или строку, содержащую имя политики выполнен ия, можно передать командлету Set-ExecutionPolicy по конвейеру. ВЫХОДНЫЕ ДАННЫЕ None Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ При использовании Set-ExecutionPolicy новый пользовательский параметр з аписывается в реестр и остается без изменений до тех пор, пока не будет изменен. Однако если для компьютера или пользователя включена групповая политика "Включить выполнение скриптов", то пользовательский параметр записывае тся в реестр, но не действует, и оболочка Windows PowerShell отображает сообщение, в котором разъясняется конфликт. Использовать командлет Set -ExecutionPolicy, чтобы переопределить групповую политику, нельзя, даже если пользовательский параметр содержит больше ограничений, чем полити ка. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-executionpolicy remotesigned Описание ----------- Эта команда устанавливает значение RemoteSigned для пользовательского парам етра политики выполнения оболочки. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Set-ExecutionPolicy Restricted Set-ExecutionPolicy : Windows PowerShell updated your local preference succ essfully, but the setting is overridden by the group policy applied to your system. Due to the override, your shell will retain its current effective execution policy of "AllSigned". Contact your group policy administrator fo r more information. At line:1 char:20 + set-executionpolicy < restricted Описание ----------- Эта команда пытается установить для политики выполнения оболочки значение " Restricted". Параметр "Restricted" записывается в реестр, но не действует, так как противоречит групповой политике, даже если он представляет более ст рогие ограничения, чем в политике. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>invoke-command -computername Server01 -scriptblock {get-executionpoli cy} | set-executionpolicy -force Описание ----------- Эта команда получает политику выполнения с удаленного компьютера и применяе т ее к локальному компьютеру. Эта команда использует командлет Invoke-Command для отправки команды удален ному компьютеру. Поскольку объект ExecutionPolicy (Microsoft.PowerShell.Exe cutionPolicy) можно передать командлету Set-ExecutionPolicy по конвейеру, э та команда не требует параметра ExecutionPolicy. Команда имеет параметр Force, который подавляет подтверждения. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy AllSigned -fo rce C:\PS> get-executionpolicy -list Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser AllSigned LocalMachine RemoteSigned C:\PS> get-executionpolicy AllSigned Описание ----------- В этом примере показано, как задать политику выполнения для конкретной обла сти. Первая команда использует командлет Set-ExecutionPolicy для указания полити ки выполнения AllSigned для текущего пользователя. Она использует параметр Force для подавления подтверждений. Вторая команда использует параметр List командлета Get-ExecutionPolicy для получения политик выполнения, заданных в каждой области. В результате вывод ится сообщение, что политика выполнения, заданная для текущего пользователя , отличается от политики выполнения, заданной для всех пользователей компью тера. Третья команда использует командлет Get-ExecutionPolicy без параметров для получения действующей политики выполнения для текущего пользователя локальн ого компьютера. В результате подтверждается, что политика выполнения, задан ная для текущего пользователя, имеет приоритет над политикой, заданной для всех пользователей. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>set-executionpolicy -scope CurrentUser -executionPolicy Undefined Описание ----------- Эта команда использует значение политики выполнения Undefined для эффективн ого удаления политики выполнения, заданной для области текущего пользовател я. В результате политика выполнения, заданная в групповой политике или в об ласти LocalMachine (все пользователи), является действующей. Если политику выполнения задать во всех областях как Undefined, а групповую политику не задавать, политика выполнения по умолчанию Restricted является действующей для всех пользователей компьютера. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113394 Get-ExecutionPolicy Set-AuthenticodeSignature Get-AuthenticodeSignature about_Execution_Policies about_Signing Set-Item ИМЯ Set-Item ОПИСАНИЕ Заменяет значение элемента на значение, указанное в команде. СИНТАКСИС Set-Item [-LiteralPath] <string[]> [[-Value] <Object>] [-Credential <PSCred ential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <strin g[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters >] Set-Item [-Path] <string[]> [[-Value] <Object>] [-Credential <PSCredential> ] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [ -PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Set-Item заменяет значение элемента (например, переменной или раз дела реестра) на значение, указанное в команде. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету задать элементы, которые не могут быть изменены др угим образом, например псевдонимы или переменные только для чтения. Ком андлет не может изменять псевдонимы или переменные, являющиеся констант ами. Реализация варьируется от поставщика к поставщику. Дополнительные сведения см. в разделе About_Providers. Даже при использовании параметр а Force командлет не может переопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Изменяет только указанные элементы. Значение этого параметра определяет значение параметра Path. Введите элемент пути или шаблон, например "*. txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к местоположению новых элементов. В отличие от значения пар аметра Path, значение параметра LiteralPath используется точно в том ви де, в котором оно введено. Никакие символы не интерпретируются как подс тановочные знаки. Если путь включает escape-символы, его нужно заключит ь в одиночные кавычки. Одиночные кавычки указывают оболочке Windows Pow erShell, что никакие символы не следует интерпретировать как escape-сим волы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает по конвейеру объект, представляющий элемент. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к местоположению новых элементов. Подстановочные знаки разр ешены. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Value <Object> Задает новое значение элемента. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Объект, представляющий новое значение элемента, можно передать командле ту Set-Item по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или объект, представляющий новый или измененный элемент. При использовании параметра Passthru командлет Set-Item создает объект, представляющий элемент. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Set-Item также можно вызывать с помощью встроенного псевдоним а "si". Дополнительные сведения см. в разделе About_Aliases. Командлет Set-Item не поддерживается поставщиком FileSystem Windows Pow erShell. Чтобы изменить значения элементов файловой системы, используйт е командлет Set-Content. На дисках реестра (HKLM: и HKCU:) командлет Set-Item изменяет значение параметра Default раздела реестра. Для создания и изменения имен раздел ов реестра используются командлеты New-Item и Rename-Item. Чтобы измени ть имена и данные параметров реестра, используйте командлеты New-ItemPr operty, Set-ItemProperty и Rename-ItemProperty. Командлет Set-Item предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущ ем сеансе, введите команду "Get-PsProvider". Дополнительные сведения см . в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-item -path alias:np -value c:\windows\notepad.exe Описание ----------- Эта команда создает псевдоним "np" для приложения "Блокнот". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-item -path env:UserRole -value Administrator Описание ----------- Эта команда использует командлет Set-Item для присвоения переменной среды " UserRole" значения "Administrator". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-item -path function:prompt -value {'PS '+ $(Get-Date -format t) + " " + $(Get-Location) + '> '} Описание ----------- В этой команде командлет Set-Item используется для изменения функции "promp t" таким образом, чтобы перед значением пути отображалось время. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>set-item -path function:prompt -options "AllScope,ReadOnly" Описание ----------- Эта команда задает значения параметров AllScope и ReadOnly для функции "pro mpt". В ней используется динамический параметр Options командлета Set-Item. Параметр Options доступен для Set-Item только при использовании с поставщи ком Alias или Function. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113395 about_Providers Get-Item New-Item Remove-Item Clear-Item Invoke-Item Rename-Item Move-Item Copy-Item Set-ItemProperty ИМЯ Set-ItemProperty ОПИСАНИЕ Создает или изменяет значение свойства элемента. СИНТАКСИС Set-ItemProperty [-LiteralPath] <string[]> -InputObject <psobject> [-Creden tial <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-In clude <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<Comm onParameters>] Set-ItemProperty [-Path] <string[]> -InputObject <psobject> [-Credential <P SCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParam eters>] Set-ItemProperty [-LiteralPath] <string[]> [-Name] <string> [-Value] <Objec t> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [- Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransact ion] [<CommonParameters>] Set-ItemProperty [-Path] <string[]> [-Name] <string> [-Value] <Object> [-Cr edential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Force] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [-UseTransaction] [ CommonParameters>] ОПИСАНИЕ Командлет Set-ItemProperty изменяет значение свойства заданного элемента. Э тот командлет можно использовать для задания или изменения свойств элементо в. Например, командлет Set-ItemProperty можно использовать для присвоения с войству IsReadOnly объекта файла значения true. Командлет Set-ItemProperty можно также использовать для создания и изменени я параметров и значений реестра. Например, можно добавить в раздел реестра новую запись и задать или изменить ее значение. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, создаваемый командлетом G et-Credential. При вводе имени пользователя система запросит пароль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Определяет элементы, которые не должны быть обработаны командлетом, и в ключает все остальные. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Разрешает командлету устанавливать значения свойств элементов, которые были бы недоступны пользователю другими способами. Реализация варьирует ся от поставщика к поставщику. Дополнительные сведения см. в разделе Ab out_Providers. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Определяет только элементы, которые будут обработаны командлетом, и иск лючает все остальные. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объект, свойства которого необходимо изменить. Укажите переменну ю, содержащую объект, либо введите команду, получающую его. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь к свойству элемента. Значение параметра LiteralPath использ уется точно в том виде, в котором оно введено. Никакие символы не интер претируются как подстановочные знаки. Если путь включает escape-символы , его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие символы не следует интерпретир овать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Name <string> Задает имя свойства. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий свойство элемента. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string[]> Задает путь к элементам, свойство которых нужно задать. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Value <Object> Задает значение свойства. Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты можно передать командлету Set-ItemProperty по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSCustomObject Если задан параметр PassThru, командлет Set-ItemProperty формирует объе кт PSCustomObject, представляющий измененный элемент и новое значение е го свойства. В противном случае этот командлет не формирует никаких вых одных данных. ПРИМЕЧАНИЯ Командлет Set-ItemProperty предназначен для работы с данными, предостав ляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в текущем сеансе, введите команду "Get-PSProvider". Дополнительные све дения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-itemproperty -path c:\GroupFiles\final.doc -name IsReadOnly -valu e $true Описание ----------- Эта команда присваивает свойству IsReadOnly файла final.doc значение "true" . Команда изменяет значение свойства файла final.doc с помощью командлета Set -ItemProperty. Для задания файла используется параметр Path. Параметр Name используется для задания имени свойства, а параметр Value — для задания нов ого значения. Автоматическая переменная $true представляет значение TRUE. Дополнительные сведения см. в разделе about_Automatic_Variables. Файл является объектом System.IO.FileInfo, и IsReadOnly — лишь одно из его свойств. Чтобы просмотреть все свойства и методы объекта FileInfo, передайт е файл по конвейеру командлету Get-Member. Например: "final.doc | get-membe r". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees - value 823 C:\PS>get-itemproperty -path HKLM:\Software\MyCompany PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\soft ware\mycompany PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\soft ware PSChildName : mycompany PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry NoOfLocations : 2 NoOfEmployees : 823 C:\PS>set-itemproperty -path HKLM:\Software\MyCompany -name NoOfEmployees - value 824 C:\PS>get-itemproperty -path HKLM:\Software\MyCompany PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\soft ware\mycompany PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\soft ware PSChildName : mycompany PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry NoOfLocations : 2 NoOfEmployees : 824 Описание ----------- В этом примере показано, как использовать командлет Set-ItemProperty для со здания новой записи в реестре и присвоения этой записи значения. В нем созд ается запись NoOfEmployees в разделе MyCompany, который находится в разделе HKLM\Software, и этой записи присваивается значение 823. Поскольку записи реестра рассматриваются как свойства разделов реестра (кот орые представляют собой элементы), командлет Set-ItemProperty можно использ овать для создания записей реестра, а также для задания и изменения их знач ений. Первая команда с помощью командлета Set-ItemProperty создает запись реестра . Для задания пути к диску HKLM: и разделу Software\MyCompany используется параметр Path. Параметр Name используется для задания имени записи, а парам етр Value — для задания значения. Вторая команда с помощью командлета Get-ItemProperty отображает новую запис ь реестра. Просмотреть записи с помощью командлета Get-Item или Get-ChildIt em нельзя, поскольку записи являются свойствами раздела, а не элементами ил и дочерними элементами. Третья команда изменяет значение записи NoOfEmployees на 824. Также можно создать запись реестра и ее значение с помощью командлета New-I temProperty, а затем с помощью командлета Set-ItemProperty изменить значени е. Чтобы получить дополнительные сведения о диске HKLM:, введите команду "get- help get-psdrive". Чтобы получить дополнительные сведения об использовании Windows PowerShell для управления реестром, введите команду "get-help regis try". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-childitem weekly.txt | set-itemproperty -name IsReadOnly -value $ true Описание ----------- На примере этих команд показано, как переслать элемент командлету Set-ItemP roperty с помощью оператора конвейера (|). В первой части команды используется командлет Get-ChildItem для получения о бъекта, представляющего файл Weekly.txt. С помощью оператора конвейера объе кт файла пересылается командлету Set-ItemProperty. Параметры Name и Value к оманды Set-ItemProperty используются для задания свойства и его нового знач ения. Эта команда эквивалентна использованию параметра InputObject для задания об ъекта, получаемого командлетом Get-ChildItem. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113396 about_Providers Get-ItemProperty New-ItemProperty Clear-ItemProperty Remove-ItemProperty Rename-ItemProperty Move-ItemProperty Copy-ItemProperty Set-Location ИМЯ Set-Location ОПИСАНИЕ Присваивает текущему местоположению заданное значение. СИНТАКСИС Set-Location [-LiteralPath] <string> [-PassThru] [-UseTransaction] [<Common Parameters>] Set-Location [[-Path] <string>] [-PassThru] [-UseTransaction] [<CommonParam eters>] Set-Location [-StackName <string>] [-PassThru] [-UseTransaction] [<CommonPa rameters>] ОПИСАНИЕ Командлет Set-Location присваивает рабочему местоположению заданное значени е. Местоположение может быть каталогом, вложенным каталогом, местоположение м в реестре или другим стеком каталогов. ПАРАМЕТРЫ -LiteralPath <string> Задает путь к местоположению. Значение параметра LiteralPath использует ся точно в том виде, в котором оно введено. Никакие символы не интерпре тируются как подстановочные знаки. Если путь включает escape-символы, е го нужно заключить в одиночные кавычки. Одиночные кавычки указывают обо лочке Windows PowerShell, что никакие символы не следует интерпретирова ть как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Передает по конвейеру объект, представляющий местоположение. По умолчан ию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Этот параметр используется для задания пути к новому рабочему местополо жению. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -StackName <string> Имя стека, которое задается местоположению. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь (но не литеральный путь), можно передать команд лету Set-Location по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PathInfo Если задан параметр PassThru, командлет Set-Location создает объект Sys tem.Management.Automation.PathInfo, представляющий местоположение. В пр отивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Set-Location предназначен для работы с данными, предоставляем ыми любым поставщиком. Чтобы получить список поставщиков, доступных в т екущем сеансе, введите команду "Get-PSProvider". Дополнительные сведени я см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-location HKLM: Описание ----------- Эта команда присваивает текущему местоположению заданное значение. В данном случае им является поставщик HKLM. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-location env: -passthru Path ---- Env:\ Описание ----------- Эта команда присваивает текущему местоположению заданное значение. В данном случае им является поставщик переменных среды. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-location C: Описание ----------- Эта команда присваивает текущему местоположению заданное значение. В данном случае им является диск C: поставщика файловой системы. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113397 about_Providers Get-Location Pop-Location Push-Location Set-PSBreakpoint ИМЯ Set-PSBreakpoint ОПИСАНИЕ Устанавливает точку останова на строке, команде или переменной. СИНТАКСИС Set-PSBreakpoint -Command <string[]> [[-Script] <string[]>] [-Action <scrip tblock>] [<CommonParameters>] Set-PSBreakpoint [-Script] <string[]> [-Line] <Int32[]> [[-Column] <int>] [ -Action <scriptblock>] [<CommonParameters>] Set-PSBreakpoint -Variable <string[]> [[-Script] <string[]>] [-Mode {Read | Write | ReadWrite}] [-Action <scriptblock>] [<CommonParameters>] ОПИСАНИЕ Командлет Set-PSBreakpoint устанавливает точку останова в скрипте или в люб ой команде, выполняемой в текущем сеансе. С помощью командлета Set-PSBreak point точку останова можно установить до выполнения скрипта или команды или во время отладки в момент останова на другой точке останова. Примечание. Командлет Set-PSBreakpoint не позволяет устанавливать точку ост анова на удаленном компьютере. Для отладки скрипта на удаленном компьютере скопируйте скрипт на локальный компьютер и отлаживайте его локально. Каждая команда Set-PSBreakpoint создает точку останова одного из следующих трех типов. -- Точка останова строки: устанавливает точку останова на пересечении стр оки и столбца с заданными номерами. -- Точка останова команды: устанавливает точку останова на команде или фу нкции. -- Точка останова переменной: устанавливает точку останова на переменной. С помощью одной команды Set-PSBreakpoint можно установить точки останова на нескольких строках, командах или переменных, однако каждая команда Set-PSB reakpoint задает точки останова только одного типа. В точке останова Windows PowerShell временно прекращает выполнение и переда ет управление отладчику. Командная строка меняет вид на "DBG>", а у пользов ателя появляется доступ к набору команд отладчика. Однако с помощью парамет ра Action можно настроить альтернативную реакцию, например условия срабатыв ания точки останова или инструкции по выполнению дополнительных задач, таки х как ведение журнала или диагностика. Командлет Set-PSBreakpoint — это один из нескольких командлетов, предназнач енных для отладки скриптов Windows PowerShell. Дополнительные сведения об о тладчике Windows PowerShell см. в разделе about_Debuggers. ПАРАМЕТРЫ -Action <scriptblock> Задает команды, выполняемые в каждой точке останова вместо остановки. В ведите блок скрипта, содержащий команды. С помощью этого параметра можн о задать условные точки останова или выполнить другие задачи, например тестирование и ведение журнала. Если этот параметр опущен или никакое действие не задано, выполнение пр ерывается в точке останова и запускается отладчик. В случае использования параметра Action в каждой точке останова выполня ется блок скрипта Action. Выполнение не останавливается, пока в скрипте не встретится ключевое слово Break. Если в блоке скрипта имеется слово Continue, то выполнение продолжится до следующей точки останова. Дополнительные сведения см. в разделах about_Script_Blocks, about_Break и about_Continue. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Column <int> Задает номер столбца в файле скрипта, на котором останавливается выполн ение. Укажите только один номер столбца. По умолчанию используется стол бец 1. Значение Column используется со значением параметра Line для задания то чки останова. Если параметр Line задает несколько строк, то параметр Co lumn устанавливает точку останова в заданном столбце каждой из этих стр ок. Windows PowerShell прерывает выполнение перед инструкцией или выраж ением, которые включают знак, расположенный на пересечении указанных ст роки и столбца. Столбцы отсчитываются от левого верхнего поля и нумеруются от 1 (не 0). Если указать столбец, которого нет в скрипте, ошибки не произойдет, од нако точка останова никогда не будет достигнута. Требуется? false Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Command <string[]> Устанавливает точку останова команды. Введите имена команд, например Ge t-Process, или имена функций. Подстановочные знаки разрешены. Выполнение будет останавливаться перед выполнением каждого экземпляра к аждой из команд. Если команда является функцией, то выполнение останавл ивается перед каждым вызовом функции и в каждом из разделов BEGIN, PROC ESS и END. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Line <Int32[]> Задает точку останова строки в скрипте. Введите один или несколько номе ров строк, разделив их запятыми. Windows PowerShell останавливается неп осредственно перед выполнением инструкций, которые начинаются в каждой из указанных строк. Строки отсчитываются от левого верхнего поля файла скрипта и нумеруются от 1 (не 0). Если указать пустую строку, выполнение будет остановлено перед очередной непустой строкой. Если заданной строки не существует, т очка останова никогда не будет достигнута. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Mode <VariableAccessMode> Определяет тип доступа для срабатывания точек останова переменных. По у молчанию используется значение Write. Этот параметр допустим только при использовании в команде параметра Var iable. Действие этого режима распространяется на все точки останова, ус танавливаемые командой. Допустимые значения: -- Write: останавливает выполнение непосредственно перед записью в пере менную нового значения. -- Read: останавливает выполнение при чтении переменной, т. е. когда к переменной обращаются для присваивания, вывода или использования. В ре жиме чтения выполнение не останавливается до изменения значения перемен ной. -- ReadWrite: останавливает выполнение при чтении или записи переменно й. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Script <string[]> Устанавливает точку останова в каждом из заданных файлов скриптов. Введ ите пути и имена одного или нескольких файлов скриптов. Если файлы нахо дятся в текущем каталоге, путь можно не указывать. Подстановочные знаки разрешены. По умолчанию точки останова переменных и точки останова команд устанавл иваются на всех командах, выполняемых в текущем сеансе. Этот параметр т ребуется только при установке точки останова строки. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Variable <string[]> Устанавливает точку останова переменной. Введите список разделенных зап ятыми переменных без знаков доллара ($). Для определения типа доступа для срабатывания точек останова переменных используйте параметр Mode. По умолчанию используется режим Write, в ко тором выполнение прекращается, прежде чем в переменную будет записано н овое значение. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету Set-PSBreakpoint по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Объект точки останова (System.Management.Automation.LineBreakpoint, System. Management.Automation.VariableBreakpoint, System.Management.Automation.Comm andBreakpoint) Командлет Set-PSBreakpoint возвращает объект, представляющий каждую из установленных им точек останова. ПРИМЕЧАНИЯ Командлет Set-PSBreakpoint не позволяет устанавливать точку останова на удаленном компьютере. Для отладки скрипта на удаленном компьютере скоп ируйте скрипт на локальный компьютер и отлаживайте его локально. При установке точки останова на нескольких строках командах или перемен ных командлет Set-PSBreakpoint создает объект точки останова для каждой точки. При установке точки останова на функции или переменной в командной стро ке точку останова можно устанавливать как до создания функции или перем енной, так и после. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-psbreakpoint -script sample.ps1 -line 5 Column : 0 Line : 5 Action : Enabled : True HitCount : 0 Id : 0 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 Описание ----------- Эта команда устанавливает точку останова на строке 5 скрипта Sample.ps1. В результате после запуска скрипта его выполнение будет приостановлено непоср едственно перед выполнением строки 5. При установке новой точки останова по номеру строки командлет Set-PSBreakpo int создает объект точки останова строки (System.Management.Automation.Line Breakpoint), который включает идентификатор точки останова, а также число с рабатываний, как показано в примере вывода. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-psbreakpoint -command Increment -script sample.ps1 Command : Increment Action : Enabled : True HitCount : 0 Id : 1 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 Описание ----------- Эта команда создает точку останова команды на функции Increment в скрипте S ample.ps1. Выполнение скрипта останавливается непосредственно перед вызовом указанной функции. Результатом выполнения команды является объект точки останова. Перед запуск ом скрипта значение свойства HitCount равно 0. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-psbreakpoint -script sample.ps1 -variable Server -Mode ReadWrite Описание ----------- Эта команда устанавливает точку останова на переменной Server в скрипте Sam ple.ps1. Чтобы остановить выполнение при чтении переменной или перед измене нием ее значения команда использует параметр Mode со значением ReadWrite. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>set-psbreakpoint -script Sample.ps1 -command "write*" Описание ----------- Эта команда устанавливает точку останова на каждой команде скрипта Sample.p s1, начинающейся с "write," например "write-host". -------------------------- ПРИМЕР 5 -------------------------- C:\PS>set-psbreakpoint -script test.ps1 -command DiskTest ` -action { (if $disk -gt 2) { break } } Описание ----------- Эта команда останавливает выполнение на функции DiskTest скрипта Test.ps1 т олько в том случае, если значение переменной $disk больше 2. Она использует командлет Set-PSBreakpoint, чтобы установить точку останова команды на функции DiskTest. Значением параметра action является блок скрип та, который проверяет значение переменной $disk в функции. В скрипте используется ключевое слово BREAK, чтобы остановить выполнение, е сли условие соблюдается. Альтернативный вариант (он используется по умолчан ию) — CONTINUE. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>set-psbreakpoint -command checkpoint-computer Id : 0 Command : checkpoint-computer Enabled : True HitCount : 0 Action : C:\PS> function CheckLog { >> get-eventlog -log Application | >> where {($_.source -like "TestApp") -and ($_.Message -like "*failed*")} >>} >> C:\PS> Checklog DEBUG: Hit breakpoint(s) DEBUG: Function breakpoint on 'prompt:Checklog' C:\PS>>> Описание ----------- Эта команда устанавливает точку останова на функции CheckLog. Поскольку в к оманде не указан скрипт, точка останова относится ко всем выполняемым в дан ном сеансе командам. Отладчик прерывает выполнение при вызове функции, а не при ее объявлении. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>set-psbreakpoint -script sample.ps1 -line 1, 14, 19 -column 2 -action {&(log.ps1)} Column : 2 Line : 1 Action : Enabled : True HitCount : 0 Id : 6 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 Column : 2 Line : 14 Action : Enabled : True HitCount : 0 Id : 7 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 Column : 2 Line : 19 Action : Enabled : True HitCount : 0 Id : 8 Script : C:\ps-test\sample.ps1 ScriptName : C:\ps-test\sample.ps1 Описание ----------- Эта команда устанавливает три точки останова строк в скрипте Sample.ps1. Он а устанавливает по одной точке останова в столбце 2 каждой из строк скрипта . Действие, указанное в параметре Action, относится ко всем точкам останова . ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113449 about_Debuggers Get-PSBreakpoint Enable-PSBreakpoint Disable-PSBreakpoint Remove-PSBreakpoint Get-PSCallStack Set-PSDebug ИМЯ Set-PSDebug ОПИСАНИЕ Позволяет включать и отключать функции отладки скриптов, устанавливать уров ень трассировки и переключать строгий режим. СИНТАКСИС Set-PSDebug [-Off] [<CommonParameters>] Set-PSDebug [-Step] [-Strict] [-Trace <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Set-PSDebug позволяет включать и отключать функции отладки скрипт ов, устанавливать уровень трассировки и переключать строгий режим. Если параметру Trace присвоено значение 1, будет осуществляться трассировка каждой сроки скрипта по мере ее выполнения. Если этому параметру присвоено значение 2, будут трассироваться также назначения переменных, вызовы функц ий и вызовы скриптов. Если задан параметр Step, перед выполнением каждой ср оки скрипта будет появляться запрос. ПАРАМЕТРЫ -Off [<SwitchParameter>] Отключает все функции отладки скриптов. Примечание. Команда "set-strictmode -off" отключает проверку, заданную командой "set-psdebug -strict". Дополнительные сведения см. в описании командлета Set-StrictMode. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Step [<SwitchParameter>] Включает режим пошагового выполнения скриптов. Перед выполнением каждой строки пользователь получает запрос, следует ли остановить выполнение скрипта, продолжить выполнение или задать новый уровень интерпретатора команд для проверки состояния скрипта. Примечание. При задании параметра Step параметру Trace автоматически пр исваивается значение 1. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Strict [<SwitchParameter>] Указывает, что интерпретатор должен создавать исключение, если происход ит обращение к переменной до момента присвоения ей значения. Примечание. Команда "set-strictmode -off" отключает проверку, заданную командой "set-psdebug -strict". Дополнительные сведения см. в описании командлета Set-StrictMode. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Trace <int> Задает уровень трассировки: 0 — отключить трассировку скрипта 1 — трассировать строки скрипта по мере выполнения 2 — трассировать строки скрипта, присвоения значений переменным, обращ ения к функциям и скрипты. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-psdebug -trace 2; foreach ($i in 1..3) {$i} DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i} DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i} 1 DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i} 2 DEBUG: 1+ Set-PsDebug -trace 2; foreach ($i in 1..3) {$i} 3 Описание ----------- Эта команда задает уровень трассировки 2 и запускает скрипт, который отобра жает числа 1, 2 и 3. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-psdebug -step; foreach ($i in 1..3) {$i} DEBUG: 1+ Set-PsDebug -step; foreach ($i in 1..3) {$i} Continue with this operation? 1+ Set-PsDebug -step; foreach ($i in 1..3) {$i} [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):a DEBUG: 1+ Set-PsDebug -step; foreach ($i in 1..3) {$i} 1 2 3 Описание ----------- Эта команда включает пошаговый режим, а затем запускает скрипт, который отображает числа 1, 2 и 3. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-psdebug -off; foreach ($i in 1..3) {$i} 1 2 3 Описание ----------- Эта команда выключает все функции отладки, а затем запускает скрипт, которы й отображает числа 1, 2 и 3. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>set-psdebug -strict; $NewVar The variable $NewVar cannot be retrieved because it has not been set yet. At line:1 char:28 + Set-PsDebug -strict;$NewVar Описание ----------- Эта команда переводит интерпретатор в строгий режим и пытается получить дос туп к переменной, значение которой еще не задано. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113398 about_Debuggers Debug-Process Set-PSBreakpoint Set-StrictMode Write-Debug Set-PSSessionConfiguration ИМЯ Set-PSSessionConfiguration ОПИСАНИЕ Изменяет свойства зарегистрированной конфигурации сеанса. СИНТАКСИС Set-PSSessionConfiguration [-AssemblyName] <string> [-ConfigurationTypeName ] <string> [-Name] <string> [-ApplicationBase <string>] [-Force] [-MaximumR eceivedDataSizePerCommandMB <double>] [-MaximumReceivedObjectSizeMB <double >] [-NoServiceRestart] [-SecurityDescriptorSDDL <string>] [-ShowSecurityDes criptorUI] [-StartupScript <string>] [-ThreadApartmentState {STA | MTA | Un known}] [-ThreadOptions {Default | UseNewThread | ReuseThread | UseCurrentT hread}] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Set-PSSessionConfiguration изменяет свойства зарегистрированной к онфигурации сеанса на локальном компьютере. Этот расширенный командлет пред назначен для использования системными администраторами и позволяет управлят ь конфигурациями сеансов для пользователей. Для указания конфигурации, которую нужно изменить, используется параметр Na me. Остальные параметры используются для задания новых значений свойств кон фигурации сеанса. Чтобы удалить из конфигурации значение свойства (и исполь зовать значение по умолчанию), введите в качестве значения соответствующего параметра пустую строку ("") или значение "$null". Для задания свойств конфигурации сеанса используйте командлет Get-PSSession Configuration или поставщик WS-Management. Чтобы получить дополнительные св едения о поставщике WS-Management, введите команду "get-help wsman". ПАРАМЕТРЫ -ApplicationBase <string> Изменяет путь к файлу сборки (*.dll), указанному в значении параметра A ssemblyName. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AssemblyName <string> Задает для конфигурации другой файл сборки. Введите путь (необязательно ) и имя файла сборки (DLL), в котором определен тип конфигурации. Если ввести только имя, путь можно ввести в значении параметра Applicat ionBase. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConfigurationTypeName <string> Задает для конфигурации другой тип конфигурации. Задаваемый тип должен реализовывать класс System.Management.Automation.Remoting.PSSessionConf iguration. Если ввести "$null" или пустую строку, для конфигурации сеанса использу ется класс DefaultRemotePowerShellConfiguration. Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Подавляет все запросы пользователю и перезапускает службу WinRM без зап роса подтверждения. Перезапуск службы обеспечивает вступление изменений конфигурации в силу. Чтобы предотвратить перезапуск и подавить запрос на перезапуск, использ уйте параметр NoServiceRestart. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumReceivedDataSizePerCommandMB <double> Изменяет ограничение на объем данных, которые могут быть переданы данно му компьютеру в любой отдельно взятой удаленной команде. Укажите объем данных в мегабайтах (МБ). По умолчанию используется значение "50 МБ". Если ограничение на объем данных определено в типе конфигурации, заданн ом параметром ConfigurationTypeName, используется ограничение из типа к онфигурации, а значение этого параметра игнорируется. Требуется? false Позиция? named Значение по умолчанию 50 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -MaximumReceivedObjectSizeMB <double> Изменяет ограничение на объем данных, которые могут быть переданы данно му компьютеру в любом отдельно взятом объекте. Укажите объем данных в м егабайтах (МБ). По умолчанию используется значение "10 МБ". Если ограничение на размер объекта определено в типе конфигурации, зада нном параметром ConfigurationTypeName, используется ограничение из типа конфигурации, а значение этого параметра игнорируется. Требуется? false Позиция? named Значение по умолчанию 10 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает имя конфигурации сеанса, которую нужно изменить. Изменить имя конфигурации сеанса с помощью этого параметра невозможно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoServiceRestart [<SwitchParameter>] Не перезапускает службу WinRM и подавляет запрос на перезапуск службы. По умолчанию при вводе команды Set-PSSessionConfiguration предлагается перезапустить службу WinRM, чтобы новая конфигурация сеанса вступила в силу. Пока служба WinRM не будет перезапущена, новая конфигурация сеан са не действует. Чтобы перезапустить службу WinRM без запроса подтверждения, используйте параметр Force. Чтобы перезапустить службу WinRM вручную, используйте командлет Restart-Service. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SecurityDescriptorSDDL <string> Задает для конфигурации другую строку в формате языка определения дескр ипторов безопасности (SDDL). Эта строка определяет разрешения, необходимые для использования новой к онфигурации сеанса. Для использования конфигурации в сеансе пользовател и должны иметь как минимум разрешение на запуск конфигурации ("Выполнен ие (Invoke)"). Чтобы использовать для конфигурации дескриптор безопасности по умолчани ю, введите пустую строку ("") или значение "$null". По умолчанию исполь зуется корневой элемент SDDL на диске WSMan:. В случае сложного дескриптора безопасности вместо этого параметра можно использовать параметр ShowSecurityDescriptorUI. Использовать оба парам етра в одной команде нельзя. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ShowSecurityDescriptorUI [<SwitchParameter>] Выводит лист свойств, помогающий создать новую строку SDDL для конфигур ации сеанса. Лист свойств отображается после ввода команды Set-PSSessio nConfiguration и перезапуска службы WinRM. При задании разрешений для конфигурации сеанса помните, что для использ ования конфигурации в сеансе пользователи должны иметь как минимум разр ешение на запуск конфигурации ("Выполнение (Invoke)"). Параметр SecurityDescriptorSDDL и этот параметр нельзя использовать в о дной команде. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -StartupScript <string> Добавляет или изменяет скрипт запуска для конфигурации. Введите полный путь к скрипту Windows PowerShell. Заданный скрипт выполняется в новом сеансе, для которого используется данная конфигурация сеанса. Чтобы удалить скрипт запуска из конфигурации сеанса, введите пустую стр оку ("") или значение "$null". Скрипт запуска можно использовать для дальнейшей настройки сеанса польз ователя. Если скрипт выдает ошибку (даже непрерывающую), сеанс не созда ется, и команда New-PSSession пользователя завершается неудачей. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThreadApartmentState <ApartmentState> Изменяет заданное состояние подразделения потоков в сеансе. Допустимые значения: "STA", "MTA" и "Unknown". По умолчанию используется значение "Unknown". Требуется? false Позиция? named Значение по умолчанию ApartmentState.Unknown Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThreadOptions <PSThreadOptions> Изменяет заданный в конфигурации параметр потоков. Этот параметр опреде ляет способ создания и использования потоков при выполнении команд в се ансе. Допустимые значения: "Default", "ReuseThread", "UseCurrentThread" и "UseNewThread". По умолчанию используется значение "UseCurrentThread ". Требуется? false Позиция? named Значение по умолчанию PSThreadOptions.UserCurrentThread Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Microsoft.WSMan.Management.WSManConfigLeafElement ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запускать Windows PowerShel l командой "Запуск от имени администратора". Командлет Set-PSSessionConfiguration не изменяет имя конфигурации, а по ставщик WS-Management не поддерживает командлет Rename-Item. Чтобы изме нить имя конфигурации, удалите конфигурацию с помощью командлета Unregi ster-PSSessionConfiguration, а затем с помощью командлета Register-PSSe ssionConfiguration создайте и зарегистрируйте новую конфигурацию сеанса . С помощью командлета Set-PSSessionConfiguration можно изменять конфигур ации сеанса по умолчанию (Microsoft.PowerShell и Microsoft.PowerShell32 ). Эти конфигурации не защищены от внесения изменений. Чтобы вернуться к исходной версии конфигурации сеанса по умолчанию, с помощью командлет а Unregister-PSSessionConfiguration удалите конфигурацию сеанса по умол чанию, а затем восстановите ее с помощью командлета Enable-PSRemoting. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-pssessionconfiguration -name MaintenanceShell -threadApartmentSta te STA Описание ----------- Эта команда изменяет состояние подразделения потоков в конфигурации Mainten anceShell на STA. Изменение вступает в силу после перезапуска службы WinRM. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>register-pssessionconfiguration -name AdminShell -assemblyName c:\she lls\AdminShell.dll -configurationType AdminClass C:\PS> set-pssessionconfiguration -name AdminShell -startupScript AdminConf ig.ps1 C:\PS> set-pssessionconfiguration -name AdminShell -startupScript $null Описание ----------- В этом примере показано, как создать и затем изменить конфигурацию сеанса. Первая команда с помощью командлета Register-PSSessionConfiguration создает конфигурацию AdminShell. Вторая команда с помощью командлета Set-PSSessionConfiguration добавляет в эту конфигурацию скрипт AdminConfig.ps1. Изменение вступает в силу после пе резапуска службы WinRM. Третья команда удаляет из конфигурации скрипт AdminConfig.ps1. В ней исполь зуется командлет Set-PSSessionConfiguration со значением "$null" параметра StartupScript. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Set-PSSessionConfiguration -name foo -MaximumReceivedObjectSizeMB 20 WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\foo\Init ializationParameters ParamName ParamValue --------- ---------- psmaximumreceivedobjectsizemb 20 "Restart WinRM service" WinRM service need to be restarted to make the changes effective. Do you wa nt to run the command "restart-service winrm"? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y Описание ----------- В этом примере показан пример выходных данных командлета Set-PSSessionConfi guration. Команда Set-PSSessionConfiguration в этом примере увеличивает значение свой ства MaximumReceivedObjectSizeMB до 20. Команда Set-PSSessionConfiguration возвращает объект Microsoft.WSMan.Manage ment.WSManConfigLeafElement и отображает имя параметра и его новое значение . Кроме того, она выводит запрос на перезапуск службы WinRM. Внесенное команд летом Set-PSSessionConfiguration изменение не вступает в силу, пока служба WinRM не будет перезапущена. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>set-pssessionconfiguration -name MaintenanceShell -startupScript c:\p s-test\Maintenance.ps1 WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin\Maintena nceShell\InitializationParameters ParamName ParamValue --------- ---------- startupscript c:\ps-test\Mainte... "Restart WinRM service" WinRM service need to be restarted to make the changes effective. Do you wa nt to run the command "restart-service winrm"? [Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): y C:\PS> get-pssessionConfiguration maintenanceshell | format-list -property * xmlns : http://schemas.microsoft.com/wbem/wsman/1/config/PluginC onfiguration Name : MaintenanceShell Filename : %windir%\system32\pwrshplugin.dll SDKVersion : 1 XmlRenderingType : text lang : en-US PSVersion : 2.0 startupscript : c:\ps-test\Maintenance.ps1 ResourceUri : http://schemas.microsoft.com/powershell/MaintenanceShell SupportsOptions : true ExactMatch : true Capability : {Shell} Permission : C:\PS> dir wsman:\localhost\plugin\MaintenanceShell\InitializationParameter s ParamName ParamValue --------- ---------- PSVersion 2.0 startupscript c:\ps-test\Maintenance.ps1 Описание ----------- Эта команда демонстрирует различные способы просмотра результатов выполнени я команды Set-PSSessionConfiguration. Первая команда с помощью командлета Set-PSSessionConfiguration изменяет скр ипт запуска в конфигурации MaintenanceShell на Maintenance.ps1. В выходных данных этой команды отражается изменение и содержится запрос на перезапуск службы WinRM. Ответ — "y" (да). Вторая команда с помощью командлета Get-PSSessionConfiguration получает кон фигурацию сеанса MaintenanceShell. Оператор конвейера (|) передает результа ты выполнения команды командлету Format-List, который отображает все свойст ва конфигурации сеанса в виде списка. В третьей команде используется поставщик WS-Management для просмотра параме тров инициализации конфигурации MaintenanceShell. Для получения дочерних эл ементов в узле InitializationParameters для подключаемого модуля Maintenanc eShell используется командлет Get-ChildItem (псевдоним: dir). Чтобы получить дополнительные сведения о поставщике WS-Management, введите команду "get-help wsman". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144307 about_Session_Configurations Disable-PSSessionConfiguration Enable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Unregister-PSSessionConfiguration WS-Management Provider Set-Service ИМЯ Set-Service ОПИСАНИЕ Запускает, останавливает и приостанавливает службу и изменяет ее свойства. СИНТАКСИС Set-Service [-Name] <string> [-Description <string>] [-DisplayName <string> ] [-PassThru] [-StartupType {Automatic | Manual | Disabled}] [-Status <stri ng>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Set-Service [-Description <string>] [-DisplayName <string>] [-InputObject ServiceController>] [-PassThru] [-StartupType {Automatic | Manual | Disable d}] [-Status <string>] [-ComputerName <string[]>] [-Confirm] [-WhatIf] [<Co mmonParameters>] ОПИСАНИЕ Командлет Set-Service изменяет свойства локальной или удаленной службы, вкл ючая состояние, описание, отображаемое имя и режим запуска. Этот командлет можно использовать для запуска, остановки или приостановки службы. Для зада ния службы можно ввести ее имя или передать объект службы, либо передать им я службы или объект службы командлету Set-Service по конвейеру. ПАРАМЕТРЫ -ComputerName <string[]> Задает один или несколько компьютеров. По умолчанию используется значен ие "Локальный компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Чтобы указать локальный компьютер, введите имя компьютера, точку (.) или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Set-Service можно использовать, даже если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию локальный компьютер Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Description <string> Задает новое описание службы. Описание службы отображается на вкладке "Службы" оснастки "Управление к омпьютером". Описание не является свойством объекта ServiceController, получаемого командлетом Get-Service. Чтобы просмотреть описание службы, используйте командлет Get-WmiObject для получения объекта Win32_Servic e, который представляет одноименную службу. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -DisplayName <string> Задает новое отображаемое имя службы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ServiceController> Задает объект ServiceController, представляющий изменяемую службу. Введ ите переменную, содержащую объект, либо команду или выражение, получающ ие объект, например команду Get-Service. Кроме того, можно передать объ ект службы командлету Set-Service по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string> Задает имя изменяемой службы. Подстановочные знаки запрещены. Кроме то го, можно передать имя службы командлету Set-Service по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объекты, представляющие измененные службы. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -StartupType <ServiceStartMode> Изменяет режим запуска службы. Параметр StartupType может принимать сле дующие значения: -- Automatic: автоматический запуск при запуске системы. -- Manual: запуск осуществляется только пользователем или приложением. -- Disabled: запуск запрещен. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Status <string> Запускает, останавливает или приостанавливает службы. Допустимые значе ния: -- Running: запускает службу. -- Stopped: останавливает службу. -- Paused: приостанавливает службу. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController, System.String Можно передать объект службы или строку, содержащую имя службы, по конв ейеру командлету Set-Service. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Чтобы использовать командлет Set-Service в Windows Vista и более поздни х версиях Windows, необходимо запускать Windows PowerShell командой "За пуск от имени администратора". Командлет Set-Service может использоваться для управления службами, тол ько если у текущего пользователя есть на это разрешение. Некорректная р абота команды может быть обусловлена отсутствием требуемых разрешений. Чтобы извлечь имена служб и отображаемые имена служб на текущем компьют ере, введите команду "get-service". Имена служб содержатся в столбце Na me, а отображаемые имена — в столбце DisplayName. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-service -name lanmanworkstation -DisplayName "LanMan Workstation" Описание ----------- Эта команда изменяет отображаемое имя службы "lanmanworkstation" на "LanMan Workstation". (По умолчанию используется имя "Workstation".) -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-wmiobject win32_service -filter "name = 'SysmonLog'" ExitCode : 0 Name : SysmonLog ProcessId : 0 StartMode : Manual State : Stopped Status : OK C:\PS> set-service sysmonlog -startuptype automatic C:\PS> get-wmiobject win32_service -filter "name = 'SysmonLog'" ExitCode : 0 Name : SysmonLog ProcessId : 0 StartMode : Auto State : Stopped Status : OK C:\PS> get-wmiobject win32_service | format-table Name, StartMode -auto Name StartMode ---- --------- AdtAgent Auto Alerter Disabled ALG Manual AppMgmt Manual ... Описание ----------- Приведенные команды извлекают тип запуска службы "Журналы и оповещения прои зводительности" (SysmonLog), изменяют тип запуска на автоматический, а зате м отображают результаты изменения. В этих командах используется командлет Get-WmiObject для получения объекта Win32_Service службы, поскольку объект ServiceController, возвращаемый кома ндлетом Get-Service, не включает в себя тип запуска. Первая команда с помощью командлета Get-WmiObject получает объект WMI, пред ставляющий службу SysmonLog. По умолчанию в выходных данных этой команды ук азывается тип запуска службы. Вторая команда с помощью командлета Set-Service изменяет тип запуска на авт оматический. Затем повторно вызывается первая команда для отображения внесе нных изменений. Последняя команда отображает типы запуска всех служб на компьютере. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-service -name Schedule -computername S1 -description "Configures and schedules tasks." C:\PS> get-wmiobject win32_service -computername s1 | where-object {$_.Name -eq "Schedule"} | format-list Name, Description Описание ----------- Приведенные команды изменяют описание службы Task Scheduler на удаленном ко мпьютере S1, а затем отображают результат изменения. В этих командах используется командлет Get-WmiObject для получения объекта Win32_Service службы, поскольку объект ServiceController, возвращаемый кома ндлетом Get-Service, не включает в себя описание службы. Первая команда с помощью командлета Set-Service изменяет описание. Эта кома нда обращается к службе с помощью ее имени: "Schedule". Вторая команда с помощью командлета Get-WmiObject получает экземпляр службы WMI Win32_Service, представляющий службу планировщика заданий. Первый элем ент команды получает все экземпляры класса Win32_service. Оператор конвейера (|) передает результаты командлету Where-Object, который выбирает из них те, у которых свойство Name имеет значение "Schedule". Следующий оператор конвейера пересылает результаты командлету Format-List, который осуществляет вывод данных с указанием только двух свойств: Name и D escription. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>set-service winrm -status Running -passthru -computername Server02 Описание ----------- Эта команда запускает на компьютере Server02 службу WinRM. Параметр Status используется для задания требуемого состояния ("running"), а параметр PassT hru указывает командлету Set-Service возвратить объект, представляющий служ бу WinRM. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-service schedule -computername S1, S2 | set-service -status pause d Описание ----------- Эта команда приостанавливает службу Schedule на удаленных компьютерах S1 и S2. Для получения службы используется командлет Get-Service. Оператор конве йера (|) пересылает службу командлету Set-Service, который изменяет ее сост ояние на "Paused". -------------------------- ПРИМЕР 6 -------------------------- C:\PS>$s = get-service schedule C:\PS> set-service -inputobject $s -status stopped Описание ----------- Приведенные команды останавливают службу Schedule на локальном компьютере. Первая команда с помощью командлета Get-Service получает службу Schedule. С лужба сохраняется в переменной $s. Вторая команда с помощью командлета Set-Service изменяет состояние службы S chedule на "Stopped". Параметр InputObject используется для передачи службы , хранящейся в переменной $s, а параметр Status используется для задания тр ебуемого статуса. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113399 Get-Service Start-Service Stop-Service Restart-Service Resume-Service Suspend-Service New-Service Set-StrictMode ИМЯ Set-StrictMode ОПИСАНИЕ Задает и применяет правила кодирования в выражениях, скриптах и блоках скри пта. СИНТАКСИС Set-StrictMode -Off [<CommonParameters>] Set-StrictMode -Version <Version> [<CommonParameters>] ОПИСАНИЕ Командлет Set-StrictMode позволяет настроить строгий режим для текущей обла сти (и всех дочерних областей), а также включать и выключать его. Если вклю чен строгий режим, Windows PowerShell создает прерывающую ошибку, если соде ржимое выражения, скрипта или блока скрипта нарушает основные рекомендуемые правила кодирования. Параметр Version используется для того, чтобы определить применяемые правил а кодирования. В отличие от Set-PSDebug командлет Set-StrictMode влияет только на текущую область и ее дочерние области, поэтому его можно использовать в скрипте или функции, не оказывая влияния на глобальную область. Если команда Set-StrictMode отключена, то предполагается, что неинициализир ованные переменные (Version 1) имеют значение 0 (нуль) или $null в зависимо сти от типа. При обращении к несуществующим свойствам возвращается значение $null, а в случае неправильного синтаксиса функции результаты зависят от т ипа ошибки. Неименованные переменные не разрешены. ПАРАМЕТРЫ -Off [<SwitchParameter>] Отключает строгий режим. Этот параметр также отключает команду "Set-PSD ebug -Strict". Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Version <Version> Определяет условия, которые приводят к ошибке в строгом режиме. Это обя зательный параметр. Допустимые значения: "1.0", "2.0" и "Latest". В следующем списке показа ны результаты использования каждого значения. 1.0 -- Ссылки на неинициализированные переменные, исключая неинициализирова нные переменные в строках, не разрешены. 2.0 -- Ссылки на неинициализированные переменные (включая неинициализирован ные переменные в строках) не разрешены. -- Ссылки на несуществующие свойства объекта не разрешены. -- Вызовы функций с использованием синтаксиса вызова методов не разреше ны. -- Переменные без имени (${}) не разрешены. Latest: -- Выбор последней (самой строгой) доступной версии. Это значение след ует использовать, чтобы обеспечить применение в скриптах самой строгой имеющейся версии даже в случае добавления новых версий в Windows PowerS hell. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Команда Set-StrictMode аналогична параметру команды Set-PSDebug. Команд а "Set-Strictmode -version 1" эквивалентна команде "Set-PSDebug –strict " за исключением того, что команда Set-PSDebug действует во всех област ях. Set-StrictMode оказывает влияние только на область, в которой она з адана, и ее дочерние области. Дополнительные сведения об областях в Win dows PowerShell см. в разделе about_Scopes. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-strictmode -version 1.0 C:\PS> $a -gt 5 False The variable $a cannot be retrieved because it has not been set yet. At line:1 char:3 + $a < -gt 5 + CategoryInfo : InvalidOperation: (a:Token) [], RuntimeExcept ion + FullyQualifiedErrorId : VariableIsUndefined Описание ----------- Эта команда включает строгий режим и задает версию режима 1.0. В результате при попытке обращения к неинициализированным переменным произойдет ошибка. Пример выходных данных приведен для строгого режима версии 1.0. -------------------------- ПРИМЕР 2 -------------------------- C:\PS># set-strictmode -version 2.0 # Strict mode is off by default. C:\PS> function add ($a, $b) {$a + $b} C:\PS> add 3 4 7 C:\PS> add(3,4) 3 4 C:\PS> set-strictmode -version 2.0 C:\PS> add(3,4) The function or command was called like a method. Parameters should be sepa rated by spaces, as described in 'Get-Help about_Parameter.' At line:1 char:4 + add < (3,4) + CategoryInfo : InvalidOperation: (:) [], RuntimeException + FullyQualifiedErrorId : StrictModeFunctionCallWithParens C:\PS> set-strictmode -off C:\PS> $string = "This is a string". C:\PS> $string.Month C:\PS> C:\PS> set-strictmode -version 2.0 C:\PS> $string = "This is a string". C:\PS> $string.Month Property 'month' cannot be found on this object; make sure it exists. At line:1 char:9 + $string. < month + CategoryInfo : InvalidOperation: (.:OperatorToken) [], Runti meException + FullyQualifiedErrorId : PropertyNotFoundStrict Описание ----------- Эта команда включает строгий режим и задает его версию 2.0. В результате пр и использовании синтаксиса метода (скобки и запятые) для вызова функции или обращении к неинициализированным переменным или несуществующим свойствам о болочка Windows PowerShell создает ошибку. Пример выходных данных приведен для строгого режима версии 2.0. Если строгий режим версии 2.0 не используется, значение "(3,4)" интерпретир уется как один объект массива, к которому ничего не добавляется. В строгом режиме версии 2.0 это выражение надлежащим образом интерпретируется как неп равильный синтаксис передачи двух значений. Без строгого режима версии 2.0 ссылка на несуществующее свойство Month стро ки просто возвращает значение null. В строгом режиме версии 2.0 она интерпр етируется как ошибочная ссылка. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113450 about_Debuggers about_Scopes Set-PSDebug Set-TraceSource ИМЯ Set-TraceSource ОПИСАНИЕ Настраивает, запускает и останавливает трассировку компонентов Windows Powe rShell. СИНТАКСИС Set-TraceSource [[-Option] {None | Constructor | Dispose | Finalizer | Meth od | Property | Delegates | Events | Exception | Lock | Error | Errors | Wa rning | Verbose | WriteLine | Data | Scope | ExecutionFlow | Assert | All}] [-Debugger] [-FilePath <string>] [-Force] [-ListenerOption {None | Logical OperationStack | DateTime | Timestamp | ProcessId | ThreadId | Callstack}] [-PassThru] [-PSHost] [-Name] <string[]> [<CommonParameters>] Set-TraceSource [-RemoveListener <string[]>] [-Name] <string[]> [<CommonPar ameters>] Set-TraceSource [-RemoveFileListener <string[]>] [-Name] <string[]> [<Commo nParameters>] ОПИСАНИЕ Командлет Set-TraceSource позволяет настраивать, запускать и останавливать трассировку компонента Windows PowerShell. Его можно использовать для указа ния того, какие компоненты следует трассировать, а также куда нужно отправи ть результат трассировки. ПАРАМЕТРЫ -Debugger [<SwitchParameter>] Отправляет выходные данные трассировки в отладчик. Выходные данные можн о просмотреть в любом отладчике, работающем в пользовательском режиме и ли режиме ядра, или в Microsoft Visual Studio. Данный параметр также за дает прослушиватель трассировки по умолчанию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <string> Записывает выходные данные трассировки в указанный файл. Данный парамет р также выбирает прослушиватель трассировки файла. Если для запуска тра ссировки используется этот параметр, воспользуйтесь параметром RemoveFi leListener, чтобы прекратить трассировку. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету перезаписывать доступный только для чтения файл. И спользуется с параметром FilePath. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ListenerOption <TraceOptions> Добавляет необязательные данные в префикс каждого сообщения трассировки . Допустимые значения: "None", "LogicalOperationStack", "DateTime", "Ti mestamp", "ProcessId", "ThreadId" и "Callstack". По умолчанию используе тся "None". Чтобы указать несколько параметров, разделите их запятыми без пробелов и заключите их в кавычки, например так: "ProcessID,ThreadID". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Определяет, какие компоненты трассируются. Введите имя объекта трассиро вки для каждого компонента. Подстановочные знаки разрешены. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Option <PSTraceSourceOptions> Определяет тип трассируемых событий. Список допустимых значений: "None", "Constructor", "Dispose", "Finalize r", "Method", "Property", "Delegates", "Events", "Exception", "Lock", " Error", "Errors", "Warning", "Verbose", "WriteLine", "Data", "Scope", " ExecutionFlow", "Assert" и "All". По умолчанию используется "All". Следующие значения являются комбинацией других значений: -- ExecutionFlow: (Constructor, Dispose, Finalizer, Method, Delegates, Events и Scope) -- Data: (Constructor, Dispose, Finalizer, Property, Verbose и WriteLin e) -- Errors: (Error и Exception). Чтобы указать несколько параметров, разделите их запятыми без пробелов и заключите их в кавычки, например так: "Constructor,Dispose". Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий сеанс трассировки. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PSHost [<SwitchParameter>] Отправляет выходные данные трассировки в основное приложение Windows Po werShell. Данный параметр также задает прослушиватель трассировки PSHos t. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RemoveFileListener <string[]> Прекращает трассировку, удаляя прослушиватель трассировки файла, связан ный с указанным файлом. Введите путь и имя выходного файла трассировки. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RemoveListener <string[]> Прекращает трассировку, удаляя прослушиватель трассировки. Используйте следующие значения с параметром RemoveListener. --Чтобы удалить PSHost (консоль), введите "Host". --Чтобы удалить отладчик, введите "Debug". --Чтобы удалить все прослушиватели трассировки, введите "*". Чтобы удалить прослушиватель трассировки файла, воспользуйтесь параметр ом RemoveFileListener. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую имя, можно передать командлету Set-TraceSource по ко нвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSTraceSource Если задан параметр PassThru, командлет Set-TraceSource создает объект System.Management.Automation.PSTraceSource, представляющий сеанс трасси ровки. В противном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Трассировка — это метод, используемый разработчиками для отладки и изме нения программы. Во время трассировки программа формирует подробные соо бщения о каждом шаге внутренней обработки. Командлеты трассировки Windows PowerShell созданы для разработчиков Win dows PowerShell, но доступны всем пользователям. Они позволяют отслежив ать практически все аспекты функциональности Windows PowerShell. "Источник трассировки" является частью каждого компонента Windows Power Shell, который управляет трассировкой и формирует сообщения трассировки для компонента. Чтобы выполнить трассировку компонента, нужно определи ть его источник трассировки. "Прослушиватель трассировки" получает выходные данные трассировки и пок азывает их пользователю. Трассировочные данные можно отправить отладчик у, работающему в пользовательском режиме или режиме ядра, на консоль, в файл или пользовательскому прослушивателю, производному от класса Syst em.Diagnostics.TraceListener. Чтобы начать трассировку, укажите с помощью параметра Name источник тра ссировки (трассируемый компонент), а с помощью параметров FilePath, Deb ugger или PSHost — прослушиватель (объект, которому будет передаваться вывод). Для определения типов трассируемых событий используйте параметр Options, а для конфигурирования вывода трассировки — параметр Listener Options. Чтобы изменить конфигурацию трассировки, введите команду Set-TraceSourc e, запускающую трассировку. Оболочка Windows PowerShell обнаруживает, ч то источник трассировки уже трассируется. Она остановит трассировку, до бавит новую конфигурацию и запустит или перезапустит трассировку. Чтобы остановить трассировку, используйте параметр RemoveListener. Чтоб ы остановить трассировку, выполняемую с файлом-прослушивателем (трассир овку, запущенную с помощью параметра -FilePath), используйте параметр R emoveFileListener. При удалении прослушивателя трассировка останавливае тся. Чтобы узнать, какие компоненты можно трассировать, используйте командле т Get-TraceSource. Источники трассировки каждого модуля загружаются авт оматически при использовании компонента и включаются в вывод командлета Get-TraceSource. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Set-TraceSource -Name Parameterbinding -Option ExecutionFlow -PSHost ' -ListenerOption "ProcessID,TimeStamp" Описание ----------- Эта команда запускает трассировку для компонента ParameterBinding оболочки Windows PowerShell. Параметр Name используется для указания источника трасс ировки, параметр Option — для выбора событий трассировки ExecutionFlow, а п араметр PSHost — для выбора прослушивателя основного приложения Windows Pow erShell, который отправляет вывод на консоль. Параметр ListenerOption добав ляет в префикс сообщения трассировки значения "ProcessID" и "TimeStamp". -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-tracesource -name ParameterBinding -RemoveListener Host Описание ----------- Эта команда останавливает трассировку компонента ParameterBinding оболочки Windows PowerShell. Параметр Name в этой команде идентифицирует трассируемы й компонент, а параметр RemoveListener — прослушиватель трассировки. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113400 Get-TraceSource Trace-Command Set-PSDebug Set-Variable ИМЯ Set-Variable ОПИСАНИЕ Задает значение переменной. Если переменная с указанным именем не существуе т, она создается. СИНТАКСИС Set-Variable [-Name] <string[]> [[-Value] <Object>] [-Description <string>] [-Exclude <string[]>] [-Force] [-Include <string[]>] [-Option {None | Read Only | Constant | Private | AllScope}] [-PassThru] [-Scope <string>] [-Visi bility {Public | Private}] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Set-Variable присваивает значение заданной переменной или изменяе т ее текущее значение. Если переменная не существует, командлет создаст ее. ПАРАМЕТРЫ -Description <string> Задает описание переменной. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет создать новую переменную с именем уже существующей доступной только чтения переменной или изменить значение доступной только для чте ния переменной. По умолчанию переменную можно перезаписать, если у нее нет параметра "R eadOnly" или "Constant". Дополнительные сведения см. в описании парамет ра Option. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Изменяет только указанные элементы. Значение данного параметра определя ет значение параметра Name. Введите имя или шаблон имени, например "c*" . Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Задает имя переменной. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Option <ScopedItemOptions> Изменяет значение свойства Options переменной. Допустимые значения: -- None: не определяет параметров (по умолчанию используется "None"). -- ReadOnly: свойства переменной изменить нельзя, если только не исполь зовать параметр Force. Для удаления переменной можно использовать коман длет Remove-Variable. -- Constant: переменную нельзя удалить, а ее свойства нельзя изменить. Значение "Constant" доступно только при создании псевдонима. Невозможно изменить на "Constant" значение этого параметра для существующей перем енной. -- Private: переменная доступна только в области, определенной параметр ом Scope. Она наследуется дочерними областями. -- AllScope: переменная копируется во все создаваемые области. Чтобы увидеть свойство переменных Options, введите команду "get-variabl e| format-table -property name, options -autosize". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий новую переменную. По умолчанию этот к омандлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Scope <string> Определяет область переменной. Допустимые значения: "Global", "Local", "Script" или номер относительно текущей области (от 0 до количества обл астей, где 0 — текущая область, а 1 — ее родительская область). По умол чанию используется значение "Local". Дополнительные сведения см. в разд еле about_Scopes. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Value <Object> Задает значение переменной. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Visibility <SessionStateEntryVisibility> Определяет видимость переменной за пределами области, в которой она был а создана. Этот параметр предназначен для использования в скриптах и ко мандах, которые будут предоставляться другим пользователям. Допустимые значения: -- Public: переменная видима. ("Public" является значением по умолчанию .) -- Private: переменная невидима. Если переменная закрыта (Private), она не появляется в списках переменн ых, например в списках, возвращаемых командлетом Get-Variable, или при отображении диска Variable:. Выполнение команд чтения или изменения зна чения частной переменной возвращает ошибку. Но пользователи могут выпол нять команды, использующие частные переменные, если эти команды были на писаны в сеансах, в которых были определены эти переменные. Требуется? false Позиция? named Значение по умолчанию Public Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Объект, представляющий значение переменной, можно передать командлету S et-Variable по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Management.Automation.PSVariable Если задан параметр PassThru, командлет Set-Variable создает объект Sys tem.Management.Automation.PSVariable, представляющий новую или измененн ую переменную. В противном случае этот командлет не формирует никаких в ыходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-variable -name desc -value "A description" C:\PS>get-variable -name desc Описание ----------- Эти команды присваивают переменной "desc" значение "A description" и получа ют его. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-variable -name processes -value (Get-Process) -option constant -s cope global -description "All processes" -passthru | format-list -property * Описание ----------- Эта команда создает доступную только для чтения глобальную переменную, соде ржащую все выполняемые в системе процессы, а затем отображает все свойства этой переменной. Для создания переменной в этой команде используется командлет Set-Variable. Параметр PassThru используется для создания объекта, представляющего новую переменную, а оператор конвейера (|) — для передачи объекта командлету For mat-List. Для отображения всех свойств новой переменной в командлете Format -List указан параметр Property со значением (*). Значение "(Get-Process)" заключено в скобки, чтобы гарантировать выполнение этого командлета до сохранения значения в переменной. В противном случае п еременная будет содержать слова "Get-Process". -------------------------- ПРИМЕР 3 -------------------------- C:\PS># set-variable -name counter -visibility private C:\PS> new-variable -name counter -visibility public -value 26 C:\PS> $counter 26 C:\PS> get-variable c* Name Value ---- ----- Culture en-US ConsoleFileName ConfirmPreference High CommandLineParameters {} Counter 26 C:\PS> set-variable -name counter -visibility private C:\PS> get-variable c* Name Value ---- ----- Culture en-US ConsoleFileName ConfirmPreference High CommandLineParameters {} C:\PS> $counter "Cannot access the variable '$counter' because it is a private variable" C:\PS> .\use-counter.ps1 Commands completed successfully. Описание ----------- Эта команда показывает, как изменить видимость переменной на "Private". К п еременной могут обращаться и изменять ее скрипты с соответствующими разреше ниями, но она не видна пользователю. В примере вывода показано различие в поведении общих и частных переменных. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113401 Get-Variable New-Variable Remove-Variable Clear-Variable Set-WmiInstance ИМЯ Set-WmiInstance ОПИСАНИЕ Создает или обновляет экземпляр существующего класса инструментария управле ния Windows (WMI). СИНТАКСИС Set-WmiInstance [-Class] <string> [[-Arguments] <hashtable>] [-Authenticati on {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPriv acy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Creden tial <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anon ymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {None | UpdateOnly | CreateOnly | UpdateOrCrea te}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Set-WmiInstance [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Com puterName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [ -Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [ -Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {None | UpdateOn ly | CreateOnly | UpdateOrCreate}] [-ThrottleLimit <int>] [-Confirm] [-What If] [<CommonParameters>] Set-WmiInstance -InputObject <ManagementObject> [-Arguments <hashtable>] [- AsJob] [-PutType {None | UpdateOnly | CreateOnly | UpdateOrCreate}] [-Throt tleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Set-WmiInstance -Path <string> [-Arguments <hashtable>] [-Authentication {D efault | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-ComputerName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Locale <string>] [-Namespace <stri ng>] [-AsJob] [-PutType {None | UpdateOnly | CreateOnly | UpdateOrCreate}] [-ThrottleLimit <int>] [-Confirm] [-WhatIf] [<CommonParameters>] Set-WmiInstance [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Com puterName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [ -Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [ -Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {None | UpdateOn ly | CreateOnly | UpdateOrCreate}] [-ThrottleLimit <int>] [-Confirm] [-What If] [<CommonParameters>] Set-WmiInstance [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrity | PacketPrivacy | Unchanged}] [-Authority <string>] [-Com puterName <string[]>] [-Credential <PSCredential>] [-EnableAllPrivileges] [ -Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [ -Locale <string>] [-Namespace <string>] [-AsJob] [-PutType {None | UpdateOn ly | CreateOnly | UpdateOrCreate}] [-ThrottleLimit <int>] [-Confirm] [-What If] [<CommonParameters>] ОПИСАНИЕ Командлет Set-WmiInstance создает или обновляет экземпляр существующего кла сса WMI. Созданный или обновленный экземпляр записывается в репозиторий WMI . ПАРАМЕТРЫ -Arguments <hashtable> Задает имя изменяемого свойства и новое значение этого свойства. Имя и значение должны следовать в паре. Пара имя-значение передается в команд ную строку как хэш-таблица. Например: -argument @{Setting1=1; Setting2=5; Setting3="test"}. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания. Этот параметр служит для запуска команд, выполнение которых занимает длительное время. При использовании параметра AsJob команда возвращает объект, представля ющий фоновое задание, а затем отображает командную строку. Пока задание выполняется можно продолжать работу в сеансе. Если Set-WmiObject испол ьзуется для работы с удаленным компьютером, задание создается на локаль ном компьютере, и результаты с удаленных компьютеров автоматически возв ращаются на локальный компьютер. Для управления заданием используйте ко мандлеты, в именах которых содержится существительное Job (командлеты J ob). Чтобы получить результаты задания, используйте командлет Receive-J ob. Примечание. Чтобы использовать этот параметр для удаленных компьютеров, для локального и удаленного компьютеров должно быть настроено удаленно е взаимодействие. Кроме того, при работе с компьютером под управлением Windows Vista и более поздних версий Windows необходимо запускать Windo ws PowerShell командой "Запуск от имени администратора". Дополнительные сведения см. в разделе about_Remote_Requirements. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в р азделах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationLevel> Задает уровень проверки подлинности, используемый для WMI-соединения. Д опустимые значения: -1: Unchanged 0: Default 1: None (проверка подлинности не используется). 2: Connect (проверка подлинности выполняется только при установке клиен том подключения к приложению). 3: Call (проверка подлинности выполняется только в начале каждого вызов а при получении запроса приложением). 4: Packet (проверка подлинности выполняется при обработке всех данных, полученных от клиента). 5: PacketIntegrity (для всех данных, передаваемых между клиентом и прил ожением, проводится проверка подлинности и проверка целостности). 6: PacketPrivacy (используются свойства других уровней проверки подлинн ости, все данные шифруются). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authority <string> Задает центр, который используется для проверки подлинности WMI-соедине ния. Можно указать стандартную проверку подлинности NTLM или Kerberos. Чтобы использовать NTLM, задайте для параметра Authority значение "ntlm domain:<имя_домена>", где <имя_домена> — допустимое имя домена NTLM. Чт обы использовать Kerberos, укажите "kerberos:<имя_домена>\<имя_сервера> ". При подключении к локальному компьютеру нельзя использовать параметр Authority. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Class <string> Задает имя класса WMI. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Используйте имя локального компьютера, "localhost" или точку (.) что бы указать "Локальный компьютер". Локальный компьютер используется по у молчанию. Если пользователь и удаленный компьютер находятся в разных до менах, необходимо использовать полное доменное имя. Можно передать знач ение этому параметру по конвейеру. Этот параметр не использует функцию удаленного взаимодействия Windows P owerShell, которая использует протокол WS-Management. Параметр Computer Name командлета Get-WmiObject можно использовать, даже если компьютер н е настроен на выполнение удаленных команд по протоколу WS-Management. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или User@Contoso.com. Или укажите объект PSCredential, например объект, возвращенный командлетом Get-Credential. При вводе имени польз ователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EnableAllPrivileges [<SwitchParameter>] Включает все привилегии текущего пользователя перед вызовом WMI из кома нды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Impersonation <ImpersonationLevel> Задает используемый уровень олицетворения. Допустимые значения: 0: Default (считывает значение уровня представления по умолчанию из лок ального реестра, обычно это значение равняется "3: Impersonate"). 1: Anonymous (скрывает учетные данные вызывающего). 2: Identify (позволяет объектам запрашивать учетные данные вызывающего) . 3: Impersonate (позволяет объектам использовать учетные данные вызывающ его). 4: Delegate (позволяет объектам разрешать другим объектам использовать учетные данные вызывающего). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ManagementObject> Задает объект ManagementObject, используемый в качестве входных данных. При использовании этого параметра все остальные параметры, кроме парам етра Arguments, игнорируются. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Locale <string> Задает предпочтительную локаль для объектов WMI. Значение параметра Loc ale задается как массив в формате MS_<LCID> в желаемом порядке. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Namespace <string> При использовании с параметром Class данный параметр задает пространств о имен хранилища WMI, в котором находится указанный класс WMI. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает путь к экземпляру объекта WMI, который нужно создать или обновит ь. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PutType <PutType> Указывает, что требуется сделать: создать экземпляр WMI или обновить эк земпляр WMI. Допустимые значения: UpdateOnly. Обновляет существующий экземпляр WMI. CreateOnly. Создает новый экземпляр WMI. UpdateOrCreate. Обновляет экземпляр WMI, если он существует; в противно м случае создает новый экземпляр. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Дает возможность пользователю указать пороговое значение количества опе раций WMI, которые могут выполняться одновременно. Этот параметр исполь зуется вместе с параметром AsJob. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2} __GENUS : 2 __CLASS : Win32_WMISetting __SUPERCLASS : CIM_Setting __DYNASTY : CIM_Setting __RELPATH : Win32_WMISetting=@ __PROPERTY_COUNT : 27 __DERIVATION : {CIM_Setting} __SERVER : SYSTEM01 __NAMESPACE : root\cimv2 __PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@ ASPScriptDefaultNamespace : \\root\cimv2 ASPScriptEnabled : False AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %win dir%\system32\wbem\ncprov.mof, %windir%\syst em32\wbem\wmipcima.mof, %windir%\system32\ wbem\secrcw32.mof...} AutoStartWin9X : BackupInterval : BackupLastTime : BuildVersion : 6001.18000 Caption : DatabaseDirectory : C:\Windows\system32\wbem\repository DatabaseMaxSize : Description : EnableAnonWin9xConnections : EnableEvents : False EnableStartupHeapPreallocation : False HighThresholdOnClientObjects : HighThresholdOnEvents : 20000000 InstallationDirectory : C:\Windows\system32\wbem LastStartupHeapPreallocation : LoggingDirectory : C:\Windows\system32\wbem\Logs\ LoggingLevel : 2 LowThresholdOnClientObjects : LowThresholdOnEvents : 10000000 MaxLogFileSize : 65536 MaxWaitOnClientObjects : MaxWaitOnEvents : 2000 MofSelfInstallDirectory : SettingID : Описание ----------- Эта команда задает значение 2 для уровня записи WMI. Команда передает свойс тво, которое требуется задать, и значение (как пару) в параметре argument. Параметр принимает хэш таблицу, представленную конструкцией @{property = va lue}. Возвращаемая информация о классе содержит новое значение. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-wmiinstance -class win32_environment -argument @{Name="testvar";V ariableValue="testvalue";UserName="<SYSTEM>"} __GENUS : 2 __CLASS : Win32_Environment __SUPERCLASS : CIM_SystemResource __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_Environment.Name="testvar",UserName="<SYSTEM>" __PROPERTY_COUNT : 8 __DERIVATION : {CIM_SystemResource, CIM_LogicalElement, CIM_ManagedSyst emElement} __SERVER : SYSTEM01 __NAMESPACE : root\cimv2 __PATH : \\SYSTEM01\root\cimv2:Win32_Environment.Name="testvar",U serName="<SYSTEM>" Caption : <SYSTEM>\testvar Description : <SYSTEM>\testvar InstallDate : Name : testvar Status : OK SystemVariable : True UserName : <SYSTEM> VariableValue : testvalue Описание ----------- Эта команда создает переменную среды "testvar" со значением "testvalue". Эт о выполняется путем создания нового экземпляра класса Win32_Environment WMI . Следует иметь в виду, что эта операция требует наличия соответствующих уч етных данных, и что для просмотра новой переменной среды может понадобиться перезапустить Windows PowerShell. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Set-WMIInstance -class Win32_WMISetting -argument @{LoggingLevel=2} - computername system01, system02, system03 __GENUS : 2 __CLASS : Win32_WMISetting __SUPERCLASS : CIM_Setting __DYNASTY : CIM_Setting __RELPATH : Win32_WMISetting=@ __PROPERTY_COUNT : 27 __DERIVATION : {CIM_Setting} __SERVER : SYSTEM01 __NAMESPACE : root\cimv2 __PATH : \\SYSTEM01\root\cimv2:Win32_WMISetting=@ ASPScriptDefaultNamespace : \\root\cimv2 ASPScriptEnabled : False AutorecoverMofs : {%windir%\system32\wbem\cimwin32.mof, %win dir%\system32\wbem\ncprov.mof, %windir%\syst em32\wbem\wmipcima.mof, %windir%\system32\ wbem\secrcw32.mof...} AutoStartWin9X : BackupInterval : BackupLastTime : BuildVersion : 6001.18000 Caption : DatabaseDirectory : C:\Windows\system32\wbem\repository DatabaseMaxSize : Description : EnableAnonWin9xConnections : EnableEvents : False EnableStartupHeapPreallocation : False HighThresholdOnClientObjects : HighThresholdOnEvents : 20000000 InstallationDirectory : C:\Windows\system32\wbem LastStartupHeapPreallocation : LoggingDirectory : C:\Windows\system32\wbem\Logs\ LoggingLevel : 2 LowThresholdOnClientObjects : LowThresholdOnEvents : 10000000 MaxLogFileSize : 65536 MaxWaitOnClientObjects : MaxWaitOnEvents : 2000 MofSelfInstallDirectory : SettingID : ... Описание ----------- Эта команда задает значение 2 для уровня записи WMI. Команда передает свойс тво, которое требуется задать, и значение (как пару) в параметре argument. Параметр принимает хэш таблицу, представленную конструкцией @{property = va lue}. Возвращаемая информация о классе содержит новое значение. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113402 Get-WmiObject Invoke-WmiMethod Remove-WmiObject Get-WSManInstance Invoke-WSManAction New-WSManInstance Remove-WSManInstance Set-WSManInstance ИМЯ Set-WSManInstance ОПИСАНИЕ Вносит изменения в относящиеся к ресурсу сведения об управлении. СИНТАКСИС Set-WSManInstance [-ApplicationName <string>] [-ComputerName <string>] [-Fr agment <string>] [-Port <int>] [-UseSSL] -ResourceURI <Uri> [[-SelectorSet] <hashtable>] [-Authentication <AuthenticationMechanism>] [-Credential <PSC redential>] [-Dialect <Uri>] [-FilePath <File>] [-SessionOption <hashtable> ] [-ValueSet <hashtable>] [<CommonParameters>] Set-WSManInstance [-ConnectionURI <Uri>] [-Fragment <string>] -ResourceURI <Uri> [[-SelectorSet] <hashtable>] [-Authentication <AuthenticationMechanis m>] [-Credential <PSCredential>] [-Dialect <Uri>] [-FilePath <File>] [-Sess ionOption <hashtable>] [-ValueSet <hashtable>] [<CommonParameters>] ОПИСАНИЕ Командлет Set-WSManInstance вносит изменения в относящиеся к ресурсу сведен ия об управлении. Для изменения сведений командлет использует уровень соединений/транспорта W inRM. ПАРАМЕТРЫ -ApplicationName <string> Задает имя приложения для подключения. По умолчанию параметр Applicatio nName имеет значение "WSMAN". Полный идентификатор удаленной конечной т очки имеет следующий формат: <протокол>://<сервер>:<порт>/ Пример: http://server01:8080/WSMAN Службы IIS, которые обрабатывают сеанс, перенаправляют запросы с данной конечной точкой указанному приложению. Значение по умолчанию "WSMAN" п одходит для большинства случаев. Этот параметр предназначен для использ ования, когда большое число компьютеров устанавливают удаленные подключ ения к одному компьютеру, на котором работает Windows PowerShell. В это м случае для повышения эффективности веб-службы WS-Management размещают ся в службах IIS. Требуется? false Позиция? named Значение по умолчанию wsman Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationMechanism> Задает механизм проверки подлинности, используемый на сервере. Возможны е значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Default: использовать метод проверки подлинности, реализованный прото колом WS-Management. Это значение используется по умолчанию. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Kerberos: выполняется взаимная проверка подлинности компьютера и серв ера с использованием сертификатов Kerberos. - Negotiate: при использовании схемы Negotiate между компьютером и серв ером или прокси происходит обмен данными по принципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности . Например, это значение параметра разрешает согласование одного из дву х методов проверки подлинности: Kerberos или NTLM. - CredSSP: использовать проверку подлинности CredSSP (Credential Securi ty Service Provider), при которой пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускаю тся на одном удаленном компьютере, но собирают данные с других удаленны х компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Чтобы задать локальный компьютер, введите имя компьютера, "localhost " или точку (.). Локальный компьютер используется по умолчанию. Если по льзователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Значение этого параметра можно перед ать командлету по конвейеру. Требуется? false Позиция? named Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ConnectionURI <Uri> Задает конечную точку соединения. Строка имеет следующий формат: <протокол>://<сервер>:<порт>/ Следующая строка представляет собой правильно отформатированное значени е для этого параметра: http://Server01:8080/WSMAN Значение URI должно быть указано полностью. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Domain.com". Или укажите объект PSCredential, наприме р возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Dialect <Uri> Задает диалект, который должен использоваться в предикате фильтра. Это может быть любой диалект, поддерживаемый удаленной службой. Для URI диа лекта можно использовать следующие псевдонимы: - WQL: http://schemas.microsoft.com/wbem/wsman/1/WQL - Selector: http://schemas.microsoft.com/wbem/wsman/1/wsman/SelectorFil ter - Association: http://schemas.dmtf.org/wbem/wsman/1/cimbinding/associat ionFilter Требуется? false Позиция? named Значение по умолчанию http://schemas.microsoft.com/wbem/ wsman/1/WQL Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <File> Задает путь к файлу, который используется для обновления ресурса управл ения. Ресурс управления указывается с помощью параметров ResourceURI и SelectorSet. Например, в следующей команде используется параметр FilePa th: invoke-wsmanaction -action stopservice -resourceuri wmicimv2/Win32_Serv ice -SelectorSet @{Name="spooler"} -FilePath:c:\input.xml -authenticati on default Эта команда вызывает метод StopService службы очереди печати, используя входные данные из файла. В файле (Input.xml) содержатся следующие данн ые: <p:StopService_INPUT xmlns:p="http://schemas.microsoft.com/wbem/wsman/1 /wmi/root/cimv2/Win32_Service"/> Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Fragment <string> Задает раздел внутри экземпляра, который будет обновлен или извлечен ук азанной операцией. Например, для получения состояния службы очереди печ ати укажите "-Fragment Status". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -OptionSet <hashtable> Передает службе набор параметров для изменения или уточнения запроса. П ередаваемые параметры похожи на параметры, используемые в оболочках ком андной строки: они зависят от конкретной службы. Можно задать произволь ное количество параметров. В следующем примере показано синтаксическое выражение, позволяющее пере дать значения 1, 2 и 3 параметрам a, b и c соответственно: -OptionSet @{a=1;b=2;c=3} Требуется? Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Port <int> Задает порт, используемый клиентом для подключения к службе WinRM. Если в качестве транспорта выбран HTTP, по умолчанию используется порт 80. Если в качестве транспорта выбран HTTPS, по умолчанию используется порт 443. При использовании в качестве транспорта HTTPS значение параметра ComputerName должно соответствовать общему имени сертификата сервера. О днако, если в качестве элемента параметра SessionOption указан параметр SkipCNCheck, общее имя сертификата сервера не обязательно должно соотв етствовать имени узла сервера. Параметр SkipCNCheck следует использоват ь только в случае доверенных компьютеров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ResourceURI <Uri> Содержит универсальный идентификатор ресурса (URI) экземпляра или класс а ресурса. URI используется для определения конкретного типа ресурса, н апример диска или процесса, на компьютере. URI состоит из префикса и пути к ресурсу. Пример: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Log icalDisk http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSenso r Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SelectorSet <hashtable> Задает набор пар значений, которые используются для выбора конкретных э кземпляров ресурса управления. Параметр SelectorSet используется в случ ае существования нескольких экземпляров ресурса. Значение параметра Sel ectorSet представляет собой хэш-таблицу. В следующем примере показано, как задать значение для этого параметра: -SelectorSet @{Name="WinRM";ID="yyy"} Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -SessionOption <hashtable> Определяет расширенные параметры сеанса WS-Management. Введите объект S essionOption, созданный с помощью командлета New-WSManSessionOption. До полнительные сведения о доступных параметрах см. в разделе New-WSManSes sionOption. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseSSL [<SwitchParameter>] Указывает, что для установки подключения к удаленному компьютеру должен использоваться протокол SSL (Secure Sockets Layer). По умолчанию SSL н е используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. Параметр UseSSL позволяет указать, что необходимо испол ьзовать дополнительную меру защиты: протокол HTTPS вместо HTTP. Если ук азан этот параметр, однако используемый для подключения порт не поддерж ивает SSL, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ValueSet <hashtable> Задает хэш-таблицу, которая позволяет изменить ресурс управления. Ресур с управления указывается с помощью параметров ResourceURI и SelectorSet . Значение параметра ValueSet должно быть хэш-таблицей. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>set-wsmaninstance -resourceuri winrm/config/listener -selectorset @{a ddress="*";transport="https"} -valueset @{Enabled="false"} cfg : http://schemas.microsoft.com/wbem/wsman/1/config/li stener xsi : http://www.w3.org/2001/XMLSchema-instance lang : en-US Address : * Transport : HTTPS Port : 443 Hostname : Enabled : false URLPrefix : wsman CertificateThumbprint : ListeningOn : {127.0.0.1, 172.30.168.171, ::1, 2001:4898:0:fff:0: 5efe:172.30.168.171...} Описание ----------- Эта команда отключает HTTPS-прослушиватель на локальном компьютере. Важно: при сравнении свойств, заданных в параметре ValueSet, учитывается ре гистр. Возьмем в качестве примера приведенную выше команду. Эта запись завершится неудачей: -ValueSet @{enabled="False"} Эта запись завершится успешно: -ValueSet @{Enabled="False"} -------------------------- ПРИМЕР 2 -------------------------- C:\PS>set-wsmaninstance -resourceuri winrm/config -ValueSet @{MaxEnvelopeSi zekb = "200"} cfg : http://schemas.microsoft.com/wbem/wsman/1/config lang : en-US MaxEnvelopeSizekb : 200 MaxTimeoutms : 60000 MaxBatchItems : 32000 MaxProviderRequests : 4294967295 Client : Client Service : Service Winrs : Winrs Описание ----------- Эта команда устанавливает параметр MaxEnvelopeSizekb на локальном компьютер е равным 200. Важно: при сравнении свойств, заданных в параметре ValueSet, учитывается ре гистр. Возьмем в качестве примера приведенную выше команду. Эта запись завершится неудачей: -ValueSet @{MaxEnvelopeSizeKB ="200"} Эта запись завершится успешно: -ValueSet @{MaxEnvelopeSizekb ="200"} -------------------------- ПРИМЕР 3 -------------------------- C:\PS>set-wsmaninstance -resourceuri winrm/config/listener -computername SE RVER02 -selectorset @{address="*";transport="https"} -valueset @{Enabled="f alse"} cfg : http://schemas.microsoft.com/wbem/wsman/1/config/li stener xsi : http://www.w3.org/2001/XMLSchema-instance lang : en-US Address : * Transport : HTTPS Port : 443 Hostname : Enabled : false URLPrefix : wsman CertificateThumbprint : ListeningOn : {127.0.0.1, 172.30.168.172, ::1, 2001:4898:0:fff:0: 5efe:172.30.168.172...} Описание ----------- Эта команда отключает HTTPS-прослушиватель на удаленном компьютере SERVER02 . Важно: при сравнении свойств, заданных в параметре ValueSet, учитывается ре гистр. Возьмем в качестве примера приведенную выше команду. Эта запись завершится неудачей: -ValueSet @{enabled="False"} Эта запись завершится успешно: -ValueSet @{Enabled="False"} ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141458 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManQuickConfig Test-WSMan Set-WSManQuickConfig ИМЯ Set-WSManQuickConfig ОПИСАНИЕ Настраивает локальный компьютер для удаленного управления. СИНТАКСИС Set-WSManQuickConfig [-UseSSL] [<CommonParameters>] ОПИСАНИЕ Командлет Set-WSManQuickConfig настраивает компьютер на получение удаленных команд Windows PowerShell, отправляемых с использованием технологии WS-Man agement. Командлет выполняет следующие операции. 1. Проверяет, запущена ли служба WinRM. Если служба WinRM не запущена, кома ндлет запускает ее. 2. Устанавливает для службы WinRM тип запуска "Авто". 3. Создает прослушиватель для приема запросов на любом IP-адресе. По умолча нию используется протокол HTTP. 4. Создает исключение брандмауэра для трафика, создаваемого службой WinRM. Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и бо лее поздних версиях Windows, необходимо запускать Windows PowerShell команд ой "Запуск от имени администратора". ПАРАМЕТРЫ -UseSSL [<SwitchParameter>] Указывает, что для установки подключения к удаленному компьютеру должен использоваться протокол SSL (Secure Sockets Layer). По умолчанию SSL н е используется. Протокол WS-Management шифрует все передаваемое по сети содержимое Wind ows PowerShell. Параметр UseSSL позволяет указать, что необходимо испол ьзовать дополнительную меру защиты и передавать данные по протоколу HTT PS вместо HTTP. Если используется этот параметр, но установить SSL-соед инение с портом, указанным в команде, не удается, команда завершается с ошибкой. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Set-WSManQuickConfig Описание ----------- Эта команда устанавливает конфигурацию, необходимую для обеспечения удаленн ого управления локальным компьютером. По умолчанию она создает прослушивате ль WS-Management для протокола HTTP. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Set-WSManQuickConfig -UseSSL Описание ----------- Эта команда устанавливает конфигурацию, необходимую для обеспечения удаленн ого управления локальным компьютером. Поскольку указан параметр UseSSL, ком анда создает прослушиватель WS-Management для протокола HTTPS. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141463 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-PSRemoting Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-PSSession New-WSManInstance New-WSManSessionOption Test-WSMan Show-EventLog ИМЯ Show-EventLog ОПИСАНИЕ Отображает журналы событий локального или удаленного компьютера в средстве просмотра событий. СИНТАКСИС Show-EventLog [[-ComputerName] <string>] [<CommonParameters>] ОПИСАНИЕ Командлет Show-EventLog открывает средство просмотра событий на локальном к омпьютере и отображает в нем все классические журналы событий, имеющиеся на локальном компьютере или на удаленном компьютере. Чтобы открывать средство просмотра событий в Windows Vista и более поздних версиях Windows, текущий пользователь должен быть членом группы "Администра торы" на локальном компьютере. Командлеты, в имени которых содержится существительное EventLog (командлеты EventLog) работают только с классическими журналами событий. Чтобы получат ь события из журналов, основанных на технологии журнала событий Windows (в Windows Vista и более поздних версиях Windows), используйте командлет Get-W inEvent. ПАРАМЕТРЫ -ComputerName <string> Задает удаленный компьютер. Командлет Show-EventLog отображает журналы событий с указанного компьютера в средстве просмотра событий на локальн ом компьютере. По умолчанию используется значение "Локальный компьютер" . Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-EventLog можно использовать, даж е если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? 1 Значение по умолчанию . Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Сразу же после открытия средства просмотра событий снова отображается к омандная строка Windows PowerShell. Можно продолжать работу в рамках да нного сеанса, не закрывая средство просмотра событий. Поскольку этому командлету требуется пользовательский интерфейс, он не работает в ОС Windows Server, установленной в варианте Server Core. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>show-eventlog Описание ----------- Эта команда открывает средство просмотра событий и отображает в нем классич еские журналы событий, имеющиеся на локальном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>show-eventlog -computername Server01 Описание ----------- Эта команда открывает средство просмотра событий и отображает в нем классич еские журналы событий, имеющиеся на компьютере Server01. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135257 Clear-EventLog Get-EventLog Limit-EventLog New-EventLog Remove-EventLog Write-EventLog Get-WinEvent Sort-Object ИМЯ Sort-Object ОПИСАНИЕ Сортирует объекты по значениям свойств. СИНТАКСИС Sort-Object [[-Property] <Object[]>] [-CaseSensitive] [-Culture <string>] [ -Descending] [-InputObject <psobject>] [-Unique] [<CommonParameters>] ОПИСАНИЕ Командлет Sort-Object сортирует объекты по возрастанию или по убыванию на о снове значений свойств объектов. Можно задать одно свойство или несколько свойств (сортировка по нескольким ключам), а также выбрать сортировку с учетом или без учета регистра. Кроме того, можно сделать так, чтобы командлет Sort-Object выводил только объекты с уникальными значениями того или иного свойства. ПАРАМЕТРЫ -CaseSensitive [<SwitchParameter>] Указывает, что сортировка должна выполняться с учетом регистра. По умол чанию сортировка выполняется без учета регистра. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Culture <string> Указывает используемую при сортировке настройку культуры. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Descending [<SwitchParameter>] Сортирует объекты в порядке убывания. По умолчанию используется сортиро вка в порядке возрастания. Действие параметра Descending распространяется на все свойства. Чтобы в ыполнить сортировку по некоторым свойствам в порядке возрастания значен ий, а по другим свойствам — в порядке убывания, значения этих свойств н ужно задать с использованием хэш-таблицы. Подробности см. в примерах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты для сортировки. Если для передачи коллекции объектов используется параметр InputObject, командлет Sort-Object получает один объект, представляющий коллекцию. Поскольку один объект отсортировать невозможно, Sort-Object возвращает всю коллекцию без изменений. Чтобы отсортировать объекты, передайте их командлету Sort-Object по кон вейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Property <Object[]> Задает свойства для использования при сортировке. Объекты сортируются н а основании значений этих свойств. Введите имена свойств. Подстановочны е знаки разрешены. Если указано несколько свойств, объекты сначала сортируются по первому свойству. Если у нескольких объектов значения первого свойства совпадаю т, эти объекты сортируются по второму свойству. Это продолжается до тех пор, пока не закончатся все указанные свойства или группы объектов. Если свойства не указаны, командлет выполняет сортировку на основании с войств по умолчанию для объектов данного типа. Значение параметра Property может быть новым вычисляемым свойством. Что бы создать вычисляемое свойство, используйте хэш-таблицу. Допустимые кл ючи: -- Expression <строка> или <блок скрипта> -- Ascending <Boolean> -- Descending <Boolean> Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? true -Unique [<SwitchParameter>] Удаляет дубликаты и возвращает только уникальные элементы коллекции. Эт от параметр можно использовать вместо командлета Get-Unique. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты для сортировки можно передать командлету Sort-Object по конвейе ру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Командлет Sort-Object возвращает отсортированные объекты. ПРИМЕЧАНИЯ Командлет Sort-Object сортирует объекты на основании заданных свойств и ли свойств сортировки по умолчанию для объектов данного типа. Если объект не имеет одного из указанных свойств, соответствующее значе ние свойства интерпретируется командлетом как NULL, и объект помещается в конец списка сортировки. При сортировке объектов командлет Sort-Object использует для каждого св ойства метод Compare. Если интерфейс IComparable в свойстве не реализов ан, то этот командлет преобразует значение свойства в строку и вызывает метод Compare класса System.String. Командлет Sort-Object сортирует объекты по возрастанию или по убыванию на основе значений свойств объектов. При сортировке по свойству, значения которого являются перечислением, к омандлет Sort-Object сортирует значения по их числовым эквивалентам, а не по именам элементов перечисления. Например, при сортировке служб по состоянию службы с состоянием "Остановлена" будут отображаться до служб с состоянием "Работает", поскольку значение свойства Status является п еречислением ServiceControllerStatus, в котором элементу "Stopped" соот ветствует значение 1, а элементу "Running" — значение 4. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-childitem | sort-object Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 9/13/2005 4:24 PM 0 0 -a--- 9/6/2005 4:19 PM 12 a.csv -a--- 9/21/2005 3:49 PM 529 a.Ps -a--- 8/22/2005 4:14 PM 22 a.pl -a--- 9/27/2005 10:33 AM 24 a.txt -a--- 9/15/2005 10:31 AM 398 a.vbs -a--- 7/21/2005 12:39 PM 37066 a.xml -a--- 8/28/2005 11:30 PM 5412 a.xslt -a--- 10/25/2005 1:59 PM 125 AdamTravel.txt -a--- 7/21/2005 9:49 AM 59 add2Num.Ps -a--- 8/29/2005 5:42 PM 7111 add-content.xml -a--- 9/21/2005 12:46 PM 8771 aliens.Ps -a--- 8/10/2005 2:10 PM 798 array.xml -a--- 8/4/2004 5:00 AM 110 AUTORUN.INF -a--- 9/6/2005 4:20 PM 245 b.csv ... Описание ----------- Эта команда сортирует вложенные каталоги и файлы из текущего каталога. Поск ольку ни одно свойство не задано, файлы и каталоги отсортированы по алфавит у по свойству по умолчанию (Name). -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-childitem | sort-object -property length Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 12/3/2006 5:35 PM 2 pref.txt -a--- 9/6/2006 3:33 PM 15 count.txt -a--- 7/26/2006 10:01 AM 30 filenoext -a--- 8/18/2006 9:02 AM 52 temp.ps1 -a--- 8/18/2006 9:02 AM 52 temp.msh -a--- 9/6/2006 3:33 PM 56 fivewords.txt -a--- 7/26/2006 9:28 AM 80 date.csv -a--- 7/29/2006 7:15 PM 84 test2.txt -a--- 7/29/2006 7:15 PM 84 test.ps1 Описание ----------- Эта команда отображает имеющиеся в текущем каталоге файлы, сортируя их по в озрастанию размера. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | sort-object -property WS | select-object -last 5 Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 1105 25 44236 18932 197 93.81 2032 iexplore 2526 66 37668 36836 221 393.27 868 svchost 974 19 22844 45928 371 88.39 3952 WINWORD 1371 22 42192 61872 323 75.75 1584 INFOPATH 2145 58 93088 70680 619 396.69 3908 OUTLOOK Описание ----------- Эта команда отображает пять процессов, которые используют наибольший объем памяти на основании их рабочих наборов. С помощью командлета Get-Process команда получает список выполняющихся на к омпьютере процессов. С помощью оператора конвейера (|) она передает результ аты командлету Sort-Object, который сортирует объекты в порядке размеров ра бочих наборов. Другой оператор конвейера передает результаты командлету Select-Object, кот орый отображает только пять элементов списка. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-history | sort-object -descending Id CommandLine -- ----------- 51 get-history | sort -descending 50 get-history | sort -descending 49 get-history | sort -descending 48 get-history | sort -descending 47 get-history | sort -descending 46 get-history | sort -descending 45 get-history | sort -descending 44 cd $pshome 43 get-childitem | sort-object 42 gci *.txt Описание ----------- Эта команда сортирует объекты HistoryInfo, используя в качестве ключа по ум олчанию свойство Id. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>C:\PS> get-service | sort-object -property ` @{Expression="Status";Descending=$true}, ` @{Expression="DisplayName";Descending=$false} Status Name DisplayName ------ ---- ----------- Running ALG Application Layer Gateway Service Running Ati HotKey Poller Ati HotKey Poller Running wuauserv Automatic Updates Running BITS Background Intelligent Transfer Ser... Running Client for NFS Client for NFS ... Stopped clr_optimizatio... .NET Runtime Optimization Service v... Stopped Alerter Alerter Stopped AppMgmt Application Management Stopped aspnet_state ASP.NET State Service Stopped ATI Smart ATI Smart Stopped ClipSrv ClipBook Описание ----------- Эта команда отображает службы компьютера в порядке убывания значения Status и возрастания значения DisplayName. Эта команда с помощью командлета Get-Service получает службы на компьютере. Службы с помощью оператора конвейера (|) передаются командлету Sort-Object . Чтобы выполнить сортировку по возрастанию одного свойства и убыванию другог о, в этой команде используется хэш-таблица для значения свойства Property. Хэш-таблица использует ключ Expression, чтобы задать имя свойства, и ключ A scending или Descending, чтобы определить порядок сортировки. В результатах выполнения команды, выполняющей сортировку по убыванию значен ия Status, объекты, для которых свойство Status имеет значение "Running" (Р аботает), будут отображаться до объектов, для которых свойство Status имеет значение "Stopped" (Остановлена). При сортировке по возрастанию значения " Stopped" отображаются до значений "Running", потому что значениями свойства Status являются элементы перечисления, в котором значение "Stopped" (1) ме ньше, чем "Running" (4). -------------------------- ПРИМЕР 6 -------------------------- C:\PS>get-childitem *.txt | sort-object -property @{Expression={$_.LastWrit eTime - $_.CreationTime}; Ascending=$false} | Format-Table LastWriteTime, C reationTime LastWriteTime CreationTime ------------- ------------ 2/21/2006 10:22:20 AM 10/3/2005 4:19:40 PM 2/27/2006 8:14:24 AM 2/23/2006 10:41:08 PM 2/24/2006 1:26:19 PM 2/23/2006 11:23:36 PM 1/5/2006 12:01:35 PM 1/5/2006 11:35:30 AM 2/24/2006 9:25:40 AM 2/24/2006 9:22:24 AM 2/24/2006 9:40:01 AM 2/24/2006 9:39:41 AM 2/21/2006 10:21:30 AM 2/21/2006 10:21:30 AM Описание ----------- Эта команда сортирует текстовые файлы по возрастанию, используя в качестве критерия сортировки интервал между временем создания файла (CreationTime) и временем последней записи (LastWriteTime). -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-content servers.txt localhost test01 server01 server02 localhost server01 C:\PS> get-content servers.txt | sort-object -unique localhost server01 server02 test01 Описание ----------- Эти команды сортируют имена серверов в текстовом файле. Вторая команда с по мощью командлета Sort-Object с параметром Unique возвращает отсортированный список без дубликатов. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113403 Group-Object Split-Path ИМЯ Split-Path ОПИСАНИЕ Возвращает указанную часть пути. СИНТАКСИС Split-Path [-IsAbsolute] [-Path] <string[]> [-Credential <PSCredential>] [- LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>] Split-Path [-Leaf] [-Path] <string[]> [-Credential <PSCredential>] [-Litera lPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>] Split-Path [-NoQualifier] [-Path] <string[]> [-Credential <PSCredential>] [ -LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>] Split-Path [-Parent] [-Path] <string[]> [-Credential <PSCredential>] [-Lite ralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>] Split-Path [[-Qualifier]] [-Path] <string[]> [-Credential <PSCredential>] [ -LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Split-Path возвращает только указанную часть пути, например корне вой каталог, вложенный каталог или имя файла. Также он может отображать эле менты, на которые указывает путь после разбиения, и сообщать, относительным или абсолютным является путь. Этот командлет можно использовать для отображения или передачи только выбра нной части пути. ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, созданных коман длетом Get-Credential. При вводе имени пользователя система запросит па роль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -IsAbsolute [<SwitchParameter>] Возвращает TRUE, если путь является абсолютным, и FALSE, если путь явля ется относительным. Абсолютный путь имеет длину, большую нуля, и не сод ержит точку (. ) для обозначения текущего пути. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Leaf [<SwitchParameter>] Возвращает только последний элемент или контейнер в указанном пути. Нап ример, при обработке пути "C:\Test\Logs\Pass1.log" возвращается значени е "Pass1.log". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -LiteralPath <string[]> Задает пути для разбиения. В отличие от значения параметра Path, значен ие параметра LiteralPath используется точно в том виде, в котором оно в ведено. Никакие символы не интерпретируются как подстановочные знаки. Е сли путь включает escape-символы, его нужно заключить в одиночные кавыч ки. Одиночные кавычки указывают оболочке Windows PowerShell, что никаки е символы не следует интерпретировать как escape-символы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -NoQualifier [<SwitchParameter>] Возвращает путь без квалификатора. Для поставщиков файловой системы или реестра квалификатором является имя диска, на котором расположен поста вщик, например "C:" или "HKCU:". Например, при обработке пути "C:\Test\ Logs\Pass1.log" возвращается значение "\Test\Logs\Pass1.log". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Parent [<SwitchParameter>] Возвращает только родительские контейнеры элемента или контейнера, зада ваемого путем. Например, при обработке пути "C:\Test\Logs\Pass1.log" во звращается значение "C:\Test\Logs". Параметр Parent является параметром разбиения пути, используемым по умолчанию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает пути для разбиения. Подстановочные знаки разрешены. Путь, содерж ащий пробелы, необходимо заключать в кавычки. Кроме того, можно передат ь путь командлету Split-Path по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Qualifier [<SwitchParameter>] Возвращает только квалификатор заданного пути. Для поставщиков файловой системы или реестра квалификатором является имя диска, на котором расп оложен поставщик, например "C:" или "HKCU:". Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Resolve [<SwitchParameter>] Отображает элементы, на которые указывает путь после разбиения, а не эл ементы пути. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь, можно передать командлету Split-Path по конвей еру. ВЫХОДНЫЕ ДАННЫЕ System.String Командлет Split-Path возвращает текстовые строки. При использовании пар аметра Resolve командлет Split-Path возвращает строку, описывающую мест оположение элементов, но не возвращает объекты, представляющие элементы , например объекты FileInfo или RegistryKey. ПРИМЕЧАНИЯ Параметры разбиения пути (Qualifier, Parent, Leaf и NoQualifier) являют ся взаимоисключающими. В каждой команде может использоваться только оди н параметр. Командлеты, в именах которых содержится существительное Path (командлет ы Path), оперируют именами путей и возвращают эти имена в сокращенном ф ормате, который поддерживается всеми поставщиками Windows PowerShell. О ни предназначены для использования в программах и скриптах, в которых т ребуется отображать имя пути или его часть в конкретном формате. Исполь зуйте их аналогично другим командам для работы с путями, таким как Dirn ame, Normpath, Realpath и Join. Командлеты Path можно использовать с несколькими поставщиками, включая FileSystem, Registry и Certificate. Командлет Split-Path предназначен для работы с данными, предоставляемым и любым поставщиком. Чтобы получить список поставщиков, доступных в тек ущем сеансе, введите команду "Get-PSProvider". Дополнительные сведения см. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>split-path "HKCU:\Software\Microsoft" -qualifier HKCU: Описание ----------- Эта команда возвращает только квалификатор (имя диска) заданного пути. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>split-path "C:\Test\Logs\*.log" -leaf -resolve Pass1.log Pass2.log ... Описание ----------- Эта команда отображает файлы, на которые указывает путь после разбиения. По скольку данный путь был разбит до последнего элемента ("листа" дерева катал огов), отображаются только имена файлов. Параметр Resolve указывает командлету Split-Path отображать элементы, на ко торые указывает путь после разбиения, а не сам путь после разбиения. Как и все команды Split-Path, эта команда возвращает строки. Она не возвращ ает объекты FileInfo, представляющие файлы. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>split-path "C:\WINDOWS\system32\WindowsPowerShell\V1.0\about_*.txt" C:\WINDOWS\system32\WindowsPowerShell\V1.0 Описание ----------- Эта команда возвращает только родительские контейнеры заданного пути. Так к ак данная команда не содержит параметров разбиения, командлет Split-Path ис пользует разбиение по умолчанию, которым является Parent. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>split-path ".\My Pictures\*.jpg" -IsAbsolute False Описание ----------- Эта команда определяет, относительным или абсолютным является указанный пут ь. Так как в данном случае путь является относительным для текущей папки, п редставленной точкой (.), результатом выполнения команды является значение FALSE ($false). -------------------------- ПРИМЕР 5 -------------------------- C:\PS>set-location (split-path $profile) PS C:\Documents and Settings\juneb\My Documents\WindowsPowerShell> Описание ----------- Эта команда изменяет текущее местоположение на папку, содержащую профиль Wi ndows PowerShell. Команда, заключенная в круглые скобки, с помощью командлета Split-Path возв ращает только родительский контейнер пути, хранящегося в переменной $Profil e. (Параметр Parent является параметром разбиения пути по умолчанию, поэтом у его можно опустить.) Круглые скобки указывают оболочке Windows PowerShell , что данную команду необходимо выполнять в первую очередь. Это удобный спо соб перейти в папку с длинным путем. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>'C:\Documents and Settings\User01\My Documents\My Pictures' | split-p ath C:\Documents and Settings\User01\My Documents Описание ----------- В этой команде используется оператор конвейера (|) для передачи пути команд лету Split-Path. Путь заключен в кавычки, что указывает, что он является ед иной лексемой. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113404 about_Providers Test-Path Convert-Path Resolve-Path Join-Path Start-Job ИМЯ Start-Job ОПИСАНИЕ Запускает фоновое задание Windows PowerShell. СИНТАКСИС Start-Job [-ScriptBlock] <scriptblock> [[-InitializationScript] <scriptbloc k>] [-ArgumentList <Object[]>] [-Authentication {Default | Basic | Negotiat e | NegotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-Crede ntial <PSCredential>] [-InputObject <psobject>] [-Name <string>] [-RunAs32] [<CommonParameters>] Start-Job [[-FilePath] <string>] [[-InitializationScript] <scriptblock>] [- ArgumentList <Object[]>] [-Authentication {Default | Basic | Negotiate | Ne gotiateWithImplicitCredential | Credssp | Digest | Kerberos}] [-Credential <PSCredential>] [-InputObject <psobject>] [-Name <string>] [-RunAs32] [ monParameters>] ОПИСАНИЕ Командлет Start-Job запускает фоновое задание Windows PowerShell на локальн ом компьютере. Фоновое задание Windows PowerShell выполняет команду "в фоновом режиме" без взаимодействия с текущим сеансом. При запуске фонового задания объект зада ния возвращается немедленно, даже если для выполнения задания требуется зна чительное время. Пока задание выполняется, можно продолжать работу с данным сеансом. Объект задания содержит полезные сведения о задании, но не содержит результ атов выполнения задания. После завершения задания используйте командлет Rec eive-Job для получения результатов задания. Дополнительные сведения о фонов ых заданиях см. в разделе about_Jobs. Чтобы выполнить фоновое задание на удаленном компьютере, используйте параме тр AsJob, имеющийся во многих командлетах, или командлет Invoke-Command для выполнения команды Start-Job на удаленном компьютере. Дополнительные свед ения см. в разделе about_Remote_Jobs. ПАРАМЕТРЫ -ArgumentList <Object[]> Указывает аргументы (значения параметров) скрипта, заданного в параметр е FilePath. Поскольку все значения после имени параметра ArgumentList интерпретирую тся как значения этого параметра, он должен быть последним параметром к оманды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationMechanism> Задает механизм, используемый при проверке подлинности учетных данных п ользователя. Допустимые значения: Default, Basic, Credssp, Digest, Ke rberos, Negotiate и NegotiateWithImplicitCredential. По умолчанию испо льзуется значение "Default". Проверка подлинности CredSSP доступна только в Windows Vista, Windows S erver 2008 и более поздних версиях Windows. Дополнительные сведения о значениях этого параметра см. в описании пере числения System.Management.Automation.Runspaces.AuthenticationMechanism в библиотеке MSDN. ВНИМАНИЕ Проверка подлинности CredSSP, при которой учетные данные поль зователя передаются на удаленный компьютер, предназначена для команд, к оторые должны пройти процедуру проверки подлинности на нескольких ресур сах, например при доступе к удаленному общему сетевому ресурсу. Такой м еханизм повышает угрозы безопасности удаленных операций. Если безопасно сть удаленного компьютера нарушена, передаваемые ему учетные данные мог ут использоваться для управления сетевым сеансом. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, возвращаемый командлетом Get-Credential. Требуется? false Позиция? named Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <string> Запускает заданный локальный скрипт в качестве фонового задания. Введит е путь и имя файла скрипта или передайте путь к скрипту командлету Star t-Job по конвейеру. Скрипт должен находиться на локальном компьютере ил и в каталоге, к которому можно получить доступ с локального компьютера. При использовании этого параметра Windows PowerShell преобразует указан ный файл скрипта в блок скрипта и выполняет этот блок в качестве фоново го задания. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InitializationScript <scriptblock> Задает команды, выполняемые перед запуском задания. Чтобы создать блок скрипта, заключите команды в фигурные скобки ( { } ). Используйте этот параметр для подготовки сеанса, в котором выполняется задание. Например, его можно использовать для добавления в сеанс функци й, оснасток и модулей. Требуется? false Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает входные данные команды. Укажите переменную, содержащую объекты, либо введите команду или выражение, создающее их. В значении параметра ScriptBlock следует использовать автоматическую пе ременную $input для представления входных объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string> Задает понятное имя нового задания. Это имя можно использовать для иден тификации задания в других командлетах заданий, например Stop-Job. По умолчанию понятное имя имеет формат Job#, где символ "#" является по рядковым номером, который увеличивается на единицу для каждого задания. Требуется? false Позиция? named Значение по умолчанию Job<номер> Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -RunAs32 [<SwitchParameter>] Запускает задание в 32-разрядном процессе. Используйте этот параметр для принудительного запуска задания в 32-разр ядном процессе 64-разрядной операционной системы. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ScriptBlock <scriptblock> Задает команды, которые требуется выполнить в фоновом задании. Чтобы со здать блок скрипта, заключите команды в фигурные скобки ( { } ). Это об язательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Путь к файлу можно передать командлету Start-Job по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.RemotingJob Командлет Start-Job возвращает объект, представляющий запущенное им зад ание. ПРИМЕЧАНИЯ Для выполнения в фоновом режиме командлет Start-Job запускается в собст венном сеансе в рамках текущего сеанса. Если командлет Invoke-Command и спользуется для выполнения команды Start-Job в сеансе на удаленном комп ьютере, команда Start-Job выполняется в сеансе в рамках удаленного сеан са. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>start-job -scriptblock {get-process} C:\PS> start-job -command "get-process" Id Name State HasMoreData Location Command --- ---- ----- ----------- -------- ------- 1 Job1 Running True localhost get-process Описание ----------- Эта команда запускает фоновое задание, которое выполняет команду Get-Proces s. Команда возвращает объект задания, содержащий информацию о задании. Кома ндная строка возвращается немедленно, что позволяет работать с сеансом во в ремя выполнения задания в фоновом режиме. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$jobWRM = invoke-command -computerName (get-content servers.txt) -scr iptblock {get-service winrm} -jobname WinRM -throttlelimit 16 -AsJob Описание ----------- Эта команда использует командлет Invoke-Command и его параметр AsJob для за пуска фонового задания, которое выполняет команду "get-service winrm" на не скольких компьютерах. Поскольку команда выполняется на сервере со значитель ным сетевым трафиком, в команде используется параметр ThrottleLimit командл ета Invoke-Command для ограничения количества одновременно выполняемых кома нд до 16. В команде используется параметр ComputerName ?? ??????? ??????????, ?? ???? ?? ????????? задание. Значением параметра ComputerName является команда Get -Content, которая получает текст из файла Servers.txt, содержащего имена ко мпьютеров в домене. В команде используется параметр ScriptBlock для указания команды и параметр JobName для указания понятного имени задания. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$j = start-job -scriptblock {get-eventlog -log system} -credential do main01\user01 C:\PS> $j | format-list -property * HasMoreData : True StatusMessage : Location : localhost Command : get-eventlog -log system JobStateInfo : Running Finished : System.Threading.ManualResetEvent InstanceId : 2d9d775f-63e0-4d48-b4bc-c05d0e177f34 Id : 1 Name : Job1 ChildJobs : {Job2} Output : {} Error : {} Progress : {} Verbose : {} Debug : {} Warning : {} StateChanged : C:\PS> $j.JobStateInfo.state Completed C:\PS> $results = receive-job -job $j C:\PS> $results Index Time Type Source EventID Message ----- ---- ---- ------ ------- ------- 84366 Feb 18 19:20 Information Service Control M... 7036 The descripti on... 84365 Feb 18 19:16 Information Service Control M... 7036 The descripti on... 84364 Feb 18 19:10 Information Service Control M... 7036 The descripti on... ... Описание ----------- Эти команды управляют фоновым заданием, которое получает все события из сис темного журнала средства просмотра событий. Задание выполняется на локально м компьютере. Первая команда запускает задание с помощью командлета Start-Job. В ней испо льзуется параметр Credential для указания учетной записи пользователя, кото рый располагает разрешениями для выполнения этого задания на компьютере. За тем команда сохраняет объект задания, возвращенный командлетом Start-Job, в переменной $j. Далее можно продолжить работу, пока задание выполняется. Вторая команда передает объект задания, указанный в переменной $j, в команд лет Format-List с помощью оператора конвейера (|). Команда Format-List испо льзует параметр Property со значением * (все) для отображения всех свойств объекта задания в списке. Третья команда отображает значение свойства JobStateInfo, которое содержит состояние задания. Четвертая команда использует командлет Receive-Job для получения результато в задания. Результат сохраняется в переменной $results. Последняя команда отображает значение переменной $results. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>start-job -filepath c:\scripts\sample.ps1 Описание ----------- Эта команда запускает скрипт Sample.ps1 в качестве фонового задания. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>start-job -name WinRm -scriptblock {get-process winrm} Описание ----------- Эта команда запускает фоновое задание, которое получает процесс WinRM на ло кальном компьютере. В команде используется параметр ScriptBlock для указани я команды, которая выполняется в фоновом задании. Для задания понятного име ни нового задания используется параметр Name. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>start-job -name GetMappingFiles -initializationScript {import-module MapFunctions} -scriptblock {Get-Map -name * | set-content D:\Maps.tif} -run As32 Описание ----------- Эта команда запускает задание, собирающее большой объем данных, и сохраняет эти данные в файле TIF. Команда использует параметр InitializationScript д ля запуска блока скрипта, импортирующего требуемый модуль. Она также исполь зует параметр RunAs32 для запуска задания в 32-разрядном процессе, даже есл и на компьютере установлена 64-разрядная операционная система. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113405 about_Jobs about_Job_Details about_Remote_Jobs Get-Job Receive-Job Wait-Job Stop-Job Remove-Job Invoke-Command Start-Process ИМЯ Start-Process ОПИСАНИЕ Запускает один или несколько процессов на локальном компьютере. СИНТАКСИС Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-Credentia l <PSCredential>] [-LoadUserProfile] [-NoNewWindow] [-PassThru] [-RedirectS tandardError <string>] [-RedirectStandardInput <string>] [-RedirectStandard Output <string>] [-UseNewEnvironment] [-Wait] [-WorkingDirectory <string>] [<CommonParameters>] Start-Process [-FilePath] <string> [[-ArgumentList] <string[]>] [-PassThru] [-Verb <string>] [-Wait] [-WindowStyle {Normal | Hidden | Minimized | Maxi mized}] [-WorkingDirectory <string>] [<CommonParameters>] ОПИСАНИЕ Запускает один или несколько процессов на локальном компьютере. Чтобы указ ать программу, выполняемую в процессе, введите исполняемый файл или файл ск рипта, либо файл, который может быть открыт с помощью имеющейся на компьюте ре программы. Если указанный файл не является исполняемым, командлет Start- Process запускает связанную с этим файлом программу, подобно командлету Inv oke-Item. Параметры командлета Start-Process можно использовать для задания параметро в запуска, таких как загрузка профиля пользователя, запуск процесса в новом окне или использование других учетных данных. ПАРАМЕТРЫ -ArgumentList <string[]> Задает параметры или значения параметров, используемые при запуске проц есса. Имя параметра ("Arguments") указывать необязательно. Требуется? false Позиция? 2 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объек т, возвращаемый командлетом Get-Credential. По умолчанию командлет испо льзует учетные данные текущего пользователя. Требуется? false Позиция? named Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <string> Задает путь (необязательно) и имя файла программы, выполняемой в процес се. Введите имя исполняемого файла или документа, такого как TXT- или D OC-файл, связанного с имеющейся на компьютере программой. Это обязатель ный параметр. При указании только имени файла необходимо использовать параметр Workin gDirectory для задания пути. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LoadUserProfile [<SwitchParameter>] Загружает профиль пользователя Windows, хранящийся в разделе реестра HK EY_USERS для текущего пользователя. По умолчанию используется значение FALSE. Этот параметр не влияет на профили Windows PowerShell. (См. раздел abou t_Profiles.) Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoNewWindow [<SwitchParameter>] Предотвращает запуск процесса в новом окне. По умолчанию процесс выполн яется в новом окне. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект процесса для каждого запущенного командлетом процесса . По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RedirectStandardError <string> Отправляет все формируемые процессом ошибки в указанный файл. Введите п уть и имя файла. По умолчанию ошибки отображаются в консоли. Требуется? false Позиция? named Значение по умолчанию Ошибки отображаются в консоли Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RedirectStandardInput <string> Считывает входные данные из указанного файла. Введите путь и имя входно го файла. По умолчанию процесс получает входные данные с клавиатуры. Требуется? false Позиция? named Значение по умолчанию С клавиатуры Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RedirectStandardOutput <string> Отправляет формируемые процессом выходные данные в указанный файл. Введ ите путь и имя файла. По умолчанию выходные данные отображаются в консо ли. Требуется? false Позиция? named Значение по умолчанию FALSE Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseNewEnvironment [<SwitchParameter>] Указывает командлету использовать новые переменные среды, заданные для процесса. По умолчанию запущенный процесс выполняется с переменными сре ды, заданными для компьютера и пользователя. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Verb <string> Задает команду, используемую при запуске процесса, такую как Edit, Open или Print. С каждым типом файлов связан набор команд, которые можно использовать. Чтобы определить команды, которые можно использовать в сочетании с данн ым процессом, используйте свойство Verbs объекта. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Wait [<SwitchParameter>] Ожидает завершения указанного процесса, прежде чем принимать следующий ввод. Этот параметр отключает командую строку или удерживает окно до за вершения процесса. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WindowStyle <ProcessWindowStyle> Задает состояние окон, используемых для выполнения процесса. Допустимые значения: Normal, Hidden, Minimized и Maximized. По умолчанию использу ется значение "Normal". Требуется? false Позиция? named Значение по умолчанию Normal Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WorkingDirectory <string> Задает местоположение исполняемого файла, выполняемого в процессе, или обрабатываемого документа. По умолчанию используется текущий каталог. Требуется? false Позиция? named Значение по умолчанию Текущий каталог Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Данные невозможно передать командлету Start-Process по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Diagnostics.Process Если задан параметр PassThru, командлет Start-Process формирует объект System.Diagnostics.Process. В противном случае этот командлет не возвра щает никаких выходных данных. ПРИМЕЧАНИЯ Этот командлет реализован с использованием метода Start класса System.D iagnostics.Process. Дополнительные сведения об этом методе см. в раздел е "Метод Process.Start" библиотеки MSDN (Microsoft Developer Network) п о адресу (на английском языке). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>start-process sort.exe Описание ----------- Эта команда запускает процесс, использующий файл Sort.exe в текущем каталог е. Все используемые значения, включая стиль окна, рабочий каталог и учетные данные, представляют собой значения по умолчанию. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>start-process myfile.txt -workingdirectory "C:\PS-Test" -verb Print Описание ----------- Эта команда запускает процесс, который выводит на печать файл C:\PS-Test\My File.txt. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>start-process Sort.exe -RedirectStandardInput Testsort.txt -RedirectS tandardOutput Sorted.txt -RedirectStandardError SortError.txt -UseNewEnviro nment Описание ----------- Эта команда запускает процесс, который сортирует элементы в файле Testsort. txt и возвращает отсортированные элементы в файле Sorted.txt. Все ошибки за писываются в файл SortError.txt. Параметр UseNewEnvironment указывает, что этот процесс выполняется с собств енными переменными среды. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>start-process notepad -wait -windowstyle Maximized Описание ----------- Эта команда запускает процесс Notepad. Окно разворачивается во весь экран и удерживается до завершения процесса. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135261 Start-Service Get-Process Stop-Process Wait-Process Debug-Process Start-Service ИМЯ Start-Service ОПИСАНИЕ Запускает остановленные службы. СИНТАКСИС Start-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[]> ] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Start-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <stri ng[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Start-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [- Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Start-Service отсылает сообщение о запуске диспетчеру служб Windo ws для каждой указанной службы. Если служба уже запущена, сообщение игнорир уется (ошибка при этом не возникает). Службы можно задавать с помощью их им ен или отображаемых имен. Кроме того, можно с помощью параметра InputObject передавать объекты, представляющие запускаемые службы. ПАРАМЕТРЫ -DisplayName <string[]> Задает отображаемые имена запускаемых служб. Подстановочные знаки разре шены. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные службы. Значение данного параметра определяет значе ние параметра Name. Введите часть имени или шаблон, например "s*". Подс тановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Запускает только указанные службы. Значение данного параметра определяе т значение параметра Name. Введите часть имени или шаблон, например "s* ". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ServiceController[]> Задает объекты ServiceController, представляющие запускаемые службы. Вв едите переменную, содержащую объекты, либо команду или выражение для по лучения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена запускаемых служб. Имя параметра указывать необязательно. Можно использовать "-Name" или е го псевдоним ("-ServiceName") либо опустить имя параметра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий службу. По умолчанию этот командлет н е формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController, System.String Можно передавать объекты, представляющие службы, или строки с именами с лужб командлету Start-Service по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.ServiceProcess.ServiceController Если задан параметр PassThru, командлет Start-Service формирует объект System.ServiceProcess.ServiceController, представляющий службу. В проти вном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Start-Service также можно вызывать с помощью встроенного псев донима "sasv". Дополнительные сведения см. в разделе About_Aliases. Командлет Start-Service может использоваться для управления службами, т олько если у текущего пользователя есть на это разрешение. Некорректная работа команды может быть обусловлена отсутствием требуемых разрешений . Чтобы извлечь имена служб и отображаемые имена служб на текущем компьют ере, введите команду "get-service". Имена служб содержатся в столбце Na me, а отображаемые имена — в столбце DisplayName. Можно запускать только службы с типом запуска "Manual" или "Automatic". Нельзя запускать службы с типом запуска "Disabled". Если команда Start -Service завершается ошибкой с сообщением "Не удается запустить службу <имя службы> на компьютере", с помощью команды Get-WmiObject получите с ведения о типе запуска данной службы и затем, если необходимо, измените его с помощью команды Set-Service. Некоторые службы, такие как "Performance Logs and Alerts" (SysmonLog), останавливаются автоматически, если бездействуют. Когда Windows PowerSh ell запускает службу, которая практически сразу останавливается, отобра жается сообщение: "Ошибка при запуске службы "<отображаемое_имя>". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>start-service -name eventlog Описание ----------- Эта команда запускает на локальном компьютере службу EventLog. Для задания службы с помощью ее имени используется параметр Name. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>start-service -displayname *remote* -whatif Описание ----------- Эта команда выводит на экран сведения о том, что произойдет при запуске слу жб, отображаемые имена которых содержат строку "remote". Параметр DisplayNa me используется, чтобы указать службы по их отображаемым именам вместо имен служб. Параметр WhatIf используется, чтобы узнать, что произойдет при выпо лнении команды вместо ее фактического выполнения. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s = get-service wmi C:\PS>start-service -InputObject $s -passthru | format-list >> services.txt Описание ----------- Приведенные команды запускают на компьютере службу инструментария управлени я Windows (WMI), а также вносят соответствующую запись в файл services.txt. Первая команда с помощью командлета Get-Service получает объект, представл яющий службу WMI, и сохраняет его в переменной $s. Вторая команда с помощью командлета Start-Service запускает службу WMI. Слу жба определяется с помощью параметра InputObject, через который переменная $s, содержащая объект службы WMI, передается командлету Start-Service. Зате м с помощью параметра PassThru создается объект, представляющий запуск служ бы. Командлет Start-Service формирует выходные данные только при указании э того параметра. Оператор конвейера (|) передает созданный командлетом Start-Service объект командлету Format-List, который выводит сведения об объекте в виде списка с войств. Оператор перенаправления с добавлением в конец файла (>>) перен аправляет выходные данные в файл services.txt и записывает их в конец этого файла. -------------------------- ПРИМЕР 4 -------------------------- C:\PS># start-service Описание ----------- Приведенная ниже последовательность команд показывает, как запустить службу , у которой тип запуска имеет значение "Disabled". Выполнение первой команд ы, в которой для запуска службы Telnet (tlntsvr) используется командлет Sta rt-Service, завершается ошибкой. C:\PS>start-service tlntsvr Start-Service : Не удается запустить службу "Telnet (TlntSvr)" из-за следую щей ошибки: Cannot start service TlntSvr on computer '.'. В строке:1 знак:14 + start-service < tlntsvr Во второй команде используется командлет Get-WmiObject для получения службы Tlntsvr. Эта команда извлекает объект с типом запуска в поле "StartMode". Из результатов видно, что тип запуска службы Tlntsvr — "Disabled". C:\PS> get-wmiobject win32_service | where-object {$_.Name -eq "tlntsvr"} ExitCode : 0 Name : TlntSvr ProcessId : 0 StartMode : Disabled State : Stopped Status : OK Следующая команда с помощью командлета Set-Service изменяет тип запуска слу жбы Tlntsvr на "Manual". C:\PS> set-service tlntsvr -startuptype manual Теперь введем команду Start-Service повторно. В данном случае команда выпол няется успешно. C:\PS> start-service tlntsvr Чтобы убедиться, что команда успешно выполнена, воспользуйтесь командой Get -Service. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113406 Get-Service Suspend-Service Stop-Service Restart-Service Resume-Service Set-Service New-Service Start-Sleep ИМЯ Start-Sleep ОПИСАНИЕ Приостанавливает выполнение скрипта или сеанса на указанный период времени. СИНТАКСИС Start-Sleep -Milliseconds <int> [<CommonParameters>] Start-Sleep [-Seconds] <int> [<CommonParameters>] ОПИСАНИЕ Командлет Start-Sleep приостанавливает выполнение скрипта или сеанса на ука занный период времени. Его можно использовать для решения различных задач, например чтобы дождаться завершения операции или приостановить работу перед повтором операции. ПАРАМЕТРЫ -Milliseconds <int> Задает время неактивного состояния ресурса в миллисекундах. Этот параме тр может быть сокращен до "-m". Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Seconds <int> Указывает время неактивного состояния ресурса в секундах. Имя параметра ("Seconds") можно пропустить или сократить до "-s". Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Int32 Время в секундах можно передать командлету Start-Sleep по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Командлет Start-Sleep также можно вызывать с помощью встроенного псевдо нима "sleep". Дополнительные сведения см. в разделе About_Aliases. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Start-Sleep -s 15 Описание ----------- Эта команда приостанавливает все команды в сеансе на 15 секунд. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>Start-Sleep -m 500 Описание ----------- Эта команда приостанавливает все команды в сеансе на 1/2 секунды (500 милли секунд). ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113407 Start-Transaction ИМЯ Start-Transaction ОПИСАНИЕ Запускает транзакцию. СИНТАКСИС Start-Transaction [-Independent] [-RollbackPreference {Error | TerminatingE rror | Never}] [-Timeout <int>] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Start-Transaction запускает транзакцию, т. е. последовательность команд, которыми можно управлять как единым блоком. Транзакцию можно заверш ить ("зафиксировать") или же полностью отменить ("откатить"), тем самым при ведя все измененные транзакцией данные в их исходное состояние. Поскольку к оманды в транзакции рассматриваются как единый блок, либо все команды фикси руются, либо все команды откатываются. По умолчанию, если какая-либо из команд в транзакции выдает ошибку, транзак ция автоматически откатывается. Это поведение можно изменить с помощью пара метра RollbackPreference. Используемые в транзакции командлеты должны предусматривать поддержку транз акций. Командлеты, поддерживающие транзакции, имеют параметр UseTransaction . Для выполнения транзакций в поставщике последний должен поддерживать тран закции. Поставщик Windows PowerShell Registry в Windows Vista и более поздн их версиях Windows поддерживает транзакции. Также можно использовать класс Microsoft.PowerShell.Commands.Management.TransactedString для включения в т ранзакции выражений в любой версии Windows, поддерживающей Windows PowerShe ll. Другие поставщики Windows PowerShell также могут поддерживать транзакци и. Одновременно может быть активна только одна транзакция. При запуске новой н езависимой транзакции во время выполнения другой транзакции (т. е. пока дру гая транзакция не завершена или не отменена) новая транзакция становится ак тивной транзакцией, и ее необходимо зафиксировать или откатить, прежде чем можно будет внести какие-либо изменения в первоначальную транзакцию. Командлет Start-Transaction входит в набор командлетов, поддерживающих обра ботку транзакций в Windows PowerShell. Дополнительные сведения см. в раздел е about_Transactions. ПАРАМЕТРЫ -Independent [<SwitchParameter>] Запускает транзакцию, независимую от какой-либо выполняющейся транзакци и. По умолчанию при использовании командлета Start-Transaction во время выполнения другой транзакции в выполняющуюся транзакцию добавляется но вый подписчик. Этот параметр действует только при наличии в сеансе уже выполняющейся транзакции. По умолчанию при использовании командлета Start-Transaction во время вы полнения другой транзакции существующий объект транзакции используется повторно и количество подписчиков увеличивается. Это во многом похоже н а присоединение к первоначальной транзакции. Команда Undo-Transaction о ткатывает всю транзакцию. Для завершения транзакции необходимо ввести п о команде Complete-Transaction для каждого подписчика. Поскольку больши нство одновременно выполняющихся транзакций связаны между собой, поведе ние по умолчанию подходит для большинства случаев. При использовании параметра Independent создается новая транзакция, кот орая может быть завершена или отменена без затрагивания существующей тр анзакции. Однако, поскольку одновременно может быть активна только одна транзакция, необходимо завершить или откатить новую транзакцию, прежде чем продолжить работу над первоначальной транзакцией. Требуется? false Позиция? named Значение по умолчанию Повторно использует объект первона чальной транзакции. Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RollbackPreference <RollbackSeverity> Задает условия, при которых транзакция автоматически откатывается. По у молчанию используется значение "Error". Допустимые значения: -- Error: транзакция автоматически откатывается, если происходит преры вающая или непрерывающая ошибка. Значение "Error" используется по умолч анию. -- Terminating error: транзакция автоматически откатывается, если проис ходит прерывающая ошибка. -- Never: транзакция не откатывается автоматически ни при каких условия х. Требуется? false Позиция? named Значение по умолчанию Error Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Timeout <int> Задает максимальное время активности транзакции в минутах. По истечении этого времени транзакция автоматически откатывается. По умолчанию для транзакций, запущенных из командной строки, время ожид ания не задано. При запуске транзакций с помощью скрипта время ожидания по умолчанию составляет 30 минут. Требуется? false Позиция? named Значение по умолчанию Время ожидания не задано (бесконеч но) Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany -UseTransaction PS HKCU:\software> new-itemproperty MyCompany -name MyKey -value 123 -UseTr ansaction PS HKCU:\software> undo-transaction Описание ----------- Приведенные команды запускают и затем откатывают транзакцию. Поскольку тран закция откатывается, никакие изменения в реестр не вносятся. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany -UseTransaction PS HKCU:\software> new-itemproperty MyCompany -name MyKey -value 123 -UseTr ansaction PS HKCU:\software> complete-transaction Описание ----------- Приведенные команды запускают и затем завершают транзакцию. До применения к оманды Complete-Transaction никакие изменения в реестр не вносятся. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>cd HKCU:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item -path NoPath -name MyCompany -UseTransaction PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction PS HKCU:\software> start-transaction -RollbackPreference never PS HKCU:\software> new-item -path NoPath -name MyCompany -UseTransaction PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction # Start-Transaction (-rollbackpreference error) PS HKCU:\software> start-transaction PS HKCU:\software> new-item -path NoPath -Name MyCompany -UseTransaction New-Item : The registry key at the specified path does not exist. At line:1 char:9 + new-item < -path NoPath -Name MyCompany -UseTransaction PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction New-Item : Cannot use transaction. The transaction has been rolled back or has timed out. At line:1 char:9 + new-item < -path . -name MyCompany -UseTransaction # Start-Transaction (-rollbackpreference never) PS HKCU:\software> start-transaction -RollbackPreference never PS HKCU:\software> new-item -path NoPath -name MyCompany -UseTransaction New-Item : The registry key at the specified path does not exist. At line:1 char:9 + new-item < -path NoPath -name MyCompany -UseTransaction PS HKCU:\software> new-item -path . -name MyCompany -UseTransaction Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 0 0 MyCompany {} PS HKCU:\Software> complete-transaction # Succeeds Описание ----------- Этот пример демонстрирует эффект от изменения значения параметра RollbackPr eference. В первом наборе команд параметр RollbackPreference в команде Start-Transact ion не задан. В результате используется значение по умолчанию ("Error"). Пр и возникновении ошибки в одной из команд транзакции (указанный путь не суще ствует) транзакция автоматически откатывается. Во втором наборе команд в команде Start-Transaction используется параметр R ollbackPreference со значением "Never". В результате при возникновении ошиб ки в одной из команд транзакции транзакция остается активной и может быть у спешно завершена. Поскольку большинство транзакций должны выполняться без ошибок, как правило , используется предусмотренное по умолчанию значение параметра RollbackPref erence. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>cd HKCU:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany -UseTransaction PS HKCU:\software> start-transaction PS HKCU:\software> get-transaction PS HKCU:\software> new-item MyCompany2 -UseTransaction PS HKCU:\software> complete-transaction PS HKCU:\software> complete-transaction PS HKCU:\Software> Get-Transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 2 Active Описание ----------- В этом примере показан результат использования командлета Start-Transaction при наличии выполняющейся транзакции. Это во многом похоже на присоединени е к выполняющейся транзакции. Хотя показанная команда является упрощенной, подобная ситуация обычно имеет место, когда транзакция предполагает выполнение скрипта, включающего завер шенную транзакцию. Первая команда Start-Transaction запускает транзакцию. Первая команда New-I tem является частью транзакции. Вторая команда Start-Transaction добавляет в транзакцию нового подписчика. Команда Get-Transaction теперь возвращает транзакцию с количеством подписчи ков, равным 2. Вторая команда New-Item является частью этой же транзакции. Изменения в реестр не вносятся до тех пор, пока вся транзакция не будет зав ершена. Для завершения транзакции необходимо ввести две команды Complete-Tr ansaction — по одной для каждого подписчика. Если откатить транзакцию на ка ком-либо этапе, произойдет откат всей транзакции для обоих подписчиков. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>cd HKCU:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany -UseTransaction PS HKCU:\software> start-transaction -independent PS HKCU:\software> get-transaction PS HKCU:\software> undo-transaction PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value 123 -UseTransaction PS HKCU:\software> complete-transaction PS HKCU:\software> dir my* PS HKCU:\Software> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ------ Error 1 Active PS HKCU:\software> undo-transaction PS HKCU:\software> new-itemproperty -path MyCompany -name MyKey -value 123 -UseTransaction MyKey ----- 123 PS HKCU:\software> complete-transaction PS HKCU:\software> dir my* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 0 1 MyCompany {MyKey} Описание ----------- В этом примере показано, что происходит при использовании параметра Indepen dent командлета Start-Transaction для запуска транзакции во время выполнени я другой транзакции. В данном случае новая транзакция откатывается, не затр агивая первоначальную транзакцию. Хотя транзакции логически независимы, в связи с тем, что одновременно может быть активна только одна транзакция, необходимо откатить или зафиксировать более новую транзакцию, прежде чем продолжить работу над первоначальной тр анзакцией. Первый набор команд запускает транзакцию. Команда New-Item является частью первой транзакции. Во втором наборе команд в команде Start-Transaction используется параметр I ndependent. Следующая за ней команда Get-Transaction выводит объект транзак ции для активной транзакции (более новой). Количество подписчиков равно 1, что показывает, что транзакции не связаны между собой. При выполнении отката активной транзакции с помощью команды Undo-Transactio n первоначальная транзакция снова становится активной. Команда New-ItemProperty, которая является частью первоначальной транзакции , выполняется без ошибки, и первоначальную транзакцию можно завершить с пом ощью команды Complete-Transaction. В результате в реестр вносится изменение . -------------------------- ПРИМЕР 6 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\software> start-transaction PS HKCU:\software> new-item MyCompany1 -UseTransaction PS HKCU:\software> new-item MyCompany2 PS HKCU:\software> new-item MyCompany3 -UseTransaction PS HKCU:\software> dir my* PS HKCU:\software> complete-transaction PS HKCU:\software> dir my* PS HKCU:\Software> dir my* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 0 0 MyCompany2 {} PS HKCU:\Software> complete-transaction PS HKCU:\Software> dir my* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 0 0 MyCompany1 {} 0 0 MyCompany2 {} 0 0 MyCompany3 {} Описание ----------- Этот пример показывает, что переданные во время выполнения транзакции коман ды могут включаться в транзакцию или не включаться. Только команды с параме тром UseTransaction являются частью транзакции. В первой и третьей командах New-Item используется параметр UseTransaction. Эти команды являются частью транзакции. Поскольку во второй команде New-Ite m параметр UseTransaction не используется, она не является частью транзакци и. Первая команда "dir" показывает результат. Вторая команда New-Item завершае тся немедленно, однако первая и третья команды не вступают в силу New-Item до фиксации транзакции. Команда Complete-Transaction фиксирует транзакцию. В результате вторая кома нда "dir" показывает, что все новые элементы добавлены в реестр. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>start-transaction -timeout 2 # Wait two minutes... C:\PS> get-transaction C:\PS> new-item HKCU:\Software\MyCompany -UseTransaction C:\PS> start-transaction -timeout 2 # Wait two minutes... C:\PS>> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ----------- Error 1 RolledBack C:\PS> new-item HKCU:\Software\MyCompany -UseTransaction New-Item : Cannot use transaction. The transaction has been rolled back or has timed out. At line:1 char:9 + new-item < MyCompany -UseTransaction Описание ----------- Эта команда с помощью параметра Timeout командлета Start-Transaction запуск ает транзакцию, которая должна быть завершена в течение двух минут. Если по истечении этого времени транзакция не будет завершена, она автоматически о ткатывается. По истечении времени ожидания уведомление не выводится, однако свойство Sta tus объекта транзакции устанавливается равным RolledBack и команды, в котор ых используется параметр UseTransaction, завершаются ошибкой. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135262 about_Transactions Get-Transaction Complete-Transaction Undo-Transaction Use-Transaction Start-Transcript ИМЯ Start-Transcript ОПИСАНИЕ Создает запись всего сеанса Windows PowerShell или его части в текстовом фа йле. СИНТАКСИС Start-Transcript [[-Path] <string>] [-Append] [-Force] [-NoClobber] [-Confi rm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Start-Transcript создает запись всего сеанса Windows PowerShell и ли его части в текстовом файле. Запись включает все команды, вводимые польз ователем, и все выходные данные, которые отображаются на консоли. ПАРАМЕТРЫ -Append [<SwitchParameter>] Добавляет новый протокол в конец существующего файла. Используйте парам етр Path, чтобы указать файл. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету добавлять записи в существующий файл, доступный то лько для чтения. При использовании с файлом, доступным только для чтени я, командлет изменяет разрешения доступа к файлу на "чтение-запись". Да же при использовании параметра Force командлет не может переопределить ограничения безопасности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoClobber [<SwitchParameter>] Не будет перезаписывать существующий файл (то есть заменять его содержи мое). По умолчанию если по указанному пути существует файл протокола, к омандлет Start-Transcript перезаписывает файл без предупреждения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Path <string> Задает местонахождение файла протокола. Введите путь для TXT-файла. Под становочные знаки запрещены. Если путь не указан, командлет Start-Transcript использует путь в значе нии глобальной переменной $Transcript. Если эта переменная не создана, командлет Start-Transcript сохраняет протоколы в каталоге "$Home\Мои до кументы" в файлах "\PowerShell_transcript.<метка-времени>.txt". Если какой-нибудь из каталогов в пути не существует, то выполнение кома нды завершается ошибкой. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать объекты этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.String Start-Transcript возвращает строку, содержащую подтверждающее сообщение и путь к выходному файлу. ПРИМЕЧАНИЯ Чтобы остановить запись, используйте командлет Stop-Transcript. Чтобы записать весь сеанс, добавьте команду Start-Transcript в свой про филь. Дополнительные сведения см. в разделе about_Profiles. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>start-transcript Описание ----------- Эта команда запускает запись в файл с местоположением по умолчанию. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>start-transcript -path c:\transcripts\transcript0.txt -noclobber Описание ----------- Эта команда запускает запись в файл Transcript0.txt в каталоге "C:\transcri pts". Параметр NoClobber запрещает перезаписывать любые существующие файлы. Если файл Transcript0.txt уже существует, то выполнение команды завершаетс я неудачей. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113408 Stop-Transcript Stop-Computer ИМЯ Stop-Computer ОПИСАНИЕ Останавливает локальный и удаленные компьютеры (завершает работу компьютеро в). СИНТАКСИС Stop-Computer [[-ComputerName] <string[]>] [[-Credential] <PSCredential>] [ -AsJob] [-Authentication {Default | None | Connect | Call | Packet | Packet Integrity | PacketPrivacy | Unchanged}] [-Force] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-ThrottleLimit <int>] [-C onfirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Stop-Computer удаленно завершает работу компьютеров. Его также мо жно использовать для завершения работы локального компьютера. С помощью параметров командлета Stop-Computer можно выполнять операции заве ршения работы в качестве фонового задания, задавать уровни проверки подлинн ости, использовать другие учетные данные, ограничивать количество одновреме нных соединений, создаваемых для выполнения команды, а также принудительно инициировать немедленное завершение работы компьютера. Этому командлету не требуется удаленное взаимодействие Windows PowerShell, за исключением случаев с использованием параметра AsJob. ПАРАМЕТРЫ -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания. Примечание. Чтобы использовать этот параметр, локальный и удаленный ком пьютер должны быть настроены на удаленное взаимодействие, и запуск Wind ows PowerShell под управлением Windows Vista и более поздних версий Win dows должен выполняться командой "Запуск от имени администратора". Допо лнительные сведения см. в разделе about_Remote_Requirements. При использовании параметра AsJob команда немедленно возвращает объект, представляющий фоновое задание. Можно продолжить работу в рамках данно го сеанса, пока задание завершается. Задание создается на локальном ком пьютере, и результаты с удаленных компьютеров автоматически возвращаютс я на локальный компьютер. Чтобы управлять заданием, используйте командл еты Job. Чтобы получить результаты задания, используйте командлет Recei ve-Job. Дополнительные сведения о фоновых заданиях Windows PowerShell см. в раз делах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationLevel> Задает уровень проверки подлинности, используемый для WMI-соединения. ( Командлет Stop-Computer использует WMI.) По умолчанию используется знач ение "Packet". Допустимые значения: Unchanged: уровень проверки подлинности такой же, как и у предыду щей команды. Default: проверка подлинности Windows. None: проверка подлинности COM не используется. Connect: проверка подлинности COM уровня соединения. Call: проверка подлинности COM уровня вызова. Packet: проверка подлинности COM уровня пакета. PacketIntegrity: проверка подлинности COM уровня целостности пакета. PacketPrivacy: проверка подлинности COM уровня конфиденциальности пак ета. Требуется? false Позиция? named Значение по умолчанию 4 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Останавливает указанные компьютеры. По умолчанию используется значение "Локальный компьютер". Введите имя NETBIOS, IP-адрес или полное доменное имя одного или нескол ьких компьютеров в виде списка разделенных запятыми значений. Чтобы ука зать локальный компьютер, введите имя компьютера или "localhost". Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName можно использовать, даже если компьютер не наст роен на выполнение удаленных команд. Требуется? false Позиция? 1 Значение по умолчанию . Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объект, возвращаемый командлетом Get-Credential. Требуется? false Позиция? 2 Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Принудительно инициирует немедленное завершение работы компьютеров. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Impersonation <ImpersonationLevel> Задает уровень олицетворения при вызове WMI. (Командлет Stop-Computer и спользует WMI.) По умолчанию используется значение "Impersonate". Допустимые значения: Default: олицетворение по умолчанию. Anonymous: скрывает идентификатор вызывающего. Identify: позволяет объектам запрашивать учетные данные вызывающего . Impersonate: позволяет объектам использовать учетные данные вызывающег о. Требуется? false Позиция? named Значение по умолчанию Impersonate Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Задает максимальное количество одновременных соединений, которые могут быть установлены для выполнения данной команды. Если этот параметр не з адан или для него введено значение 0, используется значение по умолчани ю 32. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию 32 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ None или System.Management.Automation.RemotingJob При использовании параметра AsJob командлет возвращает объект задания ( System.Management.Automation.RemotingJob). В противном случае командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ В этом командлете используется метод Win32Shutdown класса WMI Win32_Ope ratingSystem. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>stop-computer Описание ----------- Эта команда завершает работу локального компьютера. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>stop-computer -computername Server01, Server02, localhost Описание ----------- Эта команда останавливает два удаленных компьютера: Server01 и Server02, а также локальный компьютер, указанный как "localhost". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$j = stop-computer -computername Server01, Server02 -asjob C:\PS> $results = $j | receive-job C:\PS> $results Описание ----------- В приведенных командах команда Stop-Computer выполняется в качестве фоновог о задания на двух удаленных компьютерах, после чего выводятся результаты. В первой команде используется параметр AsJob для выполнения команды в качес тве фонового задания. Полученный объект задания сохраняется в переменной $j . Во второй команде объект задания, сохраненный в переменной $j, с помощью оп ератора конвейера передается командлету Receive-Job, который получает резул ьтаты выполнения задания. Результаты сохраняются в переменной $results. Третья команда отображает результаты, сохраненные в переменной $results. Поскольку при использовании параметра AsJob задание создается на локальном компьютере и результаты автоматически возвращаются на локальный компьютер, команду Receive-Job можно выполнять как локальную команду. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>stop-computer -comp Server01 -impersonation anonymous -authentication PacketIntegrity Описание ----------- Эта команда перезагружает удаленный компьютер Server01. В команде использую тся настроенные параметры олицетворения и проверки подлинности. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$s = get-content domain01.txt C:\PS> $c = get-credential domain01\admin01 C:\PS> stop-computer -computername $s -force -throttlelimit 10 -credential $c Описание ----------- Эти команды принудительно инициируют немедленное завершение работы всех ком пьютеров в домене Domain01. Первая команда получает список компьютеров в домене и сохраняет его в перем енной $s. Вторая команда получает учетные данные администратора домена и сохраняет их в переменной $c. Третья команда завершает работу компьютеров. В ней используется параметр Co mputerName для передачи списка компьютеров в переменной $s, параметр Force для принудительной инициации немедленного завершения работы, и параметр Cre dential для передачи учетных данных, сохраненных в переменной $c. Кроме тог о, с помощью параметра ThrottleLimit количество устанавливаемых командой од новременных соединений ограничивается десятью. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135263 Add-Computer Checkpoint-Computer Remove-Computer Restart-Computer Restore-Computer Test-Connection Stop-Job ИМЯ Stop-Job ОПИСАНИЕ Останавливает фоновое задание Windows PowerShell. СИНТАКСИС Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [<Common Parameters>] Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters >] Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonPara meters>] Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameter s>] Stop-Job [-State {NotStarted | Running | Completed | Failed | Stopped | Blo cked}] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Stop-Job останавливает выполняющиеся фоновые задания Windows Powe rShell. Этот командлет можно использовать для остановки всех или выбранных заданий по имени, идентификатору, идентификатору экземпляра или состоянию, либо передав объект задания в командлет Stop-Job. Командлет Stop-Job можно использовать для остановки заданий, запущенных с и спользованием командлета Start-Job или параметра AsJob командлета Invoke-Co mmand. Когда пользователь останавливает фоновое задание, Windows PowerShell завершает все задачи, находящиеся в очереди задания, а затем завершает зад ание. После передачи этой команды новые задачи в очередь больше не добавляю тся. Этот командлет не удаляет фоновые задания. Для удаления задания следует исп ользовать командлет Remove-Job. ПАРАМЕТРЫ -Id <Int32[]> Останавливает задания с указанными идентификаторами. По умолчанию испол ьзуется значение "Все задания в пределах текущего сеанса". ID — это целое значение, которое однозначно определяет задание в предел ах текущего сеанса. Это значение проще запомнить и ввести, чем Instance Id, но оно уникально только в рамках текущего сеанса. Можно ввести один или несколько идентификаторов (разделенных запятыми). Чтобы найти знач ение идентификатора задания, введите "Get-Job" без параметров. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid[]> Останавливает задания с указанными идентификаторами экземпляров. По умо лчанию возвращаются все задания. Идентификатор экземпляра — это GUID, который однозначно определяет зада ние на компьютере. Чтобы найти значение идентификатора экземпляра задан ия, воспользуйтесь командлетом Get-Job. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Job <Job[]> Указывает задания, которые требуется остановить. Укажите переменную, со держащую задания, либо введите команду, получающую их. Для передачи зад аний в командлет Stop-Job можно также использовать оператор конвейера. По умолчанию командлет Stop-Job удаляет все задания, запущенные в текущ ем сеансе. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Останавливает задания с указанными понятными именами. Введите имена зад аний в виде списка разделенных запятыми значений или используйте подста новочный знак (*) для ввода шаблона имени задания. По умолчанию командл ет Stop-Job останавливает все задания, созданные в текущем сеансе. Поскольку понятное имя может быть не уникальным, следует использовать п араметры WhatIf или Confirm для остановки заданий по имени. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? true -PassThru [<SwitchParameter>] Возвращает объект, представляющий новое фоновое задание. По умолчанию э тот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -State <JobState> Останавливает задания с указанным состоянием. Допустимые значения: "Not Started", "Running", "Completed", "Stopped", "Failed" и "Blocked". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.RemotingJob Объект задания можно передать командлету Stop-Job по конвейеру. ВЫХОДНЫЕ ДАННЫЕ None или System.Management.Automation.RemotingJob Если задан параметр PassThru, командлет Stop-Job возвращает объект зада ния. В противном случае этот командлет не формирует никаких выходных да нных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin0 2 C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}} C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j Описание ----------- В этом примере показано, как использовать командлет Stop-Job для остановки задания, запущенного на удаленном компьютере. Поскольку задание запущено с использованием командлета Invoke-Command для у даленного выполнения команды Start-Job, объект задания сохраняется на удале нном компьютере, и необходимо использовать другую команду Invoke-Command дл я удаленного выполнения команды Stop-Job. Чтобы получить дополнительные све дения об удаленных фоновых заданиях, см. раздел about_Remote_Jobs. Первая команда создает сеанс Windows PowerShell (PSSession) на компьютере S erver01 и сохраняет объект сеанса в переменной $s. Команда использует учетн ые данные администратора домена. Вторая команда использует командлет Invoke-Command для выполнения команды S tart-Job в рамках данного сеанса. Эта команда в данном задании получает все события из журнала системных событий. Конечный объект задания сохраняется в переменной $j. Третья команда останавливает задание. Она использует командлет Invoke-Comma nd для выполнения команды Stop-Job в сеансе PSSession на компьютере Server0 1. Поскольку объекты задания хранятся в локальной переменной $j, команда ис пользует ключевое слово "param" для объявления локальных переменных в коман де и параметр ArgumentList для задания значений переменных. После выполнения команды задание останавливается, а объект PSSession, указа нный в переменной $s, становится доступным для использования. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>stop-job -state failed Описание ----------- Эта команда останавливает все задания с состоянием "Failed". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>stop-job -name job1 Описание ----------- Эта команда останавливает фоновое задание Job1. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>stop-job -id 1, 3, 4 Описание ----------- Эта команда останавливает три задания. Задания определяются по идентификато рам. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>get-job | stop-job Описание ----------- Эта команда останавливает все фоновые задания в текущем сеансе. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>stop-job -state blocked Описание ----------- Эта команда останавливает все задания с состоянием задания "Blocked". -------------------------- ПРИМЕР 7 -------------------------- C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression= {$_.jobstateinfo.state}}, I nstanceID -auto Id Name Command State InstanceId -- ---- ------- ----- ---------- 1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146 3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03 5 Job5 get-service s* Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf Описание ----------- Эти команды останавливают задание, используя его идентификатор экземпляра. Первая команда получает сведения о заданиях в текущем сеансе с использовани ем командлета Get-Job. Команда передает задания с помощью оператора конвейе ра (|) в команду Format-Table, которая отображает таблицу указанных свойств для всех заданий. Таблица содержит идентификатор экземпляра для каждого за дания. Для отображения состояния задания используется вычисляемое свойство. Вторая команда использует командлет Stop-Job с параметром InstanceID для ос тановки выбранного задания. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob C:\PS> $j | stop-job -passthru Id Name State HasMoreData Location Command -- ---- ---- ----------- -------- ------- 5 Job5 Stopped True judithh-tablet get-eventlog syst em Описание ----------- В этом примере показано, как использовать командлет Stop-Job для остановки задания, запущенного на удаленном компьютере. Поскольку задание было запущено с использованием параметра AsJob командлета Invoke-Command, объект находится на локальном компьютере, даже если само з адание выполняется на удаленном компьютере. Поэтому для остановки задания м ожно использовать локальную команду Stop-Job. Первая команда запускает фоновое задание на компьютере Server01 с использов анием командлета Invoke-Command. В команде используется параметр AsJob для выполнения удаленной команды в виде фонового задания. Эта команда возвращает тот же самый объект задания, который возвращает кома ндлет Start-Job. Команда сохраняет объект задания в переменной $j. Вторая команда передает задание, содержащееся в переменной $j, командлету S top-Job с помощью оператора конвейера. Команда использует параметр PassThru , который означает, что командлет Stop-Job должен возвратить объект задания . Отображаемый объект задания подтверждает, что задание имеет состояние "St opped". Чтобы получить дополнительные сведения об удаленных фоновых заданиях, см. р аздел about_Remote_Jobs. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113413 about_Jobs about_Job_Details about_Remote_Jobs Start-Job Get-Job Receive-Job Wait-Job Remove-Job Invoke-Command Stop-Process ИМЯ Stop-Process ОПИСАНИЕ Останавливает один или несколько выполняющихся процессов. СИНТАКСИС Stop-Process [-Id] <Int32[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<Co mmonParameters>] Stop-Process -InputObject <Process[]> [-Force] [-PassThru] [-Confirm] [-Wha tIf] [<CommonParameters>] Stop-Process -Name <string[]> [-Force] [-PassThru] [-Confirm] [-WhatIf] [<C ommonParameters>] ОПИСАНИЕ Командлет Stop-Process останавливает один или несколько выполняющихся проце ссов. Процесс для командлета Stop-Process можно указать при помощи имени, и дентификатора (PID) или объекта процесса. Командлет Stop-Process работает т олько с процессами, выполняющимися на локальном компьютере. В Windows Vista и более поздних версиях Windows для остановки процесса, вла дельцем которого не является текущий пользователь, необходимо запускать Win dows PowerShell командой "Запуск от имени администратора". Кроме того, ком андлет запрашивает разрешение, если не задан параметр Force. ПАРАМЕТРЫ -Force [<SwitchParameter>] Останавливает заданные процессы без запроса подтверждения. По умолчанию командлет Stop-Process запрашивает подтверждение перед удалением проце ссов, владельцем которых не является текущий пользователь. Чтобы определить владельца процесса, необходимо с помощью командлета Ge t-WmiMethod получить объект Win32_Process, представляющий процесс, а за тем использовать метод GetOwner объекта. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <Int32[]> Задает идентификаторы останавливаемых процессов. При вводе нескольких и дентификаторов необходимо разделять их запятыми. Чтобы определить идент ификатор процесса, введите команду get-process. Имя параметра ("Id") ук азывать необязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InputObject <Process[]> Останавливает процессы, представленные указанными объектами процессов. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена останавливаемых процессов. Можно ввести несколько имен про цессов, разделяя их запятыми, либо использовать подстановочные знаки. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий процесс. По умолчанию этот командлет не формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Diagnostics.Process Объект процесса можно передать командлету Stop-Process по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет или System.Diagnostics.Process Если задан параметр PassThru, командлет Stop-Process возвращает объект System.Diagnostics.Process, представляющий остановленный процесс. В про тивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Stop-Process также можно вызывать с помощью встроенных псевдо нимов "kill" и "spps". Дополнительные сведения см. в разделе About_Alia ses. В оболочке Windows PowerShell также можно использовать свойства и метод ы объекта Win32_Process инструментария управления Windows (WMI). Дополн ительные сведения см. в разделах о командлете Get-WmiObject и пакете SD K WMI. При остановке процессов необходимо учитывать, что остановка процесса мо жет повлечь за собой остановку зависимых от него процессов и служб. Ост ановка некоторых процессов в крайних случаях может вызвать остановку Wi ndows. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>stop-process -name notepad Описание ----------- Эта команда останавливает все экземпляры процесса Notepad на компьютере. (К аждый экземпляр процесса Notepad выполняется в отдельном процессе.) Для зад ания процессов используется параметр Name: все экземпляры процесса имеют од инаковое имя. При обращении к экземплярам с помощью идентификаторов необход имо было бы перечислить идентификаторы всех экземпляров процесса Notepad. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>stop-process -id 3952 -confirm -passthru Confirm Are you sure you want to perform this action? Performing operation "Stop-Process" on Target "notepad (3952)". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):y Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 41 2 996 3212 31 3952 notepad Описание ----------- Эта команда останавливает конкретный экземпляр процесса Notepad. Для задани я процесса используется его идентификатор: 3952. Параметр Confirm указывает оболочке Windows PowerShell запрашивать подтверждение пользователя на оста новку процесса. Такая форма является наиболее удобной, так как запрос включ ает в себя как имя, так и идентификатор процесса. Параметр PassThru передае т объект процесса модулю форматирования для отображения. Если бы этот парам етр не использовался, после выполнения команды Stop-Process не выводилось б ы никаких сообщений. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>calc c:\PS>$p = get-process calc c:\PS>stop-process -inputobject $p c:\PS>get-process | where-object {$_.HasExited} Описание ----------- Данная последовательность команд запускает и останавливает процесс Calc, а затем определяет остановленные процессы. Первая команда ("calc") запускает экземпляр приложения "Калькулятор". Втора я команда ("$p = get-process calc") с помощью командлета Get-Process извлек ает объект, представляющий процесс Calc, и сохраняет его в переменной $p. Т ретья команда ("stop-process -inputobject $p") с помощью командлета Stop-Pr ocess останавливает процесс Calc. Объект передается командлету Stop-Process с помощью параметра InputObject. Последняя команда получает все процессы компьютера, которые работали ранее, но были остановлены. Для получения всех процессов на компьютере использует ся командлет Get-Process. Оператор конвейера (|) передает результаты команд лету Where-Object, который выбирает из них те, у которых свойство HasExited имеет значение TRUE. HasExited — это только одно из множества свойств объе ктов процессов. Чтобы просмотреть все свойства, введите "get-process | get- member". -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process lsass | stop-process Stop-Process : Cannot stop process 'lsass (596)' because of the following e rror: Access is denied At line:1 char:34 + get-process lsass | stop-process [ADMIN]: C:\PS> get-process lsass | stop-process Warning Are you sure you want to perform this action? Performing operation 'Stop-Process' on Target 'lsass(596)' [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (defa ult is "Y"): [ADMIN]: C:\PS> get-process lsass | stop-process -force [ADMIN]: C:\PS> Описание ----------- Приведенные команды демонстрируют использование параметра Force для останов ки процесса, владельцем которого пользователь не является. Первая команда с помощью командлета Get-Process получает процесс Lsass. С п омощью оператора конвейера (|) процесс пересылается командлету Stop-Process , который должен остановить процесс. Как видно из примера выходных данных, первая команда завершается с ошибкой "Отказано в доступе", поскольку этот п роцесс может быть остановлен только членом группы "Администраторы" компьюте ра. После запуска оболочки Windows PowerShell командой "Запуск от имени админис тратора" и повторения команды Windows PowerShell запрашивает подтверждение. Во второй команде используется параметр Force для отключения запроса. В рез ультате процесс останавливается без подтверждения. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113412 Get-Process Start-Process Stop-Process Wait-Process Debug-Process Stop-Service ИМЯ Stop-Service ОПИСАНИЕ Останавливает одну или несколько выполняющихся служб. СИНТАКСИС Stop-Service [-Name] <string[]> [-Exclude <string[]>] [-Force] [-Include <s tring[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Stop-Service -DisplayName <string[]> [-Exclude <string[]>] [-Force] [-Inclu de <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Stop-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-F orce] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParame ters>] ОПИСАНИЕ Командлет Stop-Service отсылает сообщение об остановке диспетчеру служб Win dows для каждой указанной службы. Службы можно задавать с помощью их имен и ли отображаемых имен. Кроме того, можно с помощью параметра InputObject пер едавать объекты, представляющие останавливаемые службы. ПАРАМЕТРЫ -DisplayName <string[]> Задает отображаемые имена останавливаемых служб. Подстановочные знаки р азрешены. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные службы. Значение данного параметра определяет значе ние параметра Name. Введите часть имени или шаблон, например "s*". Подс тановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету остановить службу, даже если у нее есть зависимые службы. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Останавливает только указанные службы. Значение данного параметра опред еляет значение параметра Name. Введите часть имени или шаблон, например "s*". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ServiceController[]> Задает объекты ServiceController, представляющие останавливаемые службы . Введите переменную, содержащую объекты, либо команду или выражение дл я получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена останавливаемых служб. Подстановочные знаки разрешены. Имя параметра указывать необязательно. Можно использовать параметр "Nam e" или его псевдоним "ServiceName", либо опустить имя параметра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий службу. По умолчанию этот командлет н е формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController или System.String. Можно передать объект службы или строку, содержащую имя службы, по конв ейеру командлету Stop-Service. ВЫХОДНЫЕ ДАННЫЕ Нет или System.ServiceProcess.ServiceController Если задан параметр PassThru, командлет Stop-Service формирует объект S ystem.ServiceProcess.ServiceController, представляющий службу. В против ном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Stop-Service также можно вызывать с помощью встроенного псевд онима "spsv". Дополнительные сведения см. в разделе About_Aliases. Командлет Stop-Service может использоваться для управления службами, то лько если у текущего пользователя есть на это разрешение. Некорректная работа команды может быть обусловлена отсутствием требуемых разрешений. Чтобы извлечь имена служб и отображаемые имена служб на текущем компьют ере, введите команду "get-service". Имена служб содержатся в столбце Na me, а отображаемые имена — в столбце DisplayName. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>stop-service sysmonlog Описание ----------- Эта команда останавливает службу "Журналы и оповещения производительности" (SysmonLog) на локальном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-service -displayname telnet | stop-service Описание ----------- Эта команда останавливает службу Telnet на локальном компьютере. Для извлеч ения объекта, представляющего службу Telnet, используется командлет Get-Ser vice. Оператор конвейера (|) пересылает объект командлету Stop-Service, кот орый останавливает службу. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-service iisadmin | format-list -property name, dependentservices C:PS>stop-service iisadmin -force -confirm Описание ----------- Команда Stop-Service останавливает службу IISAdmin на локальном компьютере. Поскольку остановка данной службы влечет за собой остановку служб, зависим ых от IISAdmin, перед выполнением команды Stop-Service рекомендуется ввести команду для вывода списка служб, зависимых от IISAdmin. Первая команда отображает список всех служб, зависимых от IISAdmin. Для изв лечения объекта, представляющего службу IISAdmin, используется командлет Ge t-Service. Оператор конвейера (|) передает результат командлету Format-List . Для вывода на экран только значений свойств Name и DependentServices служ бы в команде Format-List используется параметр Property. Вторая команда останавливает работу службы IISAdmin. Параметр Force необход им для остановки служб, имеющих связанные с ними зависимые службы. Для запр оса подтверждения пользователя на остановку каждой службы используется пара метр Confirm. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113414 Get-Service Suspend-Service Start-Service Restart-Service Resume-Service Set-Service New-Service Stop-Transcript ИМЯ Stop-Transcript ОПИСАНИЕ Останавливает запись. СИНТАКСИС Stop-Transcript [<CommonParameters>] ОПИСАНИЕ Командлет Stop-Transcript останавливает запись, запущенную с помощью команд лета Start-Transcript. Запись можно остановить, завершив сеанс. ПАРАМЕТРЫ <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ None Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.String Stop-Transcript возвращает строку, содержащую сообщение о состоянии и п уть к выходному файлу. ПРИМЕЧАНИЯ Если запись не была начата, то команда завершается неудачей. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>stop-transcript Описание ----------- Эта команда останавливает все текущие записи. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113415 Start-Transcript Suspend-Service ИМЯ Suspend-Service ОПИСАНИЕ Приостанавливает одну или несколько выполняющихся служб. СИНТАКСИС Suspend-Service [-Name] <string[]> [-Exclude <string[]>] [-Include <string[ ]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Suspend-Service -DisplayName <string[]> [-Exclude <string[]>] [-Include <st ring[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Suspend-Service [-InputObject <ServiceController[]>] [-Exclude <string[]>] [-Include <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Suspend-Service отсылает сообщение о приостановке диспетчеру служ б Windows для каждой указанной службы. Приостановленная служба по-прежнему выполняется, однако ее работа прекращается до возобновления работы службы, например с помощью командлета Resume-Service. Службы можно задавать с помощ ью их имен или отображаемых имен. Кроме того, можно с помощью параметра Inp utObject передавать объекты, представляющие приостанавливаемые службы. ПАРАМЕТРЫ -DisplayName <string[]> Задает отображаемые имена приостанавливаемых служб. Подстановочные знак и разрешены. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные службы. Значение данного параметра определяет значе ние параметра Name. Введите часть имени или шаблон, например "s*". Подс тановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Приостанавливает только указанные службы. Значение данного параметра оп ределяет значение параметра Name. Введите часть имени или шаблон, напри мер "s*". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <ServiceController[]> Задает объекты ServiceController, представляющие приостанавливаемые слу жбы. Введите переменную, содержащую объекты, либо команду или выражение для получения объектов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена приостанавливаемых служб. Подстановочные знаки разрешены. Имя параметра указывать необязательно. Можно использовать параметр "Nam e" или его псевдоним "ServiceName", либо опустить имя параметра. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PassThru [<SwitchParameter>] Возвращает объект, представляющий службу. По умолчанию этот командлет н е формирует никаких выходных данных. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.ServiceProcess.ServiceController или System.String. Можно передать объект службы или строку, содержащую имя службы, по конв ейеру командлету Suspend-Service. ВЫХОДНЫЕ ДАННЫЕ Нет или System.ServiceProcess.ServiceController Если задан параметр PassThru, командлет Suspend-Service формирует объек т System.ServiceProcess.ServiceController, представляющий службу. В про тивном случае этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ Командлет Suspend-Service может использоваться для управления службами, только если у текущего пользователя есть на это разрешение. Некорректн ая работа команды может быть обусловлена отсутствием требуемых разрешен ий. Командлет Suspend-Service может приостанавливать только службы, допуска ющие временную приостановку и возобновление. Для получения сведений о в озможности временной приостановки конкретной службы используйте командл ет Get-Service со свойством "CanPauseAndContinue". Например, "get-servi ce wmi | format-list name, canpauseandcontinue". Чтобы отобразить списо к всех служб, работа которых может быть приостановлена, введите команду "get-service | where-object {$_.canpauseandcontinue -eq "True"}". Чтобы извлечь имена служб и отображаемые имена служб на текущем компьют ере, введите команду "get-service". Имена служб содержатся в столбце Na me, а отображаемые имена — в столбце DisplayName. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>suspend-service -displayname "Telnet" Описание ----------- Эта команда временно останавливает службу Telnet (Tlntsvr) на локальном ком пьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>suspend-service -name lanman* -whatif Описание ----------- Эта команда сообщает о том, что произойдет в результате временной остановки служб, имена которых начинаются со строки "lanman". Чтобы приостановить сл ужбы, введите команду без параметра WhatIf. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-service schedule | suspend-service Описание ----------- Для извлечения объекта, представляющего службу Task Scheduler (Schedule), в данной команде используется командлет Get-Service. Оператор конвейера (|) пересылает результат командлету Suspend-Service, который временно останавли вает службу. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-service | where-object {$_.canpauseandcontinue -eq "True"} | susp end-service -confirm Описание ----------- Эта команда приостанавливает работу всех служб компьютера, допускающих прио становку. Для извлечения объектов, представляющих службы компьютера, исполь зуется командлет Get-Service. Оператор конвейера (|) передает результаты ко мандлету Where-Object, который выбирает из них те, у которых свойство CanPa useAndContinue имеет значение "True". Следующий оператор конвейера передает результаты командлету Suspend-Service. Параметр Confirm указывает на необх одимость подтверждения пользователем временной остановки для каждой службы. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113416 Get-Service Start-Service Stop-Service Restart-Service Resume-Service Set-Service New-Service TabExpansion TabExpansion [[-line] <Object>] [[-lastWord] <Object>] Tee-Object ИМЯ Tee-Object ОПИСАНИЕ Сохраняет выходные данные команды в файле или переменной и отображает их на консоли. СИНТАКСИС Tee-Object [-FilePath] <string> [-InputObject <psobject>] [<CommonParameter s>] Tee-Object -Variable <string> [-InputObject <psobject>] [<CommonParameters> ] ОПИСАНИЕ Командлет Tee-Object передает вывод команды по двум направлениям (как у бук вы "T"). Он сохраняет вывод в файле или переменной, а также передает его по конвейеру. Если командлет Tee-Object является последним в конвейере, то вы вод команды отображается на консоли. ПАРАМЕТРЫ -FilePath <string> Задает файл, в котором командлет сохраняет объект. Принимает подстаново чные знаки, которые разрешаются в единственный файл. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объект ввода для командлета. Введите переменную, содержащую объе кты, либо получающую их команду или выражение. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Variable <string> Присваивает ссылку на объекты ввода указанной переменной. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты для перенаправления можно передать командлету Tee-Object по кон вейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Командлет Tee-Object возвращает перенаправляемый им объект. ПРИМЕЧАНИЯ Кроме того, можно использовать командлет Out-File или оператор перенапр авления, которые позволяют сохранить вывод в файле, но не позволяют пер едать его по конвейеру. При записи в файл командлет Tee-Object использует кодировку Юникод. В р езультате вывод может быть неправильно отформатирован в файлах с другой кодировкой. Для указания кодировки используйте командлет Out-File. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-process | tee-object -filepath C:\Test1\testfile2.txt Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 83 4 2300 4520 39 0.30 4032 00THotkey 272 6 1400 3944 34 0.06 3088 alg 81 3 804 3284 21 2.45 148 ApntEx 81 4 2008 5808 38 0.75 3684 Apoint ... Описание ----------- Эта команда получает список выполняемых на компьютере процессов и отправляе т результат в файл. Поскольку второй путь не указан, результат будет выведе н на консоль. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process notepad | tee-object -variable proc | select-object proce ssname,handles ProcessName Handles ----------- ------- notepad 43 notepad 37 notepad 38 notepad 38 Описание ----------- Эта команда получает список выполняемых на компьютере процессов и сохраняет результат в переменной "proc". После этого полученные объекты передаются п о конвейеру командлету Select-Object, который выбирает свойства ProcessName и Handles. Обратите внимание, что переменная $proc включает сведения по ум олчанию, возвращенные командлетом Get-Process. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113417 about_Redirection Select-Object Test-ComputerSecureChannel ИМЯ Test-ComputerSecureChannel ОПИСАНИЕ Проверяет и исправляет безопасный канал между локальным компьютером и его д оменом. СИНТАКСИС Test-ComputerSecureChannel [-Repair] [-Server <string>] [-Confirm] [-WhatIf ] [<CommonParameters>] ОПИСАНИЕ Командлет Test-ComputerSecureChannel проверяет, правильно ли функционирует защищенный канал между локальным компьютером и его доменом, путем проверки состояния его отношений доверия. Если произошел сбой подключения, можно поп ытаться восстановить его с помощью параметра Repair. Командлет Test-ComputerSecureChannel возвращает значение "True", если безоп асный канал функционирует правильно, и значение "False" в противном случае. Это позволяет использовать командлет в условных операторах в функциях и ск риптах. Для получения более подробных результатов проверки используйте пара метр Verbose. Этот командлет работает во многом подобно программе NetDom.exe. И NetDom, и Test-ComputerSecureChannel используют для выполнения операций службу NetLo gon. ПАРАМЕТРЫ -Repair [<SwitchParameter>] Удаляет и затем снова создает безопасный канал, установленный службой N etLogon. С помощью этого параметра можно попытаться восстановить соедин ение, которое не прошло проверку (возвратило значение "False".) Для использования этого параметра текущий пользователь должен быть член ом группы "Администраторы" на локальном компьютере. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Server <string> Использует для выполнения команды указанный контроллер домена. Если это т параметр опущен, Test-ComputerSecureChannel выбирает для операции кон троллер домена по умолчанию. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Boolean Командлет возвращает значение "True", если соединение функционирует пра вильно, и "False" в противном случае. ПРИМЕЧАНИЯ Чтобы использовать командлет Test-ComputerSecureChannel в Windows Vista и более поздних версиях Windows, необходимо запускать Windows PowerShe ll командой "Запуск от имени администратора". Командлет Test-ComputerSecureChannel реализован с использованием функци и I_NetLogonControl2, управляющей различными аспектами службы Netlogon. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>test-computersecurechannel True Описание ----------- Эта команда проверяет безопасный канал между локальным компьютером и домено м, к которому он присоединен. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>test-computersecurechannel -server DCName.fabrikam.com True Описание ----------- Эта команда задает предпочтительный контроллер домена для проверки. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>Test-ComputerSecureChannel -repair True Описание ----------- Эта команда восстанавливает безопасный канал между локальным компьютером и его доменом. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>test-computerSecureChannel -verbose VERBOSE: Performing operation "Test-ComputerSecureChannel" on Target "SERVE R01". True VERBOSE: "The secure channel between 'SERVER01' and 'net.fabrikam.com' is a live and working correctly." Описание ----------- В этой команде используется общий параметр Verbose для запроса подробных со общений о выполняемой операции. Дополнительные сведения о параметре Verbose см. в разделе about_CommonParameters. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>set-alias tcsc test-computersecurechannel if ((tcsc)) {write-host "Connection failed. Reconnect and retry."} else { &(.\get-servers.ps1) } Описание ----------- В этом примере показано, как с помощью командлета Test-ComputerSecureChanne l проверить соединение, прежде чем выполнять скрипт, которому требуется сое динение. Первая команда с помощью командлета Set-Alias создает псевдоним для имени к омандлета. Это экономит место и позволяет избежать опечаток. Инструкция IF проверяет возвращенное командлетом Test-ComputerSecureChannel значение, прежде чем выполнить скрипт. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=137749 Checkpoint-Computer Restart-Computer Stop-Computer Reset-ComputerMachinePassword Test-Connection ИМЯ Test-Connection ОПИСАНИЕ Отправляет пакеты эхо-запросов ICMP (запросы проверки связи) одному или нес кольким компьютерам. СИНТАКСИС Test-Connection [-ComputerName] <string[]> [[-Source] <string[]>] [-AsJob] [-Authentication {Default | None | Connect | Call | Packet | PacketIntegrit y | PacketPrivacy | Unchanged}] [-BufferSize <int>] [-Count <int>] [-Creden tial <PSCredential>] [-Delay <int>] [-Impersonation {Default | Anonymous | Identify | Impersonate | Delegate}] [-Quiet] [-ThrottleLimit <int>] [-TimeT oLive <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Test-Connection отправляет пакеты эхо-запросов по протоколу ICMP (запросы проверки связи) одному или нескольким компьютерам и возвращает эхо -ответы. С помощью этого командлета можно определить, можно ли связаться с определенным компьютером по сети IP. С помощью параметров командлета Test-Connection можно задавать компьютер-от правитель и компьютер-получатель, выполнять команду в качестве фонового зад ания, задавать время ожидания и количество запросов, а также настраивать со единение и проверку подлинности. В отличие от стандартной команды "ping", командлет Test-Connection возвраща ет объект Win32_PingStatus, который можно изучить в Windows PowerShell, при этом можно использовать параметр Quiet, чтобы возвращалось только логическ ое значение. ПАРАМЕТРЫ -AsJob [<SwitchParameter>] Запускает команду в качестве фонового задания. Примечание. Чтобы использовать этот параметр, локальный и удаленный ком пьютер должны быть настроены на удаленное взаимодействие, и запуск Wind ows PowerShell под управлением Windows Vista и более поздних версий Win dows должен выполняться командой "Запуск от имени администратора". Допо лнительные сведения см. в разделе about_Remote_Requirements. При использовании параметра AsJob команда немедленно возвращает объект, представляющий фоновое задание. Можно продолжить работу в рамках данно го сеанса, пока задание завершается. Задание создается на локальном ком пьютере, и результаты с удаленных компьютеров автоматически возвращаютс я на локальный компьютер. Чтобы получить результаты задания, используйт е командлет Receive-Job. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в р азделах about_Jobs и about_Remote_Jobs. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Authentication <AuthenticationLevel> Задает уровень проверки подлинности, используемый для WMI-соединения. ( Командлет Test-Connection использует WMI.) Допустимые значения: Unchanged: уровень проверки подлинности такой же, как и у предыду щей команды. Default: проверка подлинности Windows. None: проверка подлинности COM не используется. Connect: проверка подлинности COM уровня соединения. Call: проверка подлинности COM уровня вызова. Packet: проверка подлинности COM уровня пакета. PacketIntegrity: проверка подлинности COM уровня целостности пакета. PacketPrivacy: проверка подлинности COM уровня конфиденциальности пак ета. Требуется? false Позиция? named Значение по умолчанию 4 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -BufferSize <int> Задает размер в байтах буфера, отправляемого с данной командой. По умол чанию используется значение 32. Требуется? false Позиция? named Значение по умолчанию 32 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string[]> Задает компьютеры, на которые отправляются запросы проверки связи. Введ ите имена компьютеров или введите IP-адреса в формате IPv4 или IPv6. По дстановочные знаки запрещены. Это обязательный параметр. Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName можно использовать, даже если компьютер не наст роен на выполнение удаленных команд. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Count <int> Задает количество отправляемых эхо-запросов. По умолчанию используется значение 4. Требуется? false Позиция? named Значение по умолчанию 4 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. Введите имя пользователя, например "User01" или "Domain01\User01", или введите объект PSCredential, например объек т, возвращаемый командлетом Get-Credential. Требуется? false Позиция? named Значение по умолчанию Текущий пользователь Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Delay <int> Задает интервал между запросами в секундах. Требуется? false Позиция? named Значение по умолчанию 1 (секунда) Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Impersonation <ImpersonationLevel> Задает уровень олицетворения при вызове WMI. (Командлет Test-Connection использует WMI.) По умолчанию используется значение "Impersonate". Допустимые значения: Default: олицетворение по умолчанию. Anonymous: скрывает идентификатор вызывающего. Identify: позволяет объектам запрашивать учетные данные вызывающего . Impersonate: позволяет объектам использовать учетные данные вызывающег о. Требуется? false Позиция? named Значение по умолчанию 3 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Quiet [<SwitchParameter>] Подавляет все ошибки и возвращает значение $True, если хотя бы одна поп ытка проверки связи (ping) успешно завершается, и значение $False, если все попытки проверки связи завершились неудачно. Требуется? false Позиция? named Значение по умолчанию False Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Source <string[]> Задает имена компьютеров, с которых отправляются запросы проверки связи . Введите список имен компьютеров, разделенных запятыми. По умолчанию и спользуется значение "Локальный компьютер". Требуется? false Позиция? 2 Значение по умолчанию Локальный компьютер Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ThrottleLimit <int> Задает максимальное количество одновременных соединений, которые могут быть установлены для выполнения данной команды. Если этот параметр не з адан или для него введено значение 0, используется значение по умолчани ю 32. Ограничение скорости относится только к текущей команде, но не к сеансу или компьютеру. Требуется? false Позиция? named Значение по умолчанию 32 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -TimeToLive <int> Задает максимальное время активности каждого пакета эхо-запроса (запрос а проверки связи) в секундах. По умолчанию используется значение 80 (се кунд). Псевдоним параметра TimeToLive —TTL. Требуется? false Позиция? named Значение по умолчанию 80 Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Management.ManagementObject#root\cimv2\Win32_PingStatus, System.Mana gement.Automation.RemotingJob, System.Boolean Если задан параметр AsJob, командлет возвращает объект задания. При исп ользовании параметра Quiet возвращается логическое значение. В противно м случае этот командлет возвращает объект Win32_PingStatus для каждой к оманды проверки связи (ping). ПРИМЕЧАНИЯ Этот командлет использует класс Win32_PingStatus. Команда "get-wmiojbec t win32_pingstatus" эквивалентна команде Test-Connection. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>test-connection server01 Source Destination IPV4Address IPV6Address Bytes Time(ms ) ------ ----------- ----------- ----------- ----- ------- - ADMIN1 Server01 157.59.137.44 32 0 ADMIN1 Server01 157.59.137.44 32 0 ADMIN1 Server01 157.59.137.44 32 0 ADMIN1 Server01 157.59.137.44 32 1 Описание ----------- Эта команда отправляет пакеты эхо-запросов (запросы проверки связи) с локал ьного компьютера компьютеру Server01. В команде используется параметр Compu terName для задания компьютера Server01, однако необязательное имя параметр а в данном случае опущено. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>test-connection -computername server01, server02, server12 -credentia l domain01\user01 Описание ----------- Эта команда отправляет запросы проверки связи с локального компьютера неско льким удаленным компьютерам. В ней используется параметр Credential для ука зания учетной записи пользователя, который располагает разрешениями для про верки связи со всеми удаленными компьютерами. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>test-connection -source Server02, Server 12, localhost -computername Server01 Описание ----------- Эта команда отправляет запросы проверки связи (ping) от различных компьютер ов-источников одному удаленному компьютеру Server01. Данный формат команды можно использовать для проверки задержки соединений из нескольких точек. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>test-connection -computername Server01 -count 3 -delay 2 -TTL 256 -bu ffersize 256 -throttle 32 Описание ----------- Эта команда отправляет три запроса проверки связи с локального компьютера к омпьютеру Server01. Для настройки команды используются параметры командлета Test-Connection. Данный формат команды можно использовать, когда ожидается, что получение от ветов на запросы проверки связи займет дольше, чем обычно — либо из-за боль шого количества прыжков, либо из-за интенсивности трафика в сети. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>$job = test-connection -computername (get-content servers.txt) -asjob C:\PS> if ($job.jobstateinfo.state -ne "Running") {$results = receive-job $ job} Описание ----------- В этом примере показано, как выполнить команду Test-Connection в качестве ф онового задания Windows PowerShell. Первая команда использует командлет Test-Connection для проверки связи с не сколькими компьютерами предприятия. Значением параметра ComputerName являет ся команда Get-Content, которая считывает список имен компьютеров из файла Servers.txt. Параметр AsJob используется для выполнения команды в качестве фонового задания. Вторая команда проверяет, не завершилось ли еще задание и, если оно заверши лось, с помощью команды Receive-Job получает результаты и сохраняет их в пе ременной $results. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>test-connection Server55 -credential domain55\user01 -impersonation I dentify Описание ----------- В этой команде используется командлет Test-Connection для проверки связи с удаленным компьютером. Параметр Credential используется для задания учетной записи пользователя, располагающего разрешениями для проверки связи с удал енным компьютером, а параметр Impersonation — для изменения уровня олицетво рения на "Identify". -------------------------- ПРИМЕР 7 -------------------------- C:\PS>if (test-connection -computername Server01 -quiet) {new-pssession Ser ver01} Описание ----------- Эта команда создает сеанс PSSession на компьютере Server01, только если хот я бы одна попытка проверки связи завершается успешно. Эта команда использует командлет Test-Connection для проверки связи с компь ютером Server01. В команде используется параметр Quiet, возвращающий логиче ское значение вместо объекта Win32_PingStatus. Значение $True возвращается, если любая из четырех попыток проверки связи завершается успешно, в против ном случае возвращается значение $False. Если команда Test-Connection возвращает значение $True, создается сеанс PSS ession при помощи командлета New-PSSession. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135266 Add-Computer Restart-Computer Stop-Computer Test-ModuleManifest ИМЯ Test-ModuleManifest ОПИСАНИЕ Проверяет, что файл манифеста модуля точно описывает содержимое модуля. СИНТАКСИС Test-ModuleManifest [-Path] <string> [<CommonParameters>] ОПИСАНИЕ Командлет Test-ModuleManifest проверяет, что файлы, указанные в файле маниф еста модуля (PSD1), действительно существуют по указанным путям. Этот командлет помогает разработчикам модулей тестировать файлы манифестов. Пользователи модуля также могут использовать этот командлет в скриптах и к омандах для выявления ошибок до выполнения скриптов, зависящих от модуля. Командлет Test-ModuleManifest возвращает объект, представляющий модуль (так ого же типа, что и объект, возвращаемый командлетом Get-Module). Если какой -либо файл отсутствует в местоположении, указанном в манифесте, выдается ош ибка для каждого отсутствующего файла. ПАРАМЕТРЫ -Path <string> Задает путь к файлу манифеста модуля. Укажите путь (необязательно) и им я файла манифеста модуля с расширением PSM1. Местоположением по умолчан ию является текущий каталог. Это обязательный параметр. Имя параметра ( "Path") указывать необязательно. Кроме того, путь можно передать команд лету Test-ModuleManifest по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Путь к манифесту модуля можно передать командлету Test-ModuleManifest п о конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSModuleInfo Test-ModuleManifest возвращает объект PSModuleInfo, представляющий моду ль. Объект возвращается даже при наличии ошибок в манифесте. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>test-ModuleManifest -path $pshome\Modules\TestModule.psd1 Описание ----------- Эта команда проверяет файл манифеста модуля TestModule.psd1. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>"$pshome\Modules\TestModule.psd1" | test-modulemanifest Test-ModuleManifest : The specified type data file 'C:\Windows\System32\Wi ndowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml' could not be pro cessed because the file was not found. Please correct the path and try aga in. At line:1 char:34 + "$pshome\Modules\TestModule.psd1" | test-modulemanifest + CategoryInfo : ResourceUnavailable: (C:\Windows\System32\Win dowsPowerShell\v1.0\Modules\TestModule\TestTypes.ps1xml:String) [Test-Modul eManifest], FileNotFoundException + FullyQualifiedErrorId : Modules_TypeDataFileNotFound,Microsoft. PowerShell.Commands.TestModuleManifestCommandName Name : TestModule Path : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test Module\TestModule.psd1 Description : Guid : 6f0f1387-cd25-4902-b7b4-22cff6aefa7b Version : 1.0 ModuleBase : C:\Windows\system32\WindowsPowerShell\v1.0\Modules\Test Module ModuleType : Manifest PrivateData : AccessMode : ReadWrite ExportedAliases : {} ExportedCmdlets : {} ExportedFunctions : {} ExportedVariables : {} NestedModules : {} Описание ----------- Эта команда передает строку пути командлету Test-ModuleManifest с помощью о ператора конвейера (|). Результат выполнения команды показывает, что тест закончился ошибкой, поско льку не найден файл TestTypes.ps1xml, указанный в манифесте. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>function Bool-ModuleManifest ($path) {$a = dir $path | test-modulemanifest -erroraction SilentlyContinue; $? } Описание ----------- Эта функция аналогична Test-ModuleManifest, но возвращает логическое значен ие: "True" в случае успешного теста, "False" — в противном случае. Функция использует командлет Get-ChildItem (псевдоним "dir") для получения манифеста модуля, указанного в переменной $path. Объект файла передается ко мандлету Test-ModuleManifest с помощью оператора конвейера (|). Команда Test-ModuleManifest использует общий параметр ErrorAction со значен ием SilentlyContinue для отключения вывода сообщений об ошибках, создаваемы х командой. Кроме того, команда сохраняет в переменной $a объект PSModuleIn fo, возвращенный командлетом Test-ModuleManifest, поэтому этот объект не от ображается. Затем другая команда (разделителем команд служит точка с запятой [;]) отобр ажает значение автоматической переменной $?, которая возвращает значение "T rue", если предыдущая команда не создала ошибок, либо значение "False" в пр отивном случае. Эту функцию можно использовать в условных операторах, например операторах п еред командой Import-Module или командой, использующей модуль. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=141557 Import-Module Get-Module New-Module Remove-Module Export-ModuleMember New-ModuleManifest about_Modules Test-Path ИМЯ Test-Path ОПИСАНИЕ Проверяет, существуют ли все элементы пути. СИНТАКСИС Test-Path [-LiteralPath] <string[]> [-Credential <PSCredential>] [-Exclude <string[]>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {Any | Container | Leaf}] [-UseTransaction] [<CommonParameters>] Test-Path [-Path] <string[]> [-Credential <PSCredential>] [-Exclude <string []>] [-Filter <string>] [-Include <string[]>] [-IsValid] [-PathType {Any | Container | Leaf}] [-UseTransaction] [<CommonParameters>] ОПИСАНИЕ Командлет Test-Path проверяет, существуют ли все элементы пути. Он возвраща ет значение TRUE ($true), если все элементы существуют, и значение FALSE ($ false) в противном случае. Также он может определить, допустим ли синтаксис пути и на какой элемент указывает путь — контейнер или конечный элемент (" лист" дерева каталогов). ПАРАМЕТРЫ -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01" или "Domain01\User01". Или укажите объект PSCredential, например один из объектов, созданных коман длетом Get-Credential. При вводе имени пользователя система запросит па роль. Этот параметр не поддерживается ни одним из установленных с Windows Pow erShell поставщиком. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Exclude <string[]> Исключает указанные элементы. Значение этого параметра определяет значе ние параметра Path. Введите элемент пути или шаблон, например "*.txt". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Filter <string> Задает фильтр с использованием формата или языка поставщика. Значение э того параметра определяет значение параметра Path. Синтаксис фильтра, в том числе использование подстановочных знаков, зависит от поставщика. Фильтры эффективнее других параметров, потому что поставщик применяет и х при извлечении объектов (вместо использования Windows PowerShell для фильтрации извлеченных объектов). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Include <string[]> Проверяет только указанные пути. Значение этого параметра определяет зн ачение параметра Path. Введите элемент пути или шаблон, например "*.txt ". Подстановочные знаки разрешены. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -IsValid [<SwitchParameter>] Определяет, допустим ли синтаксис пути, независимо от того, существуют ли элементы пути. Этот параметр возвращает значение TRUE, если синтакси с пути допустим, и значение FALSE в противном случае. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LiteralPath <string[]> Задает путь, который нужно проверить. В отличие от параметра Path, знач ение параметра LiteralPath используется в том виде, в котором оно введе но. Никакие символы не интерпретируются как подстановочные знаки. Если путь включает escape-символы, его нужно заключить в одиночные кавычки. Одиночные кавычки указывают оболочке Windows PowerShell, что никакие си мволы не следует интерпретировать как escape-символы. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Path <string[]> Задает путь, который нужно проверить. Подстановочные знаки разрешены. П уть, содержащий пробелы, необходимо заключать в кавычки. Имя параметра ("Path") указывать необязательно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PathType <TestPathType> Сообщает, имеет ли последний элемент пути определенный тип. Этот параме тр возвращает значение TRUE, если элемент имеет указанный тип, и значен ие FALSE в противном случае. Допустимые значения: -- Container: элемент, содержащий другие элементы, такие как каталог ил и раздел реестра. -- Leaf: элемент, не содержащий других элементов, например файл. -- Any: либо контейнер, либо конечный элемент. Сообщает, имеет ли после дний элемент пути определенный тип. Возвращает TRUE, если элемент имеет указанный тип, и FALSE в противном случае. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую путь (но не литеральный путь), можно передать команд лету Test-Path по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Boolean Командлет возвращает значение "True", если путь существует, и "False" в противном случае. ПРИМЕЧАНИЯ Командлеты, в именах которых содержится существительное Path (командлет ы Path), оперируют именами путей и возвращают эти имена в сокращенном ф ормате, который поддерживается всеми поставщиками Windows PowerShell. О ни предназначены для использования в программах и скриптах, в которых т ребуется отображать имя пути или его часть в конкретном формате. Исполь зуйте их аналогично другим командам для работы с путями, таким как Dirn ame, Normpath, Realpath и Join. Командлеты Path можно использовать с несколькими поставщиками, включая FileSystem, Registry и Certificate. Командлет Test-Path предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы получить список поставщиков, доступных в теку щем сеансе, введите команду "Get-PSProvider". Дополнительные сведения с м. в разделе About_Providers. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>test-path -path "C:\Documents and Settings\NicoleH" Описание ----------- Эта команда сообщает, существуют ли все элементы пути, т. е. каталог C:, ка талог Documents and Settings и каталог NicoleH. Если какой-либо из элементо в отсутствует, командлет возвращает FALSE. В противном случае он возвращает TRUE. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>test-path -path $profile C:\PS>test-path -path $profile -IsValid Описание ----------- Приведенные команды проверяют путь к профилю Windows PowerShell. Первая команда проверяет, существуют ли все элементы пути. Вторая команда п роверяет правильность синтаксиса заданного пути. В данном случае путь задан неверно (FALSE), однако его синтаксис верен (TRUE). В приведенных командах используется автоматическая переменная $profile, указывающая местоположени е профиля (даже в том случае, когда его не существует). Дополнительные сведения об автоматических переменных см. в разделе about_Au tomatic_Variables. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>test-path -path "C:\CAD\Commercial Buildings\*" -exclude *.dwg Описание ----------- Эта команда сообщает, имеются ли в каталоге Commercial Buildings какие-либо файлы, отличные от DWG-файлов. Для задания пути используется параметр Path. Поскольку путь содержит пробел , он заключен в кавычки. Звездочка в конце пути указывает обозначает содерж имое каталога Commercial Buildings. (В случае длинного пути, такого как это т, введите первые несколько букв пути, а затем заполните путь с помощью кла виши TAB.) Параметр Exclude используется для задания файлов, исключаемых из проверки. В данном случае, поскольку каталог содержит только DWG-файлы, результат вып олнения команды — FALSE. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>test-path -path $profile -pathtype leaf Описание ----------- Эта команда сообщает, указывает ли хранящийся в переменной $profile путь на файл. В данном случае, поскольку профиль Windows PowerShell представляет с обой файл с расширением .ps1, командлет возвращает TRUE. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Micros oft.PowerShell TRUE C:\PS> test-path -path HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Micro soft.PowerShell\ExecutionPolicy FALSE Описание ----------- На примере этих команд показано применение командлета Test-Path к поставщик у Registry Windows PowerShell. Первая команда проверяет правильность пути к разделу реестра Microsoft.Powe rShell на компьютере. Если оболочка Windows PowerShell установлена правильн о, командлет возвратит TRUE. Командлет Test-Path корректно работает не со всеми поставщиками Windows Pow erShell. Например, Test-Path можно использовать для проверки пути к разделу реестра, однако при использовании его для проверки пути к записи реестра о н всегда будет возвращать FALSE, даже если запись присутствует. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113418 about_Providers Convert-Path Split-Path Resolve-Path Join-Path Test-WSMan ИМЯ Test-WSMan ОПИСАНИЕ Проверяет, запущена ли служба WinRM на локальном или удаленном компьютере. СИНТАКСИС Test-WSMan [[-ComputerName] <string>] [-Authentication <Authentication>] [- Credential <PSCredential>] [<CommonParameters>] ОПИСАНИЕ Командлет Test-WSMan отправляет идентификационный запрос для проверки того, запущена ли служба WinRM на локальном или удаленном компьютере. Если служб а на проверяемом компьютере запущена, командлет отображает схему удостовере ний WS-Management, версию протокола, и поставщика и версию проверяемой служ бы. ПАРАМЕТРЫ -Authentication <Authentication> Задает механизм проверки подлинности, используемый на сервере. Возможн ые значения: - Basic: при использовании схемы Basic имя пользователя и пароль переда ются серверу или прокси-серверу открытым текстом. - Default: использовать метод проверки подлинности, реализованный прото колом WS-Management. - Digest: при использовании схемы Digest проверка подлинности проводитс я по принципу "запрос-ответ". В качестве запроса поступает строка данны х, указанная сервером. - Kerberos: выполняется взаимная проверка подлинности компьютера и серв ера с использованием сертификатов Kerberos. - Negotiate: при использовании схемы Negotiate между компьютером и серв ером или прокси происходит обмен данными по принципу "запрос-ответ", в ходе которого определяется схема, используемая для проверки подлинности . Например, это значение параметра разрешает согласование одного из дву х методов проверки подлинности: Kerberos или NTLM. - CredSSP: использовать проверку подлинности CredSSP (Credential Securi ty Service Provider), при которой пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускаю тся на одном удаленном компьютере, но собирают данные с других удаленны х компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Важно: если параметр проверки подлинности не указан, запрос командлета Test-WSMan будет отправлен на удаленный компьютер анонимно (без проверк и подлинности). Анонимные запросы Test-WSMan не возвращают никаких све дений, относящихся к версии операционной системы, т. е. Test-WSMan ото бражает нулевые значения вместо версий операционной системы и пакета об новления (OS: 0.0.0 SP: 0.0). Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает компьютер, к которому требуется применить операцию управления. З начение может быть полным доменным именем, именем NetBIOS или IP-адресо м. Чтобы задать локальный компьютер, введите имя компьютера, "localhost " или точку (.). Локальный компьютер используется по умолчанию. Если по льзователь и удаленный компьютер находятся в разных доменах, необходимо использовать полное доменное имя. Требуется? false Позиция? 1 Значение по умолчанию localhost Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Credential <PSCredential> Задает учетную запись пользователя, который располагает разрешением для выполнения этого действия. По умолчанию используется значение "Текущий пользователь". Введите имя пользователя, например "User01", "Domain01\ User01" или "User@Domain.com". Или укажите объект PSCredential, наприме р возвращенный командлетом Get-Credential. При вводе имени пользователя появится приглашение ввести пароль. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Этот командлет не принимает никаких входных данных. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных объектов. ПРИМЕЧАНИЯ По умолчанию командлет Test-WSMan отправляет запрос службе WinRM без пр оверки подлинности и не возвращает никаких сведений, относящихся к верс ии операционной системы, т. е. отображает нулевые значения вместо верси й операционной системы и пакета обновления (OS: 0.0.0 SP: 0.0). -------------------------- ПРИМЕР 1 -------------------------- C:\PS>test-wsman wsmid : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidenti ty.xsd ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd ProductVendor : Microsoft Corporation ProductVersion : OS: 0.0.0 SP: 0.0 Stack: 2.0 Описание ----------- Эта команда определяет, запущена ли служба WinRM на локальном компьютере ил и на удаленном компьютере. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>test-wsman -computername server01 wsmid : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidenti ty.xsd ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd ProductVendor : Microsoft Corporation ProductVersion : OS: 0.0.0 SP: 0.0 Stack: 2.0 Описание ----------- Эта команда определяет, запущена ли служба WinRM на компьютере с именем "se rver01". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>test-wsman -authentication default wsmid : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidenti ty.xsd ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd ProductVendor : Microsoft Corporation ProductVersion : OS: 6.0.6001 SP: 1.0 Stack: 2.0 Описание ----------- Эта команда проверяет, запущена ли служба WS-Management (WinRM) на локально м компьютере, с использованием параметра проверки подлинности. Использование параметра проверки подлинности позволяет командлету Test-WSMa n возвратить версию операционной системы. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>test-wsman -computername server01 -authentication default wsmid : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidenti ty.xsd ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd ProductVendor : Microsoft Corporation ProductVersion : OS: 6.1.7021 SP: 0.0 Stack: 2.0 Описание ----------- Эта команда проверяет, запущена ли служба WS-Management (WinRM) на локально м компьютере с именем "server01", с использованием параметра проверки подли нности. Использование параметра проверки подлинности позволяет командлету Test-WSMa n возвратить версию операционной системы. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkId=141464 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance New-WSManSessionOption Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Trace-Command ИМЯ Trace-Command ОПИСАНИЕ Настраивает и запускает трассировку указанного выражения или команды. СИНТАКСИС Trace-Command [-Command] <string> [-ArgumentList <Object[]>] [-Name] <strin g[]> [[-Option] {None | Constructor | Dispose | Finalizer | Method | Proper ty | Delegates | Events | Exception | Lock | Error | Errors | Warning | Ver bose | WriteLine | Data | Scope | ExecutionFlow | Assert | All}] [-Debugger ] [-FilePath <string>] [-Force] [-InputObject <psobject>] [-ListenerOption {None | LogicalOperationStack | DateTime | Timestamp | ProcessId | ThreadId | Callstack}] [-PSHost] [<CommonParameters>] Trace-Command [-Expression] <scriptblock> [-Name] <string[]> [[-Option] {No ne | Constructor | Dispose | Finalizer | Method | Property | Delegates | Ev ents | Exception | Lock | Error | Errors | Warning | Verbose | WriteLine | Data | Scope | ExecutionFlow | Assert | All}] [-Debugger] [-FilePath <strin g>] [-Force] [-InputObject <psobject>] [-ListenerOption {None | LogicalOper ationStack | DateTime | Timestamp | ProcessId | ThreadId | Callstack}] [-PS Host] [<CommonParameters>] ОПИСАНИЕ Командлет Trace-Command настраивает и запускает трассировку указанного выра жения или команды. Он аналогичен командлету Set-TraceSource за исключением того, что его действие распространяется только на указанную команду. ПАРАМЕТРЫ -ArgumentList <Object[]> Указывает параметры и значения параметров для трассируемой команды. Псе вдоним ArgumentList — Args. Эта функция особенно полезна для отладки ди намических параметров. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Command <string> Указывает команду, обрабатываемую во время трассировки. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Debugger [<SwitchParameter>] Отправляет выходные данные трассировки в отладчик. Выходные данные можн о просмотреть в любом отладчике, работающем в пользовательском режиме и ли режиме ядра, или в Visual Studio. Данный параметр также задает просл ушиватель трассировки по умолчанию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Expression <scriptblock> Указывает выражение, обрабатываемое во время трассировки. Заключайте вы ражение в фигурные скобки ({}). Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -FilePath <string> Записывает выходные данные трассировки в указанный файл. Данный парамет р также выбирает прослушиватель трассировки файла. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Force [<SwitchParameter>] Позволяет командлету добавлять данные трассировки в файл, доступный тол ько для чтения. Используется с параметром FilePath. Даже при использова нии параметра Force командлет не может переопределить ограничения безоп асности. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Указывает ввод для выражения, обрабатываемого во время трассировки. Можно ввести переменную, которая представляет ввод, принимаемый выражен ием, или передать объект по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -ListenerOption <TraceOptions> Добавляет необязательные данные в префикс каждого сообщения трассировки . Допустимые значения: None, LogicalOperationStack, DateTime, Timestamp , ProcessId, ThreadId и Callstack. По умолчанию используется "None". Чтобы указать несколько параметров, разделите их запятыми без пробелов и заключите их в кавычки, например так: "ProcessID,ThreadID". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string[]> Определяет компоненты Windows PowerShell для трассировки. Введите имя о бъекта трассировки для каждого компонента. Подстановочные знаки разреше ны. Чтобы найти источники трассировки на компьютере, введите команду "G et-TraceSource". Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Option <PSTraceSourceOptions> Определяет тип трассируемых событий. Список допустимых значений: None, Constructor, Dispose, Finalizer, Meth od, Property, Delegates, Events, Exception, Lock, Error, Errors, Warnin g, Verbose, WriteLine, Data, Scope, ExecutionFlow, Assert и All. По умо лчанию используется "All". Следующие значения являются комбинацией других значений: -- ExecutionFlow: (Constructor, Dispose, Finalizer, Method, Delegates, Events и Scope) -- Data: (Constructor, Dispose, Finalizer, Property, Verbose и WriteLin e) -- Errors: (Error и Exception). Чтобы указать несколько параметров, разделите их запятыми без пробелов и заключите их в кавычки, например так: "Constructor,Dispose". Требуется? false Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PSHost [<SwitchParameter>] Отправляет выходные данные трассировки в основное приложение Windows Po werShell. Данный параметр также задает прослушиватель трассировки PSHos t. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты, представляющие ввод выражения можно передавать командлету Trac e-Command по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Возвращает трассировку команды в потоке отладки. ПРИМЕЧАНИЯ Трассировка — это метод, используемый разработчиками для отладки и изме нения программы. Во время трассировки программа формирует подробные соо бщения о каждом шаге внутренней обработки. Командлеты трассировки Windows PowerShell созданы для разработчиков Win dows PowerShell, но доступны всем пользователям. Они позволяют отслежив ать практически все аспекты функциональности оболочки. Чтобы найти компоненты Windows PowerShell, поддерживающие трассировку, введите команду Get-Help Get-TraceSource. "Источник трассировки" является частью каждого компонента Windows Power Shell, который управляет трассировкой и формирует сообщения трассировки для компонента. Чтобы выполнить трассировку компонента, нужно определи ть его источник трассировки. "Прослушиватель трассировки" получает выходные данные трассировки и пок азывает их пользователю. Трассировочные данные можно отправить отладчик у, работающему в пользовательском режиме или режиме ядра, главному прил ожению, на консоль, в файл или пользовательскому прослушивателю, произв одному от класса System.Diagnostics.TraceListener. Если указан параметр Command, оболочка Windows PowerShell обрабатывает эту команду так же, как если бы она входила в состав конвейера. Наприме р, обнаружение команды не повторяется для каждого поступающего объекта. Имена параметров Name, Expression, Option и Command указывать необязате льно. Если в команде отсутствуют имена параметров, безымянные значения параметров необходимо указывать в следующем порядке: Name, Expression, Option или Name, Command,-Option. При указании имен параметры могут сле довать в любом порядке. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>trace-command -name metadata,parameterbinding,cmdlet -expression {get -process notepad} -pshost Описание ----------- Эта команда инициирует трассировку обработки метаданных, привязки параметро в, создания командлетов и уничтожения выражения "get-process notepad". Пара метр Name используется в ней для указания источников трассировки, параметр Expression — для указания команды, а параметр PSHost — для отправления выво да на консоль. Так как никакие параметры трассировки и прослушивателя в это й команде не указаны, используются значения этих параметров по умолчанию: " All" и "None" соответственно. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>trace-command -name commandprocessor,pipelineprocessor -command get-a lias -argumentlist "ghy" -option executionflow -listenerOption "timestamp,c allstack" -filepath c:\test\debug.txt Описание ----------- Эта команда запускает трассировку обработчика команд и обработчика конвейер а при обработке команды "get-alias cd". Параметр Name указывает в ней источники трассировки, Command — команду, Arg umentList — параметры команды Get-Alias, Option — параметры трассировки, а ListenerOption — поля в префиксе сообщения трассировки. Параметр FilePath п ередает вывод в файл C:\Test\Debug.txt. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$a = "i*" C:\PS> trace-command parameterbinding {get-alias $input} -pshost -inputobje ct $a Описание ----------- Эта команда выполняет трассировку действий операций ParameterBinding оболоч ки Windows PowerShell при обработке выражения Get-Alias, принимающего ввод по конвейеру. В команде Trace-Command параметр InputObject передает объект выражению, обр абатываемому во время трассировки. Первая команда сохраняет строку "i*" в переменной $a. Во второй команде исп ользуется командлет Trace-Command с источником трассировки ParameterBinding . Параметр PSHost отправляет вывод на консоль. Обрабатываемым выражением является "get-alias $input", в котором переменная $input связана с параметром InputObject. Параметр InputObject передает это му выражению переменную $a. В результате во время трассировки обрабатываетс я команда "get-alias -inputobject $a" или "$a | get-alias". ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113419 Get-TraceSource Set-TraceSource Undo-Transaction ИМЯ Undo-Transaction ОПИСАНИЕ Откатывает активную транзакцию. СИНТАКСИС Undo-Transaction [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Undo-Transaction откатывает активную транзакцию. При откате транз акции изменения, внесенные командами в транзакции, отменяются, и данные вос станавливаются в своем исходном виде. Если в транзакции участвует несколько подписчиков, команда Undo-Transaction откатывает всю транзакцию для всех подписчиков. По умолчанию транзакции откатываются автоматически, если какая-либо из кома нд в транзакции выдает ошибку. Тем не менее, можно запускать транзакции с д ругим значением параметра RollbackPreference и с помощью этого командлета о ткатывать активную транзакцию в любой момент. Командлет Undo-Transaction входит в набор командлетов, поддерживающих обраб отку транзакций в Windows PowerShell. Дополнительные сведения см. в разделе about_Transactions. ПАРАМЕТРЫ -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Откатить транзакцию, которая была зафиксирована, невозможно. Откатить можно только активную транзакцию. Чтобы откатить другую незави симую транзакцию, необходимо сначала зафиксировать или откатить активну ю транзакцию. При выполнении отката транзакция заканчивается. Чтобы снова использоват ь транзакцию, необходимо запустить новую транзакцию. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>undo-transaction Описание ----------- Эта команда откатывает текущую (активную) транзакцию. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\Software> start-transaction PS HKCU:\Software> new-item MyCompany -usetransaction PS HKCU:\Software> undo-transaction Описание ----------- Эта команда запускает транзакцию и затем откатывает ее. В результате никаки е изменения в реестр не вносятся. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>cd hkcu:\software PS HKCU:\Software> start-transaction PS HKCU:\Software> new-item MyCompany -usetransaction PS HKCU:\Software> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ----- Error 1 Active PS HKCU:\Software> start-transaction PS HKCU:\Software> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ----- Error 2 Active PS HKCU:\Software> undo-transaction PS HKCU:\Software> get-transaction RollbackPreference SubscriberCount Status ------------------ --------------- ----- Error 0 RolledBack Описание ----------- Этот пример показывает, что при откате транзакции каким-либо из подписчиков происходит откат всей транзакции для всех подписчиков. Первая команда изменяет текущее местоположение на раздел реестра HKCU:\Soft ware. Вторая команда запускает транзакцию. Третья команда с помощью командлета New-Item создает новый раздел реестра. В ней используется параметр UseTransaction для включения изменения в транза кцию. Четвертая команда с помощью командлета Get-Transaction получает активную тр анзакцию. Обратите внимание, что состояние транзакции — активное (Status = Active), а количество подписчиков равно 1. В пятой команде снова используется командлет Start-Transaction. Как правило , запуск транзакции во время выполнения другой транзакции происходит в случая х, когда используемый в главной транзакции скрипт предполагает завершение с обственной входящей в него транзакции. (Этот пример выполняется в интеракти вном режиме, чтобы можно было рассмотреть его поэтапно). При вводе команды Start-Transaction во время выполнения другой транзакции к оманды присоединяются к существующей транзакции в качестве нового "подписчи ка", и количество подписчиков увеличивается. Шестая команда с помощью командлета Get-Transaction получает активную транз акцию. Обратите внимание, что количество подписчиков теперь равно 2. Седьмая команда с помощью командлета Undo-Transaction откатывает транзакцию . Эта команда не возвращает никаких объектов. Последняя команда — это команда Get-Transaction, которая получает активную (в данном случае — последнюю из активных) транзакцию. Из результатов видно, что выполнен откат транзакции и что количество подписчиков равно 0, т. е. откат транзакции выполнен для всех подписчиков. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135268 about_Transactions about_Providers Start-Transaction Get-Transaction Complete-Transaction Use-Transaction Unregister-Event ИМЯ Unregister-Event ОПИСАНИЕ Отменяет подписку на событие. СИНТАКСИС Unregister-Event [-SubscriptionId] <int> [-Force] [-Confirm] [-WhatIf] [<Co mmonParameters>] Unregister-Event [-SourceIdentifier] <string> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Unregister-Event отменяет подписку на событие, созданную с помощь ю командлета Register-EngineEvent, Register-ObjectEvent или Register-WmiEve nt. При отмене подписки на событие подписчик удаляется из сеанса, а соответству ющие события больше не добавляются в очередь событий. Если отменить подписк у на событие, созданную с помощью командлета New-Event, новое событие также удаляется из сеанса. Командлет Unregister-Event не удаляет события из очереди событий. Для удале ния событий используется командлет Remove-Event. ПАРАМЕТРЫ -Force [<SwitchParameter>] Отменяет все подписки, включая подписки, которые были скрыты с помощью параметра SupportEvent командлетов Register-ObjectEvent, Register-WmiEv ent и Register-EngineEvent. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SourceIdentifier <string> Отменяет подписки на события, имеющие заданный идентификатор источника. В каждую команду необходимо включать параметр SourceIdentifier или Subs criptionId. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -SubscriptionId <int> Отменяет подписки на события, имеющие заданный идентификатор подписки. В каждую команду необходимо включать параметр SourceIdentifier или Subs criptionId. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSEventSubscriber Выходные данные командлета Get-EventSubscriber можно передать командлет у Unregister-Event по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. Командлет Unregister-Event не позволяет удалять события, созданные с по мощью командлета New-Event, если только подписка на событие не была соз дана с помощью командлета Register-EngineEvent. Чтобы удалить из сеанса пользовательское событие, необходимо удалить его программным путем или закрыть сеанс. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>unregister-event -sourceIdentifier ProcessStarted Описание ----------- Эта команда отменяет подписку на событие, имеющее идентификатор источника " ProcessStarted". Чтобы определить идентификатор источника события, используйте командлет Get -Event. Чтобы определить идентификатор подписки на событие, используйте ком андлет Get-EventSubscriber. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>unregister-event -subscriptionId 2 Описание ----------- Эта команда отменяет подписку на событие, имеющее идентификатор подписки, р авный 2. Чтобы определить идентификатор подписки на событие, используйте командлет G et-EventSubscriber. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-eventsubscriber -force | unregister-event -force Описание ----------- Эта команда отменяет все подписки в сеансе. Эта команда использует командлет Get-EventSubscriber, чтобы получить все об ъекты подписчиков на события в сеансе, включая подписчики, которые были скр ыты с помощью параметра SupportEvent командлетов регистрации событий. С помощью оператора конвейера (|) объекты подписок передаются командлету Un register-Event, который удаляет их из сеанса. Для завершения процедуры кома ндлет Unregister-Event необходимо указывать с параметром Force. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135269 Register-ObjectEvent Register-EngineEvent Register-WmiEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event Get-EventSubscriber Unregister-PSSessionConfiguration ИМЯ Unregister-PSSessionConfiguration ОПИСАНИЕ Удаляет зарегистрированные конфигурации сеанса с компьютера. СИНТАКСИС Unregister-PSSessionConfiguration [-Name] <string> [-Force] [-NoServiceRest art] [-Confirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Unregister-PSSessionConfiguration удаляет зарегистрированные конф игурации сеанса с компьютера. Этот расширенный командлет предназначен для и спользования системными администраторами и позволяет управлять конфигурация ми сеансов для пользователей. Если по ошибке были удалены конфигурации сеанса по умолчанию Microsoft.Powe rShell или Microsoft.PowerShell32, для их восстановления воспользуйтесь ком андлетом Enable-PSRemoting. ПАРАМЕТРЫ -Force [<SwitchParameter>] Подавляет все запросы пользователю и перезапускает службу WinRM без зап роса подтверждения. Перезапуск службы обеспечивает вступление изменений конфигурации в силу. Чтобы предотвратить перезапуск и подавить запрос на перезапуск, использ уйте параметр NoServiceRestart. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Name <string> Задает имена удаляемых конфигураций сеансов. Введите одно или несколько имен конфигурации. Подстановочные знаки разрешены. Это обязательный па раметр. Кроме того, можно передать объект конфигурации сеанса командлету Unregi ster-PSSessionConfiguration по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -NoServiceRestart [<SwitchParameter>] Не перезапускает службу WinRM и подавляет запрос на перезапуск службы. По умолчанию при вводе команды Unregister-PSSessionConfiguration предла гается перезапустить службу WinRM, чтобы изменения вступили в силу. Пок а служба WinRM не будет перезапущена, пользователи все равно могут испо льзовать незарегистрированную конфигурацию сеанса, хотя командлет Get-P SSessionConfiguration не находит ее. Чтобы перезапустить службу WinRM без запроса подтверждения, используйте параметр Force. Чтобы перезапустить службу WinRM вручную, используйте командлет Restart-Service. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfi guration Объект конфигурации сеанса можно передать по конвейеру от командлета Ge t-PSSessionConfiguration командлету Unregister-PSSessionConfiguration. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких объектов. ПРИМЕЧАНИЯ Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запускать Windows PowerShel l командой "Запуск от имени администратора". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>unregister-pssessionconfiguration -name MaintenanceShell Описание ----------- Эта команда удаляет с компьютера конфигурацию сеанса MaintenanceShell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>unregister-pssessionconfiguration -maintenanceShell -force Описание ----------- Эта команда удаляет с компьютера конфигурацию сеанса MaintenanceShell. В ко манде используется параметр Force, чтобы подавить все сообщения пользовател ю и перезапустить службу WinRM без запроса подтверждения. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>unregister-pssessionconfiguration -name * C:\PS> get-pssessionconfiguration -name * | unregister-pssessionconfigurati on Описание ----------- Эти команды удаляют с компьютера все конфигурации сеансов. Эти команды взаи мозаменяемы, и их выполнение приводит к одинаковым результатам. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>unregister-pssessionconfiguration -name maintenanceShell -noServiceRe start C:\PS> get-pssessionconfiguration -name maintenanceShell Get-PSSessionConfiguration -name maintenanceShell : No Session Configuratio n matches criteria "maintenanceShell". + CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorEx ception + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorExcep tion C:\PS> new-pssession -configurationName MaintenanceShell Id Name ComputerName State Configuration Availability -- ---- ------------ ----- ------------- ------------ 1 Session1 localhost Opened MaintenanceShell Available C:\PS> restart-service winrm C:\PS> new-pssession -configurationName MaintenanceShell [localhost] Connecting to remote server failed with the following error mes sage : The WS-Management service cannot process the request. The resource URI (http://schemas.microsoft.com/powershell/MaintenanceShell) was not foun d in the WS-Management catalog. The catalog contains the metadata that desc ribes resour ces, or logical endpoints. For more information, see the about_Remote_Troub leshooting Help topic. + CategoryInfo : OpenError: (System.Manageme....RemoteRunspace :RemoteRunspace) [], PSRemotingTransportException + FullyQualifiedErrorId : PSSessionOpenFailed Описание ----------- В этом примере показан результат использования параметра NoServiceRestart к омандлета Unregister-PSSessionConfiguration. Этот параметр предназначен для предотвращения перезапуска службы, который мог бы нарушить работу каких-ли бо служб на компьютере. Первая команда удаляет конфигурацию сеанса MaintenanceShell с помощью коман длета Unregister-PSSessionConfiguration. Однако так как в команде используе тся параметр NoServiceRestart, служба WinRM не перезапускается и изменения не полностью вводятся в действие. Вторая команда получает сеанс MaintenanceShell с помощью командлета Get-PSS essionConfiguration. Так как сеанс был удален из таблицы ресурсов WS-Manage ment, командлет Get-PSSession не может вернуть его. Третья команда использует командлет New-PSSession для создания на локальном компьютере сеанса, который использует конфигурацию MaintenanceShell. Коман да выполняется успешно. Четвертая команда с помощью командлета Restart-Service перезапускает службу WinRM. Пятая команда снова использует командлет New-PSSession для создания сеанса, который использует конфигурацию MaintenanceShell. На этот раз сеанс дает с бой, так как конфигурация MaintenanceShell была удалена. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=144308 about_Session_Configurations Disable-PSSessionConfiguration Enable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration WS-Management Provider Update-FormatData ИМЯ Update-FormatData ОПИСАНИЕ Обновляет данные форматирования для текущего сеанса. СИНТАКСИС Update-FormatData [[-AppendPath] <string[]>] [-PrependPath <string[]>] [-Co nfirm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Update-FormatData перезагружает данные форматирования из файлов ф орматирования в текущий сеанс. Этот командлет позволяет обновить данные фор матирования без перезапуска Windows PowerShell. Без параметров командлет Update-FormatData перезагружает файлы форматирован ия, которые он загрузил перед этим. С помощью параметров командлета Update- FormatData можно добавлять в сеанс новые файлы форматирования. Файлы форматирования представляют собой текстовые файлы в формате XML с рас ширением имени файла format.ps1xml. Данные форматирования в этих файлах опр еделяют отображение объектов Microsoft .NET Framework в сеансе. При запуске оболочки Windows PowerShell она загружает в сеанс данные формат ирования из файлов форматирования из каталога установки Windows PowerShell ($pshome). С помощью командлета Update-FormatData можно перезагрузить данны е форматирования в текущий сеанс без перезапуска Windows PowerShell. Это бы вает удобно, если файл форматирования был добавлен или изменен, а прерывать сеанс нежелательно. Дополнительные сведения о файлах форматирования в Windows PowerShell см. в разделе about_Format.ps1xml. ПАРАМЕТРЫ -AppendPath <string[]> Добавляет в сеанс указанные файлы форматирования. Эти файлы загружаются после того, как Windows PowerShell загрузит встроенные файлы форматиро вания. При форматировании объектов .NET оболочка Windows PowerShell использует для каждого из типов .NET первое найденное для него определение формат ирования. Если используется параметр AppendPath, оболочка Windows Power Shell ищет данные во встроенных файлах, а лишь затем в добавляемых файл ах форматирования. Этот параметр служит для добавления файла, определяющего форматирование объектов .NET, которые не указаны во встроенных файлах форматирования. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PrependPath <string[]> Добавляет в сеанс указанные файлы форматирования. Эти файлы загружаются до того, как Windows PowerShell загрузит встроенные файлы форматирован ия. При форматировании объектов .NET оболочка Windows PowerShell использует для каждого из типов .NET первое найденное для него определение формат ирования. Если используется параметр PrependPath, оболочка Windows Powe rShell ищет данные в добавляемых файлах, а лишь затем во встроенных фай лах форматирования. Этот параметр служит для добавления файла, определяющего форматирование объектов .NET, которые также указаны во встроенных файлах форматирован ия. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую добавляемый путь, можно передать командлету Update-F ormatData по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ Кроме того, командлет Update-FormatData обновляет данные форматирования для команд в сеансе, которые не были импортированы из модулей. При изм енении файла форматирования для модуля можно выполнить команду Update-F ormatData, чтобы обновить данные форматирования для импортированных ком анд. Импортировать модуль повторно не требуется. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>update-formatdata Описание ----------- Эта команда перезагружает файлы форматирования, которые были загружены ране е. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>update-formatdata -appendpath trace.format.ps1xml, log.format.ps1xml Описание ----------- Эта команда перезагружает в сеанс файлы форматирования, в том числе два нов ых файла: Trace.format.ps1xml и Log.format.ps1xml. Поскольку в команде используется параметр AppendPath, данные форматирования из новых файлов загружаются после данных форматирования из встроенных файл ов. Параметр AppendPath используется потому, что новые файлы содержат данные фо рматирования для объектов, не указанных во встроенных файлах. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>update-formatdata -prependPath c:\test\NewFiles.format.ps1xml # Edit the NewFiles.format.ps1 file. C:\PS> update-formatdata Описание ----------- В этом примере показано, как перезагрузить файл форматирования после его из менения. Первая команда добавляет в сеанс файл NewFiles.format.ps1xml. В ней использ уется параметр PrependPath, поскольку файл содержит данные форматирования д ля объектов, указанных во встроенных файлах. После добавления файла NewFiles.format.ps1xml и его тестирования в сеансе а втор изменяет файл. Вторая команда с помощью командлета Update-FormatData перезагружает файлы ф орматирования. Поскольку ранее был загружен файл NewFiles.format.ps1xml, ко мандлет Update-FormatData автоматически перезагружает его без каких-либо па раметров. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113420 Update-List ИМЯ Update-List ОПИСАНИЕ Добавляет и удаляет элементы в значении свойства, содержащего коллекцию объ ектов. СИНТАКСИС Update-List [-Add <Object[]>] [-Remove <Object[]>] [[-Property] <string>] [ -InputObject <psobject>] [<CommonParameters>] Update-List -Replace <Object[]> [[-Property] <string>] [-InputObject <psobj ect>] [<CommonParameters>] ОПИСАНИЕ Командлет Update-List добавляет и удаляет элементы в значении свойства объе кта, а затем возвращает измененный объект. Этот командлет предназначен для использования со свойствами, которые содержат коллекции объектов. Параметры Add и Remove позволяют добавлять и удалять отдельные элементы кол лекции. Параметр Replace служит для замены всей коллекции. Если в команде не указать свойство, то командлет Update-List вместо обновле ния объекта вернет объект, описывающий обновление. Объект обновления можно передавать командлетам, которые изменяют объекты, например командлетам Set- *. Этот командлет работает только в том случае, если обновляемое свойство подд ерживает интерфейс IList, используемый командлетом Update-List. Кроме того, интерфейс IList должны поддерживать все командлеты Set-*, принимающие обно вление. Базовые командлеты, устанавливаемые вместе с Windows PowerShell, не поддерживают этого интерфейса. Чтобы определить, поддерживает ли командлет использование командлета Update-List, обратитесь к справке по соответствую щему командлету. ПАРАМЕТРЫ -Add <Object[]> Задает значения свойств, которые необходимо добавить в коллекцию. Введи те значения свойств в том порядке, в котором они должны располагаться в коллекции. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Задает объекты для обновления. Кроме того, объекты для обновления можно передавать командлету Update-List по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Property <string> Определяет свойство, которое содержит обновляемую коллекцию. Если опуст ить этот параметр, командлет Update-List вместо изменения объекта верне т объект, представляющий изменение. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Remove <Object[]> Задает значения свойств, которые необходимо удалить из коллекции. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Replace <Object[]> Задает новую коллекцию. Этот параметр заменяет все элементы в исходной коллекции новыми элементами, которые определяются этим параметром. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты для обновления можно передавать командлету Update-List по конве йеру. ВЫХОДНЫЕ ДАННЫЕ Objects или System.Management.Automation.PSListModifier Командлет Update-List возвращает обновленный объект или объект, который представляет обновление. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-mailbox | update-list -Property aliases -Add "A","B" -Remove "X", "Y" | set-mailbox Описание ----------- Эта команда добавляет A и B и удаляет X и Y из свойства Aliases почтового я щика. Команда использует для получения почтового ящика сервера Microsoft Exchange Server командлет Get-MailBox. Оператор конвейера передает объект почтового ящика командлету Update-List. Команда Update-List использует параметр Property, чтобы показать, что обнов ляется свойство Aliases, и параметры Add и Remove, чтобы задать элементы, к оторые добавляются в коллекцию и удаляются из нее. Свойство Aliases удовлет воряет условиям применения командлета Update-List, поскольку оно содержит к оллекцию объектов Microsoft .NET Framework и имеет методы Add и Remove. Командлет Update-List возвращает обновленный почтовый ящик, который по конв ейеру передается командлету Set-MailBox, изменяющему почтовый ящик. Дополнительные сведения о командлете Get-Mailbox см. в разделе http://go.mi crosoft.com/fwlink/?LinkId=111536. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$m = get-mailbox C:\PS> update-list -InputObject $m -Property aliases -Add "A","B" -Remove " X", "Y" | set-mailbox Описание ----------- Эта команда добавляет A и B в значение свойства Aliases почтового ящика и у даляет оттуда элементы X и Y. Результат выполнения этой команды совпадает с результатом предыдущей команды, однако она имеет несколько иной формат. Команда с помощью командлета Get-MailBox получает почтовый ящик и сохраняет его в переменной $m. Для задания почтового ящика эта команда использует па раметр InputObject командлета Update-List. Значением параметра InputObject является почтовый ящик из переменной $m. Команда использует параметр Proper ty, чтобы показать, что обновляется свойство Aliases, и параметры Add и Rem ove, чтобы задать элементы, которые добавляются в свойство Aliases и удаляю тся из него. Команда использует оператор (|), чтобы передать обновленный объект почтовог о ящика командлету Set-Mailbox, изменяющему почтовый ящик. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-mailbox | set-mailbox -alias (update-list -Add "A", "B" -Remove " X","Y") Описание ----------- Эта команда добавляет A и B в значение свойства Aliases почтового ящика и у даляет оттуда элементы X и Y. Результат выполнения этой команды совпадает с результатом двух предыдущих команд, однако она использует для решения этой задачи другую процедуру. Вместо обновления свойства Aliases почтового ящика перед его отправкой кома ндлету Set-Mailbox эта команда использует командлет Update-List, чтобы созд ать объект, представляющий изменение. Затем она передает изменение параметр а Alias командлету Set-Mailbox. Команда использует для получения почтового ящика командлет Get-MailBox. С п омощью оператора конвейера объект почтового ящика передается командлету Set -Mailbox, изменяющему почтовые ящики. Для изменения свойства Aliases объекта почтового ящика команда использует п араметр Alias командлета Set-Mailbox. Значением параметра Alias является ко манда Update-List, создающая объект, который представляет обновление. Коман да Update-List заключена в круглые скобки, чтобы обеспечить ее выполнение д о определения значения параметра Alias. Почтовый ящик изменяется после заве ршения работы команды Set-Mailbox. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>update-list -InputObject $a -Property aliases -replace "A", "B" | set -mailbox Описание ----------- Эта команда использует оператор Replace командлета Update-List, чтобы замен ить коллекцию в свойстве Aliases объекта в переменной $a новой коллекцией. Эта команда использует параметр InputObject, который в данном случае эквива лентен использованию конвейера для передачи переменной $a командлету Update -List. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113447 Select-Object Update-TypeData ИМЯ Update-TypeData ОПИСАНИЕ Обновляет текущую расширенную конфигурацию типов, перезагружая файлы *.type s.ps1xml в память. СИНТАКСИС Update-TypeData [[-AppendPath] <string[]>] [-PrependPath <string[]>] [-Conf irm] [-WhatIf] [<CommonParameters>] ОПИСАНИЕ Командлет Update-TypeData обновляет текущую расширенную конфигурацию типов, перезагружая файлы *.types.ps1xml в память. Обычно расширенные сведения о типах загружаются тогда, когда они требуется оболочке Windows PowerShell. К омандлет Update-TypeData можно использовать для предварительной загрузки вс ех сведений о типах. Это особенно полезно при разработке собственных типов, когда нужно загрузить их с целью тестирования. Дополнительные сведения о файлах *types.ps1xml в Windows PowerShell см. в р азделе about_Types.ps1xml. ПАРАМЕТРЫ -AppendPath <string[]> Задает путь к необязательным файлам PS1XML, которые будут включены в сп исок загружаемых файлов. Они обрабатываются после того, как будут загру жены встроенные файлы. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -PrependPath <string[]> Задает путь к необязательным файлам PS1XML, которые будут включены в сп исок загружаемых файлов. Однако эти файлы обрабатываются в том порядке, в котором они указаны, и перед загрузкой встроенных файлов. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Confirm [<SwitchParameter>] Запрашивает подтверждение перед выполнением команды. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -WhatIf [<SwitchParameter>] Описывает, что произойдет при выполнении команды, без ее фактического в ыполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую добавляемый путь, можно передать командлету Update-T ypeData по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не возвращает никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>update-typedata Описание ----------- Этот пример обновляет расширенную конфигурацию типов, используя сведения из файлов *.types.ps1xml. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>update-typedata -prependpath typesA.types.Ps1xml, typesB.types.Ps1xml Описание ----------- Этот пример обновляет расширенную конфигурацию типов с использованием сведе ний из файлов *.types.ps1xml, обрабатывая в первую очередь файлы typesA и t ypesB. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113421 Use-Transaction ИМЯ Use-Transaction ОПИСАНИЕ Добавляет блок скрипта в активную транзакцию. СИНТАКСИС Use-Transaction [-TransactedScript] <scriptblock> [-UseTransaction] [<Commo nParameters>] ОПИСАНИЕ Командлет Use-Transaction добавляет блок скрипта в активную транзакцию. Это позволяет выполнять в рамках транзакций скрипты с использованием объектов Microsoft .NET Framework, поддерживающих транзакции. Блок скрипта может сод ержать только объекты .NET, поддерживающие транзакции, такие как экземпляры класса Microsoft.PowerShell.Commands.Management.TransactedString. Параметр UseTransaction, необязательный для большинства командлетов, при ис пользовании этого командлета является обязательным. Командлет Use-Transaction входит в набор командлетов, поддерживающих обрабо тку транзакций в Windows PowerShell. Дополнительные сведения см. в разделе about_Transactions. ПАРАМЕТРЫ -TransactedScript <scriptblock> Задает блок скрипта, выполняемый в транзакции. Введите любой допустимый блок скрипта, заключив его в фигурные скобки ( { } ). Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -UseTransaction [<SwitchParameter>] Включает команду в активную транзакцию. Этот параметр допустим, только если транзакция выполняется. Дополнительные сведения см. в разделе abou t_Transactions. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ PSObject Командлет Use-Transaction возвращает результат транзакции. ПРИМЕЧАНИЯ Параметр Use-Transaction включает команду в активную транзакцию. Поскол ьку командлет Use-Transaction всегда используется в транзакциях, этот п араметр необходим в любой команде Use-Transaction, чтобы она имела дейс твие. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>start-transaction C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Managem ent.TransactedString C:\PS> $transactedString.Append("Hello") C:\PS> use-transaction -TransactedScript { $transactedString.Append(", Worl d") } -UseTransaction C:\PS> $transactedString.ToString() Hello C:\PS> use-transaction -transactedScript { $transactedString.ToString() } - UseTransaction Hello, World C:\PS> complete-transaction C:\PS> $transactedString.ToString() Hello, World Описание ----------- В этом примере показано, как использовать командлет Use-Transaction для вып олнения скрипта над поддерживающим транзакции объектом .NET Framework. В да нном случае объект представляет собой объект класса TransactedString. Первая команда с помощью командлета Start-Transaction запускает транзакцию. Вторая команда с помощью командлета New-Object создает объект TransactedStr ing. Этот объект сохраняется в переменной $TransactedString. Третья и четвертая команды с помощью метода Append объекта TransactedString добавляют текст к значению переменной $TransactedString. Одна команда явля ется частью транзакции, другая нет. В третьей команде с помощью метода Append для строки, над которой выполняет ся транзакция, к значению переменной $TransactedString добавляется слово "H ello". Поскольку команда не является частью транзакции, изменение применяет ся немедленно. Четвертая команда с помощью командлета Use-Transaction добавляет текст к ст роке в рамках транзакции. С помощью метода Append к значению переменной $tr ansactedString добавляется текст ", World". Команда заключена в фигурные ск обки ( {} ), что превращает ее в блок скрипта. Параметр UseTransaction в эт ой команде является обязательным. Пятая и шестая команды с помощью метода ToString объекта TransactedString о тображают значение переменной $TransactedString в виде строки. Снова-таки, одна команда является частью транзакции, другая нет. Пятая команда с помощью метода ToString отображает текущее значение перемен ной $TransactedString. Поскольку она не является частью транзакции, отображ ается только текущее состояние строки. В шестой команде с помощью командлета Use-Transaction та же самая команда в ыполняется в рамках транзакции. Поскольку команда является частью транзакци и, отображается текущее значение строки в рамках транзакции, подобно предва рительному просмотру вносимых транзакцией изменений. Седьмая команда с помощью командлета Complete-Transaction фиксирует транзак цию. Последняя команда с помощью метода ToString отображает полученное значение переменной в виде строки. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>start-transaction C:\PS> $transactedString = New-Object Microsoft.PowerShell.Commands.Managem ent.TransactedString C:\PS> $transactedString.Append("Hello") C:\PS> use-transaction -TransactedScript { $transactedString.Append(", Worl d") } -UseTransaction C:\PS> undo-transaction C:\PS> $transactedString.ToString() Hello Описание ----------- В этом примере показан результат отката транзакции, которая включает команд ы Use-Transaction. Как и со всеми командами в транзакции, при откате транза кции вносимые транзакцией изменения отменяются, и данные остаются неизменны ми. Первая команда с помощью командлета Start-Transaction запускает транзакцию. Вторая команда с помощью командлета New-Object создает объект TransactedStr ing. Этот объект сохраняется в переменной $TransactedString. Третья команда, которая не является частью транзакции, с помощью метода App end добавляет слово "Hello" к значению переменной $TransactedString. В четвертой команде с помощью командлета Use-Transaction в пределах транзак ции выполняется другая команда, в которой используется метод Append. С помо щью метода Append к значению переменной $transactedString добавляется текст ", World". Пятая команда с помощью командлета Undo-Transaction откатывает транзакцию. В результате все команды, выполненные в рамках транзакции, аннулируются. Последняя команда с помощью метода ToString отображает полученное значение переменной $TransactedString в виде строки. Из результатов видно, что к объ екту применены только те изменения, которые были внесены за рамками транзак ции. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135271 about_Transactions Start-Transaction Get-Transaction Complete-Transaction Undo-Transaction Variable ИМЯ ПОСТАВЩИКА Variable ДИСКИ Variable: ОПИСАНИЕ Предоставляет доступ к переменным Windows PowerShell и их значениям. ОПИСАНИЕ Поставщик Windows PowerShell Variable позволяет извлекать, добавлять, измен ять, очищать и удалять переменные Windows PowerShell в текущей консоли. Поставщик Windows PowerShell Variable поддерживает переменные, которые созд ает оболочка Windows PowerShell, включая автоматические переменные, привиле гированные переменные, а также переменные, создаваемые пользователем. Поставщик Variable представляет собой плоское пространство имен, содержащее только объекты переменных. У данных переменных нет дочерних элементов. Большая часть переменных являются экземплярами класса System.Management.Aut omation.PSVariable. Однако есть и исключения. Например, переменная "?" явля ется членом класса QuestionMarkVariable, а переменная "MaximumVariableCount " является членом класса SessionStateCapacityVariable. Поставщик Variable отображает свое хранилище данных как диск Variable:. Для работы с переменными можно перейти на диск Variable: ("set-location variab le:") или работать с любого другого диска Windows PowerShell. Для ссылки на переменную из другого положения следует использовать в пути имя диска (Var iable:). Windows PowerShell включает набор командлетов, специально предназначенных д ля просмотра и изменения переменных: -- Get-Variable -- New-Variable -- Set-Variable -- Remove-Variable -- Clear-Variable При использовании этих командлетов не нужно указывать диск "Variable:" в им ени. Поставщик Variable поддерживает все командлеты, в именах которых содержится существительное Item (командлеты Item), кроме Invoke-Item. Поставщик Varia ble поддерживает командлеты Get-Content и Set-Content. Однако он не поддерж ивает командлеты, в именах которых содержится существительное ItemProperty (командлеты ItemProperty), и не поддерживает параметр Filter в любом команд лете. Для создания, просмотра и изменения значений переменных без использования к омандлетов можно также использовать средство синтаксического анализа выраже ний оболочки Windows PowerShell. При непосредственной работе с переменными используйте знак доллара ($), чтобы определить имя как переменную, а также оператор назначения (=) для присвоения и изменения значений переменных. Нап ример, команда "$p = get-process" создает переменную "p" и сохраняет в ней результаты работы команды "get-process". Все изменения в переменных затрагивают только текущий сеанс. Чтобы сохранит ь изменения, добавьте их в профиль Windows PowerShell или воспользуйтесь ко мандлетом Export-Console для сохранения текущей консоли. ВОЗМОЖНОСТИ ЗАДАЧИ ЗАДАЧА: Обращение к диску Variable: -------------------------- ПРИМЕР 1 -------------------------- Эта команда меняет текущее положение на диск Variable:. Эту команду мож но использовать с любого диска в оболочке Windows PowerShell. Чтобы вер нуться к диску файловой системы, введите имя диска. Например, введите к оманду "set-location c:". set-location variable: ЗАДАЧА: Отображение значений переменных -------------------------- ПРИМЕР 1 -------------------------- Эта команда возвращает список всех переменных в текущем сеансе. Эту ком анду можно использовать с любого диска Windows PowerShell. get-childitem -path variable: -------------------------- ПРИМЕР 2 -------------------------- Эта команда получает переменные с именами, которые начинаются на "max". Эту команду можно использовать с любого диска Windows PowerShell. get-childitem -path variable:max* Если диск Variable: уже открыт, имя этого диска в пути можно не указыва ть. -------------------------- ПРИМЕР 3 -------------------------- Эта команда возвращает значение переменной WhatIfPreference, если набра ть ее в командной строке. Имя переменной предваряется знаком доллара ($) для указания того, что э то переменная. Имя диска Variable: не указано. $WhatIfPreference -------------------------- ПРИМЕР 4 -------------------------- Эта команда использует параметр LiteralPath командлета Get-ChildItem дл я получения значения переменной "?" с диска Variable:. Командлет Get-Ch ildItem не пытается разрешить никакие подстановочные знаки в значениях параметра LiteralPath. get-childitem -literalpath ? Для отображения значения переменной с именем, содержащим специальные зн аки, без использования командлета, наберите знак доллара ($) и имя пере менной. Например, для отображения значения переменной "?" наберите "$?" . -------------------------- ПРИМЕР 5 -------------------------- Эта команда возвращает переменные, свойство Options которых имеет значе ние "ReadOnly" или "Constant". get-childitem -path variable: | where-object {$_.options -match "Consta nt" -or $_.options -match "ReadOnly"} | format-list -property name, val ue, options ЗАДАЧА: Создание новой переменной -------------------------- ПРИМЕР 1 -------------------------- Эта команда создает переменную "services" и сохраняет в ней результаты, возвращенные командлетом Get-Service. Так как текущим местоположением является диск Variable:, значение параметра Path — точка (.), которая о значает текущее размещение. Круглые скобки вокруг команды Get-Service гарантируют, что команда буде т выполнена до создания переменной. Если круглые скобки не указаны, зна чением новой переменной станет строка "Get-Service". new-item -path . -name services -value (Get-Service) Если текущим положением не является диск Variable:, включите имя диска Variable: в путь. -------------------------- ПРИМЕР 2 -------------------------- Эта команда создает переменную "services" и сохраняет в ней результат, возвращенный командой Get-Service. Команда использует знак доллара ($) для определения переменной и операт ор присваивания (=) для присваивания результата работы команды Get-Serv ice значению только что созданной переменной. $services = Get-Service Чтобы создать переменную без значения, опустите оператор присваивания. ЗАДАЧА: Отображение свойств и методов переменных -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Get-Item для получения всех переменных . Результаты с помощью оператора конвейера (|) передаются командлету Ge t-Member, который отображает методы и свойства объекта. get-item -path variable:* | get-member При передаче коллекции объектов (например, коллекции переменных на диск е Variable:) по конвейеру командлету Get-Member командлет Get-Member пр оводит оценку каждого объекта коллекции по отдельности и выводит сведен ия о каждом найденном типе объектов. Для получения сведений о коллекции объектов на диске Variable: использу йте параметр InputObject командлета Get-Member, например "get-member -i nputobject (get-item variable:*)". При использовании параметра InputObj ect командлет Get-Member выполняет оценку всей коллекции, а не отдельны х объектов из нее. -------------------------- ПРИМЕР 2 -------------------------- Эта команда перечисляет значения свойств переменной "home". Она использ ует командлет Get-Item для получения объекта, представляющего переменну ю "home". Оператор конвейера (|) передает результаты команде Format-Lis t. Команда Format-List использует параметр Property с подстановочным зн аком (*) для форматирования и отображения значений всех свойств перемен ной "home". get-item variable:home | format-list -property * ЗАДАЧА: Изменение свойств переменной -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Rename-Item для изменения имени переме нной "a" на "processes". rename-item -path variable:a -newname processes -------------------------- ПРИМЕР 2 -------------------------- Эта команда использует командлет Set-Item для задания переменной ErrorA ctionPreference значения "Stop". set-item -path variable:ErrorActionPreference -value Stop -------------------------- ПРИМЕР 3 -------------------------- Эта команда изменяет значение переменной ErrorActionPreference на "Stop ". Она использует знак доллара ($) для определения переменной и оператор н азначения (=) для присвоения значения. $ErrorActionPreference = Stop ЗАДАЧА: Копирование переменной -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Copy-Item для копирования переменной " processes" в "old_processes". При этом создается новая переменная с име нем "old_processes", которая содержит то же значение, что и переменная "processes". copy-item -path variable:processes -destination variable:old_processes Если команда вводится при открытом диске Variable:, можно не указывать имя диска в значении параметра Path. -------------------------- ПРИМЕР 2 -------------------------- Эта команда копирует переменную "processes" в "old_processes" без испол ьзования командлета. Она использует знак доллара ($) для определения пе ременной и оператор назначения для присвоения переменной old_processes значения переменной $processes. $old_processes = $processes ЗАДАЧА: Удаление переменной -------------------------- ПРИМЕР 1 -------------------------- Эта команда удаляет переменную "serv" из текущего сеанса. Эту команду м ожно использовать на любом диске Windows PowerShell. remove-variable -path variable:serv -------------------------- ПРИМЕР 2 -------------------------- Эта команда удаляет все переменные из текущего сеанса, кроме переменных , в свойстве Options которых содержится значение Constant. Если не зада н параметр Force, команда не удаляет переменные со значением ReadOnly с войства Options. remove-item variable:* -force ЗАДАЧА: Задание переменной значения NULL -------------------------- ПРИМЕР 1 -------------------------- Эта команда использует командлет Clear-Item, чтобы изменить значение пе ременной "processes" на NULL. clear-item -path variable:processes -------------------------- ПРИМЕР 2 -------------------------- Эта команда очищает значение переменной "processes", назначая ей значен ие NULL. Она использует автоматическую переменную $null, представляющую значение NULL. $processes = $null ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ ПРИМЕЧАНИЯ Поставщик Variable не поддерживает динамические параметры. ССЫЛКИ ПО ТЕМЕ about_Variables about_Automatic_Variables about_Providers Wait-Event ИМЯ Wait-Event ОПИСАНИЕ Ожидает определенного события, прежде чем продолжить выполнение. СИНТАКСИС Wait-Event [[-SourceIdentifier] <string>] [-Timeout <int>] [<CommonParamete rs>] ОПИСАНИЕ Командлет Wait-Event приостанавливает выполнение скрипта или функции до воз никновения заданного события. Выполнение возобновляется, когда будет зафикс ировано данное событие. Чтобы отменить ожидание, нажмите сочетание клавиш C TRL+C. Эта функция является альтернативным способом запроса события. Кроме того, о на позволяет определить реакцию на событие двумя различными способами: с по мощью параметра Action подписки на событие и путем ожидания события с после дующим выполнением действия в ответ на событие. ПАРАМЕТРЫ -SourceIdentifier <string> Ожидает только события с указанным идентификатором источника. По умолча нию командлет Wait-Event ожидает любое событие. Требуется? false Позиция? 1 Значение по умолчанию Все события Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Timeout <int> Определяет максимальное время (в секундах), в течение которого командле т Wait-Event ожидает события. Значение по умолчанию — -1, ждать бесконе чно. Отсчет времени начинается с отправки команды Wait-Event. Если указанное время истекло, цикл ожидания заканчивается и окно команд ной строки становится активным, даже если событие еще не произошло. Соо бщение об ошибке не отображается. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String ВЫХОДНЫЕ ДАННЫЕ System.String ПРИМЕЧАНИЯ События, подписки на события и очередь событий существуют только в рамк ах текущего сеанса. Если завершить текущий сеанс, очередь событий будет очищена и подписка на события будет отменена. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>wait-event Описание ----------- Эта команда ожидает ближайшего события. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>wait-event -sourceIdentifier "ProcessStarted" Описание ----------- Эта команда ожидает ближайшего события с идентификатором источника "Process Started". -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$timer.Interval = 2000 C:\PS> $timer.Autoreset = $false C:\PS> $timer.Enabled = $true; Wait-Event Timer.Elapsed # After 2 seconds EventIdentifier : 12 Sender : System.Timers.Timer SourceEventArgs : System.Timers.ElapsedEventArgs SourceArgs : {System.Timers.Timer, System.Timers.ElapsedEventArgs} SourceIdentifier : Timer.Elapsed TimeGenerated : 6/10/2008 3:24:18 PM MessageData : ForwardEvent : False Описание ----------- Эта команда использует командлет Wait-Event для ожидания события таймера, у становленного на 2000 миллисекунд. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>wait-event -sourceIdentifier "ProcessStarted" -timeout 90 Описание ----------- Эта команда ожидает в течение 90 секунд очередного события с идентификаторо м источника "ProcessStarted". По истечении указанного времени ожидание прек ращается. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135276 Register-ObjectEvent Register-EngineEvent Register-WmiEvent Unregister-Event Get-Event New-Event Remove-Event Wait-Event Get-EventSubscriber Wait-Job ИМЯ Wait-Job ОПИСАНИЕ Отключает командную строку до завершения выполнения одного или нескольких ф оновых заданий Windows PowerShell, запущенных в этом сеансе. СИНТАКСИС Wait-Job [[-InstanceId] <Guid[]>] [-Any] [-Timeout <int>] [<CommonParameter s>] Wait-Job [-Job] <Job[]> [-Any] [-Timeout <int>] [<CommonParameters>] Wait-Job [[-Name] <string[]>] [-Any] [-Timeout <int>] [<CommonParameters>] Wait-Job [-Id] <Int32[]> [-Any] [-Timeout <int>] [<CommonParameters>] Wait-Job [-State {NotStarted | Running | Completed | Failed | Stopped | Blo cked}] [-Any] [-Timeout <int>] [<CommonParameters>] ОПИСАНИЕ До отображения командной строки командлет Wait-Job ожидает завершения фонов ых заданий Windows PowerShell. Можно ожидать завершения одного или всех фон овых заданий и задать максимальное время ожидания. Командлет Wait-Job можно использовать для получения фоновых заданий, запуще нных с использованием командлета Start-Job или параметра AsJob командлета I nvoke-Command. После завершения команд задания командлет Wait-Job отображает командную стр оку и возвращает объект задания, который можно по конвейеру передать другой команде. ПАРАМЕТРЫ -Any [<SwitchParameter>] Отображает командную строку (и возвращает объект задания) по завершении любого задания. По умолчанию командлет Wait-Job ожидает завершения все х указанных заданий перед отображением приглашения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <Int32[]> Ожидает завершения заданий с указанными идентификаторами. ID — это целое значение, которое однозначно определяет задание в предел ах текущего сеанса. Это значение проще запомнить и ввести, чем Instance Id, но оно уникально только в рамках текущего сеанса. Можно ввести один или несколько идентификаторов (разделенных запятыми). Чтобы найти знач ение идентификатора задания, введите "Get-Job" без параметров. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InstanceId <Guid[]> Ожидает завершения заданий с указанными идентификаторами экземпляров. П о умолчанию возвращаются все задания. Идентификатор экземпляра — это GUID, который однозначно определяет зада ние на компьютере. Чтобы найти значение идентификатора экземпляра задан ия, воспользуйтесь командлетом Get-Job. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Job <Job[]> Ожидает завершения указанных заданий. Укажите переменную, содержащую об ъекты заданий, либо введите команду, получающую их. Для передачи объект ов заданий в командлет Wait-Job можно также использовать оператор конве йера. По умолчанию командлет Wait-Job ожидает завершения всех заданий, созданных в текущем сеансе. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? false -Name <string[]> Ожидает завершения заданий с указанным понятным именем. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -State <JobState> Ожидает завершения заданий с указанным состоянием. Допустимые значения: "NotStarted", "Running", "Completed", "Stopped", "Failed" и "Blocked". Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Timeout <int> Определяет максимальное время ожидания для фонового задания в секундах. В случае значения по умолчанию (-1) ожидается завершение задания, неза висимо от того, как долго оно будет выполняться. Отсчет времени начинае тся с отправки команды Wait-Job, а не команды Start-Job. Если указанное время истекло, цикл ожидания заканчивается и окно команд ной строки становится активным, даже если задание все еще активно. Сооб щение об ошибке не отображается. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.RemotingJob Объект задания можно передать командлету Wait-Job по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.RemotingJob Командлет Wait-Job возвращает объекты заданий, представляющие завершенн ые задания. Если цикл ожидания заканчивается вследствие превышения врем ени Timeout, командлет Wait-Job не возвращает никаких объектов. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-job | wait-job Описание ----------- Эта команда ожидает завершения всех фоновых заданий, запущенных в текущем с еансе. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$s = new-pssession server01, server02, server03 C:\PS> invoke-command -session $s -scriptblock {start-job -name Date1 -scri ptblock {get-date}} C:\PS> $done = invoke-command -session $s -command {wait-job -name Date1} C:\PS> $done.count 3 Описание ----------- В этом примере показано, как использовать командлет Wait-Job для заданий, з апущенных на удаленных компьютерах с помощью командлета Start-Job. Обе кома нды Start-Job и Wait-Job передаются на удаленный компьютер с помощью команд лета Invoke-Command. В этом примере команда Wait-Job используется для того, чтобы узнать, заверш ена ли команда Get-Date, выполняющаяся в виде фонового задания на трех разн ых компьютерах. Первая команда создает сеанс Windows PowerShell (PSSession) на каждом из тр ех удаленных компьютеров и сохраняет их в переменной $s. Вторая команда использует командлет Invoke-Command для выполнения команды S tart-Job в каждом из трех сеансов, заданных в переменной $s. Все задания им еют имя Date1. Третья команда использует командлет Invoke-Command для выполнения команды W ait-Job. Эта команда ожидает завершения заданий Date1, запущенных на каждом из компьютеров. Конечная коллекция (массив) объектов заданий сохраняется в переменной $done. Четвертая команда использует свойство Count массива объектов заданий, сохра ненного в переменной $done, для определения количества завершенных заданий. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$s = new-pssession (get-content machines.txt) C:\PS> $c = 'get-eventlog -log system | where {$_.EntryType -eq "error" -an d $_.Source -eq "LSASRV"} | out-file errors.txt' C:\PS> invoke-command -session $s -scriptblock {param($c)start-job -scriptb lock {$c}} -ArgumentList $c C:\PS> invoke-command -session $s -scriptblock {wait-job -any} Описание ----------- В этом примере параметр Any команды Wait-Job используется для того, чтобы у знать, когда завершается первое из нескольких фоновых заданий, выполняющихс я в текущем сеансе. Кроме того, здесь показано, как использовать командлет Wait-Job для ожидания завершения удаленных заданий. Первая команда создает сеанс PSSession на каждом из компьютеров, указанных в файле Machines.txt, и сохраняет эти сеансы в переменной $s. Для получения содержимого файла в этой команде используется командлет Get-Content. Коман да Get-Content заключена в круглые скобки, чтобы обеспечить ее выполнение д о команды New-PSSession. Вторая команда сохраняет строку команды Get-EventLog (в кавычках) в перемен ной $c. Третья команда использует командлет Invoke-Command для выполнения команды S tart-Job в каждом из сеансов, указанных в переменной $s. Команда Start-Job запускает фоновое задание, которое выполняет команду, указанную в переменно й $c. Поскольку переменная $c является локальной, команда использует ключевое сло во "param" для объявления локальных переменных в команде и параметр Argumen tList для задания значений этих переменных. Четвертая команда использует командлет Invoke-Command для выполнения команд ы Wait-Job в рамках этих сеансов. Она использует командлет Wait-Job для ожи дания завершения первого задания на удаленных компьютерах. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>$s = new-pssession Server01, Server02, Server03 C:\PS> $jobs = invoke-command -session $s -scriptblock {start-job -script { get-date}} C:\PS> $done = invoke-command -session $s -scriptblock {wait-job -timeout 3 0} Описание ----------- В этом примере показано, как использовать параметр Timeout командлета Wait- Job для задания максимального времени ожидания для заданий, запущенных на у даленных компьютерах. Первая команда создает сеанс PSSession на каждом из трех удаленных компьюте ров (Server01, Server02 и Server03) и сохраняет сеансы в переменной $s. Вторая команда использует командлет Invoke-Command для выполнения команды S tart-Job в каждом из сеансов, указанных в переменной $s. Она сохраняет коне чные объекты заданий в переменной $jobs. Третья команда использует командлет Invoke-Command для выполнения команды W ait-Job в каждом из сеансов PSSession, указанных в переменной $s. Команда W ait-Job проверяет, все ли команды были завершены в течение 30 секунд. В ней используется параметр Timeout со значением 30 (секунд) для задания максима льного времени. Команда сохраняет результаты выполнения команды в переменно й $done. В данном случае по истечении 30 секунд была завершена только команда на ком пьютере Server02. Команда Wait-Job заканчивает цикл ожидания, отображает ко мандную строку и возвращает объект, представляющий завершенное задание. Переменная $done содержит объект задания, представляющий задание, выполнявш ееся на компьютере Server02. -------------------------- ПРИМЕР 5 -------------------------- C:\PS>wait-job -id 1,2,5 -any Описание ----------- Эта команда определяет три задания с помощью их идентификаторов и дожидаетс я завершения любого из этих заданий. Командная строка отображается по завер шении любого задания. -------------------------- ПРИМЕР 6 -------------------------- C:\PS>wait-job -name DailyLog -timeout 120 Описание ----------- Эта команда ожидает завершения задания DailyLog в течение 120 секунд (две м инуты). Если задание не завершается в течение двух минут, в любом случае от ображается командная строка, а задание продолжает выполняться в фоновом реж име. -------------------------- ПРИМЕР 7 -------------------------- C:\PS>wait-job -name Job3 Описание ----------- В этой команде Wait-Job для указания задания, завершение которого ожидается , используется имя задания. -------------------------- ПРИМЕР 8 -------------------------- C:\PS>C:\PS> $j = start-job -script {get-childitem *.ps1| where {$_lastwrit etime -gt ((get-date) - (new-timespan -days 7))}} C:\PS> $j | wait-job Описание ----------- В этом примере показано, как использовать командлет Wait-Job для заданий, з апущенных на локальном компьютере с помощью командлета Start-Job. Эти команды запускают задание, которое получает список файлов скриптов Wind ows PowerShell, добавленных или измененных в течение последней недели. Первая команда запускает фоновое задание на локальном компьютере с использо ванием командлета Start-Job. Задание выполняет команду Get-ChildItem, котор ая получает список всех файлов с расширением PS1, добавленных или измененны х в течение последней недели. Третья команда использует командлет Wait-Job для ожидания завершения задани я. По завершении задания команда отображает объект задания, содержащий свед ения о задании. -------------------------- ПРИМЕР 9 -------------------------- C:\PS>$s = new-pssession Server01, Server02, Server03 C:\PS> $j = invoke-command -session $s -scriptblock {get-process} -asjob C:\PS> $j | wait-job Описание ----------- В этом примере показано, как использовать командлет Wait-Job для заданий, з апущенных на удаленных компьютерах с помощью параметра AsJob командлета Inv oke-Command. При использовании параметра AsJob задание создается на локальн ом компьютере, и результаты задания автоматически возвращаются на локальный компьютер, хотя само задание выполняется на удаленных компьютерах. В этом примере команда Wait-Job используется для того, чтобы узнать, заверш ена ли команда Get-Process, выполняющаяся в сеансах на трех удаленных компь ютерах. Первая команда создает сеансы PSSession на трех компьютерах и сохраняет эти сеансы в переменной $s. Вторая команда использует командлет Invoke-Command для выполнения команды G et-Process в каждом из трех сеансов PSSession, заданных в переменной $s. В команде используется параметр AsJob для асинхронного выполнения команды в в иде фонового задания. Команда возвращает объект задания точно так же, как и для заданий, запущенных с использованием команды Start-Job, а объект задан ия сохраняется в переменной $j. Третья команда передает объект задания, содержащийся в переменной $j, в ком андлет Wait-Job с помощью оператора конвейера (|). Обратите внимание, что в этом случае не требуется использовать команду Invoke-Command, поскольку за дание находится на локальном компьютере. -------------------------- ПРИМЕР 10 -------------------------- C:\PS>get-job Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Completed True localhost,server01.. get-service 4 Job4 Completed True localhost dir | where C:\PS> wait-job -id 1 Описание ----------- Эта команда ожидает завершения задания с идентификатором 1. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113422 about_Jobs about_Job_Details about_Remote_Jobs Start-Job Get-Job Receive-Job Stop-Job Remove-Job Invoke-Command Wait-Process ИМЯ Wait-Process ОПИСАНИЕ Ожидает остановки процессов, прежде чем принимать следующий ввод. СИНТАКСИС Wait-Process [-Id] <Int32[]> [[-Timeout] <int>] [<CommonParameters>] Wait-Process -InputObject <Process[]> [[-Timeout] <int>] [<CommonParameters >] Wait-Process [-Name] <string[]> [[-Timeout] <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Wait-Process ожидает остановки одного или нескольких выполняющихс я процессов, прежде чем принимать следующий ввод. Этот командлет отключает командную строку консоли Windows PowerShell до тех пор, пока процессы не б удут остановлены. Процесс можно задать с помощью его имени или идентификато ра (PID). Также можно передать объект процесса командлету Wait-Process по к онвейеру. Командлет Wait-Process работает только с процессами, выполняющимися на лока льном компьютере. ПАРАМЕТРЫ -Id <Int32[]> Задает идентификаторы процессов. При вводе нескольких идентификаторов н еобходимо разделять их запятыми. Чтобы определить идентификатор процесс а, введите команду get-process. Имя параметра ("Id") указывать необязат ельно. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -InputObject <Process[]> Задает процессы путем передачи объектов процессов. Введите переменную, содержащую объекты-процессы, либо команду или выражение, получающие объ екты процессов, например Get-Process. Требуется? true Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Name <string[]> Задает имена процессов. При вводе нескольких имен необходимо разделять их запятыми. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByPropertyName) Принимать подстановочные знаки? false -Timeout <int> Определяет максимальное время (в секундах), в течение которого командле т Wait-Process ожидает остановки указанных процессов. По истечении этог о времени команда выводит непрерывающую ошибку с перечнем процессов, ко торые еще выполняются, и завершает ожидание. Требуется? false Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Diagnostics.Process Объект процесса можно передать командлету Wait-Process по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Этот командлет не формирует никаких выходных данных. ПРИМЕЧАНИЯ В этом командлете используется метод WaitForExit класса System.Diagnost ics.Process. Дополнительные сведения об этом методе см. в документации пакета SDK Microsoft .NET Framework. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$nid = (get-process notepad).id C:\PS> stop-process -id $nid C:\PS> wait-process -id $nid Описание ----------- Приведенные команды останавливают процесс Notepad и затем ожидают, пока про цесс остановится, прежде чем переходить к выполнению следующей команды. Первая команда с помощью командлета Get-Process получает идентификатор проц есса Notepad. Идентификатор сохраняется в переменной $nid. Вторая команда с помощью командлета Stop-Process останавливает процесс с ид ентификатором, сохраненным в переменной $nid. Третья команда использует командлет Wait-Process для ожидания остановки про цесса Notepad. Для идентификации процесса используется параметр ID командле та Wait-Process. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$p = get-process notepad C:\PS> wait-process -id $p.id C:\PS> wait-process -name notepad C:\PS> wait-process -inputobject $p Описание ----------- На примере приведенных команд показаны три различных способа задания процес са для командлета Wait-Process. Первая команда получает процесс Notepad и с охраняет его в переменной $p. Во второй команде используется параметр ID, в третьей — параметр Name, а в четвертой — параметр InputObject. Эти команды возвращают одинаковые результаты, и их можно использовать на ра вных основаниях. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>wait-process -name outlook, winword -timeout 30 Описание ----------- Эта команда ожидает остановки процессов Outlook и Winword в течение 30 секу нд. Если ни один из процессов не будет остановлен в течение этого времени, командлет отобразит непрерывающую ошибку и командную строку. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135277 Get-Process Start-Process Stop-Process Wait-Process Debug-Process Where-Object ИМЯ Where-Object ОПИСАНИЕ Создает фильтр, который определяет, какие объекты будут переданы по командн ому конвейеру. СИНТАКСИС Where-Object [-FilterScript] <scriptblock> [-InputObject <psobject>] [<Comm onParameters>] ОПИСАНИЕ Командлет Where-Object выбирает объекты из переданного ему набора объектов. Он использует блок скрипта как фильтр и выполняет блок скрипта для каждого объекта. Если в результате выполнения получается значение True, этот объек т возвращается. Если в результате выполнения не получается значение True, э тот объект игнорируется. ПАРАМЕТРЫ -FilterScript <scriptblock> Указывает блок скрипта, используемый для фильтрации объектов. Заключайт е блок скрипта в фигурные скобки ( {} ). Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -InputObject <psobject> Указывает объекты, которые необходимо отфильтровать. Кроме того, можно передать объекты командлету Where-Object по конвейеру. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты для фильтрации можно передавать командлету Where-Object по конв ейеру. ВЫХОДНЫЕ ДАННЫЕ ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-service | where-object {$_.Status -eq "Stopped"} Описание ----------- Эта команда возвращает список всех служб, которые в данный момент остановле ны. Символ "$" представляет каждый объект, переданный командлету Where-Obje ct. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>get-process | where-object {$_.workingset -gt 25000*1024} Описание ----------- Эта команда возвращает список процессов, размер рабочего множества которых превышает 25 000 КБ. Так как значение свойства WorkingSet хранится в байтах , значение 25 000 умножено на 1 024. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>get-process | where-object { $_.ProcessName -match "^p.*" } Описание ----------- Эта команда получает процессы, свойство ProcessName которых начинаются на б укву "p". Оператор match позволяет использовать в предложении Where регуляр ные выражения. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>get-process -name svchost | where-object {$True} Описание ----------- Эта команда перечисляет все процессы по имени "svchost". Командлет Where-Object выполняет блок скрипта, который обычно включает ссыл ку на текущий объект в конвейере ($_), и приводит результат к логическому т ипу: True или False. В случае результата True объект возвращается. В против ном случае он отбрасывается. В данном случае блок скрипта просто возвращает True, поэтому все объекты во звращаются. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113423 Write-Debug ИМЯ Write-Debug ОПИСАНИЕ Выводит сообщение отладки на консоль. СИНТАКСИС Write-Debug [-Message] <string> [<CommonParameters>] ОПИСАНИЕ Командлет Write-Debug выводит на консоль сообщения отладки из скрипта или к оманды. По умолчанию сообщения отладки не отображаются на консоли, но их можно выве сти с помощью параметра Debug или переменной $DebugPreference. ПАРАМЕТРЫ -Message <string> Задает сообщение отладки для отправки на консоль. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую сообщение отладки, можно передать командлету Write-D ebug по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Write-Debug осуществляет запись только в поток отладки. Он не возвращает никаких выходных данных. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Write-Debug "Cannot open file." Описание ----------- Эта команда выводит сообщение отладки. Поскольку переменная $DebugPreferenc e имеет значение "SilentlyContinue", на консоли сообщение не отображается. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$DebugPreference SilentlyContinue C:\PS> Write-Debug "Cannot open file." C:\PS> C:\PS> Write-Debug "Cannot open file." -debug DEBUG: Cannot open file. Описание ----------- В этом примере показано, как с помощью общего параметра Debug переопределят ь значение переменной $DebugPreference для конкретной команды. Первая команда выводит значение переменной $DebugPreference, которое по умо лчанию равно "SilentlyContinue". Вторая команда записывает сообщение отладки, но из-за значения переменной $ DebugPreference оно не появляется. Третья команда выводит сообщение отладки. Она использует общий параметр Deb ug, чтобы переопределить значение $DebugPreference и вывести сообщение отла дки, выдаваемое этой командой. В результате сообщение отладки отображается, несмотря на то что переменная $DebugPreference имеет значение "SilentlyContinue". Дополнительные сведения об общем параметре Debug см. в разделе about_Common Parameters. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$DebugPreference SilentlyContinue C:\PS> Write-Debug "Cannot open file." C:\PS> C:\PS> $DebugPreference = "Continue" C:\PS> Write-Debug "Cannot open file." DEBUG: Cannot open file. Описание ----------- В этой команде показано, как изменение значения переменной $DebugPreference влияет на отображение сообщений отладки. Первая команда выводит значение переменной $DebugPreference, которое по умо лчанию равно "SilentlyContinue". Вторая команда записывает сообщение отладки, но из-за значения переменной $ DebugPreference оно не появляется. Третья команда присваивает переменной $DebugPreference значение "Continue". Четвертая команда записывает сообщение отладки, которое отображается на кон соли. Дополнительные сведения о переменной $DebugPreference см. в разделе about_P reference_Variables. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113424 Write-Verbose Write-Error Write-Host Write-Progress Write-Output Write-Warning Write-Error ИМЯ Write-Error ОПИСАНИЕ Записывает объект в поток ошибок. СИНТАКСИС Write-Error -ErrorRecord <ErrorRecord> [-CategoryActivity <string>] [-Categ oryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <st ring>] [-RecommendedAction <string>] [<CommonParameters>] Write-Error [-Message] <string> [-Category {NotSpecified | OpenError | Clos eError | DeviceError | DeadlockDetected | InvalidArgument | InvalidData | I nvalidOperation | InvalidResult | InvalidType | MetadataError | NotImplemen ted | NotInstalled | ObjectNotFound | OperationStopped | OperationTimeout | SyntaxError | ParserError | PermissionDenied | ResourceBusy | ResourceExis ts | ResourceUnavailable | ReadError | WriteError | FromStdErr | SecurityEr ror}] [-ErrorId <string>] [-TargetObject <Object>] [-CategoryActivity <stri ng>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTa rgetType <string>] [-RecommendedAction <string>] [<CommonParameters>] Write-Error -Exception <Exception> [-Category {NotSpecified | OpenError | C loseError | DeviceError | DeadlockDetected | InvalidArgument | InvalidData | InvalidOperation | InvalidResult | InvalidType | MetadataError | NotImple mented | NotInstalled | ObjectNotFound | OperationStopped | OperationTimeou t | SyntaxError | ParserError | PermissionDenied | ResourceBusy | ResourceE xists | ResourceUnavailable | ReadError | WriteError | FromStdErr | Securit yError}] [-ErrorId <string>] [-Message <string>] [-TargetObject <Object>] [ -CategoryActivity <string>] [-CategoryReason <string>] [-CategoryTargetName <string>] [-CategoryTargetType <string>] [-RecommendedAction <string>] [ ommonParameters>] ОПИСАНИЕ Командлет Write-Error записывает ошибку в поток ошибок Windows PowerShell. По умолчанию ошибки отправляются в основную программу для отображения вмест е с выводом. Ошибку можно записать путем отправки строки сообщения об ошибки, объекта Er rorRecord или объекта Exception. С помощью других параметров командлета Wr ite-Error сформируйте запись об ошибке. ПАРАМЕТРЫ -Category <ErrorCategory> Задает категорию ошибки. По умолчанию используется значение "NotSpecif ied". Дополнительные сведения о категориях ошибок см. в разделе "Перечисление ErrorCategory" библиотеки MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkId=143600. Требуется? false Позиция? named Значение по умолчанию NotSpecified Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CategoryActivity <string> Описывает действие, вызвавшее ошибку. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CategoryReason <string> Описывает, каким образом или почему операция вызвала ошибку. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CategoryTargetName <string> Задает имя объекта, который обрабатывался во время возникновения ошибки . Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CategoryTargetType <string> Задает тип .NET объекта, который обрабатывался во время возникновения о шибки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ErrorId <string> Задает идентификатор строки для идентификации ошибки. Эта строка должна быть уникальной для конкретной ошибки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ErrorRecord <ErrorRecord> Задает объект записи об ошибке, которые включает свойства и описание ош ибки. Чтобы получить объект записи об ошибке, используйте командлет New-Objec t или воспользуйтесь объектом записи об ошибке из массива, хранящегося в автоматической переменной $Error. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Exception <Exception> Задает исключение, представляющее ошибку. Вместо указания текста сообщения или записи об исключении можно использ овать исключение. Требуется? true Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Message <string> Задает текст сообщения об ошибке. Если текст содержит пробелы или спец иальные символы, его нужно заключить в кавычки. Кроме того, строку сооб щения можно передать командлету Write-Error по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -RecommendedAction <string> Описывает действие, которое пользователь должен выполнить, чтобы устран ить или предотвратить ошибку. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -TargetObject <Object> Задает объект, который обрабатывался во время возникновения ошибки. Ука жите объект (например строку), переменную, содержащую объект, либо кома нду, которая получает этот объект. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую сообщение об ошибке, можно передать командлету Write -Error по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Объект ошибки Командлет Write-Error осуществляет запись только в поток ошибок. Он не возвращает никаких объектов. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>get-childitem | foreach-object { if ($_.gettype().tostring() -eq "Mic rosoft.Win32.RegistryKey") {write-error "Out-of-band object" -errorID B1 -t argetobject $_ } else {$_ } } Описание ----------- Эта команда записывает ошибку, если командлет Get-ChildItem возвращает объе кт типа Microsoft.Win32.RegistryKey, такой как объекты на дисках HKLM и HKC U поставщика реестра Windows PowerShell. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>write-error "Access denied." Описание ----------- Эта команда записывает ошибку "Отказано в доступе". В команде используется параметр Message для задания сообщения, однако необязательное имя параметра Message в данном случае опущено. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>write-error -message "Error: Too many input values." -category Invali dArgument Описание ----------- Эта команда записывает ошибку и указывает категорию ошибки. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113425 Write-Debug Write-Verbose Write-Output Write-Host Write-Progress Write-Warning Write-EventLog ИМЯ Write-EventLog ОПИСАНИЕ Записывает событие в журнал событий. СИНТАКСИС Write-EventLog [-LogName] <string> [-Source] <string> [-EventID] <int> [-Me ssage] <string> [[-EntryType] {Error | Warning | Information | SuccessAudit | FailureAudit}] [-Category <Int16>] [-ComputerName <string>] [-RawData <B yte[]>] [<CommonParameters>] ОПИСАНИЕ Командлет записывает Write-EventLog событие в журнал событий. Чтобы событие можно было записать в журнал событий, журнал событий должен с уществовать на компьютере, и для этого журнала событий должен быть зарегист рирован источник. Командлеты, в имени которых содержится существительное EventLog (командлеты EventLog) работают только с классическими журналами событий. Чтобы получат ь события из журналов, основанных на технологии журнала событий Windows (в Windows Vista и более поздних версиях Windows), используйте командлет Get-W inEvent. ПАРАМЕТРЫ -Category <Int16> Задает категорию задачи для события. Введите целочисленное значение, св язанное со строками в файле сообщений категорий для журнала событий. Требуется? false Позиция? named Значение по умолчанию 1 Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ComputerName <string> Задает удаленный компьютер. По умолчанию используется значение "Локальн ый компьютер". Введите имя NetBIOS, IP-адрес или полное доменное имя удаленного компью тера. Этот параметр не использует удаленное взаимодействие Windows PowerShell . Параметр ComputerName командлета Get-EventLog можно использовать, даж е если компьютер не настроен на выполнение удаленных команд. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EntryType <EventLogEntryType> Задает тип записи события. Допустимые значения: Error, Warning, Inform ation, SuccessAudit и FailureAudit. По умолчанию используется значение "Information". Описание значений см. в разделе System.Diagnostics.EventLogEntryType в библиотеке MSDN (Microsoft Developer Network) по адресу http://go.micro soft.com/fwlink/?LinkId=143599. Требуется? false Позиция? 4 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -EventID <int> Задает идентификатор события. Это обязательный параметр. Требуется? true Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -LogName <string> Задает имя журнала, в который записывается событие. Введите имя журнала (значение свойства Log, а не свойства LogDisplayName). Подстановочные знаки запрещены. Это обязательный параметр. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Message <string> Задает сообщение о событии. Это обязательный параметр. Требуется? true Позиция? 5 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -RawData <Byte[]> Задает двоичные данные, связанные с событием, в байтах. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Source <string> Задает источник событий; как правило, это имя приложения, которое запис ывает события в журнал. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ System.Diagnostics.EventLogEntry Командлет Write-EventLog возвращает объекты, представляющие события в ж урналах. ПРИМЕЧАНИЯ Чтобы использовать командлет Write-EventLog в Windows Vista и более поз дних версиях Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". -------------------------- ПРИМЕР 1 -------------------------- C:\PS>write-eventlog -logname Application -source MyApp -eventID 3001 -entr ytype Information -message "MyApp added a user-requested feature to the dis play." -category 1 -rawdata 10,20 Описание ----------- Эта команда записывает событие из источника MyApp в журнал событий Applicat ion. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>write-eventlog -computername Server01 -logname Application -source My App -eventID 3001 -message "MyApp added a user-requested feature to the dis play." Описание ----------- Эта команда записывает событие из источника MyApp в журнал событий Applicat ion на удаленном компьютере Server01. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=135281 Clear-EventLog Get-EventLog Limit-EventLog New-EventLog Remove-EventLog Show-EventLog Write-EventLog Get-WinEvent Write-Host ИМЯ Write-Host ОПИСАНИЕ Записывает в основную программу пользовательский вывод. СИНТАКСИС Write-Host [[-Object] <Object>] [-BackgroundColor {Black | DarkBlue | DarkG reen | DarkCyan | DarkRed | DarkMagenta | DarkYellow | Gray | DarkGray | Bl ue | Green | Cyan | Red | Magenta | Yellow | White}] [-ForegroundColor {Bla ck | DarkBlue | DarkGreen | DarkCyan | DarkRed | DarkMagenta | DarkYellow | Gray | DarkGray | Blue | Green | Cyan | Red | Magenta | Yellow | White}] [ -NoNewline] [-Separator <Object>] [<CommonParameters>] ОПИСАНИЕ Командлет Write-Host позволяет управлять выводом. Можно указать цвет текста с помощью параметра ForegroundColor, а также фоновый цвет, используя парам етр BackgroundColor. Параметр Separator позволяет указать строку, которая б удет использоваться для разделения отображаемых объектов. Конкретный резуль тат зависит от основной программы, из которой запускается Windows PowerShel l. ПАРАМЕТРЫ -BackgroundColor <ConsoleColor> Задает цвет фона. Значение по умолчанию отсутствует. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ForegroundColor <ConsoleColor> Задает цвет текста. Значение по умолчанию отсутствует. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -NoNewline [<SwitchParameter>] Указывает, что содержимое, отображаемое в консоли, не заканчивается зна ком новой строки. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Object <Object> Объекты, отображаемые в консоли. Требуется? false Позиция? 1 Значение по умолчанию Нет Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false -Separator <Object> Строка для вывода между объектами, отображаемыми на консоли. Требуется? false Позиция? named Значение по умолчанию Нет Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Object Объекты, записываемые в основной программе, можно передавать по конвейе ру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Write-Host отправляет объекты основной программе. Он не возвр ащает никаких объектов. Однако основная программа может отобразить полу ченные с помощью командлета Write-Host объекты. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>write-host "no newline test " -nonewline no newline test C:\PS> Описание ----------- Эта команда отображает вывод на консоли, но из-за наличия параметра NoNewli ne за выводом сразу же следует приглашение командной строки. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>write-host (2,4,6,8,10,12) -Separator ", +2= " 2, +2= 4, +2= 6, +2= 8, +2= 10, +2= 12 Описание ----------- Эта команда отображает четные числа от 2 до 12. Параметр Separator использу ется для добавления строки ", +2= " (запятая, пробел, +, 2, =, пробел). -------------------------- ПРИМЕР 3 -------------------------- C:\PS>write-host (2,4,6,8,10,12) -Separator ", -> " -foregroundcolor DarkGr een -backgroundcolor white Описание ----------- Эта команда отображает четные числа от 2 до 12. Параметр ForegroundColor оп ределяет темно-зеленый цвет выводимого текста, а параметр BackgroundColor — белый фон. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>write-host "Red on white text." -ForegroundColor red -BackgroundColor white Red on white text. Описание ----------- Эта команда отображает строку "Red on white text.". Текст отображается крас ным в соответствии со значением параметра ForegroundColor. Фон отображается белым в соответствии со значением параметра BackgroundColor. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113426 Write-Verbose Write-Error Write-Progress Write-Debug Write-Output Write-Warning Out-Host Write-Output ИМЯ Write-Output ОПИСАНИЕ Отправляет заданные объекты очередной команде в конвейере. Если команда явл яется последней командой в конвейере, объекты отображаются на консоли. СИНТАКСИС Write-Output [-InputObject] <PSObject[]> [<CommonParameters>] ОПИСАНИЕ Командлет Write-Output отправляет заданный объект очередной команде в конве йере. Если команда является последней командой в конвейере, то объект отобр ажается на консоли. Командлет Write-Output передает объекты по основному конвейеру, который так же называют "потоком вывода" или "конвейером успешного выполнения". Чтобы п ередать объекты ошибок по конвейеру ошибок, используйте командлет Write-Err or. Этот командлет обычно используется в скриптах для вывода на консоль строк и других объектов. Но поскольку по умолчанию последние объекты конвейера обы чно выводятся на экран, чаще всего необходимость в использовании этого кома ндлета отсутствует. Например, команда "get-process | write-output" эквивале нтна команде "get-process". ПАРАМЕТРЫ -InputObject <PSObject[]> Задает объекты, передаваемые по конвейеру. Введите переменную, содержащ ую объекты, либо команду или выражение для получения объектов. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Объекты можно передать командлету Write-Output по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.Management.Automation.PSObject Командлет Write-Output возвращает объекты, переданные ему на вход. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>$p = get-process c:\PS> write-output $p c:\PS> $p Описание ----------- Первая команда получает объекты, которые представляют выполняющиеся на комп ьютере процессы, и отображает эти объекты на консоли. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>write-output "test output" | get-member Описание ----------- Эта команда по конвейеру передает строку "test output" командлету Get-Membe r, который отображает элементы класса String, демонстрируя, что строка была передана по конвейеру. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113427 Write-Debug Write-Verbose Write-Error Write-Progress Write-Host Write-Warning Tee-Object Write-Progress ИМЯ Write-Progress ОПИСАНИЕ Отображает индикатор выполнения в командном окне Windows PowerShell. СИНТАКСИС Write-Progress [-Activity] <string> [-Status] <string> [[-Id] <int>] [-Comp leted] [-CurrentOperation <string>] [-ParentId <int>] [-PercentComplete <in t>] [-SecondsRemaining <int>] [-SourceId <int>] [<CommonParameters>] ОПИСАНИЕ Командлет Write-Progress отображает в командном окне Windows PowerShell инд икатор выполнения, который показывает состояние выполнения команды или скри пта. Можно выбирать показатели, отображаемые индикатором, а также текст, ко торый отображается до и после индикатора выполнения. ПАРАМЕТРЫ -Activity <string> Задает первую строку текста в заголовке над индикатором состояния. Этот текст описывает действие, выполнение которого отслеживается. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Completed [<SwitchParameter>] Определяет, видим ли индикатор выполнения. Если пропустить этот парамет р, командлет Write-Progress отобразит сведения о ходе выполнения. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -CurrentOperation <string> Задает строку текста, отображаемую под индикатором выполнения. Этот тек ст описывает текущую операцию. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Id <int> Задает идентификатор, который позволяет отличать данный индикатор выпол нения от других. Используйте этот параметр при создании в одной команде нескольких индикаторов выполнения. Если у индикаторов выполнения не бу дет различающихся идентификаторов, то они будут накладываться друг на д руга, а не отображаться последовательно. Требуется? false Позиция? 3 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -ParentId <int> Определяет родительское действие текущего действия. Используйте значени е -1, если у текущего действия нет родительского действия. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -PercentComplete <int> Задает процент выполнения операции. Используйте значение -1, если проце нт выполнения неизвестен или неприменим. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SecondsRemaining <int> Задает предполагаемое число секунд, оставшихся до завершения действия. Используйте значение -1, если оставшееся число секунд неизвестно или не применимо. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -SourceId <int> Определяет источник записи. Требуется? false Позиция? named Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false -Status <string> Задает вторую строку текста в заголовке над индикатором состояния. Этот текст описывает текущее состояние действия. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные конвейера? false Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет Передать входные данные этому командлету по конвейеру невозможно. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Write-Progress не формирует никакого вывода. ПРИМЕЧАНИЯ Если индикатор выполнения не появляется, проверьте значение переменной $ProgressPreference. Если она имеет значение SilentlyContinue, индикато р выполнения на экране не отображается. Дополнительные сведения о парам етрах Windows PowerShell см. в разделе about_Preference_Variables. Параметры этого командлета соответствуют свойствам класса ProgressRecor d (System.Management.Automation.ProgressRecord). Дополнительные сведени я см. в разделе ProgressRecord пакета средств разработки программного о беспечения (SDK) Windows PowerShell. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>for ($i = 1; $i -lt 101; $i++ ) {for ($j=0;$j -lt 10000;$j++) {} write-progress -activity "Search in Progre ss" -status "% Complete:" -percentcomplete $i;} Описание ----------- Эта команда отображает сведения о ходе выполнения двух вложенных циклов For . Число итераций первого цикла равно 100. В рамках каждой итерации этого ци кла второй цикл выполняется 10000 раз. Команда Write-Progress включает заголовок панели состояния ("activity"), ст року состояния и переменную $i (счетчик цикла For), которая позволяет получ ить сведения о степени завершенности задания. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>for($i = 1; $i -lt 101; $i++ ) {write-progress -activity Updating -st atus progress-> -percentcomplete $i -currentOperation OuterLoop} for($i = 1 ; $i -lt 101; $i++ ) {write-progress -activity Updating -status progress -p ercentcomplete $i -id 1 -currentOperation InnerLoop} Updating progress -> [oooooooooooooooooo ] OutsideLoop Updating progress [oooooooooooooooooo ] InnerLoop Описание ----------- В этом примере показан ход выполнения двух вложенных циклов For, каждый из которых представлен индикатором выполнения. Команда Write-Progress для второго индикатора выполнения включает параметр Id, который позволяет отличать этот индикатор от первого индикатора выполне ния. Без параметра Id индикаторы выполнения накладывались бы друг на друга, а не располагались бы один под другим. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$events = get-eventlog -logname system C:\PS> $events | foreach-object -begin {clear-host;$i=0;$out=""} ` -process {if($_.message -like "*bios*") {$out=$out + $_.Message}; $i = $i+1;` write-progress -activity "Searching Events" ` -status "Progress:" -percentcomplete ($i/$events.count*100)} ` -end {$out} Описание ----------- Эта команда отображает сведения о ходе выполнения команды, ищущей строку "b ios" в журнале событий "Система". В первой строке команды командлет Get-EventLog получает события из журнала "Система" и сохраняет их в переменной $events. Во второй строке события передаются по конвейеру командлету ForEach-Object. Перед началом обработки командлет Clear-Host очищает экран; переменной-сче тчику $i присваивается значение 0, а переменной вывода $out — пустая строка . В третьей строке, которая представляет собой блок скрипта Process командлет а ForEach-Object, командлет ищет слово "bios" в свойстве message каждого из объектов на входе. Если такая строка найдена, соответствующее сообщение до бавляется в переменную $out. В четвертой строке увеличивается переменная-счетчик $i. Это показывает, что проверено еще одно событие. В пятой строке используется командлет Write-Progress со значениями текстовы х полей Activity и Status, которые формируют соответственно первую и вторую строки заголовка индикатора выполнения. Для вычисления значения параметра PercentComplete число обработанных событий ($i) делится на общее число полу ченных событий ($events.count), а результат умножается на 100. В последней строке параметр End командлета ForEach-Object используется для отображения сообщений, которые были сохранены в переменной $out. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113428 Write-Verbose Write-Error Write-Host Write-Debug Write-Output Write-Warning Write-Verbose ИМЯ Write-Verbose ОПИСАНИЕ Записывает текст в поток подробных сообщений. СИНТАКСИС Write-Verbose [-Message] <string> [<CommonParameters>] ОПИСАНИЕ Командлет Write-Verbose записывает текст в поток подробных сообщений Window s PowerShell. Обычно поток подробных сообщений используется для передачи св едений об обработке команд при отладке этих команд. По умолчанию поток подробных сообщений не отображается, однако его можно от образить, изменив значение переменной $VerbosePreference или с помощью обще го параметра Verbose любой из команд. ПАРАМЕТРЫ -Message <string> Задает отображаемое сообщение. Это обязательный параметр. Кроме того, с троку сообщения можно передать командлету Verbose-Message по конвейеру. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую сообщение, можно передать командлету Write-Verbose п о конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Write-Verbose осуществляет запись только в поток подробных со общений. ПРИМЕЧАНИЯ -------------------------- ПРИМЕР 1 -------------------------- C:\PS>Write-Verbose -message "Searching the Application Event Log." C:\PS> Write-Verbose -message "Searching the Application Event Log." -verbo se Описание ----------- Эти команды используют для отображения сообщения состояния командлет Write- Verbose. По умолчанию сообщение не отображается. Вторая команда использует общий параметр Verbose, который отображает подроб ные сообщения независимо от значения переменной $VerbosePreference. -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$VerbosePreference = "Continue" C:\PS> Write-Verbose "Copying file $filename" Описание ----------- Эти команды используют для отображения сообщения состояния командлет Write- Verbose. По умолчанию сообщение не отображается. Первая команда присваивает переменной $VerbosePreference preference значени е "Continue". Значение по умолчанию ("SilentlyContinue") подавляет подробны е сообщения. Вторая команда записывает подробное сообщение. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113429 Write-Error Write-Warning about_Preference_Variables Write-Warning ИМЯ Write-Warning ОПИСАНИЕ Записывает предупреждающее сообщение. СИНТАКСИС Write-Warning [-Message] <string> [<CommonParameters>] ОПИСАНИЕ Командлет Write-Warning записывает предупреждающее сообщение в основную про грамму Windows PowerShell. Реакция на предупреждение зависит от установленн ого пользователем значения переменной $WarningPreference и общего параметра WarningAction. ПАРАМЕТРЫ -Message <string> Задает предупреждающее сообщение. Требуется? true Позиция? 1 Значение по умолчанию Принимать входные данные конвейера? true (ByValue) Принимать подстановочные знаки? false <CommonParameters> Данный командлет поддерживает общие параметры: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction, WarningVariable, OutBuffer и OutVariable. Для получения дополнительных сведений введите "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ System.String Строку, содержащую предупреждение, можно передать командлету Write-Warn ing по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет Командлет Write-Warning осуществляет запись только в поток предупрежден ий. Он не формирует никакого другого вывода. ПРИМЕЧАНИЯ По умолчанию переменная $WarningPreference имеет значение "Continue", ч то означает, что предупреждение отображается, после чего продолжается в ыполнение команды. Для определения допустимых значений привилегированно й переменной, такой как $WarningPreference, присвойте ей строку из случ айного набора знаков, например "abc". Допустимые значения будут выведен ы в сообщении об ошибке. -------------------------- ПРИМЕР 1 -------------------------- C:\PS>write-warning "This is only a test warning." Описание ----------- Эта команда выводит сообщение "ПРЕДУПРЕЖДЕНИЕ: This is only a test warning" . -------------------------- ПРИМЕР 2 -------------------------- C:\PS>$w = "This is only a test warning." C:\PS> $w | write-warning Описание ----------- В этом примере показано, что для передачи строки командлету Write-Warning м ожно использовать оператор конвейера (|). Строку можно сохранить в переменн ой, как показано в данной команде, либо передать непосредственно командлету Write-Warning по конвейеру. -------------------------- ПРИМЕР 3 -------------------------- C:\PS>$warningpreference Continue C:\PS> write-warning "This is only a test warning." This is only a test warning. C:\PS> $warningpreference = "SilentlyContinue" C:\PS> write-warning "This is only a test warning." C:\PS> C:\PS> $warningpreference = "Stop" C:\PS> write-warning "This is only a test warning." WARNING: This is only a test message. Write-Warning : Command execution stopped because the shell variable "Warni ngPreference" is set to Stop. At line:1 char:14 + write-warning < "This is only a test message." Описание ----------- В этом примере показано, как изменение значения переменной $WarningPreferen ce влияет на результат выполнения команды Write-Warning. Первая команда выводит значение переменной $WarningPreference по умолчанию, которое равно "Continue". В результате при записи предупреждения сообщение о предупреждении выводится и продолжается выполнение. В случае изменения значения переменной $WarningPreference результат выполне ния команды Write-Warning снова изменяется. Значение "SilentlyContinue" под авляет появление предупреждения. Значение "Stop" отображает предупреждение, после чего прекращает выполнение команды. Дополнительные сведения о переменной $WarningPreference см. в разделе about _Preference_Variables. -------------------------- ПРИМЕР 4 -------------------------- C:\PS>write-warning "This is only a test warning." -warningaction Inquire WARNING: This is only a test warning. Confirm Continue with this operation? [Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default i s "Y"): Описание ----------- В этом примере показано, как изменение значения общего параметра WarningAct ion влияет на результат выполнения команды Write-Warning. Общий параметр Wa rningAction можно использовать с любым командлетом, чтобы определить, каким образом Windows PowerShell реагирует на создаваемые этим командлетом преду преждения. Общий параметр WarningAction переопределяет значение переменной $WarningPreference только для данной конкретной команды. В этой команде командлет Write-Warning используется для отображения предупр еждения. Значение Inquire параметра WarningAction указывает на то, что сист ема должна выдать пользователю приглашение, когда команда выведет предупреж дение. Дополнительные сведения об общем параметре WarningAction см. в разделе abou t_CommonParameters. ССЫЛКИ ПО ТЕМЕ Online version: http://go.microsoft.com/fwlink/?LinkID=113430 about_Preference_Variables about_CommonParameters Write-Debug Write-Error Write-Host Write-Output Write-Progress Write-Verbose WSMan ИМЯ ПОСТАВЩИКА WSMan ДИСКИ WSMan ОПИСАНИЕ Обеспечивает доступ к конфигурационной информации веб-служб WS-Management. ОПИСАНИЕ Поставщик WS-Management для Windows PowerShell позволяет добавлять, изменят ь, очищать и удалять конфигурационные данные WS-Management на локальном или удаленных компьютерах. Поставщик WS-Management открывает доступ к диску Windows PowerShell со стру ктурой каталогов, соответствующей логическим группам параметров конфигураци и WS-Management. Эти группы называются контейнерами. -- Client Позволяет настроить различные аспекты клиента WS-Management. Конфигурационн ая информация сохраняется в реестре. -- Service Позволяет настроить различные аспекты службы WS-Management. Конфигурационна я информация сохраняется в реестре. Примечание. Конфигурация службы иногда называется конфигурацией сервера. -- Shell Позволяет настроить различные аспекты оболочки WS-Management, например, раз решить удаленный доступ к оболочке (параметр AllowRemoteShellAccess) и зада ть максимально допустимое количество одновременных пользователей (параметр MaxConcurrentUsers). -- Listener Позволяет создать и настроить прослушиватель. Прослушиватель — это служба у правления, реализующая протокол WS-Management для отправки и получения сооб щений. -- Plugin Подключаемые модули загружаются и используются службой WS-Management для об еспечения различных функций. По умолчанию в Windows PowerShell предусмотрен о три подключаемых модуля: подключаемый модуль Event Forwarding, подключаем ый модуль Microsoft.PowerShell и подключаемый модуль поставщика инструмента рия управления Windows (WMI). Эти три подключаемых модуля поддерживают пере направление событий, настройку и доступ к WMI. -- ClientCertificate Позволяет создать и настроить сертификат клиента. Сертификат клиента исполь зуется, когда клиент WS-Management настроен на проверку подлинности с помощ ью сертификата. Иерархия каталогов поставщика WS-Management --------------- Иерархия каталогов поставщика WS-Management для локального компьютера выгля дит следующим образом. WSMan:\localhost --- Client --- Service --- Shell --- Listener ------ <конкретный_слушатель> --- Plugin ------ Event Forwarding Plugin --------- InitializationParameters --------- Resources ------------ Security ------ Microsoft.Powershell --------- InitializationParameters --------- Resources ------------ Security ------ WMI Provider --------- InitializationParameters --------- Resources ------------ Security --- ClientCertificate Иерархия каталогов поставщика WS-Management для удаленного компьютера анало гична иерархии каталогов для локального компьютера. Однако для доступа к па раметрам конфигурации удаленного компьютера необходимо установить подключен ие к удаленному компьютеру с помощью командлета Connect-WSMan. После устано вления подключения к удаленному компьютеру имя удаленного компьютера появля ется в поставщике. WSMan:\<имя_удаленного_компьютера> --- Client --- Service --- Shell --- Listener ------ <конкретный_слушатель> --- Plugin ------ Event Forwarding Plugin --------- InitializationParameters --------- Resources ------------ Security ------ Microsoft.Powershell --------- InitializationParameters --------- Resources ------------ Security ------ WMI Provider --------- InitializationParameters --------- Resources ------------ Security --- ClientCertificate Справка по поставщикам -------------------- Для каталогов поставщика Listener, Plugin (IntitializationParameters, Resou rces, Security) и ClientCertificate предусмотрены специальные справочные св едения по командлету New-Item. Находясь в том или ином каталоге, введите " get-help New-Item", чтобы получить справку по созданию новых элементов в эт ом каталоге. ВОЗМОЖНОСТИ ЗАДАЧИ ЗАДАЧА: Перемещение по диску WSMan: -------------------------- ПРИМЕР 1 -------------------------- Эта команда с помощью командлета Set-Location меняет текущее местополож ение на диск WSMan:. Set-Location WSMan: -------------------------- ПРИМЕР 2 -------------------------- Эта команда с помощью командлета Set-Location меняет текущее местополож ение на корневой каталог в хранилище Localhost. Чтобы указать уровень иерархии на диске WSMan:, используйте обратную косую черту (\) или косу ю черту (/). Set-Location -Path Localhost Если текущим местоположением является другой диск (не WSMan:), начинайт е путь с имени диска. -------------------------- ПРИМЕР 3 -------------------------- Эта команда с помощью командлета Set-Location меняет текущее местополож ение на корневой каталог в хранилище удаленного компьютера. Чтобы указ ать уровень иерархии на диске WSMan:, используйте обратную косую черту (\) или косую черту (/). Set-Location -Path WSMan:\SERVER01 Если текущим местоположением является другой диск (не WSMan:), начинайт е путь с имени диска. Приведенная выше команда предполагает наличие подключения к удаленному компьютеру. Если подключение к удаленному компьютеру еще не установлен о, можно установить его непосредственно перед переходом к корневому кат алогу в хранилище на удаленном компьютере. Пример: WSMan-Connect SERVER01 Set-Location -Path WSMan:\SERVER01 -------------------------- ПРИМЕР 4 -------------------------- Эта команда с помощью командлета Set-Location меняет текущее местополож ение на каталог Client в хранилище Localhost. Чтобы указать уровень ие рархии на диске WSMan:, используйте обратную косую черту (\) или косую черту (/). Set-Location -Path Localhost\Client Если текущим местоположением является другой диск (не WSMan:), начинайт е путь с имени диска. ЗАДАЧА: Отображение содержимого диска WSMan: -------------------------- ПРИМЕР 1 -------------------------- Эта команда с помощью командлета Get-Childitem отображает хранилища WS- Management в хранилище Localhost. get-childitem -path WSMan:\Localhost Если текущим местоположением является диск WSMan:, имя диска можно не у казывать. -------------------------- ПРИМЕР 2 -------------------------- Эта команда с помощью командлета Get-Childitem отображает хранилища WS- Management в хранилище удаленного компьютера (SERVER01). get-childitem -path WSMan:\SERVER01 Если текущим местоположением является диск WSMan:, имя диска можно не у казывать. Приведенная выше команда предполагает наличие подключения к удаленному компьютеру. Если подключение к удаленному компьютеру еще не установлен о, можно установить его непосредственно перед отображением свойств и ко нтейнеров в хранилище на удаленном компьютере. Пример: WSMan-Connect SERVER01 get-childitem -path WSMan:\SERVER01 -------------------------- ПРИМЕР 3 -------------------------- Эта команда с помощью командлета Get-Childitem отображает текущие подкл ючения WS-Management. get-childitem -path WSMan:\ Если текущим местоположением является диск WSMan:, имя диска можно не у казывать. -------------------------- ПРИМЕР 4 -------------------------- Эта команда с помощью командлета Get-Item получает свойства и контейнер ы в текущем хранилище. Get-Childitem Приведенная выше команда возвращает список свойств и контейнеров. Прим ер: PS WSMan:\localhost> get-childitem WSManConfig: Microsoft.WSMan.Management\WSMan::localhost Name Value Type ---- ----- ---- MaxEnvelopeSizekb 150 System.String MaxTimeoutms 60000 System.String MaxBatchItems 32000 System.String MaxProviderRequests 4294967295 System.String Client Container Service Container Shell Container Listener Container Plugin Container ClientCertificate Container ДИНАМИЧЕСКИЕ ПАРАМЕТРЫ -Address <String> Задает адрес, для которого создан данный прослушиватель. Ниже перечисле ны возможные значения. -- Символьная строка "*". (Подстановочный знак (*) дает команде указани е привязать все IP-адреса на всех сетевых картах.) -- Символьная строка "IP:" и допустимый IP-адрес в формате IPv4 (десяти чная запись) или в формате IPv6 (шестнадцатеричная запись). -- Символьная строка "MAC:" и MAC-адрес сетевой карты. Пример: MAC:32-a 3-58-90-be-cc. Примечание. Значение параметра Address задается при создании прослушива теля. Поддерживаемые командлеты: Get-Item -AllowRemoteShellAccess <Boolean> Разрешает доступ к удаленным оболочкам. Если присвоить этому параметру значение False, новые удаленные подключения к оболочкам будут отклонять ся сервером. Значение по умолчанию — True. Поддерживаемые командлеты: Get-Item, Set-Item -AllowUnEncrypted <Boolean> Позволяет клиентскому компьютеру запрашивать передачу данных в незашифр ованном виде. По умолчанию клиентский компьютер требует зашифрованного сетевого трафика. Поддерживаемые командлеты: Get-Item, Set-Item -Arguments <String> Задает строку аргументов и аргументы командной строки, которые нужно пе редать пользовательской оболочке. Это необязательный параметр. Поддерживаемые командлеты: Get-Item, Set-Item -Basic <Boolean> Позволяет клиентскому компьютеру использовать проверку подлинности по с хеме Basic (обычную проверку подлинности). При использовании обычной пр оверки подлинности имя пользователя и пароль передаются серверу или про кси-серверу открытым текстом. Эта схема является наименее безопасным ме тодом проверки подлинности. Поддерживаемые командлеты: Get-Item, Set-Item -Capability <Enumeration> Задает операцию, поддерживаемую для данного универсального идентификато ра ресурса (URI). Необходимо создать по одной записи для каждого типа о перации, поддерживаемого URI. Допустимые значения: -- Create: для URI поддерживаются операции создания. Атрибут SupportFra gment используется, если операция Create поддерживает данную концепцию. Атрибут SupportFiltering является недопустимым, и для него следует зад ать значение False. Эта операция не допустима для URI, если поддерживаю тся операции Shell. -- Delete: для URI поддерживаются операции удаления. Атрибут SupportFra gment используется, если операция Delete поддерживает данную концепцию. Атрибут SupportFiltering является недопустимым, и для него следует зад ать значение False. Эта операция не допустима для URI, если поддерживаю тся операции Shell. -- Enumerate: для URI поддерживаются операции перечисления. Атрибут Sup portFragment не поддерживается операциями Enumerate, и для него следует задать значение False. Атрибут SupportFiltering является допустимым, и если подключаемый модуль поддерживает фильтрацию, для этого атрибута с ледует задать значение True. Эта операция не допустима для URI, если по ддерживаются операции Shell. -- Get: для URI поддерживаются операции получения. Атрибут SupportFragm ent используется, если операция Get поддерживает данную концепцию. Атри бут SupportFiltering является недопустимым, и для него следует задать з начение False. Эта операция не допустима для URI, если поддерживаются о перации Shell. -- Invoke: для URI поддерживаются операции вызова. Атрибут SupportFragm ent не поддерживается операциями Invoke, и для него следует задать знач ение False. Атрибут SupportFiltering является недопустимым, и для него следует задать значение False. Эта операция не допустима для URI, если поддерживаются операции Shell. -- Put: для URI поддерживаются операции добавления. Атрибут SupportFrag ment используется, если операция Put поддерживает данную концепцию. Атр ибут SupportFiltering является недопустимым, и для него следует задать значение False. Эта операция не допустима для URI, если поддерживаются операции Shell. -- Subscribe: для URI поддерживаются операции подписки. Атрибут Support Fragment не поддерживается операциями Subscribe, и для него следует зад ать значение False. Атрибут SupportFiltering является недопустимым, и д ля него следует задать значение False. Эта операция не допустима для UR I, если поддерживаются операции Shell. -- Shell: для URI поддерживаются операции оболочки. Атрибут SupportFrag ment не поддерживается операциями Shell, и для него следует задать знач ение False. Атрибут SupportFiltering является недопустимым, и для него следует задать значение False. Эта операция не допустима для URI, если поддерживается любая другая операция. Если для URI настроена операция S hell, операции Get, Put, Create, Delete, Invoke и Enumerate обрабатываю тся в рамках службы WS-Management (WinRM) для управления оболочками. В результате подключаемый модуль не может обрабатывать операции. Поддерживаемые командлеты: Get-Item, New-Item, Remove-Item, Set-Item -CbtHardeningLevel <String> Задает политику относительно необходимости токенов привязки канала в за просах проверки подлинности. Допустимые значения: -- Strict: все запросы, в которых отсутствует токен привязки канала, от клоняются. Это значение обеспечивает защиту всех подключений путем испо льзования токенов привязки канала. -- Relaxed: если в запросе присутствует токен привязки канала, подключе ние будет защищено. Если токен привязки канала отсутствует, подключени е все равно будет принято, однако будет уязвимо к атакам, которые предо твращаются использованием токенов привязки канала. -- None: все предоставляемые токены привязки канала игнорируются. Значение этого параметра имеет силу только для подключений по протоколу HTTPS. Поддерживаемые командлеты: Get-Item, Set-Item -CertificateThumbprint <String> Задает отпечаток сертификата службы. Это значение представляет собой состоящую из двузначных шестнадцатеричн ых значений строку в поле "Отпечаток" сертификата. Оно задает цифровой сертификат с открытым ключом (X509) учетной записи пользователя, которы й располагает разрешением для выполнения этого действия. Сертификаты ис пользуются при проверке подлинности на основе сертификата клиента. Они могут быть сопоставлены только с учетными записями локальных пользовате лей; с учетными записями доменов они не работают. Чтобы получить отпеча ток сертификата, воспользуйтесь командлетом Get-Item или Get-ChildItem в Windows PowerShell на диске Cert:. Поддерживаемые командлеты: Clear-Item, Get-Item, Set-Item -Certificate <Boolean> Позволяет использовать клиент для проверки подлинности с помощью сертиф иката. Клиент WS-Management пытается найти сертификат в хранилище компь ютера. Если найти сертификат в хранилище компьютера не удается, клиент пытается найти его в хранилище текущего пользователя. Если подходящий с ертификат не найден, пользователь получает сообщение об ошибке. Поддерживаемые командлеты: Get-Item, Set-Item -CredSSP <Boolean> Позволяет клиенту использовать проверку подлинности поставщика услуг бе зопасности CredSSP. При проверке подлинности CredSSP пользователю разрешается делегировать учетные данные. Этот вариант предназначен для команд, которые запускают ся на одном удаленном компьютере, но собирают данные с других удаленных компьютеров или выполняют на них дополнительные команды. Внимание При проверке подлинности CredSSP учетные данные пользователя делегируются с локального компьютера на удаленный компьютер. Такой подх од повышает угрозы безопасности удаленных операций. Если безопасность у даленного компьютера нарушена, при передаче на него учетных данных эти данные могут быть использованы для управления сетевым сеансом. Поддерживаемые командлеты: Get-Item, Set-Item -HTTP <Unsigned Short Integer> Задает порт, используемый клиентом для подключений по протоколу HTTP. П о умолчанию для HTTP-подключений используется порт 80. Можно указать лю бое значение от 1 до 65535. Поддерживаемые командлеты: Get-Item, Set-Item -HTTPS <Unsigned Short Integer> Задает порт, используемый клиентом для подключений по протоколу HTTPS. По умолчанию для HTTPS-подключений используется порт 443. Можно указать любое значение от 1 до 65535. Поддерживаемые командлеты: Get-Item, Set-Item -Digest <Boolean> Позволяет клиентскому компьютеру использовать проверку подлинности по с хеме Digest (дайджест-проверку подлинности). Дайджест-проверка подлинно сти проводится по принципу "запрос-ответ". В качестве запроса поступает строка данных, указанная сервером. Инициировать запрос дайджест-прове рки подлинности может только клиентский компьютер. Клиентский компьютер отправляет серверу запрос на проверку подлинности и получает от сервер а строку токена. Затем клиентский компьютер отправляет запрос на ресурс , включающий имя пользователя и криптографический хэш пароля в сочетани и со строкой токена. Дайджест-проверка подлинности по схеме Digest подд ерживается для HTTP и для HTTPS. Клиентские скрипты оболочки WinRM и пр иложения могут запрашивать дайджест-проверку подлинности, однако служба WS-Management не принимает дайджест-проверку подлинности. Примечание. Дайджест-проверка подлинности по протоколу HTTP не считаетс я безопасной. Поддерживаемые командлеты: Get-Item, Set-Item -Enabled <Boolean> Указывает, включен или отключен прослушиватель. Значение по умолчанию — True. Поддерживаемые командлеты: Get-Item, Set-Item -ExactMatch <Boolean> Задает правила использования параметров безопасности, заданных параметр ом Sddl. Если параметр ExactMatch имеет значение True, параметры безопа сности в параметре Sddl используются только для авторизации попыток дос тупа к URI, в точности соответствующему заданному параметром URI. Если параметр If ExactMatch имеет значение False, параметры безопасности в п араметре Sddl используются для авторизации доступа к URI, которые начин аются со строки, заданной параметром URI. Поддерживаемые командлеты: Get-Item, Set-Item -FileName <String> Задает входной файл для обновления ресурса управления, заданного параме трами ResourceURI и SelectorSet. Поддерживаемые командлеты: Get-Item, Set-Item -FileName (Plugin) <String> Задает имя файла подключаемого модуля операций. Любые переменные среды, добавленные в эту запись, при получении запроса будут расширены на кон текст пользователя. Поскольку у разных пользователей могут быть разные версии одной и той же переменной среды, у разных пользователей могут бы ть разные подключаемые модули. Эта запись не может быть пустой и должна указывать на допустимый подключаемый модуль. Поддерживаемые командлеты: Get-Item, Set-Item -HostName <String> Задает имя компьютера, на котором запущена служба WS-Management (WinRM) . Значение должно быть полным доменным именем, символьной строкой IPv4 ил и IPv6 или подстановочным знаком. Поддерживаемые командлеты: Clear-Item, Get-Item, Set-Item -IdleTimeOut <Unsigned Long Integer> Задает максимальное время в миллисекундах, в течение которого удаленная оболочка будет оставаться открытой при отсутствии в ней пользовательск ой активности. По истечении заданного времени удаленная оболочка автома тически удаляется. Можно указать любое значение от 0 до 2147483647. 0 о значает бесконечное время ожидания. Значение по умолчанию — 900000 (15 минут). Поддерживаемые командлеты: Get-Item, Set-Item -IPv4Filter <String> Задает IPv4-адреса, которые могут использоваться прослушивателями. Допу стимые значения: -- Если оставить параметр пустым, нельзя будет использовать никакие IPv 4-адреса. -- Если ввести подстановочный знак (*), можно будет использовать любой IPv4-адрес. -- Если ввести список IP-адресов, можно будет использовать любой IP-адр ес в заданных диапазонах. Разделяйте диапазоны запятой (,) и указывайте каждый диапазон в виде пары IPv4-адресов в десятичном формате, разделе нных дефисом (-). На первом месте в паре должно стоять меньшее число. Д иапазоны рассматриваются как включительные. Примечание. Символьная строка IPv4 состоит из четырех разделенных точка ми десятичных чисел, каждое из которых лежит в диапазоне от 0 до 255. П ример: 192.168.0.0. Поддерживаемые командлеты: Clear-Item, Get-Item, Set-Item -IPv6Filter <String> Задает IPv6-адреса, которые могут использоваться прослушивателями. Допу стимые значения: -- Если оставить параметр пустым, нельзя будет использовать никакие IPv 6-адреса. -- Если ввести подстановочный знак (*), можно будет использовать любой IPv6-адрес. -- Если ввести список IP-адресов, можно будет использовать любой IP-адр ес в заданных диапазонах. Разделяйте диапазоны запятой (,) и указывайте каждый диапазон в виде пары IPv6-адресов в шестнадцатеричном формате, разделенных дефисом (-). На первом месте в паре должно стоять меньшее ч исло. Диапазоны рассматриваются как включительные. Примечание. Символьная строка IPv6 заключается в квадратные скобки и со держит шестнадцатеричные числа, разделенные двоеточиями. Пример: [::1] или [3ffe:ffff::6ECB:0101]. Поддерживаемые командлеты: Clear-Item, Get-Item, Set-Item -Issuer <String> Задает имя центра сертификации, выдавшего сертификат. Поддерживаемые командлеты: Get-Item, Set-Item -Kerberos <Boolean> Позволяет клиентскому компьютеру использовать проверку подлинности Kerb eros. Проверка подлинности Kerberos подразумевает взаимную проверку под линности клиента и сервера с использованием сертификатов Kerberos. Поддерживаемые командлеты: Get-Item, Set-Item -ListeningOn <String> Задает IP-адрес или все IP-адреса, по которым служба фактически ожидает передачи данных. Это значение выводится из элемента Address на основан ии фактических IP-адресов, связанных с прослушивателем. Значение IP-адр еса должно быть записано в десятичном формате IPv4 или в шестнадцатерич ном формате IPv6. Существует несколько записей ListeningOn; каждая запи сь начинается с " ListeningOn_". Пример: ListeningOn_1201550598 ListeningOn_1973755898 ListeningOn_1508953035 ListeningOn_1560839940 Поддерживаемые командлеты: Get-Item -MaxBatchItems <Unsigned Long Integer> Задает максимальное количество элементов, которое может быть использова но в ответе Pull. Можно указать любое значение от 1 до 4294967295. Поддерживаемые командлеты: Get-Item, Set-Item -MaxConcurrentUsers <Unsigned Long Integer> Задает максимальное количество пользователей, могущих одновременно выпо лнять удаленные операции на одном и том же компьютере через удаленную о болочку. По достижении заданного предела новые подключения к оболочке б удут отклоняться. Можно указать любое значение от 1 до 100. Поддерживаемые командлеты: Get-Item, Set-Item -MaxEnvelopeSizekb <Unsigned Long Integer> Задает максимальный размер данных SOAP в килобайтах. Можно указать любо е значение от 32 до 4294967295. Поддерживаемые командлеты: Get-Item, Set-Item -MaxMemoryPerShellMB <Unsigned Long Integer> Задает максимальный общий объем памяти, который может быть выделен акти вной удаленной оболочке и всем ее дочерним процессам. Можно задать любо е значение от 0 до 2147483647. 0 означает, что объем выделяемой удаленн ыми операциями памяти ограничен только доступной виртуальной памятью. З начение по умолчанию — 0. Поддерживаемые командлеты: Get-Item, Set-Item -MaxProcessesPerShell <Unsigned Long Integer> Задает максимальное количество процессов, которое разрешается запускать любой операции оболочки. Можно указать любое значение от 0 до 21474836 47. 0 означает неограниченное количество процессов. По умолчанию ограни чение составляет пять процессов на оболочку. Поддерживаемые командлеты: Get-Item, Set-Item -MaxProviderRequests <Unsigned Long Integer> Задает максимальное количество одновременных запросов, допускаемое служ бой. Можно указать любое значение от 1 до 4294967295. Ограничение приме няется по поставщику. Примечание. Это значение считается устаревшим, и использовать его не сл едует. Поддерживаемые командлеты: Get-Item -MaxShellsPerUser <Unsigned Long Integer> Задает максимальное количество оболочек, которое любой пользователь мож ет одновременно удаленно открыть на одном компьютере. Если этот парамет р политики включен, по достижении заданного предела пользователь не смо жет открывать новые удаленные оболочки. Если этот параметр политики отк лючен или не задан, по умолчанию ограничение составляет две удаленных о болочки на пользователя. Можно указать любое значение от 0 до 214748364 7. 0 означает неограниченное количество оболочек. Поддерживаемые командлеты: Get-Item, Set-Item -MaxTimeoutMs <Unsigned Long Integer> Задает максимальное время ожидания в миллисекундах, которое может испол ьзоваться для любого запроса, за исключением запросов Pull. Можно указа ть любое значение от 500 до 4294967295. Поддерживаемые командлеты: Get-Item, Set-Item -Name <String> Задает отображаемое имя для сеанса WS-Management. Это имя можно использ овать для идентификации сеанса при использовании других командлетов, на пример Get-PSSession или Enter-PSSession. Имя не обязательно должно быт ь уникальным в рамках компьютера или текущего сеанса. Поддерживаемые командлеты: Get-Item, Set-Item -Name (Plugin) <String> Задает отображаемое имя для подключаемого модуля. Если подключаемый мод уль возвратит ошибку, отображаемое имя будет включено в XML-данные об о шибке, возвращаемые клиентскому приложению. Имя не зависит от локали. Поддерживаемые командлеты: Get-Item, Set-Item -Negotiate <Boolean> Позволяет клиентскому компьютеру использовать проверку подлинности по с хеме Negotiate (проверка подлинности с согласованием). При проверке под линности с согласованием клиент отправляет серверу запрос на проверку п одлинности. Сервер определяет, какой протокол использовать — Kerberos и ли NTLM. Протокол Kerberos выбирается для проверки подлинности учетной записи домена, а NTLM — для учетных записей локального компьютера. В сл учае пользователя домена имя пользователя должно быть указано в формате "домен\имя_пользователя". В случае локального пользователя на серверно м компьютере имя пользователя должно быть указано в формате "имя_сервер а\имя_пользователя". Поддерживаемые командлеты: Get-Item, Set-Item -NetworkDelayMs <Unsigned Long Integer> Задает дополнительное время ожидания клиента в миллисекундах для поправ ки на сетевую задержку. Можно указать любое значение от 500 до 42949672 95. Поддерживаемые командлеты: Get-Item, Set-Item -Password <String> Задает пароль для локальной учетной записи или учетной записи домена. Э тот параметр не может иметь значение NULL. Клиентский компьютер может указывать учетные данные, которые будут испо льзоваться при создании оболочки на компьютере. В случае пользователя д омена имя пользователя должно быть указано в формате "домен\имя_пользов ателя". В случае локального пользователя на серверном компьютере имя по льзователя должно быть указано в формате "имя_сервера\имя_пользователя" . При использовании этой структуры должны быть заполнены и поле имени пол ьзователя, и поле пароля. Ее можно использовать в сочетании со схемами проверки подлинности Basic (обычная), Digest (дайджест-), Negotiate (с согласованием) и Kerberos. При использовании проверки подлинности по сх еме Basic или Digest клиент должен явно указывать учетные данные. Поддерживаемые командлеты: Get-Item, Set-Item -Plugin <> Подключаемые модули WS-Management представляют собой собственные библио теки динамической компоновки (DLL) для подключения к службам WS-Managem ent и расширения их функциональности. API подключаемых модулей WS-Manag ement предоставляет функциональность, позволяющую пользователю разрабат ывать подключаемые модули, путем реализации определенных API для поддер живаемых URI ресурсов и операций. После настройки подключаемых модулей под службу WS-Management (WinRM) или службы IIS подключаемые модули заг ружаются на узел WS-Management или узел служб IIS соответственно. Удале нные запросы передаются входным точкам этих подключаемых модулей для вы полнения операций. Поддерживаемые командлеты: New-Item, Remove-Item -Port <Unsigned Short Integer> Задает TCP-порт, для которого создан данный прослушиватель. Можно указа ть любое значение от 1 до 65535. Поддерживаемые командлеты: Get-Item, Set-Item -Resource <String> Задает конечную точку, которая представляет определенный тип операции у правления или значение. Служба предоставляет один или несколько ресурсо в, и некоторые ресурсы могут иметь более одного экземпляра. Ресурс упра вления сходен с классом WMI или с таблицей базы данных, а экземпляр схо ден с экземпляром класса или со строкой в таблице. Например, класс Win3 2_LogicalDisk представляет собой ресурс, а Win32_LogicalDisk="C:\" — ко нкретный экземпляр ресурса. Универсальный идентификатор ресурса (URI) состоит из префикса и пути к ресурсу. Пример: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalD isk http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor Поддерживаемые командлеты: Get-Item, Set-Item -ResourceURI <String> Задает универсальный идентификатор ресурса (URI), который идентифицируе т конкретный тип ресурса, например диск или процесс, на компьютере. URI состоит из префикса и пути к ресурсу. Пример: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_LogicalD isk http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_NumericSensor Поддерживаемые командлеты: Get-Item -RootSDDL <String> Задает строку в формате языка определения дескрипторов безопасности (SD DL) для записи управления доступом. Эта строка определяет параметры без опасности, используемые для авторизации доступа к заданному URI ресурса . Поддерживаемые командлеты: Get-Item, Set-Item -SDKVersion <String> Задает версию комплекта SDK подключаемых модулей WS-Management SDK. Ед инственным допустимым значением является 1. Поддерживаемые командлеты: Get-Item, Set-Item -Shell <String> Задает строку процесса для пользовательской оболочки. Можно указывать п еременные среды. Поддерживаемые командлеты: Get-Item, Set-Item -ShellTimeout <Unsigned Long Integer> Задает время до закрытия оболочки при отсутствии активности. Укажите в ремя ожидания в миллисекундах. Поддерживаемые командлеты: Get-Item, Set-Item -Subject <String> Задает объект, идентифицируемый сертификатом. Поддерживаемые командлеты: Get-Item -SupportsOptions <Boolean> Указывает, поддерживает ли подключаемый модуль использование параметров , передаваемых в заголовке wsman:OptionSet сообщения запроса. Поддерживаемые командлеты: Get-Item, Set-Item -Transport <String> Задает протокол, используемый для отправки и получения запросов и ответ ов протокола WS-Management. Возможные значения — HTTP и HTTPS. Примечание. Значение параметра Transport задается при создании прослуши вателя. Поддерживаемые командлеты: Get-Item -TrustedHosts <String> Перечень удаленных компьютеров, подключенных к локальному компьютеру по средством доверительного сетевого соединения. Разрешается отправлять з апросы на содержащиеся в этом списке компьютеры, когда используемые схе ма проверки подлинности и протокол не позволяют клиенту проверить подли нность службы (например, при проверке подлинности по схеме Basic по про токолу HTTP). Если сервер присутствует в списке TrustedHosts, клиент не проверяет под линность удостоверения сервера, что делает его уязвимым для атак "злоум ышленник в середине". Вносить имена узлов в этот список следует только когда сетевое соединение защищено от пользователей-злоумышленников, на пример в среде домена. Указываемые имена узлов могут быть DNS-именами или IP-адресами. Допусти мы следующие значения. -- пустой список: доверенные узлы отсутствуют. -- Звездочка "*": все узлы являются доверенными. Список шаблонов имен узлов, разделенных запятыми (,). Шаблон имени узла должен иметь следующий формат: -- Строка, которая начинается с подстановочного знака (*). Строка должн а содержать не менее двух символов. Все узлы с заданным суффиксом являю тся доверенными. -- Строка, которая заканчивается подстановочным знаком (*). Строка долж на содержать не менее двух символов. Все узлы с заданным префиксом явля ются доверенными. -- Все доверенные имена NetBIOS (например, строки, не содержащие точки) . -- Строка без подстановочного знака (*): узел, имя которого совпадает с о строкой, является доверенным. Примечание. При задании значения параметра TrustedHosts с помощью коман длета Set-Item командлет Set-Item поддерживает дополнительный параметр -Concatenate. Приведенный ниже пример добавляет новое значение (*.doma in2.com) к старым значениям, сохраненным в параметре TrustedHost: Set-Item .\TrustedHosts *.domain2.com -Concatenate -Force Поддерживаемые командлеты: Clear-Item, Get-Item, Set-Item -URI <String> Определяет URI, доступ к которому авторизуется на основании значения па раметра Sddl. Поддерживаемые командлеты: Get-Item -URLPrefix <String> Префикс URL-адреса, по которому принимаются HTTP- или HTTPS-запросы. Пр едставляет собой строку, содержащую только символы a-z, A-Z, 9-0, знак подчеркивания (_) и обратную косую черту (/). Строка не должна начинать ся с обратной косой черты (/) или заканчиваться ей. Например, если имя компьютера — "SampleComputer", клиент WS-Management будет указывать в а дресе назначения http://SampleMachine/URLPrefix. Поддерживаемые командлеты: Clear-Item, Get-Item, Set-Item -UserName <String> Задает имя пользователя для локальной учетной записи или учетной записи домена. Этот параметр не может иметь значение NULL. Клиент может указывать учетные данные, которые будут использоваться при создании оболочки на компьютере. В случае учетной записи домена имя по льзователя должно быть указано в формате "домен\имя_пользователя". В сл учае локальной учетной записи на серверном компьютере имя пользователя должно быть указано в формате "имя_сервера\имя_пользователя". При использовании этой структуры должны быть заполнены и поле имени пол ьзователя, и поле пароля. Ее можно использовать в сочетании со схемами проверки подлинности Basic (обычная), Digest (дайджест-), Negotiate (с согласованием) и Kerberos. При использовании проверки подлинности по сх еме Basic или Digest клиент должен явно указывать учетные данные. Поддерживаемые командлеты: Get-Item, Set-Item -Value <String> Задает значение параметра инициализации, который представляет собой пре дназначенное для данного подключаемого модуля значение, используемое дл я задания параметров конфигурации. Поддерживаемые командлеты: Get-Item, Set-Item -XMLRenderingType <String> Задает формат, в котором XML-данные передаются подключаемым модулям пос редством объекта WSMAN_DATA. Допустимые значения: Text: входящие XML-данные содержатся в структуре WSMAN_DATA_TYPE_TEXT, которая представляет XML в виде буфера памяти PCWSTR. XMLReader: входящие XML-данные содержатся в структуре WSMAN_DATA_TYPE_W S_XML_READER, которая представляет XML в виде объекта XmlReader, опреде ленного в файле заголовка WebServices.h. Поддерживаемые командлеты: Get-Item, Set-Item -xmlns <String> Строка, задающая унифицированное имя ресурса (URN), которое однозначно определяет пространство имен. Поддерживаемые командлеты: Get-Item, Set-Item -lang <String> Строка, задающая язык или язык и регион, где язык и регион разделены де фисом. Поддерживаемые командлеты: Get-Item, Set-Item -HTTP <Short Integer> Задает порт, используемый клиентом для подключений по протоколу HTTP. П о умолчанию для HTTP-подключений используется порт 80. Можно указать лю бое значение от 1 до 65535. Поддерживаемые командлеты: Get-Item, Set-Item -HTTPS <Short-Integer> Задает порт, используемый клиентом для подключений по протоколу HTTPS. По умолчанию для HTTPS-подключений используется порт 443. Можно указать любое значение от 1 до 65535. Поддерживаемые командлеты: Get-Item, Set-Item -MaxShellRunTime <Unsigned Long Integer> Примечание. Это значение считается устаревшим и более не используется. Поддерживаемые командлеты: Get-Item -MaxShellRunTime <Unsigned Long Integer> Примечание. Это значение считается устаревшим, и использовать его не сл едует. Поддерживаемые командлеты: Get-Item ПРИМЕЧАНИЯ ССЫЛКИ ПО ТЕМЕ
about_aliases РАЗДЕЛ about_aliases КРАТКОЕ ОПИСАНИЕ Описывает использование альтернативных имен командлетов и команд в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Псевдоним представляет собой альтернативное имя командлета или элемента команды, например, функции, скрипта, файла или исполняемого файла. Псевдоним можно использовать вместо имени команды в любых командах Windows PowerShell. Чтобы создать псевдоним, используйте командлет New-Alias. Например, следующая команда создает псевдоним "gas" для командлета Get- AuthenticodeSignature: new-alias -name gas -value Get-AuthenticodeSignature После создания псевдонима командлета можно использовать этот псевдоним вместо имени командлета. Например, для получения подписи Authenticode для файла SqlScript.ps1 введите следующую команду: get-authenticodesignature sqlscript.ps1 Также можно ввести следующую команду: gas sqlscript.ps1 Если для Microsoft Office Word создать псевдоним "word", то можно будет вводить слово "word" вместо следующей команды: "c:\program files\microsoft office\office11\winword.exe" ВСТРОЕННЫЕ ПСЕВДОНИМЫ В Windows PowerShell имеется набор встроенных псевдонимов, в том числе "cd" и "chdir", которые являются псевдонимами командлета Set-Location, а также "ls" и "dir" для командлета Get-ChildItem. Для получения всех псевдонимов, доступных на компьютере, в том числе встроенных, введите следующую команду: get-alias КОМАНДЛЕТЫ ДЛЯ РАБОТЫ С ПСЕВДОНИМАМИ В Windows PowerShell имеются следующие командлеты, предназначенные для работы с псевдонимами. - Get-Alias. Получает все псевдонимы в текущем сеансе. - New-Alias. Создает новый псевдоним. - Set-Alias. Создает или изменяет существующий псевдоним. - Export-Alias. Экспортирует один или несколько псевдонимов в файл. - Import-Alias. Импортирует файл псевдонимов в Windows PowerShell. Чтобы получить дополнительные сведения о командлетах, введите следующую команду: get-help <имя_командлета> -detailed Например, введите следующую команду: get-help export-alias -detailed СОЗДАНИЕ ПСЕВДОНИМА Чтобы создать новый псевдоним, используйте командлет New-Alias. Например, чтобы создать псевдоним "gh" для командлета Get-Help, введите следующую команду: new-alias -name gh -value get-help Этот псевдоним можно использовать в командах так же, как и полное имя командлета; псевдоним также можно указываться с параметрами. Например, чтобы получить подробную справку о командлете Get-WmiObject, введите следующую команду: get-help get-wmiobject -detailed Также можно ввести следующую команду: gh get-wmiobject -detailed СОХРАНЕНИЕ ПСЕВДОНИМОВ Созданные псевдонимы сохраняются только в текущем сеансе. Для использования псевдонимов в другом сеансе добавьте нужные псевдонимы в свой профиль Windows PowerShell. Также можно использовать командлет Export-Alias для сохранения псевдонимов в файл. Чтобы получить дополнительные сведения, введите следующую команду: get-help about_profile ПОЛУЧЕНИЕ ПСЕВДОНИМОВ Для получения всех псевдонимов в текущем сеансе, включая встроенные псевдонимы, псевдонимы в текущем пользовательском профиле Windows PowerShell, а также псевдонимы, созданные в текущем сеансе, введите следующую команду: get-alias Чтобы получить определенные псевдонимы, используйте параметр Name командлета Get-Alias. Например, чтобы получить псевдонимы, которые начинаются с буквы "p", введите следующую команду: get-alias -name p* Для получения псевдонимов определенного элемента, используйте параметр Definition. Например, для получения псевдонимов командлета Get-ChildItem, введите следующую команду: get-alias -definition Get-ChildItem АЛЬТЕРНАТИВНЫЕ ИМЕНА КОМАНД С ПАРАМЕТРАМИ Псевдоним можно назначить командлету, скрипту, функции или исполняемому файлу. Однако нельзя присвоить псевдоним команде и ее параметрам. Например, можно присвоить псевдоним командлету Get-EventLog, но при этом нельзя присвоить псевдоним команде "get-eventlog -logname system". Однако можно создать функцию, которая включает эту команду. Для создания функции введите слово "function", а за ним - имя функции. Введите команду и заключите ее в фигурные скобки ({ }). Например, следующая команда создает функцию syslog. Эта функция представляет команду "get-eventlog -logname system". function syslog {get-eventlog -logname system} Теперь вместо длинной команды можно вводить одно слово "syslog". Кроме того, для функции syslog можно создавать псевдонимы. Чтобы получить дополнительные сведения о функциях, введите следующую команду: get-help about_functions ОБЪЕКТЫ ПСЕВДОНИМОВ Псевдонимы Windows PowerShell представлены объектами, которые являются экземплярами класса System.Management.Automation.AliasInfo. Дополнительные сведения об объектах этого типа см. в разделе "Класс AliasInfo" в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=143644. Для просмотра свойств и методов объектов псевдонимов сначала получите псевдонимы. Затем передайте их по конвейеру командлету Get-Member. Пример: get-alias | get-member Для просмотра значений свойств определенного псевдонима, например "dir", получите псевдоним. Затем передайте его по конвейеру командлету Format-List. Например, следующая команда получает псевдоним "dir". Затем команда передает псевдоним по конвейеру командлету Format-List. Наконец, команда использует параметр -property командлета Format-List с подстановочным знаком (*) для отображения всех свойств псевдонима "dir". Эти задачи выполняются с помощью следующей команды: get-alias -name dir | format-list -property * ПОСТАВЩИК ПСЕВДОНИМОВ WINDOWS POWERSHELL В состав Windows PowerShell входит поставщик псевдонимов Alias. Поставщик Alias позволяет просматривать псевдонимы Windows PowerShell так, как если бы они находились на диске файловой системы. Поставщик Alias открывает доступ к диску с именем "Alias:". Для перехода на диск "Alias:" введите следующую команду: set-location alias: Для просмотра содержимого диска введите следующую команду: get-childitem Для просмотра содержимого другого диска Windows PowerShell укажите в начале пути имя диска. Не забудьте поставить двоеточие (:) после имени диска. Пример: get-childitem -path alias: Для получения сведений об определенном псевдониме введите имя диска и имя псевдонима. Можно также указать шаблон имен. Например, для получения всех псевдонимов, которые начинаются с буквы "p", введите следующую команду: get-childitem -path alias:p* Чтобы получить дополнительные сведения о поставщике Alias Windows PowerShell, введите следующую команду: get-help alias-psprovider СМ. ТАКЖЕ new-alias get-alias set-alias export-alias import-alias get-psprovider get-psdrive about_functions about_profiles about_providers about_Arithmetic_Operators РАЗДЕЛ about_Arithmetic_Operators КРАТКОЕ ОПИСАНИЕ Описание арифметических операторов, используемых в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Арифметические операторы используются для вычисления числовых значений. Можно использовать один или несколько арифметических операторов для сложения, вычитания, умножения и деления значений, а также для вычисления остатка при операции деления. Кроме того, оператор сложения (+) и оператор умножения (*) также используются при работе со строками, массивами и хэш-таблицами. Оператор сложения объединяет введенные данные. Оператор умножения возвращает несколько копий входных данных. В арифметическом операторе могут даже использоваться объекты различных типов. Метод, используемый для вычисления результата оператора, определяется типом самого левого объекта в выражении. В Windows PowerShell поддерживаются следующие арифметические операторы. Оператор Описание Пример -------- ----------- ------- + Сложение целых чисел; объединение 6+2 строк, массивов и хэш-таблиц. "имя" + "файла" - Вычитание одного значения 6-2 из другого. (get-date).date - - Смена знака числа. -6+2 -4 * Умножение целых чисел; копирование 6*2 строк и массивов указанное "w" * 3 количество раз. / Деление одного значения на другое. 6/2 % Возврат остатка при операции деления. 7%2 ПРИОРИТЕТ ОПЕРАТОРОВ Windows PowerShell обрабатывает арифметические операторы в следующем порядке. Скобки () - (смена знака) *, /, % +, - (вычитание). Windows PowerShell обрабатывает выражения слева направо с учетом правил приоритета. В следующих примерах показано влияние правил приоритета на результат вычислений. C:\PS> 3+6/3*4 11 C:\PS> 10+4/2 12 C:\PS> (10+4)/2 7 C:\PS> (3+3)/ (1+1) 3 Порядок, в котором Windows PowerShell вычисляет результат выражений, может отличаться от других языков программирования и языков скриптов, с которыми вы работали. В следующем примере показан сложный оператор назначения. C:\PS> $a = 0 C:\PS> $b = 1,2 C:\PS> $c = -1,-2 C:\PS> $b[$a] = $c[$a++] C:\PS> $b 1 -1 В этом примере выражение $a++ вычисляется до выражения $c[$a++]. При вычислении $a++ значение переменной $a изменяется. Переменная $a в выражении $b[$a] равняет 1, а не 0, поэтому оператор назначает значение $b[1], а не $b[0]. СЛОЖЕНИЕ И УМНОЖЕНИЕ НЕЧИСЛОВЫХ ТИПОВ Можно складывать числа, строки, массивы и хэш-таблицы. Также можно умножать числа, строки и массивы. Однако, хэш-таблицы не могут использоваться в операторе умножения. При сложении строк, массивов или хэш-таблиц элементы объединяются. При объединении коллекций, например массивов или хэш-таблиц, создается новый объект, в котором содержатся объекты из обеих коллекций. При попытке объединения хэш-таблиц, содержащих общий ключ, операция завершается неудачей. Например, следующая команда создает два массива и выполняет их сложение: C:\PS> $a = 1,2,3 C:\PS> $b = "A","B,"C" C:\PS> $a + $b 1 2 3 A B C Можно также выполнять арифметические операции над объектами различных типов. Операция, которую попытается выполнить Windows PowerShell, определяется типом платформы Microsoft .NET Framework самого левого объекта, участвующего в операции. Windows PowerShell пытается преобразовать все объекты, участвующие в операции, в тип платформы Microsoft .NET Framework первого объекта. Если преобразование объектов завершается успешно, выполняется операция, соответствующая типу платформы Microsoft .NET Framework первого объекта. Если преобразовать любой из объектов не удается, операция завершается неудачей. В следующем примере показано использование операторов сложения и умножения в операциях с объектами различных типов. C:\PS> "файл" + 16 файл16 C:\PS> $array = 1,2,3 C:\PS> $array + 16 1 2 3 16 C:\PS> $array + "файл" 1 2 3 файл C:\PS> "файл" * 3 файлфайлфайл Поскольку метод, используемый для вычисления результата оператора, определяется типом самого левого объекта в выражении, сложение и умножение в Windows PowerShell не являются строго коммутативными. Например, (a + b) не всегда равняется (b + a), а (a * b) не всегда равняется (b * a). Этот принцип показан в следующем примере. C:\PS> "файл" + 2 файл2 C:\PS> 2 + "файл" Не удается преобразовать значение "файл" в тип "System.Int32". Ошибка: "Неверный формат строки ввода." В строке:1 знак:4 + 2 + < "файл" C:\PS> "файл" * 3 файлфайлфайл C:\PS> 3 * "файл" Не удается преобразовать значение "файл" в тип "System.Int32". Ошибка: "Неверный формат строки ввода." В строке:1 знак:4 + 3 * < "файл" Обработка хэш-таблиц выполняется несколько по-другому. Допускается сложение хэш-таблиц. Также можно добавить хэш-таблицу к массиву. Тем не менее, нельзя добавить переменную любого другого типа к хэш-таблице. В следующих примерах показано сложение хэш-таблиц друг с другом и с другими объектами. C:\PS> $hash1 = @{a=1; b=2; c=3} C:\PS> $hash2 = @{c1="Server01"; c2="Server02"} C:\PS> $hash1 + $hash2 Имя Значение ---- ----- c2 Server02 1 b 2 c1 Server01 3 C:\PS> $hash1 + 2 Можно добавить хеш-таблицу только к другой хеш-таблице. В строке:1 знак:9 + $hash1 + < 2 C:\PS> 2 + $hash1 Не удается преобразовать "System.Collections.Hashtable" в "System.Int32". В строке:1 знак:4 + 2 + < $hash1 В следующем примере показано, как добавить хэш-таблицу к массиву. Вся хэш-таблица добавляется к массиву как один объект. C:\PS> $array = 1,2,3 C:\PS> $array + $hash1 1 2 3 Имя Значение ---- ----- a 1 b 2 c 3 C:\PS> $sum = $array + $hash1 C:\PS> $sum.count 4 C:\PS> $sum[3] Имя Значение ---- ----- a 1 b 2 c 3 PS C:\ps-test> $sum + $hash2 1 2 3 Имя Значение ---- ----- a 1 b 2 c 3 c2 Server02 В следующем примере показано, что нельзя складывать хэш-таблицы, содержащие общий ключ. C:\PS> $hash1 = @{a=1; b=2; c=3} C:\PS> $hash2 = @{c="red"} C:\PS> $hash1 + $hash2 Неверный аргумент для оператора '+': Элемент уже был добавлен. Ключ в словаре: 'c' Добавляемый ключ: 'c'. В строке:1 знак:9 + $hash1 + < $hash2 Хотя операторы сложения очень удобны, используйте операторы назначения для добавления элементов в хэш-таблицы и массивы. Дополнительные сведения см. в разделе about_assignment_operators. В следующих примерах показано использование оператора назначения += для добавления элементов в массив: C:\PS> $array 1 2 3 C:\PS> $array + "файл" 1 2 3 файл C:\PS> $array 1 2 3 C:\PS> $array += "файл" C:\PS> $array 1 2 3 файл C:\PS> $hash1 Имя Значение ---- ----- a 1 b 2 c 3 C:\PS> $hash1 += @{e = 5} C:\PS> $hash1 Имя Значение ---- ----- a 1 b 2 e 5 c 3 Windows PowerShell автоматически выбирает числовой тип платформы .NET Framework, который позволит оптимально представить результат без снижения точности. Пример: C:\PS> 2 + 3.1 5.1 C:\PS> (2). GetType().FullName System.Int32 C:\PS> (2 + 3.1).GetType().FullName System.Double Если результат операции оказывается слишком велик для определенного типа, то тип результата расширяется для размещения результата (см. следующий пример). C:\PS> (512MB).GetType().FullName System.Int32 C:\PS> (512MB * 512MB).GetType().FullName System.Double Тип результата не обязательно совпадает с типом одного из операндов. В следующем примере невозможно преобразовать отрицательное значение в целое без знака, а целое число без знака слишком велико, чтобы преобразовать его в Int32. C:\PS> ([int32]::minvalue + [uint32]::maxvalue).gettype().fullname System.Int64 В этом примере Int64 позволяет разместить значения обоих типов. Исключением является тип System.Decimal. Если любой из операндов принадлежит к типу Decimal, результата также будет принадлежать к типу Decimal. Если результат окажется слишком велик для типа Decimal, он не будет преобразован в тип Double. Вместо этого будет выдано сообщение об ошибке. C:\PS> [Decimal]::maxvalue 79228162514264337593543950335 C:\PS> [Decimal]::maxvalue + 1 Значение слишком велико или слишком мало для типа Decimal. В строке:1 знак:22 + [Decimal]::maxvalue + < 1 АРИФМЕТИЧЕСКИЕ ОПЕРАТОРЫ И ПЕРЕМЕННЫЕ Арифметические операторы могут также использоваться с переменными. Операторы используют значения переменных. В следующих примерах показано использование арифметических операторов с переменными. C:\PS> $intA = 6 C:\PS> $intB = 4 C:\PS> $intA + $intB 10 C:\PS> $a = "Windows " C:\PS> $b = "PowerShell " C:\PS> $c = 2 C:\PS> $a + $b + $c Windows PowerShell 2 АРИФМЕТИЧЕСКИЕ ОПЕРАТОРЫ И КОМАНДЫ Обычно арифметические операторы используются в выражениях с числами, строками и массивами. Однако, арифметические операторы могут также использоваться с объектами, возвращаемыми командами, и со свойствами этих объектов. В следующих примерах показано, как использовать арифметические операторы в выражениях с командами Windows PowerShell. C:\PS> get-date Среда, 02 января 2008 г., 13:28:42 C:\PS> $day = new-timespan -day 1 C:\PS> get-date + $day Четверг, 03 января 2008 г., 13:34:52 C:\PS> get-process | where {($_.ws * 2) -gt 50mb} Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 1896 39 50968 30620 264 1,572.55 1104 explorer 12802 78 188468 81032 753 3,676.39 5676 OUTLOOK 660 9 36168 26956 143 12.20 988 powershell 561 14 6592 28144 110 1,010.09 496 services 3476 80 34664 26092 234 ...45.69 876 svchost 967 30 58804 59496 416 930.97 2508 WINWORD ПРИМЕРЫ В следующих примерах показано, как использовать арифметические операторы в Windows PowerShell. C:\PS> 1 + 1 2 C:\PS> 1 - 1 0 C:\PS> -(6 + 3) -9 C:\PS> 6 * 2 12 C:\PS> 7 / 2 3.5 C:\PS> 7 % 2 1 C:\PS> w * 3 www C:\PS> 3 * "w" Не удается преобразовать значение "w" в тип "Systm.Int32". Ошибка: "Неверный формат строки ввода." В строке:1 знак:4 + 3 * < "w" PS C:\ps-test> "Windows" + " " + "PowerShell" Windows PowerShell PS C:\ps-test> $a = "Windows" + " " + "PowerShell" PS C:\ps-test> $a Windows PowerShell C:\PS> $a[0] W C:\PS> $a = "TestFiles.txt" C:\PS> $b = "C:\Logs\" C:\PS> $b + $a C:\Logs\TestFiles.txt C:\PS> $a = 1,2,3 C:\PS> $a + 4 1 2 3 4 C:\PS> $servers = @{0 = "LocalHost"; 1 = "Server01"; 2 = "Server02"} C:\PS> $servers + @{3 = "Server03"} Имя Значение ---- ----- 3 Server03 2 Server02 1 Server01 0 LocalHost C:\PS> $servers Имя Значение ---- ----- 2 Server02 1 Server01 0 LocalHost C:\PS> $servers += @{3 = "Server03"} #Используйте оператор назначения C:\PS> $servers Имя Значение ---- ----- 3 Server03 2 Server02 1 Server01 0 LocalHost СМ. ТАКЖЕ about_arrays about_assignment_operators about_comparison_operators about_hash_tables about_operators about_variables Get-Date New-TimeSpan about_arrays РАЗДЕЛ about_Arrays КРАТКОЕ ОПИСАНИЕ Описание компактной структуры размещения элементов данных ПОЛНОЕ ОПИСАНИЕ Массив представляет собой структуру данных для хранения набора элементов данных одного типа. Оболочка Windows PowerShell поддерживает такие элементы данных, как string, int (32-разрядное целое число), long (64-разрядное целое число), bool (логическое значение), byte, а также другие типы объектов платформы Microsoft .NET. СОЗДАНИЕ И ИНИЦИАЛИЗАЦИЯ МАССИВА Чтобы создать и инициализировать массив, присвойте несколько значений переменной. Значения, хранящиеся в массиве, разделяются запятой и отделены от имени переменной оператором присваивания (=). Например, чтобы создать и инициализировать массив с именем $A, который содержит семь числовых значений (типа int), 22, 5, 10, 8, 12, 9 и 80, введите следующую команду: $A = 22,5,10,8,12,9,80 Можно также создать и инициализировать массив, используя оператор диапазона (..). Например, чтобы создать и инициализировать массив с именем "$B", в котором содержатся значения от 5 до 8, введите следующую команду: $B = 5..8 В результате в массиве $B содержатся четыре значения: 5, 6, 7 и 8. Если тип данных не указан, то Windows PowerShell создает массив как массив объектов (тип: object[]). Для определения типа данных массива используйте метод GetType(). Например, чтобы определить тип данных массива $a, введите следующую команду: $a.gettype() Для создания массива с жестко заданным типом, то есть такой массив, в котором содержатся значения только определенного типа, приведите переменную массива к типу, например, string[], long[] или int32[]. Чтобы привести массив к типу, укажите перед именем переменной тип массива в квадратных скобках. Например, чтобы создать массив 32-разрядных целых чисел с именем $ia, содержащий четыре числа (1500, 2230, 3350 и 4000), введите следующую команду: [int32[]]$ia = 1500,2230,3350,4000 В результате, в массиве $ia могут содержаться только целочисленные значения. Можно создавать массивы, которые соответствуют любому типу, поддерживаемому в платформе Microsoft .NET. Например, объекты, которые извлекаются командлетом Get-Process и обозначают процессы, принадлежат к типу System.Diagnostics.Process. Для создания массив объектов процессов с жестко заданным типом, введите следующую команду: [Diagnostics.Process[]]$zz = Get-Process Для заполнения массива могут использоваться выходные данные командлета, функции или инструкции. Например, следующая инструкция создает массив, в котором содержатся запушенные на текущем компьютере процессы, имена которых начинаются с букв "co". $LocalProcesses = get-process co* Если инструкция получает только один процесс, переменная $LocalProcesses не будет являться массивом. Чтобы обеспечить создание массива в результате выполнения команды, используйте оператор подвыражения массива (@), как показано в следующем примере: $LocalProcesses = @(get-process co*) Даже если команда возвращает один процесс, переменная $LocalProcesses будет являться массивом. Даже если в массиве содержится только один член, его можно обрабатывать как любой другой массив. Например, в массив можно добавлять другие объекты. Дополнительные сведения см. в разделе about_Operators. ЧТЕНИЕ МАССИВА Обращение к массиву происходит с помощью имени его переменной, например, $A или $a. В оболочке Windows PowerShell регистр не учитывается. Чтобы отобразить все элементы массива, введите его имя. Пример: $a Обращение к элементам массива происходит с помощью указания индекса элемента, начиная с 0. Номер индекса заключается в квадратные скобки. Например, чтобы отобразить первый элемент массива $a, введите следующую команду: $a[0] Чтобы отобразить третий элемент массива $a, введите следующую команду: $a[2] Отрицательные величины обозначают отсчет с конца массива. Например, индекс "-1" относится к последнему элементу массива. Чтобы отобразить три последние элемента массива, введите следующую команду: $a[-3..-1] Однако при использовании такого обозначения необходимо соблюдать осторожность. $a[0..-2] Эта команда не ссылается на все элементы массива кроме последнего. В этом примере задается обращение к первому, последнему и предпоследнему элементу. Чтобы отобразить подмножество всех значений в массиве, можно использовать оператор диапазона. Например, чтобы отобразить элементы данных в позициях от 1 до 3, введите: $a[1..3] Чтобы скомбинировать обращение к диапазону элементов со списком элементов массива, используйте оператор "+". Например, чтобы отобразить элементы данных в позициях 0, 2, и от 4 до 6, введите следующую команду: $a[0,2+4..6] Чтобы определить количество элементов в массиве, используйте диапазон совместно со свойством массива lentgh. Например, чтобы отобразить элементы массива от позиции 2 до конца массива, введите следующую команду: $a[2..($a.length-1)] Из длины массива вычитается единица, поскольку отсчет индекса начинается с 0. Поэтому в массиве из трех элементов (1, 2 и 3) индекс третьего элемента будет равен 2, что на единицу меньше, чем фактическая длина массива. Для обращения к элементам массива можно также использовать циклические конструкции, например, циклы Foreach, For и While. Например, чтобы использовать цикл Foreach для отображения элементов массива $a, введите следующую команду: foreach ($element in $a) {$element} Цикл Foreach по очереди перебирает элементы массива и возвращает их значения до тех пор, пока не дойдет до конца массива. Цикл For используется при увеличении счетчиков для анализа элементов массива. Например, чтобы вывести все значения элементов массива с помощью цикла For, введите следующую команду: for ($i = 0; $i -le ($a.length - 1); $i += 2) {$a[$i]} Цикл While используется для отображения элементов массива до тех пор, пока истинно заданное условие. Например, чтобы отобразить элементы массива $a, пока индекс массива меньше 4, введите следующую команду: $i=0 while($i -lt 4) {$a[$i]; $i++} Дополнительные сведения о свойствах и методах массива, например, о свойстве Length и методе SetValue, используйте параметр InputObject командлета Get-Member. При передаче массива по конвейеру командлету Get-Member этот командлет выводит сведения об объектах, содержащихся в массиве. При использовании параметра InputObject командлет выводит сведения о массиве. Для получения сведений о свойствах и методах массива $a введите следующую команду: get-member -inputobject $a ОПЕРАЦИИ С МАССИВОМ Можно изменять элементы массива, добавлять элемент к массиву, а также объединять значения двух массивов в третьем массиве. Чтобы изменить значение конкретного элемента массива, укажите имя массива и индекс элемента, который необходимо изменить, а затем используйте оператор присваивания (=), чтобы указать новое значение элемента. Например, чтобы установить 10 в качестве значения второго элемента массива $a (индекс 1), введите следующую команду: $a[1] = 10 Чтобы изменить значение, можно также использовать метод массива SetValue. В следующем примере второе значение массива $a (индекс 1) изменяется на значение 500: $a.SetValue(500,1) Можно добавить элемент к существующему массиву с помощью оператора "+=". С помощью этого оператора происходит добавление существующего значения. Когда этот оператор используется по отношению к элементу массива, он увеличивает значение элемента. Когда этот оператор используется по отношению к самому массиву, то в массив добавляется значение. Например, чтобы добавить элемент со значением 200 в массив $a, введите следующую команду: $a += 200 Удаление элементов из массива является непростой процедурой, однако можно создать новый массив, который содержит только выбранные элементы существующего массива. Например, чтобы создать массив $t, содержащий все элементы массива $a кроме значения с индексом 2, введите следующую команду: $t = $a[0,1 + 3..($a.length - 1)] Чтобы объединить два массива в один, используйте оператор "+". В следующем примере создаются два массива; они объединяются, и затем отображается результирующий объединенный массив: $x = 1,3 $y = 5,9 $z = $x + $y В результате массив $z содержит значения 1, 3, 5 и 9. Чтобы удалить массив, используйте командлет Remove-Item для удаления переменной, которая содержит массив. Следующая команда указывает элемент "a" на диске Variable:. remove-item variable:a (Чтобы получить дополнительные сведения о диске Variable:, см. раздел справки "Поставщик Variable".) СМ. ТАКЖЕ about_Assignment_Operators about_Hash_Tables about_Operators about_For about_Foreach about_While about_Assignment_Operators РАЗДЕЛ about_assignment_operators КРАТКОЕ ОПИСАНИЕ Описание использования операторов для присваивания значений переменным. ПОЛНОЕ ОПИСАНИЕ Операторы присваивания используются для назначения одного или нескольких значений переменной. Они могут выполнять числовые операции со значениями перед операцией назначения. Windows PowerShell поддерживает следующие операторы присваивания. Оператор Описание ------- ----------- = Назначает переменной указанное значение. += Увеличивает значение переменной на указанное значение или добавляет указанное значение к текущему значению переменной. -= Вычитает указанное значение из текущего значения переменной. *= Умножает значение переменной на указанное значение или добавляет указанное значение к текущему значению переменной. /= Делит значение переменной на указанное значение. %= Делит значение переменной на указанное значение и назначает переменной остаток от деления (также известный как "модуль"). ++ Увеличивает значение переменной, назначаемого свойства или элемента массива на 1. -- Уменьшает значение переменной, назначаемого свойства или элемента массива на 1. СИНТАКСИС Операторы присваивания используются со следующим синтаксисом: <выражение_назначения> <оператор_присваивания> <значение> В выражениях назначения могут использоваться переменные и свойства. В качестве значения может использоваться одиночное значение, массив значений, команда, выражение или инструкция. Операторы инкремента и декремента являются унарными операторами. Для каждого из них предусмотрены префиксная и постфиксная версии. <выражение_назначения><оператор> <оператор><выражение_назначения> Выражение назначения должно быть числом или может быть преобразовано в число. ПРИСВАИВАНИЕ ЗНАЧЕНИЙ Переменные представляют собой именованные области памяти, в которых хранятся значения. Можно сохранять значения в переменных с помощью оператора присваивания (=). Новое значение может заменить текущее значение переменной или может быть добавлено к текущему значению переменной. Базовым оператором присваивания является знак равенства (=)(ASCII 61). Например, следующая инструкция присваивает значение "Windows PowerShell" переменной $MyShell. $MyShell = "Windows PowerShell" При попытке присвоить значение переменной Windows PowerShell, которой пока не существует, переменная будет создана. Например, первый из двух следующих операторов присваивания создает переменную $a и присваивает ей значение 6. Второй оператор присваивания присваивает переменной $a значение 12. Первая инструкция создает новую переменную. Вторая инструкция только изменяет ее значение. $a = 6 $a = 12 Переменные Windows PowerShell не принадлежат к определенному типу данных, если только они не были явно приведены к одному из типов данных. Если в переменной содержится только один объект, переменная принимает тип данных этого объекта. Если в переменной содержится коллекция объектов, переменная принадлежит к типу данных System.Object. Следовательно, в коллекцию можно добавлять объекты любого типа. В следующем примере показано, что в переменную можно добавлять объекты процессов, объекты служб, строки и целые числа, ошибки при этом не возникнет. $a = get-process $a += get-service $a += "string" $a += 12 Поскольку оператор присваивания (=) обладает более низким приоритетом, чем оператор конвейера (|), для присваивания результата оператора конвейера переменной не требуются скобки. Например, следующая команда выполняет сортировку служб на компьютере и затем заносит список отсортированных служб в переменную $a. $a = get-service | sort name Кроме того, переменной можно присвоить значение, созданное в результате выполнения инструкции, как показано в следующем примере. $a = if ($b -lt 0) { 0 } else { $b } В этом примере переменной $a присваивается значение 0, если значение $b меньше 0. Если значение $b не меньше нуля, переменной $a присваивается значение переменной $b. ОПЕРАТОР ПРИСВАИВАНИЯ (=) Оператор присваивания (=) используются для присваивания значений переменным. Если у переменной уже есть значение, оператор присваивания (=) заменяет текущее значение переменной без предупреждения. Например, следующая инструкция присваивает переменной $a целочисленное значение 6. $a = 6 Для присвоения переменной значения строки заключите значение строки в двойные кавычки, как показано ниже. $a = "футбол" Для присвоения переменной массива значений (нескольких значений) разделите значения запятыми, как показано ниже. $a= "яблоко", "апельсин", "лимон", "виноград" Для присвоения переменной значения хэш-таблицы используйте стандартный синтаксис хэш-таблицы в Windows PowerShell. Введите знак (@), за которым следуют пары "ключ-значение", разделенные точками с запятой (;) и заключенные в фигурные скобки ({ }). Например, чтобы присвоить переменной $a значение хэш-таблицы, введите следующую команду. $a = @{один=1; два=2; три=3} Для присваивания переменной шестнадцатеричных значений укажите перед значениями префикс "0x". Оболочка Windows PowerShell преобразует шестнадцатеричное значение (0x10) в десятичное (в данном случае - 16) и присваивает это значение переменной $a. Например, чтобы присвоить переменной $a значение 0x10, введите следующую команду. $a = 0x10 Для присвоения переменной значения в экспоненциальной форме, укажите мантиссу, букву "e", а далее степень, в которую нужно возвести 10. Например, чтобы присвоить переменной $a значение 3,1415, умноженное на 1 000, введите следующую команду. $a = 3.1415e3 Оболочка Windows PowerShell также может преобразовывать килобайты (КБ), мегабайты (МБ) и гигабайты (ГБ) в байты. Например, чтобы присвоить переменной $a значение 10 килобайт, введите следующую команду. $a = 10kb ОПЕРАТОР СЛОЖЕНИЯ С ПРИСВАИВАНИЕМ (+=) Оператор сложения с присваиванием (+=) либо увеличивает значение переменной, либо добавляет указанное значение к текущему значению переменной. Действие зависит от того, принадлежит ли переменная к числовому или строковому типу и содержит ли переменная скалярное значение (одно значение) или коллекцию (несколько значений). Оператор += объединяет две операции. Сперва он выполняет операцию сложения, а затем - операцию присваивания. Таким образом, следующие инструкции будут эквивалентны. $a += 2 $a = ($a + 2) Если переменная содержит одно числовое значение, оператор += увеличивает текущее значение переменной на число, указанное справа от оператора. Затем оператор присваивает переменной результирующее значение. В следующем примере показано, как использовать оператор += для увеличения значения переменной. C:\PS> $a = 4 C:\PS> $a += 2 C:\PS> $a 6 Если переменная имеет строковое значение, значение, указанное справа от оператора, будет добавлено к строке. C:\PS> $a = "Windows" C:\PS> $a +- " PowerShell" C:\PS> $a Windows PowerShell Если значением переменной является массив, значение, указанное справа от оператора +=, будет добавлено в массив. Если тип массива не указан явным образом с помощью операции приведения к типу, можно добавлять в массив значения любого типа, например: C:\PS> $a = 1,2,3 C:\PS> $a += 2 C:\PS> $a 1 2 3 2 C:\PS> $a += "String" C:\PS> $a 1 2 3 2 String Если значением переменной является хэш-таблица, значение, указанное справа от оператора +=, будет добавлено в хэш-таблицу. Однако, поскольку единственным типом переменных, которые можно добавлять к хэш-таблице, является другая хэш-таблица, попытки добавить значения любого другого типа закончатся неудачей. Например, следующая команда присваивает переменной $a значение хэш-таблицы. Затем для добавления другой хэш-таблицы к существующей хэш-таблице используется оператор +=, в результате в существующую хэш-таблицу добавляется новая пара "ключ-значение". Эта команда завершается успешно, о чем свидетельствуют выходные данные. C:\PS> $a = @{a = 1; b = 2; c = 3} C:\PS> $a += @{mode = "write"} C:\PS> $a Имя Значение ---- ----- a 1 b 2 mode write c 3 Следующая команда пытается добавить целое число (1) к хэш-таблице в переменной $a. Она завершается неудачей. C:\PS> $a = @{a = 1; b = 2; c = 3} C:\PS> $a += 1 Можно добавить хеш-таблицу только к другой хеш-таблице. В строке:1 знак:6 + $a += < 1 ОПЕРАТОР ВЫЧИТАНИЯ С ПРИСВАИВАНИЕМ (-=) Оператор вычитания с присваиванием (-=) уменьшает значение переменной на значение, указанное справа от оператора. Этот оператор не может использоваться со строковыми переменными, он также не позволяет удалить элемент из коллекции. Оператор -= объединяет две операции. Сперва он выполняет операцию вычитания, а затем - операцию присваивания. Таким образом, следующие инструкции будут эквивалентны. $a -= 2 $a = ($a - 2) В следующем примере показано, как использовать оператор -= для уменьшения значения переменной. C:\PS> $a = 8 C:\PS> $a -= 2 C:\PS> $a 6 Оператор -= можно также использовать для уменьшения значения члена числового массива. Для этого укажите индекс элемента массива, значение которого нужно изменить. В следующем примере значение третьего элемента массива (элемент 2) уменьшается на 1. C:\PS> $a = 1,2,3 C:\PS> $a[2] -= 1. C:\PS> $a 1 2 2 Нельзя использовать оператор -= для удаления значений переменной. Для удаления всех значений, присвоенных переменной, используйте командлеты Clear-Item и Clear-Variable, которые присваивают переменной значение $null или "". $a = $null Для удаления определенного значения из массива используйте синтаксис описания массива, чтобы присвоить значение $null определенному элементу. Например, следующая инструкция удаляет второе значение (индекс = 1) из массива. C:\PS> $a = 1,2,3 C:\PS> $a 1 2 3 C:\PS> $a[1] = $null C:\PS> $a 1 3 Для удаления переменной используйте командлет Remove-Variable. Этот метод удобен, если переменная явно преобразована к определенному типу данных, а вам требуется нетипизированная переменная. Следующая команда удаляет переменную $a. remove-variable a ОПЕРАТОР УМНОЖЕНИЯ С ПРИСВАИВАНИЕМ (*=) Оператор умножения с присваиванием (*=) умножает числовое значение или создает указанное число копий значения строки в переменной. Если переменная содержит одно числовое значение, это значение умножается на число, указанное справа от оператора. В следующем примере показано, как использовать оператор *= для умножения значения переменной. C:\PS> $a = 3 C:\PS> $a *= 4 C:\PS> $a 12 В данном случае оператор *= объединяет две операции. Сперва он выполняет операцию умножения, а затем - операцию присваивания. Таким образом, следующие инструкции будут эквивалентны. $a *= 2 $a = ($a * 2) Если переменная содержит строковое значение, оболочка Windows PowerShell добавит к исходному значению указанное количество исходных строк, как показано ниже. C:\PS> $a = "файл" C:\PS> $a *= 4 C:\PS> $a файлфайлфайлфайл Чтобы умножить один из элементов массива, используйте индекс для указания элемента, который нужно умножить. Например, следующая команда умножает первый элемент массива (индекс = 0) на 2. $a[0] *= 2 ОПЕРАТОР ДЕЛЕНИЯ С ПРИСВАИВАНИЕМ (/=) Оператора деления с присваиванием (/=) делит числовое значение переменной на число, указанное справа от оператора. Этот оператор нельзя использовать со строковыми переменными. Оператор /= объединяет две операции. Сперва он выполняет операцию деления, а затем - операцию присваивания. Таким образом, следующие две инструкции будут эквивалентны. $a /= 2 $a = ($a / 2) Например, в следующей команде оператор /= используется для деления значения переменной. C:\PS> $a = 8 C:\PS> $a /=2 C:\PS> $a 4 Чтобы разделить один из элементов массива, используйте индекс для указания элемента, значение которого нужно изменить. Например, следующая команда делит второй элемент массива (индекс = 1) на 2. $a[1] /= 2 ОПЕРАТОР ВЫЧИСЛЕНИЯ ОСТАТКА С ПРИСВАИВАНИЕМ (%=) Оператор вычисления остатка с присваиванием (%=) делит значение переменной на значение, указанное справа от оператора. Затем оператор %= присваивает переменной остаток от деления (известен как "модуль"). Этот оператор можно использовать в том случае, если переменная содержит одно числовое значение. Этот оператор нельзя использовать в случае, если переменная содержит строку или массив. Оператор %= объединяет две операции. Сначала он выполняет операцию деления и вычисления остатка от деления, а затем присваивает полученный остаток переменной. Таким образом, следующие инструкции будут эквивалентны. $a %= 2 $a = ($a % 2) В следующем примере показано, как использовать оператор %= для сохранения остатка от деления. C:\PS> $a = 7 C:\PS> $a %= 4 C:\PS> $a 3 ОПЕРАТОРЫ ИНКРЕМЕНТА И ДЕКРЕМЕНТА Оператор инкремента (++) увеличивает значение переменной на 1. При использовании оператора инкремента в простой инструкции значение не возвращается. Для просмотра результата операции выведите значение переменной, как показано ниже. C:\PS> $a = 7 C:\PS> ++$a C:\PS> $a 8 Для принудительного возврата значения заключите переменную и оператор в двойные кавычки, как показано ниже. C:\PS> $a = 7 C:\PS> (++$a) 8 Оператор инкремента можно размещать до (префиксная версия) или после (постфиксная версия) переменной. Префиксная версия оператора увеличивает значение переменной на 1 до того, как значение переменной будет использоваться в инструкции, как показано ниже. C:\PS> $a = 7 C:\PS> $c = ++$a C:\PS> $a 8 C:\PS> $c 8 Постфиксная версия оператора увеличивает значение переменной на 1 после того, как значение переменной будет использовано в инструкции. В следующем примере значения переменных $c и $a отличаются, поскольку значение присваивается $c до изменения значения $a. C:\PS> $a = 7 C:\PS> $c = $a++ C:\PS> $a 8 C:\PS> $c 7 Оператор декремента (--) уменьшает значение переменной на 1. Как и для оператора инкремента, при использовании оператора декремента в простой инструкции значение не возвращается. Для возврата значения необходимо использовать скобки, как показано ниже. C:\PS> $a = 7 C:\PS> --$a C:\PS> $a 6 C:\PS> (--$a) 5 Префиксная версия оператора уменьшает значение переменной на 1 до того, как значение переменной будет использоваться в инструкции, как показано ниже. C:\PS> $a = 7 C:\PS> $c = --$a C:\PS> $a 6 C:\PS> $c 6 Постфиксная версия оператора уменьшает значение переменной на 1 после того, как значение переменной будет использовано в инструкции. В следующем примере значения переменных $d и $a отличаются, поскольку значение присваивается $d до изменения значения $a. C:\PS> $a = 7 C:\PS> $d = $a-- C:\PS> $a 6 C:\PS> $d 7 ТИПЫ ПЛАТФОРМЫ MICROSOFT .NET FRAMEWORK По умолчанию, если переменной присвоено только одно значение, это значение определяет тип данных переменной. Например, следующая команда создает переменную целочисленного типа (System.Int32): $a = 6 Для определения типа платформы .NET Framework переменной используйте метод GetType и его свойство FullName, как показано ниже. Не забудьте добавить скобки после имени метода GetType, хотя у вызова метода нет аргументов. C:\PS> $a = 6 C:\PS> $a.gettype().fullname System.Int32 Для создания переменной, содержащей строки, присвойте переменной значение строки. Чтобы указать, что значение является строкой, заключите его в двойные кавычки, как показано ниже. C:\PS> $a = "6" C:\PS> $a.gettype().fullname System.String Если первое присвоенное переменной значение является строкой, Windows PowerShell рассматривает все операции как операции со строкой и приводит новые значения к строковому типу. Это показано в приведенном ниже примере. C:\PS> $a = "файл" C:\PS> $a += 3 C:\PS> $a файл3 Если первое присвоенное значение является целым числом, Windows PowerShell рассматривает все операции как операции с целыми числами и приводит новые значения к целочисленному типу. Это показано в приведенном ниже примере. C:\PS> $a = 6 C:\PS> $a += "3" C:\PS> $a 9 Можно привести новую скалярную переменную к любому типу данных платформы .NET Framework, указав имя типа данных в квадратных скобках перед именем переменной или первым присваиваемым значением. Приведение переменной к типу позволяет определить, данные какого типа можно хранить в переменной. Также можно определить поведение переменной при выполнении с ней различных операций. Например, следующая команда приводит переменную к строковому типу: C:\PS> [string]$a = 27 C:\PS> $a += 3 C:\PS> $a 273 В следующем примере к типу приводится первое значение, а не переменная. $a = [string]27 При приведении переменной к определенному типу принято приводить саму переменную, а не значение. Однако привести существующую переменную к другому типу не удастся, если не удастся преобразовать ее значение к новому типу данных. Чтобы изменить тип данных, необходимо изменить значение переменной, как показано ниже. C:\PS> $a = "строка" C:\PS> [int]$a Не удается преобразовать значение "строка" в тип "System.Int32". Ошибка: "Неверный формат строки ввода." В строке:1 знак:8 + [int]$a C:\PS> [int]$a =3 Кроме того, указание типа данных перед именем переменной блокирует тип этой переменной до тех пор, пока не будет явно указано заменить его на другой тип данных. Если попытаться присвоить значение, несовместимое с текущим типом и при этом явно не заменить тип, оболочка Windows PowerShell выдаст ошибку, как показано в следующем примере. C:\PS> $a = 3 C:\PS> $a = "строка" C:\PS> [int]$a = 3 C:\PS> $a = "строка" Не удается преобразовать значение "строка" в тип "System.Int32". Ошибка: "Неверный формат строки ввода." В строке:1 знак :3 + $a < = "строка" C:\PS> [string]$a = "строка" В оболочке Windows PowerShell типы данных переменных, содержащих несколько элементов в массиве обрабатываются по-другому, чем типы данных переменных, содержащих один элемент. Если тип данных переменной массива не был указан явно, такая переменная всегда принадлежит к типу данных System.Object []. Этот тип данных свойственен массивам. В некоторых случаях можно заменить тип по умолчанию, указав другой тип. Например, следующая команда приводит переменную к типу массива строк: [string []] $a = "один", "два", "три" Переменные Windows PowerShell могут принадлежать к любому типу данных платформы .NET Framework. Кроме того, можно присвоить любой полный тип данных платформы .NET Framework, доступный в текущем процессе. Например, следующая команда указывает тип данных System.Datetime: [system.datetime]$a = "5/31/2005" Переменной будет присвоено значение, которое соответствует типу данных System.Datetime. Переменная $a примет следующее значение: Вторник, 31 мая 2005 г., 0:00:00 ПРИСВАИВАНИЕ ЗНАЧЕНИЙ НЕСКОЛЬКИМ ПЕРЕМЕННЫМ В оболочке Windows PowerShell можно присвоить значения нескольким переменным с помощью одной команды. Первый элемент присваиваемого значения будет присвоен первой переменной, второй элемент будет присвоен второй переменной, третий элемент - третьей переменной и т. д. Например, следующая команда присваивает переменной $a значение 1, переменной $b - значение 2, а переменной $c - значение 3. C:\PS> $a, $b, $c = 1, 2, 3 Если присваиваемое значение содержит больше элементов, чем переменных, все оставшиеся значения будут присвоены последней переменной. Например, следующая команда содержит три переменные и пять значений: $a, $b, $c = 1, 2, 3, 4, 5 При выполнении этой команды Windows PowerShell присвоит переменной $a значение 1, а переменной $b - значение 2. Переменной $c будут присвоены значения 3, 4 и 5. Чтобы присвоить значения переменной $c трем другим переменным, используйте следующий формат: $d, $e, $f = $c Эта команда присваивает переменной $d значение 3, переменной $e - значение 4, а переменной $f - значение 5. Также можно присвоить одно и то же значение нескольким переменным, организовав цепочку. Например, следующая команда присваивает значение "три" всем четырем переменным: $a = $b = $c = $d = "три" КОМАНДЛЕТЫ ДЛЯ РАБОТЫ С ПЕРЕМЕННЫМИ Для присвоения переменной значения, кроме операции присваивания, также используется командлет Set-Variable. Например, в следующей команде командлет Set-Variable используется для присвоения переменной $a в качестве значения массива 1, 2, 3. Set-Variable -name a -value 1, 2, 3 СМ. ТАКЖЕ about_Arrays about_Hash_Tables about_Variables Clear-Variable Remove-Variable Set-Variable about_Automatic_Variables РАЗДЕЛ about_Automatic_Variables КРАТКОЕ ОПИСАНИЕ Описание переменных, в которых хранятся сведения о состоянии оболочки Windows PowerShell. Эти переменные создаются и обрабатываются оболочкой Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Ниже представлен список автоматических переменных Windows PowerShell. $$ Содержит последний токен последней строки, полученной сеансом. $? Содержит состояние выполнения последней операции. TRUE, если последняя операция завершилась успешно, FALSE, если она завершилась с ошибкой. $^ Содержит первый токен последней строки, полученной сеансом. $_ Содержит текущий объект в объекте конвейера. Эту переменную можно использовать в командах, которые должны выполнять действие с каждым объектом или с выбранными объектами в конвейере. $Args Содержит массив необъявленных параметров и (или) значений параметров, которые передаются функции, скрипту или блоку скрипта. При создании функции можно объявить параметры с помощью ключевого слова param или путем добавления списка параметров, разделенных запятыми, в скобках после имени функции. $ConsoleFileName Содержит путь к файлу консоли (PSC1), использовавшемуся в рамках сеанса последним. Значение этой переменной устанавливается при запуске Windows PowerShell с параметром PSConsoleFile или при использовании командлета Export-Console для экспорта имен оснасток в файл консоли. При использовании командлета Export-Console без параметров он автоматически обновляет файл консоли, который использовался во время текущего сеанса последним. Это автоматическую переменную можно использовать для определения, какой файл будет обновляться. $Error Содержит массив объектов ошибок, представляющих последние обнаруженные ошибки. Последняя ошибка - первый объект ошибки в массиве ($Error[0]). $Event Содержит объект PSEventArgs, представляющий обрабатываемое событие. Эта переменная заполняется только в пределах блока Action команды регистрации события, например Register-ObjectEvent. Значением этой переменной всегда является объект, возвращаемый командлетом Get-Event. Следовательно, в блоке скрипта Action можно использовать свойства переменной $Event, например $Event.TimeGenerated. $EventSubscriber Содержит объект PSEventSubscriber, представляющий подписчик на обрабатываемое событие. Эта переменная заполняется только в пределах блока Action команды регистрации события. Значением этой переменной всегда является объект, возвращаемый командлетом Get-EventSubscriber. $ExecutionContext Содержит объект EngineIntrinsics, который представляет контекст выполнения основного приложения Windows PowerShell. Эту переменную можно использовать для поиска объектов выполнения, доступных командлетам. $False Содержит FALSE. Эту переменную можно использовать вместо строки "false" для представления значения FALSE в командах и скриптах. Строка может интерпретироваться как TRUE при преобразовании в непустую строку или целое число, отличное от нуля. $ForEach Содержит перечислитель цикла ForEach-Object. Значение переменной $ForEach позволяет использовать свойства и методы перечислителей. Эта переменная существует только до тех пор, пока выполняется цикл For. После окончания цикла переменная удаляется. $Home Содержит полный путь к домашнему каталогу пользователя. Эта переменная эквивалентна сочетанию переменных среды %homedrive%%homepath%, обычно C:\Documents and Settings\<пользо ватель>. $Host Содержит объект, представляющий текущее основное приложение Windows PowerShell. Эту переменную можно использовать для представления текущего основного приложения в командах либо для отображения или изменения свойств основного приложения, например $Host.version, $Host.CurrentCulture или $host.ui.rawui.setbackgroundcolor("Red"). $Input Перечислитель, содержащий переданные функции входные данные. Переменная $Input обрабатывается с учетом регистра, она доступна только в функциях и блоках скрипта. (Блоки скрипта - это неименованные функции.) В блоке Process функции в переменной $Input содержится объект, который в настоящее время находится в конвейере. По завершении обработки блока Process для переменной $Input устанавливае тся значение NULL. Если в функции нет блока Process, значение переменной $Input доступно до блока End, при этом в переменной хранятся все входные данные, переданные функции. $LastExitCode Содержит код завершения последней выполненной программы Windows. $Matches Переменная $Matches используется при работе с операторами совпадения -match и -notmatch. Если входные данные оператора -match или -nomatch являются скаляром и любой из операторов обнаруживает совпадение, эти операторы возвращают логическое значение и устанавливают в качестве значения автоматической переменной $Match хэш-таблицу, в которую заносятся все совпавшие строковые значения. Дополнительные сведения об операторе -match см.в разделе about_comparison_operators. $MyInvocation Содержит объект со сведениями о текущей команде, включая скрипт, функцию или блок скрипта. Сведения в объекте, например путь и имя файла скрипта ($myinvocation.mycommand.path) или имя функции ($myinvocation.mycommand.name) можно использовать для идентификации текущей команды. Это особенно полезно при определении имен и выполняемого скрипта. $NestedPromptLevel Содержит текущий уровень обработки. Значение 0 указывает на изначальный уровень запроса. Значение увеличивается на единицу при запуске вложенного уровня обработки и уменьшается на единицу при завершении уровня. Например, Windows PowerShell представляет вложенный уровень обработки при использовании метода $Host.EnterNestedPrompt. Windows PowerShell также представляет вложенный уровень обработки при достижении точки останова в отладчике Windows PowerShell. При запуске вложенного уровня обработки Windows PowerShell приостанавливает выполнение текущей команды, сохраняет контекст выполнения и увеличивает на единицу значение переменной $NestedPromptLevel. Для создания дополнительных уровней вложенной обработки (до 128 уровней) или для возврата на изначальный уровень обработки завершите выполнение команды или введите команду "exit". Переменная $NestedPromptLevel позволяет контролировать уровень вложенности. Также можно создать альтернативную командную строку Windows PowerShell, которая включает это значение для обеспечения постоянного контроля уровня вложенности. $NULL Содержит константу NULL или пустое значение. Эту переменную можно использовать вместо строки "NULL" для представления значения NULL в командах и скриптах. Строка может интерпретироваться как TRUE при преобразовании в непустую строку или целое число, отличное от нуля. $PID Содержит идентификатор процесса (PID) процесса, в рамках которого выполняется текущий сеанс Windows PowerShell. $Profile Содержит полный путь к профилю Windows PowerShell текущего пользователя и текущего основного приложения. Эту переменную можно использовать для представления профиля в командах. Например, чтобы определить, был ли создан профиль, можно ввести следующую команду: test-path $profile Также можно использовать эту переменную в команде для создания профиля. new-item -type file -path $pshome -force Кроме того, эту переменную можно использовать в команде для открытия профиля в Блокноте: notepad $profile $PSBoundParameters Содержит словарь активных параметров и их текущих значений. Значение этой переменной действительно только в области объявления параметров, включая скрипт или функцию. Можно использовать эту переменную для отображения или изменения текущий значений параметров или для передачи значений параметров другому скрипту или функции. Пример: function test { param($a, $b) # Отображение параметров в формате словаря. $psboundparameters # Вызов функции Test1 с $a и $b. test1 @psboundparameters } $PsCmdlet Содержит объект, представляющий выполняемый командлет или расширенную функцию. Свойства и методы объекта могут использоваться в коде командлета или функции для обработки условий использования. Например, в свойстве ParameterSetName содержится имя используемого набора параметров, а метод ShouldProcess динамически добавляет к командлету параметры WhatIf и Confirm. Дополнительные сведения об автоматической переменной $PSCmdlet см.в разделе about_Functions_Advanced. $PsCulture Содержит имя культуры, используемой в настоящее время в операционной системе. Культура определяет формат отображения таких элементов, как числа, денежные величины и даты. Это значение свойства системы System.Globalization.CultureInfo.CurrentCulture.Name. Для получения объекта System.Globalization.CultureInfo системы используйте командлет Get-Culture. $PSDebugContext В процессе отладки в этой переменной хранятся сведения о среде отладки. В противном случае переменная содержит значение NULL. Таким образом, эта переменная может использоваться для проверки, идет ли отладка. Если значение переменной определено, она содержит объект PsDebugContext, у которого есть свойства Breakpoints и InvocationInfo. У свойства InvocationInfo есть несколько полезных свойств, включая свойство Location. В свойстве Location содержится путь к отлаживаемому скрипту. $PsHome Содержит полный путь к каталогу установки Windows PowerShell, обычно это %windir%\System32\WindowsPowerShell\v1.0. Эту переменную можно использовать при формировании путей к файлам Windows PowerShell. Например, следующая команда выполняет поиск слова "variable" в концептуальных разделах справки: select-string -pattern variable -path $pshome\*.txt $PSScriptRoot Содержит каталог, из которого выполняется модуль скрипта. Эта переменная позволяет скриптам использовать путь к модулю для доступа к другим ресурсам. $PsUICulture Содержит имя культуры пользовательского интерфейса, используемой в настоящее время в операционной системе. Культура пользовательского интерфейса определяет строки, которые используются в качестве элементов пользовательского интерфейса, например меню и сообщений. Это значение свойства системы System.Globalization.CultureInfo.CurrentUICult ure.Name. Для получения объекта System.Globalization.CultureInf o системы используйте командлет Get-UICulture. $PsVersionTable Содержит доступную только для чтения хэш-таблицу, в которой представлены сведения о версии Windows PowerShell, используемой в текущем сеансе. В таблице содержатся следующие элементы. CLRVersion. Версия среды CLR (общеязыковая среда выполнения). BuildVersion. Номер построения текущей версии. PSVersion. Номер версии Windows PowerShell. WSManStackVersion. Номер версии стека WS-Management. PSCompatibleVersions. Версии Windows PowerShell, совместимые с текущей версией. SerializationVersion. Версия метода сериализации. PSRemotingProtocolVersion Версия протокола удаленного управления Windows PowerShell. $Pwd Содержит объект пути, представляющий полный путь к текущему каталогу. $Sender Содержит объект, создавший данное событие. Эта переменная заполняется только в пределах блока Action команды регистрации события. Значение этой переменной также можно определить с помощью свойства Sender объекта PSEventArgs (System.Management.Automation.PSEventArgs), возвращаемого командлетом Get-Event. $ShellID Содержит идентификатор текущей оболочки. $SourceArgs Содержит объекты, представляющие аргументы обрабатываемого события. Эта переменная заполняется только в пределах блока Action команды регистрации события. Значение этой переменной также можно определить с помощью свойства SourceArgs объекта PSEventArgs (System.Management.Automation.PSEventArgs), возвращаемого командлетом Get-Event. $SourceEventArgs Содержит объект, представляющий первый аргумент набора EventArgs обрабатываемого события. Эта переменная заполняется только в пределах блока Action команды регистрации события. Значение этой переменной также можно определить с помощью свойства SourceArgs объекта PSEventArgs (System.Management.Automation.PSEventArgs), возвращаемого командлетом Get-Event. $This В блоке скрипта, который определяет свойство или метод скрипта, переменная $This ссылается на расширяемый объект. $True Содержит значение TRUE. Эту переменную можно использовать для представления значения TRUE в командах и скриптах. СМ. ТАКЖЕ about_Hash_Tables about_Preference_Variables about_Variables about_Break РАЗДЕЛ about_Break КРАТКОЕ ОПИСАНИЕ Описывает инструкции, которые можно использовать для немедленного завершения выполнения инструкций Foreach, For, While, Do и Switch. ПОЛНОЕ ОПИСАНИЕ Если инструкция Break присутствует в цикле, например в цикле Foreach, For, Switch или While, инструкция Break приводит к немедленному завершению обработки цикла оболочкой Windows PowerShell. В конструкции Switch, не являющейся циклом, инструкция Break приводит к немедленному завершению обработки блока кода Switch оболочкой Windows PowerShell. В инструкции Break может указываться метка, позволяющая выполнять выход из вложенных циклов. Метка может указывать на любое ключевое слово цикла, например Foreach, For или While, в скрипте. Если в инструкции Break используется метка, то она обеспечивает завершение обработки указанного цикла. Инструкция Break завершает обработку указанного цикла независимо от того, в каком цикле расположена сама инструкция Break. В следующем примере показано, как использовать инструкцию Break для выхода из инструкции For: for($i=1; $i -le 10; $i++) { Write-Host $i break } В этом случае инструкция Break обеспечивает выход из цикла For, если значение переменной $i равняется 1. Хотя значение инструкции For истинно, пока значение $i больше 10, оболочка Windows PowerShell выполняет инструкцию break при первом проходе по циклу For. Инструкция Break чаще используется внутри цикла при выполнении внутреннего условия. Рассмотрим следующий пример инструкции Foreach: $i=0 $varB = 10,20,30,40 foreach ($val in $varB) { $i++ if ($val -eq 30) { break } } Write-Host "Значение 30 было найдено в позиции массива $i" В этом примере инструкция Foreach обеспечивает последовательную обработку элементов массива $varB. При каждом выполнении блока кода значение переменной $i увеличивается на 1. Условие в инструкции If принимает значение False при первых двух проходах по циклу. При третьем проходе по циклу значение переменной $i равно 3, а переменной $val - 30, при этом выполняется инструкция Break с выходом из цикла Foreach. Выход из других циклических инструкций осуществляется аналогично выходу из цикла Foreach. В следующем примере инструкция Break обеспечивает выход из инструкции While при перехвате исключения DivideByZeroException с использованием инструкции Trap. $i = 3 while ($true) { trap [DivideByZeroException] { Write-Host "перехвачено исключение при делении на ноль" break } 1 / $i-- } В инструкции Break может содержаться метка. При использовании ключевого слова Break с меткой Windows PowerShell обеспечивает выход из цикла, которому соответствует метка, а не из текущего цикла. Для описания метки используется следующий синтаксис (в этом примере показана метка для цикла While): :моя_метка while (<условие>) { <список_инструкций>} Метка представляет собой двоеточие за которым следует имя, определяемое пользователем. Метка должна быть первым токеном в инструкции, за меткой должно следовать ключевое слово инструкции цикла, например While. В оболочке Windows PowerShell метки могут указываться только для ключевых слов циклов, например Foreach, For и While. Инструкция Break обеспечивает прекращение обработки цикла с меткой. Во вложенных циклах использование такой инструкции отличается от использования ключевого слова Break без метки. В этом схематическом примере представлена инструкция While с вложенным циклом For. :myLabel while (<условие_1>) { for ($item in $items) { if (<условие_2>) { break myLabel } $item = $x # Инструкция в цикле For } } $a = $c # Инструкция после цикла While с меткой Если условие 2 принимает значение True, в скрипте выполняется переход на инструкцию после цикла с меткой. В этом примере обработка продолжается с инструкции "$a = $c". Допускается использование нескольких вложенных циклов с метками, как показано в следующем примере: :red while (<условие_1>) { :yellow while (<условие_2>) { while (<условие_3>) { if ($a) {break} if ($b) {break red} if ($c) {break yellow} } # После самого вложенного цикла } # После цикла с меткой "yellow" } # После цикла с меткой "red" Если переменная $b принимает значение True, в скрипте выполняется переход на инструкцию после цикла с меткой "red". Если переменная $c принимает значение True, в скрипте выполняется переход на инструкцию после цикла с меткой "yellow". Если переменная $a принимает значение True, в скрипте выполняется переход на инструкцию, следующую за самым вложенным циклом. Метка не требуется. Оболочка Windows PowerShell не ограничивает расстояние между меткой и инструкцией, которая будет обрабатываться при выходе из цикла. Метка может использоваться для передачи управления через границы вызова скрипта или функции. Ключевое слово Break используется для выхода из конструкции Switch. Например, инструкция Break используется в следующей инструкции Switch для поиска совпадения с наиболее конкретным условием: $var = "ассемблер" switch -regex ($var) { "ассемблер" { Write-Host "Точное совпадение" $_ break } "асс.*" { Write-Host "Соответствие по префиксу" $_ break } "а.*" { Write-Host "Соответствие по крайней мере по первому символу" $_ break } default { Write-Host "Не совпадает" $_ break } } В этом примере создается переменная $var, которая инициализируется строковым значением "ассемблер". В инструкции Switch используется класс Regex, позволяющий сопоставить значение переменной с термином "ассемблер". (Класс Regex является классом для обработки регулярных выражений платформы Microsoft .NET Framework.) Поскольку значение переменной и результат первой проверки в инструкции Switch совпадают, выполняется первый блок кода в инструкции Switch. Когда оболочка Windows PowerShell достигает первой инструкции Break, выполнение инструкции Switch завершается. Если удалить из данного примера четыре инструкции Break, то были бы выполнены все четыре условия. В этом примере инструкция break используется в примере для отображения результатов при выполнении наиболее конкретного условия. СМ. ТАКЖЕ about_Comparison_Operators about_For about_Foreach about_Switch about_While about_command_precedence РАЗДЕЛ about_Command_Precedence КРАТКОЕ ОПИСАНИЕ Описывает, как Windows PowerShell определяет выполняемую команду. ПОЛНОЕ ОПИСАНИЕ В этом разделе описывается, как Windows PowerShell определяет выполняемую команду, особенно если в сеансе содержится несколько команд с одинаковым именем. Также демонстрируется способ выполнения команд, которые не выполняются по умолчанию, а также способы предотвращения конфликта имен в рамках сеанса. ПРИОРИТЕТ КОМАНД Если в сеансе существует несколько команд с одинаковыми именами, Windows PowerShell руководствуется следующими правилами при определении запускаемой команды. Эти правила приобретают особое значение при добавлении в сеанс команд из модулей, оснасток и других сеансов. -- При указании пути к команде Windows PowerShell выполняет команду из местоположения, указанного в пути. Например, следующая команда запускает скрипт FindDocs.ps1, расположенный в каталоге C:\TechDocs: C:\TechDocs\FindDocs.ps1 В качестве меры безопасности Windows PowerShell не выполняет исполняемые (естественные) команды, включая скрипты Windows PowerShell, если команда не находится в каталоге, указанном в переменной среды Path ($env:path) или если путь к скрипту не указан в явном виде. Для запуска скрипта, расположенного в текущем каталоге, укажите полный путь или введите (.), чтобы указать на текущий каталог. Например, чтобы запустить файл FindDocs.ps1 в текущем каталоге, введите следующую команду: .\FindDocs.ps1 -- Если путь не указан, среда Windows PowerShell использует следующие правила приоритета при выполнении команд. 1. Псевдоним 2. Функция 3. Командлет 4. Встроенные команды Windows Таким образом, при вводе команды "help" Windows PowerShell сначала выполняет поиск псевдонима с именем "help", затем функции с именем "help" и, наконец, командлета с именем "help". Будет выполнен первый найденный элемент с именем "help". Например, если существует функция с именем Get-Map, и в сеанс был добавлен или импортирован командлет с именем Get-Map, то при вводе команды "Get-Map" по умолчанию Windows PowerShell выполнит функцию. -- Если в сеансе содержатся элементы одного типа с одинаковыми именами, например два командлета с одинаковыми именами, Windows PowerShell выполнит элемент, добавленный в сеанс последним. Например, если существует командлет с именем Get-Date, и в сеанс был импортирован командлет с именем Get-Date, то при вводе команды "Get-Date" по умолчанию Windows PowerShell выполнит импортированный командлет. СКРЫТЫЕ И ЗАМЕНЕННЫЕ ЭЛЕМЕНТЫ В результате использования таких правил элементы могут заменяться или скрываться элементами с таким же именем. -- Элементы "скрываются" или "затеняются", если доступ к исходному элементу все же возможен, например путем указания имени модуля или оснастки. Например, при импорте функции, имя которой совпадает с именем командлета, существующего в сеансе, командлет скрывается, но не заменяется, поскольку он был импортирован из оснастки или модуля. -- Элементы "заменяются" или "перезаписываются", если доступ к исходному элементу становится невозможен. Например, при импорте переменной, имя которой совпадает с именем переменной, существующей в сеансе, исходная переменная заменяется и более недоступна. Нельзя получить доступ к переменной, указав имя модуля. Кроме того, при вводе функции в командной строке и последующем импорте функции с таким же именем исходная функция заменяется и более недоступна. ВЫПОЛНЕНИЕ СКРЫТЫХ КОМАНД Некоторые команды можно выполнять, указывая свойства элемента, которые отличают команду от других команд, имеющих то же имя. Этот метод может использоваться для выполнения любых команд, но он особенно удобен для запуска скрытых команд. Используйте этот метод в качестве рекомендованного при написании скриптов, которые должны получить широкое распространение, поскольку невозможно предсказать, какие команды будет выполнены в сеансе, в рамках которого должен запускаться скрипт. ПОЛНЫЕ ИМЕНА При запуске команд, которые были импортированы из оснастки или модуля Windows PowerShell или из другого сеанса, можно использовать полное имя команды, указав имя модуля или оснастки, из которой добавлена команда. Предусмотрена возможность формирования полных имен команд, но для переменных или псевдонимов такой возможности нет. Например, если командлет Get-Date из оснастки Microsoft.PowerS hell.Utility скрывается псевдонимом, функцией или командлетом с таким же именем, можно выполнить исходный командлет, указав его полное имя (с учетом оснастки). Microsoft.PowerShell.Utility\Get-Date Для запуска команды New-Map, добавленной в модуле MapFunctions, можно использовать ее полное имя (с учетом имени модуля): MapFunctions\New-Map Для поиска оснастки или модуля, из которого была импортирована команда, используйте следующий формат команды Get-Command: get-command <имя_команды> | format-list -property Name, PSSnapin, Module Например, для поиска источника командлета Get-Date введите следующую команду: get-command get-date | format-list -property Name, PSSnapin, Module Имя : Get-Date PSSnapIn : Microsoft.PowerShell.Utility Module : ОПЕРАТОР ВЫЗОВА Кроме того, для выполнения любой команды, которую можно получить с помощью команд Get-ChildItem (alias = dir), Get-Command или Get-Module, можно использовать оператор вызова (&). Чтобы выполнить команду, заключите Get-Command в скобки и используйте оператор вызова (&) для запуска команды. &(get-command ...) - или: &(dir ... ) Например, если существует функция Map, которая была скрыта псевдонимом Map, используйте следующую команду для запуска функции. &(get-command -name map -type function) - или: &(dir function:\map) Для упрощения запуска скрытой команды можно также сохранить ее в переменную. Например, следующая команда сохраняет функцию Map в переменной $myMap и затем использует оператор вызова для запуска команды. $myMap = (get-command -name map -type function) &($myMap) Если команда описана в модуле, можно использовать для ее запуска следующий формат команды: & <PSModuleInfo-object> <команда> Например, для запуска командлета Add-File из модуля FileCommands используйте следующую последовательность команд: $FileCommands = get-module -name FileCommands & $FileCommands Add-File ЗАМЕНЕННЫЕ ЭЛЕМЕНТЫ Элементы, которые не были импортированы в сеанс из модуля или оснастки, такие как функции, переменные и псевдонимы, созданные в сеансе или добавленные из профиля, могут быть заменены командами с такими же именами. При замене элементов доступ к ним невозможен. Переменные и псевдонимы заменяются всегда, даже если они были импортированы из модуля или оснастки, поскольку доступ к ним с использованием оператора вызова или полного имени невозможен. Например, если в сеансе была создана функция Get-Map, а затем была импортирована функция с именем Get-Map, исходная функция заменяется и доступ к ней в текущем сеансе невозможен. ПРЕДОТВРАЩЕНИЕ КОНФЛИКТОВ ИМЕН Лучшим способом обработки конфликтов имен является их предотвращение. При создании имен команд используйте очень конкретные имена, которые с высокой вероятностью будут уникальными. Например, добавляйте в имена команд свои инициалы или сокращенное название компании. Также при импорте команд в сеанс из модуля Windows PowerShell или из другого сеанса используйте параметр Prefix командлета Import-Module или Import-PSSession, чтобы добавить префикс к именам команд. Например, следующая команда позволяет предотвратить конфликты между командлетами Get-Date и Set-Date, поставляемыми с Windows PowerShell, при импорте модуля DateFunctions. import-module -name DateFunctions -prefix ZZ Дополнительные сведения см. в Import-Module и Import-PSSession. СМ. ТАКЖЕ about_Path_Syntax about_Aliases about_Functions Alias (поставщик) Function (поставщик) Get-Command Import-Module Import-PSSession about_Command_Syntax РАЗДЕЛ about_Command_Syntax КРАТКОЕ ОПИСАНИЕ Описывает синтаксис, используемый в справке для Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Командлет Get-Help отображает правила использования параметров командлета. Командлет Get-Help использует следующие специальные символы. Угловые скобки (<>) указывают на замещающий текст. Квадратные скобки ([]) указывают на необязательные элементы. Фигурные скобки ({}) указываются на возможность выбора значений. Некоторые командлеты поддерживают несколько наборов параметров. При этом некоторые параметры могут использоваться в различных наборах параметров. Командлет Get-Help отображает все наборы параметров командлета. Дополнительные сведения о параметрах можно получить из описаний параметров и таблицы атрибутов параметров. Для просмотра полной информации о параметре используйте параметры Full или Parameter командлета Get-Help. Синтаксис В справке для командлетов Windows PowerShell, разделах справки и другой документации используется следующий формат описания синтаксиса командлетов. <имя_командлета> -<имя_обязательного параметра> <значение_обязательного параметра> [-<имя_необязательного_параметра> <значение_необязательного_параметра>] [-<необязательный_параметр-переключатель>] [-<необязательное_имя_параметра>] <значение_обязательного_параметра> Ниже показан синтаксис для командлета New-Alias. New-Alias [-Force] [-PassThru] [-Scope <string>] [-Option {None | ReadOnly | Constant | Private | AllScope}] [-Description <string>] [-Name] <string> [-Value] <string> [-confirm] [-whatif] [<CommonParameters>] Заглавные буквы добавлены в синтаксис для упрощения чтения, но оболочка Windows PowerShell не учитывает регистр символов. Параметры отображаются в установленном порядке. Порядок параметров имеет значение, в то время как имена параметров являются необязательными. Если не указать имена параметров при использовании командлета, оболочка Windows PowerShell присвоит значения параметрам по позиции и по типу. Перед именами параметров вводится дефис (-). Параметры-переключатели отображаются без указания типа значения. Для других параметров указываетс я требуемый тип значения (тип платформы Microsoft .NET Framework) или перечисление возможных значений. Дополнительные сведения о типах платформы .NET Framework см. на веб-странице http://go.microsoft.com/fwlink/?LinkId=143682. Угловые скобки (<>) указывают на замещающий текст. Этот текст может описывать тип элемента (например, строковый объект или объект процесса). Замещающий текст также может замещать один или несколько общих параметров . Квадратные скобки ([]) указывают на необязательные элементы. Необязательным может быть параметр или имя обязательного параметра. Параметры-переключатели всегда являются необязательными. В фигурные скобки ({}) заключаются значения перечисления. В примере с командлетом New-Alias параметр Option может принимать любое из указанных значений. Необязательные элементы В квадратные скобки ([]) заключаются необязательные элементы. Например, в описании синтаксиса командлета New-Alias параметр Scope является необязательным. На это указывают квадратные скобки вокруг имени и типа значения параметра: [-Scope <string>] Ниже представлены два примера допустимого использования командлета New-Alias. New-Alias -Name utd -Value Update-TypeData New-Alias -Name utd -Value Update-TypeData -Scope global Имя параметра может быть необязательным, даже если значение этого параметра является обязательным. На это указывают квадратные скобки вокруг имени параметра, но не вокруг типа значения параметра, как в следующем примере из синтаксиса командлета New-Alias: [-Name] <string> [-Value] <string> В следующих командах командлет New-Alias используется корректно. Результат выполнения команд будет одинаковым. New-Alias -Name utd -Value Update-TypeData New-Alias -Name utd Update-TypeData New-Alias utd -Value Update-TypeData New-Alias utd Update-TypeData Если имя параметра не указано во введенной инструкции, оболочка Windows PowerShell пытается использовать позицию аргументов для присвоения значений параметрам. Следующий пример не является полным: New-Alias utd При использовании данного командлета необходимо указать значения параметров Name и Value. В примерах синтаксиса квадратные скобки также используются при указании и приведении к типам платформы .NET Framework. В этом контексте квадратные скобки не указывают на необязательность элемента. Аргументы массива Квадратные скобки также используются в описаниях синтаксиса для представления массива. В следующем примере показан синтаксис для командлета Restart-Service. Restart-Service [-Name] <string[]> [-Include <string[]>] [-Exclude <string[]>] [-Force] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Для параметра Name необходимо указать аргумент. Более конкретно, необходимо указать имя перезапускаемой службы. Допускается использование списка служб, разделенных запятыми, как в следующем примере : Restart-Service RasAuto, RasMan, RemoteAccess СМ. ТАКЖЕ Get-Help about_Comment_Based_Help РАЗДЕЛ about_Comment_Based_Help КРАТКОЕ ОПИСАНИЕ Описание написания разделов справки на основе комментариев для функций и скриптов. ПОЛНОЕ ОПИСАНИЕ С помощью специальных ключевых слов комментариев справки можно писать разделы справки на основе комментариев для функций и скриптов. Командлет Get-Help отображает содержимое справки на основе комментариев в том же формате, в котором отображаются разделы справки для командлетов, созданные из XML-файлов. Для просмотра справки для функции или скрипта пользователи могут использовать все параметры командлета Get-Help: Detailed, Full, Example и Online. Также с помощью специальных ключевых слов комментариев справки можно писать файлы справки на основе XML-файлов для функций и скриптов и перенаправлять пользователей в другой файл справки. В этом разделе описано, как писать разделы справки для функций и скриптов. Сведения об отображении разделов справки для функций и скриптов см. в разделе Get-Help. СИНТАКСИС ДЛЯ СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ Синтаксис для справки на основе комментариев имеет следующий вид. # .< ключевое_слово_справки> # <содержимое_справки> -или: <# .< ключевое_слово_справки> < содержимое_справки> #> Справка на основе комментариев пишется как набор комментариев. Можно вводить символ комментария (#) перед каждой строкой комментариев или использовать символы "<#" и "#>" для создания блока комментариев. Все строки, входящие в блок комментариев, воспринимаются как комментарии. Все строки в разделе справки на основе комментариев должно идти непрерывно. Если раздел справки на основе комментариев следует за комментарием, не являющимся частью раздела, между последней строкой этого комментария и началом справки должна присутствовать хотя бы одна пустая строка. Ключевые слова определяют разделы справки на основе комментариев. Перед каждым ключевым словом справки на основе комментариев вводится точка (.). Ключевые слова можно вводить в любом порядке. В именах ключевых слов не учитывается регистр. Например, ключевое слово Description предшествует описанию функции или скрипта. <# .Description Get-Function отображает имя и синтаксис всех функций в рамках сеанса. #> В блоке комментариев должно содержаться хотя бы одно ключевое слово. Некоторые ключевые слова, например EXAMPLE, могут встречаться несколько раз в рамках одного блока комментариев. Содержимое справки для каждого ключевого слова начинается со строки, следующей за ключевым словом, и может занимать несколько строк. СИНТАКСИС ДЛЯ СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ В ФУНКЦИЯХ Справка на основе комментариев для функции может размещаться в одной из трех областей: -- В начале тела функции. -- В конце тела функции. -- Перед ключевым словом Function. Между последней строкой справки для функции и ключевым словом Function не может быть больше одной пустой строки. Пример: function MyFunction { <# .< ключевое_слово_справки> < содержимое_справки> #> <команды функции> } -или: function MyFunction { <команды функции> <# .< ключевое_слово_справки> < содержимое_справки> #> } -или: <# .< ключевое_слово_справки> < содержимое_справки> #> function MyFunction { } СИНТАКСИС ДЛЯ СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ В СКРИПТАХ Справка на основе комментариев для скрипта может размещаться в одной из двух областей скрипта. -- В начале файла скрипта. При таком размещении перед справкой для скрипта могут указываться только комментарии и пустые строки. -- Если первый элемент тела скрипта (после справки) является объявлением функции, между последней строкой справки для скрипта и объявлением функции должны присутствовать хотя бы две пустых строки. В противном случае справка интерпретируется как справка для функции, а не справка для скрипта. -- В конце файла скрипта. Пример: <# .< ключевое_слово_справки> < содержимое_справки> #> function MyFunction { } -или- function MyFunction { } <# .< ключевое_слово_справки> < содержимое_справки> #> КЛЮЧЕВЫЕ СЛОВА СПРАВКИ НА ОСНОВЕ КОММЕНТАРИЕВ Ниже перечислены действительные ключевые слова справки на основе комментариев. Перечисленные выполнено в том порядке, в котором ключевые слова обычно появляются в разделе справки, для всех ключевых слов приведено краткое описание. Эти ключевые слова могут появляться в справке на основе комментариев в любом порядке, регистр символов не имеет значения. .SYNOPSIS Краткое описание функции или скрипта. Это ключевое слово может использоваться в каждом разделе только один раз. .DESCRIPTION Подробное описание функции или скрипта. Это ключевое слово может использоваться в каждом разделе только один раз. .PARAMETER <имя_параметра> Описание параметра. Ключевое слово Parameter может указываться для каждого из параметров функции или скрипта. Ключевые слова Parameter могут появляться в блоке комментариев в произвольном порядке, однако порядок отображения параметров (и их описаний) в разделе справки определяется синтаксисом функции или скрипта. Для изменения порядка отображения необходимо изменить синтаксис. Можно также указать описание параметра, разместив комментарий в коде функции или скрипта сразу после имени переменной параметра. При использовании комментария в коде и ключевого слова Parameter будет использоваться описание, связанное с ключевым словом Parameter, комментарий в коде будет проигнорирован. .EXAMPLE Пример команды, в которой используется функция или скрипт, за которым может следовать пример выходных данных и описание. Это ключевое слово необходимо повторить для каждого примера. .INPUTS Типы данных объектов платформы Microsoft .NET , которые могут быть переданы функции или скрипту по конвейеру. Можно также включить описание входных объектов. .OUTPUTS Типы данных объектов платформы .NET, возвращаемых командлетом. Можно также включить описание возвращаемых объектов. .NOTES Дополнительные сведения о функции или скрипте. .LINK Имя связанного раздела. Это ключевое слово необходимо повторить для каждого связанного раздела. Это содержимое отображается в подразделе "Ссылки по теме" раздела справки. В содержимом ключевого слова Link может указываться URI на интернет-версию того же раздела справки. Интернет- версия открывается при использовании параметра Online командлета Get-Help. URI должен начинаться с "http" или "https". .COMPONENT Технология или функциональная возможность, которая используется функцией или скриптом либо с которой связана функция или скрипт. Это содержимое отображается в случае, если команда Get-Help включает параметр Component командлета Get-Help. .ROLE Роль пользователя для раздела справки. Это содержимое отображается в случае, если команда Get-Help включает параметр Role командлета Get-Help. .FUNCTIONALITY Предполагаемое использование функции. Это содержимое отображается в случае, если команда Get-Help включает параметр Functionality командлета Get-Help. .FORWARDHELPTARGETNAME <имя_команды> Обеспечивает перенаправление в раздел справки для указанной команды. Можно выполнять перенаправление пользователей в любой раздел справки, включая разделы справки для функции, скрипта, командлета или поставщика. .FORWARDHELPCATEGORY <категория> Задает категорию справки элемента в ForwardHelpTargetName. Допустимыми значениями являются Alias, Cmdlet, HelpFile, Function, Provider, General, FAQ, Glossary, ScriptCommand, ExternalScript, Filter или All. Используйте это ключевое слово для предотвращения конфликтов при появлении команд с одинаковыми именами. .REMOTEHELPRUNSPACE <переменная_сеанса_PSSession> Задает сеанс, в котором содержится раздел справки. Введите переменную, которая содержит сеанс PSSession. Это ключевое слово используется командлетом Export-PSSession для поиска разделов справки для экспортируемых команд. .EXTERNALHELP <путь_к_XML-файлу_справки> Задает путь к файлу справки на основе XML для скрипта или функции. При работе с операционной системой Windows Vista или более поздними версиями Windows если указанный путь к XML-файлу содержит подкаталоги, определяемые культурой пользовательского интерфейса, Get-Help выполняет рекурсивный поиск XML-файла с именем скрипта или функции по подкаталогам в соответствии со стандартами резервного языка, установленными для Windows Vista, как это и происходит для всех разделов справки на основе XML. Дополнительные сведения о формате файлов справки для командлетов на основе XML см. в разделе "How to Write Cmdlet Help" (Как писать справку для командлетов) в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkID=123415. АВТОМАТИЧЕСКИ СГЕНЕРИРОВАННОЕ СОДЕРЖИМОЕ Имя, синтаксис, список параметров, таблица атрибутов параметров, общие параметры и примечания автоматически генерируются командлетом Get-Help. Имя: Подраздел "Имя" раздела справки для функции заполняется именем функции из синтаксиса функции. Подраздел "Имя" раздела справки для скрипта заполняется именем файла скрипта. Для изменения имени или преобразования его в верхний реестр измените синтаксис функции или имя файла скрипта. Синтаксис: Подраздел "Синтаксис" раздела справки для функции генерируется в соответствии с информацией о синтаксисе функции или скрипта. Чтобы добавить подробную информацию в раздел справки "Синтаксис", например тип данных платформы .NET параметра, добавьте эту информацию в синтаксис. Если тип параметра не указан, по умолчанию используется значение типа "Объект". Список параметров: Список параметров в разделе справки генерируется на основании синтаксиса функции или скрипта, а также описаний, добавленных с помощью ключевых слов Parameter. Параметры функции отображаются в подразделе параметров раздела справки в том же порядке, в котором они указаны в синтаксисе функции или скрипта. Написание и реестр символов в именах параметров также основано на синтаксисе; на них не воздействует имя параметра, заданное ключевым словом Parameter. Общие параметры: Общие параметры добавляются в синтаксис и список параметров в разделе справки даже в том случае, если они не указывают никакого воздействия. Дополнительные сведения о типовых параметрах см. в разделе about_CommonParameters. Таблица атрибутов параметров: Командлет Get-Help генерирует таблицу атрибутов параметров, которая отображается при использовании параметров Full или Parameter командлета Get-Help. Значения атрибутов "Необходимый", "Позиция" и "Значение по умолчанию" основаны на синтаксисе функции или скрипта. Примечания: Подраздел "Примечания" раздела справки для функции автоматически генерируется в соответствии с именем функции или скрипта. Невозможно изменить содержимое этого раздела или воздействовать на него. ПРИМЕРЫ Пример 1. Справка для функции на основе комментариев В следующем примере в код функции включена справка на основе комментариев. function Add-Extension { param ([string]$Name,[string]$Extension = "txt") $name = $name + "." + $extension $name <# .SYNOPSIS Добавление расширения имени файла к переданному на вход имени. .DESCRIPTION Добавление расширения имени файла к переданному на вход имени. Принимает любые строки в качестве имени файла или расширения. .PARAMETER Name Задает имя файла. .PARAMETER Extension Задает расширение. По умолчанию используется расширение "Txt". .INPUTS Нет. Объекты не могут передаваться функции Add-Extension по конвейеру. .OUTPUTS System.String. Функция Add-Extension возвращает строку с расширением или именем файла. .ПРИМЕР C:\PS> extension -name "файл" файл.txt .ПРИМЕР C:\PS> extension -name "файл" -extension "doc" файл.doc .ПРИМЕР C:\PS> extension "файл" "doc" файл.doc .LINK Интернет-версия: http://www.fabrikam.com/extension.html .LINK Set-Item #> } Результаты выглядят следующим образом: C:\PS> get-help add-extension -full ИМЯ Add-Extension ОПИСАНИЕ Добавление расширения имени файла к переданному на вход имени. СИНТАКСИС Add-Extension [[-Name] <String>] [[-Extension] <String>] [<CommonParameters>] ОПИСАНИЕ Добавление расширения имени файла к переданному на вход имени. Принимает любые строки в качестве имени файла или расширения. ПАРАМЕТРЫ -Name Задает имя файла. Требуется? false Позиция? 0 Значение по умолчанию Принимать входные данные с конвейера? false Принимать подстановочные знаки? -Extension Задает расширение. По умолчанию используется расширение "Txt". Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные с конвейера? false Принимать подстановочные знаки? <CommonParameters> Данный командлет поддерживает общие параметры: -Verbose, -Debug, ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, OutBuffer и -OutVariable. Чтобы получить дополнительные сведения, введите команду "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет. Объекты не могут передаваться функции Add-Extension по конвейеру. ВЫХОДНЫЕ ДАННЫЕ System.String. Функция Add-Extension возвращает строку с расширением или именем файла. -------------------------- ПРИМЕР 1 -------------------------- C:\PS> extension -name "файл" файл.txt -------------------------- ПРИМЕР 2 -------------------------- C:\PS> extension -name "файл" -extension "doc" файл.doc -------------------------- ПРИМЕР 3 -------------------------- C:\PS> extension "файл" "doc" файл.doc ССЫЛКИ ПО ТЕМЕ Интернет-версия: http://www.fabrikam.com/extension.ht ml Set-Item Пример 2. Описание параметров в коде функции Этот пример похож на предыдущий за исключением того, что в нем описания параметров вставлены в код функции. Такой формат наиболее удобен при использовании кратких описаний. function Add-Extension { param ( [string] # Задает имя файла. $name, [string] # Задает расширение. По умолчанию используется расширение "Txt". $extension = "txt" ) $name = $name + "." + $extension $name <# .SYNOPSIS Добавление расширения имени файла к переданному на вход имени. .DESCRIPTION Добавление расширения имени файла к переданному на вход имени. Принимает любые строки в качестве имени файла или расширения. .INPUTS Нет. Объекты не могут передаваться функции Add-Extension по конвейеру. .OUTPUTS System.String. Функция Add-Extension возвращает строку с расширением или именем файла. .EXAMPLE C:\PS> extension -name "файл" файл.txt .EXAMPLE C:\PS> extension -name "файл" -extension "doc" файл.doc .EXAMPLE C:\PS> extension "файл" "doc" файл.doc .LINK Интернет-версия: http://www.fabrikam.com/extension.html .LINK Set-Item #> } Пример 3. Справка для скрипта на основе комментариев В следующем примере в код скрипта включена справка на основе комментариев. Обратите внимание на пустые строки между закрывающим элементом "#>" и оператором Param. Если в скрипте нет оператора Param, между последней строкой последнего комментария и первой строкой объявления первой функции должны присутствовать хотя бы две пустых строки. Без этих пустых строк Get-Help свяжет раздел справки с функцией, а не со скриптом. <# .SYNOPSIS Выполняет ежемесячное обновление данных. .DESCRIPTION Скрипт Update-Month.ps1 обновляет реестр, дополняя его новыми данными, созданными в течение прошедшего месяца, и генерирует отчет. .PARAMETER InputPath Задает путь к входному CSV-файлу. .PARAMETER OutputPath Задает имя и путь к выходному CSV-файлу. По умолчанию MonthlyUpdates.ps1 формирует имя в соответствии с датой и временем запуска и сохраняет выходные данные в локальном каталоге. .INPUTS Нет. Объекты не могут передаваться скрипту Update-Month.ps1 по конвейеру. .OUTPUTS Нет. Update-Month.ps1 не формирует никаких выходных данных. .EXAMPLE C:\PS> .\Update-Month.ps1 .EXAMPLE C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv .EXAMPLE C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath C:\Reports\2009\January.csv #> param ([string]$InputPath, [string]$OutPutPath) function Get-Data { } ... Следующая команда возвращает справку к скрипту. Поскольку скрипт находится в каталоге, который не входит в переменную среды Path, в команде Get-Help, которая возвращает справку к скрипта, необходимо указать путь к скрипту. PS C:\ps-test> get-help .\update-month.ps1 -full NAME C:\ps-test\Update-Month.ps1 SYNOPSIS Выполняет ежемесячное обновление данных. СИНТАКСИС C:\ps-test\Update-Month.ps1 [-InputPath] <String> [[-OutputPath] ]<String>] [<CommonParameters>] ОПИСАНИЕ Скрипт Update-Month.ps1 обновляет реестр, дополняя его новыми данными, созданными в течение прошедшего месяца, и генерирует отчет. ПАРАМЕТРЫ -InputPath Задает путь к входному CSV-файлу. Требуется? true Позиция? 0 Значение по умолчанию Принимать входные данные с конвейера? false Принимать подстановочные знаки? -OutputPath Задает имя и путь к выходному CSV-файлу. По умолчанию MonthlyUpdates.ps1 формирует имя в соответствии с датой и временем запуска и сохраняет выходные данные в локальном каталоге. Требуется? false Позиция? 1 Значение по умолчанию Принимать входные данные с конвейера? false Принимать подстановочные знаки? <CommonParameters> Данный командлет поддерживает общие параметры: -Verbose, -Debug, ErrorAction, -ErrorVariable, -WarningAction, -WarningVariable, OutBuffer и -OutVariable. Чтобы получить дополнительные сведения, введите команду "get-help about_commonparameters". ВХОДНЫЕ ДАННЫЕ Нет. Объекты не могут передаваться скрипту Update-Month.ps1 по конвейеру. ВЫХОДНЫЕ ДАННЫЕ Нет. Update-Month.ps1 не формирует никаких выходных данных. -------------------------- ПРИМЕР 1 -------------------------- C:\PS> .\Update-Month.ps1 -------------------------- ПРИМЕР 2 -------------------------- C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -------------------------- ПРИМЕР 3 -------------------------- C:\PS> .\Update-Month.ps1 -inputpath C:\Data\January.csv -outputPath C:\Reports\2009\January.csv ССЫЛКИ ПО ТЕМЕ Пример 4. Перенаправление в XML-файл Для функций и скриптов можно писать разделы справки на основе XML. Хотя справку на основе комментариев проще реализовывать, справка на основе XML необходима, если требуется более четкий контроль содержания справки или перевод разделов справки на несколько языков. В следующем примере показаны несколько первых строк скрипта Update-Month.ps1. В скрипте используется ключевое слово ExternalHelp, позволяющее указать путь к разделу справки для скрипта на основе XML. # .ExternalHelp C:\MyScripts\Update-Month-Help.xml param ([string]$InputPath, [string]$OutPutPath) function Get-Data { } ... В следующем примере показано использование ключевого слова ExternalHelp в функции. function Add-Extension { param ([string] $name, [string]$extension = "txt") $name = $name + "." + $extension $name # .ExternalHelp C:\ps-test\Add-Extension.xml } Пример 5. Перенаправление в другой раздел справки Ниже представлен фрагмент кода, представляющий собой начало встроенной функции Help в оболочке Windows PowerShell, который обеспечивает постраничный вывод справки на экран. Поскольку функция Help описывается в разделе справки для командлета Get-Help, в этой функции используются ключевые слова ForwardHelpTargetName и ForwardHelpCategory для перенаправления пользователя в раздел справки для командлета Get-Help. function help { <# .FORWARDHELPTARGETNAME Get-Help .FORWARDHELPCATEGORY Cmdlet #> [CmdletBinding(DefaultParameterSetName='AllUsersView')] param( [Parameter(Position=0, ValueFromPipelineByPropertyName =$true)] [System.String] ${Name}, ... Эта функция используется в следующей команде. C:\PS> get-help help ИМЯ Get-Help ОПИСАНИЕ Отображает сведения о командлетах и концепциях Windows PowerShell. ... СМ. ТАКЖЕ about_Functions about_Functions_Advanced_Parameters about_Scripts "Написание справки для командлетов" (http://go.microsoft.com/fwlink/?LinkID =123415) about_CommonParameters РАЗДЕЛ about_CommonParameters КРАТКОЕ ОПИСАНИЕ Описание параметров, которые могут использоваться с любым командлетом. ПОЛНОЕ ОПИСАНИЕ Общие параметры - это набор параметров командлета, которые могут использоваться с любым командлетом. Их обработка реализована разработчиками Windows PowerShell, а не разработчиком командлета, они автоматически доступны любому командлету. Общие параметры можно использовать с любым командлетом, но они могут воздействовать не на все командлеты. Например, если командлет не генерирует подробные выходные данные, использование параметра Verbose никак не отразится на его работе. Некоторые общие параметры переопределяют системные значения по умолчанию или настройки, установленные с помощью привилегированных переменных. В отличие от привилегированных переменных общие параметры воздействуют только на те команды, в которых они используются. В дополнение к общим параметрам многие командлеты поддерживают параметры снижения риска WhatIf и Confirm. Эти параметры обычно поддерживаются командлетами, которые подвергают риску системные данные или данные пользователя. Общие параметры перечислены в следующей таблице. -Verbose -Debug -WarningAction -WarningVariable -ErrorAction -ErrorVariable -OutVariable -OutBuffer Параметры снижения риска перечислены в следующей таблице. -WhatIf -Confirm Для получения дополнительной информации о привилегированных переменных введите следующую команду. help about_preference_variables Описания общих параметров -Verbose[:{$true | $false}] Отображает подробные сведения о действиях, выполняемых командой. Эти сведения напоминают сведения в журнале трассировки или журнале транзакций. Этот параметр будет работать только с теми командами, которые генерируют подробные сообщения. Например, этот параметр работает с командой, содержащей командлет Write-Verbose. Параметр Verbose переопределяет значение переменной $VerbosePreference для текущей команды. Поскольку по умолчанию для переменной $VerbosePreference установлено значение SilentlyContinue, подробные сообщения по умолчанию не отображаются. Допустимые значения: Значение $true (-Verbose:$true) равносильно использованию параметра -Verbose без значения. Значение $false (-Verbose:$false) подавляет отображение подробных сообщений. Используйте этот параметр, если значение переменной $VerbosePreference отличается от SilentlyContinue (установлено по умолчанию). -Debug[:{$true | $false}] Отображает информацию о действиях, выполняемых командой, которая может потребоваться программисту. Этот параметр будет работать только с теми командами, которые генерируют сообщения отладки. Например, этот параметр работает с командой, содержащей командлет Write-Debug. Параметр Debug переопределяет значение переменной $DebugPreference для текущей команды. Поскольку по умолчанию для переменной $DebugPreference установлено значение SilentlyContinue, сообщения отладки по умолчанию не отображаются. Допустимые значения: $true (-Debug:$true). Равносильно использованию параметра -Debug. $false (-Debug:$false). Подавляет отображение сообщений отладки, если для переменной $DebugPreference установлено значение, отличное от SilentlyContinue (по умолчанию). -WarningAction[:{SilentlyContinue | Continue | Inquire | Stop}] Определяет реакцию командлета на возникновение предупреждения при выполнении команды. По умолчанию используется значение "Continue". Этот параметр будет работать только с теми командами, которые генерируют предупреждения. Например, этот параметр работает с командой, содержащей командлет Write-Warning. Параметр WarningAction переопределяет значение переменной $WarningPreference для текущей команды. Поскольку по умолчанию для переменной $WarningPreference установлено значение "Continue", если в команде не используется параметр WarningAction, предупреждения отображаются, а выполнение команды продолжается. Допустимые значения: SilentlyContinue. Подавление предупреждений и продолжение выполнения команды. Continue. Отображение предупреждения и продолжение выполнения команды. По умолчанию используется значение "Continue". Inquire. Отображение предупреждения, запрос на продолжение выполнения. Это значение используется редко. Stop. Отображение предупреждения, прекращение выполнения команды. -WarningVariable [+]<имя_переменной> Сохраняет предупреждения о выполнении команды в указанной переменной. Для добавления предупреждений к значениям переменной вместо замены предупреждений, которые могли быть сохранены в переменной раньше, введите знак "плюс" (+) перед именем переменной. Например, следующая команда создает переменную $a и сохраняет в ней все предупреждения. get-process -id 6 -WarningVariable a Следующая команда добавляет все предупреждения в переменную $a. get-process -id 2 -WarningVariable +a Следующая команда отображает содержимое переменной $a. $a Этот параметр можно использовать для создания переменной, в которой будут содержаться предупреждения о выполнении только определенных команд. Для доступа к определенным предупреждениям, хранящимся в переменной, можно использовать синтаксис работы с массивами, например $a[0] или $warning[1,2]. -ErrorAction[:{SilentlyContinue | Continue | Inquire | Stop)] Определяет реакцию командлета на возникновение непрерывающей ошибки при выполнении команды. Этот параметр будет работать только с теми командами, которые генерируют сообщения отладки. Например, этот параметр работает с командой, содержащей командлет Write-Error. Параметр ErrorAction переопределяет значение переменной $ErrorActionPreference для текущей команды. Поскольку по умолчанию для переменной $ErrorActionPreference установлено значение "Continue", если в команде не используется параметр ErrorAction, сообщения об ошибках отображаются, а выполнение команды продолжается. Параметр ErrorAction не влияет на обработку прерывающих ошибок (включая отсутствие данных, неверные параметры или недостаточные полномочия), препятствующих успешному завершению выполнения команды. Допустимые значения: SilentlyContinue. Подавление сообщений об ошибках и продолжение выполнения команды. Continue. Отображение сообщений об ошибках, продолжение выполнения команды. По умолчанию используется значение "Continue". Inquire. Отображение сообщения об ошибке, запрос на продолжение выполнения. Это значение используется редко. Stop. Отображение сообщения об ошибке и прекращение выполнения команды. -ErrorVariable [+]<имя_переменной> Сохраняет сообщения об ошибках при выполнении команды в указанной переменной и в автоматической переменной $Error. Чтобы получить дополнительные сведения, введите следующую команду: get-help about_automatic_variables По умолчанию новые сообщения об ошибках перезапишут старые сообщения об ошибках, уже хранящиеся в переменной. Для добавления сообщения об ошибке к содержимому переменой введите знак "плюс" (+) перед именем переменной. Например, следующая команда создает переменную $a и сохраняет в ней все сообщения об ошибках. get-process -id 6 -ErrorVariable a Следующая команда добавляет все сообщения об ошибках в переменную a$. get-process -id 2 -ErrorVariable +a Следующая команда отображает содержимое переменной $a. $a Этот параметр можно использовать для создания переменной, в которой будут содержаться сообщения об ошибках при выполнении только определенных команд. В автоматической переменной $Error сохраняются сообщения об ошибках при выполнении всех команд в рамках сеанса. Для доступа к определенным сообщениям об ошибках, хранящимся в переменной, можно использовать синтаксис работы с массивами, например $a[0] или $error[1,2]. -OutVariable [+]<имя_переменной> Сохраняет объекты выходных данных команды в указанной переменной и отображает их в командной строке. Для добавления выходных данных к значениям переменной вместо замены выходных данных, которые могли быть сохранены в переменной раньше, введите знак "плюс" (+) перед именем переменной. Например, следующая команда создает переменную $out и сохраняет в ней объект процесса. get-process powershell -OutVariable out Следующая команда добавляет в переменную $out объект процесса. get-process iexplore -OutVariable +out Следующая команда отображает содержимое переменной $out. $out -OutBuffer <Int32> Определяет количество объектов, которое надо накопить в буфере перед передачей объектов по конвейеру. Если этот параметр не указан, объекты отправляются по мере создания. Этот параметр управления ресурсами предназначен для опытных пользователей. При использовании этого параметра оболочка Windows PowerShell не вызывает следующий командлет в конвейере до тех пор, пока количество созданных объектов не станет равно OutBuffer + 1. После этого оболочка посылает все объекты по мере создания. Описания параметров управления рисками -WhatIf[:{$true | $false}] Отображает сообщение, в котором описан результат выполнения команды, без фактического ее выполнения. Параметр WhatIf переопределяет значение переменной $WhatIfPreference для текущей команды. Поскольку по умолчанию для переменной $WhatIfPreference установлено значение 0 (отключено), функция WhatIf не используется, если в команде не указан параметр WhatIf. Чтобы получить дополнительные сведения, введите следующую команду: get-help about_preference_variables Допустимые значения: $true (-WhatIf:$true). Равносильно использованию параметра - WhatIf. $false (-WhatIf:$false). Подавляет автоматическое поведение WhatIf, которое наблюдается, если для переменной $WhatIfPreference установлено значение 1. Например, в следующей команде параметр WhatIf используется в команде Remove-Item. PS> remove-item date.csv -whatif Вместо удаления элемента оболочка Windows PowerShell перечисляет действия, которые могли бы быть предприняты, и затронутые элементы. Эта команда выводит следующий текст: What if: Выполнение операции "Удаление файла" над целевым объектом "C:\ps-test\date.csv". -Confirm[:{$true | $false}] Запрашивает подтверждение перед выполнением команды. Параметр Confirm переопределяет значение переменной $ConfirmPreference для текущей команды. По умолчанию используется значение High. Чтобы получить дополнительные сведения, введите следующую команду: get-help about_preference_variables Допустимые значения: $true (-WhatIf:$true). Равносильно использованию параметра - Confirm. $false(-Confirm:$false). Подавляет автоматическое подтверждение, которое происходит, если значение переменной $ConfirmPreference меньше или равно оценке риска выполнения командлета. Например, в следующей команде параметр Confirm используется в в команде Remove-Item. Перед удалением элемента оболочка Windows PowerShell перечисляет действия, которые могли бы быть предприняты, и затронутые элементы, а также запрашивает подтверждение выполняемой операции. PS C:\ps-test> remove-item tmp*.txt -confirm Эта команда выводит следующий текст: Подтвердить Выполнить это действие? Выполнение операции "Удаление файла" над целевым объектом " C:\ps-test\tmp1.txt [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию "Y"): СМ. ТАКЖЕ about_Preference_Variables Write-Debug Write-Warning Write-Error Write-Verbose about_Comparison_Operators РАЗДЕЛ about_Comparison_Operators КРАТКОЕ ОПИСАНИЕ Описание операторов сравнения, используемых в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Операторы сравнения позволяют указать условия сравнения и включения, удовлетворяющих указанным шаблонам. При использовании оператора сравнения необходимо указать величины, которые требуется сравнивать, а также оператор, который будет разделять эти величины. По умолчанию во всех операторах сравнения не учитывается реестр символов. Для учета реестра символов в операторе сравнения необходимо указать перед именем оператора букву "c".Например, "-ceq" - это версия оператора "-eq", учитывающая реестр символов. Чтобы отменить учет реестров символов в явном виде укажите перед именем оператора букву "i". Например, "-ieq" - это версия оператора "-eq", в которой явно отключен учет реестра символов. Все операторы сравнения, кроме операторов включения (-contains, -notcontains) и операторов типа (-is, -isnot), возвращают логическое значение, если в качестве входных данных оператора (значение слева от оператора) используется одно значение (скаляр). Если в качестве входных данных используется коллекция значений, операторы включения и операторы типа возвращают все соответствующие значения. Если в коллекции не найдено соответствий, эти операторы не вернут ничего. Операторы включения и типа всегда возвращают логическое значение. Оболочка Windows PowerShell поддерживает следующие операторы сравнения. --eq Описание. Равенство. Распространяется на случай совпадения значений. Пример: C:\PS> "abc", "def" -eq "abc" abc -ne Описание. Неравенство. Распространяется на случай несовпадения значений. Пример: C:\PS> "abc", "def" -ne "abc" def -gt Описание. Больше. Пример: C:\PS> 8 -gt 6 True -ge Описание. Больше или равно. Пример: C:\PS> 8 -ge 8 True -lt Описание. Меньше. Пример: C:\PS> 8 -lt 6 False -le Описание. Меньше или равно. Пример: C:\PS> 6 -le 8 True -like Описание. Соответствие с использованием подстановочного знака (*). Пример: C:\PS> "Windows PowerShell" -like "*shell" True -notlike Описание. Несоответствие с использованием подстановочного знака (*). Пример: C:\PS> "Windows PowerShell" -notlike "*shell" False -match Описание. Соответствие строк с учетом регулярных выражений. Если в качестве входных данных используется скалярное значение, оператор заносит результат в автоматическую переменную $Matches. Пример: C:\PS> "Sunday" -match "sun" True C:\PS> $matches Имя Значение --- -------- 0 sun -notmatch Описание. Несоответствие строк. Используются регулярные выражения. Если в качестве входных данных используется скалярное значение, оператор заносит результат в автоматическую переменную $Matches. Пример: C:\PS> "Sunday" -notmatch "sun" False C:\PS> $matches Имя Значение --- -------- 0 sun -contains Описание. Оператор включения. Распространяется на случай совпадения значений, которые не являются фрагментом значения. Всегда возвращает логическое значение. Пример: C:PS> "abc", "def" -contains "def" True -notcontains Описание. Оператор включения. Не распространяется на случай совпадения значений. Всегда возвращает логическое значение. Пример: C:PS> "Windows", "PowerShell" -notcontains "Shell" True -replace Описание. Оператор замены. Изменяет указанные элементы значения. Пример: C:\PS> "Get-Process" -replace "Get", "Stop" Stop-Process Операторы равенства Операторы равенства (-eq, -ne) возвращают значение TRUE или соответствующие элементы, если одно или несколько входных значений совпадают с указанным шаблоном. Весь шаблон должен соответствовать всему значению. В следующих примерах показано функционирование оператора равенства. C:PS> 1,2,3 -eq 2 2 C:PS> "PowerShell" -eq "Shell" False C:PS> "Windows", "PowerShell" -eq "Shell" C:PS> C:\PS> "abc", "def", "123" -eq "def" def Операторы включения Операторы включения (-contains и -notcontains) сходны с операторами равенства. Однако операторы включения всегда возвращают логическое значение, даже если в качестве входных данных использовалась коллекция. Кроме того, в отличие от операторов равенства, операторы включения возвращают значение при обнаружении первого совпадения. Операторы равенства оценивают все входные данные и затем возвращают все совпадения в коллекции. В следующих примерах показано функционирование оператора -co ntains. C:PS> 1,2,3 -contains 2 True C:PS> "PowerShell" -contains "Shell" False C:PS> "Windows", "PowerShell" -contains "Shell" False C:\PS> "abc", "def", "123" -contains "def" True C:\PS> "true", "blue", "six" -contains "true" True В следующем примере продемонстрировано отличие операторов включения от оператора равенства. Операторы включения всегда возвращают значение TRUE при первом совпадении. C:\PS> 1,2,3,4,5,4,3,2,1 -eq 2 2 2 C:\PS> 1,2,3,4,5,4,3,2,1 -contains 2 True При обработке коллекции очень большого объема оператор -contains возвращает результаты быстрее, чем оператор равенства. Операторы совпадения Операторы совпадения (-match и -notmatch) выполняют поиск элементов, которые соответствуют или не соответствуют указанному шаблону при использовании регулярных выражений. Синтаксис: <string[]> -match <регулярное_выражение> <string[]> -notmatch <регулярное_выражение> Ниже показаны примеры использования оператора -match. C:\PS> "Windows", "PowerShell" -match ".shell" PowerShell C:\PS> (get-command get-member -syntax) -match "-view" True C:\PS> (get-command get-member -syntax) -notmatch "-path" True C:\PS> (get-content servers.txt) -match "^Server\d\d" Server01 Server02 Операторы совпадения выполняют поиск только по строкам. Они не могут выполнять поиск по массивам целых чисел и другим объектам. Операторы -match и -nomatch заполняют автоматическую переменную $Matches, если входные данные (аргумент с левой стороны) оператора представляют собой один скалярный объект. Если входные данные являются скаляром, операторы -match и -nomatch возвращают логическое значение и устанавливают в качестве значения автоматической переменной $Match совпавшие компоненты аргумента. Если входные данные являются коллекцией, операторы -match и -nomatch возвращают соответствующие элементы коллекции, но не изменяют значение автоматической переменной $Match. Например, следующая команда отправляет коллекцию строк в оператор -match. Оператор -match возвращает элементы коллекции, которые соответствуют шаблону. При этом значение автоматической переменной $Matches не изменяется. C:\PS> "Sunday", "Monday", "Tuesday" -match "sun" Sunday C:\PS> $matches C:\PS> Напротив, следующая команда отправляет в оператор -match одну строку. Оператор -match возвращает логическое значение и изменяет значение автоматической переменной $Matches. C:\PS> "Sunday" -match "sun" True C:\PS> $matches Имя Значение --- -------- 0 Sun Оператор -nomatch устанавливает значение автоматической переменной $Matches, если входные данные являются скаляром, а результат выполнения оператора равняется False, т. е. при обнаружении совпадения. C:\PS> "Sunday" -notmatch "rain" True C:\PS> $matches C:\PS> C:\PS> "Sunday" -notmatch "day" False C:\PS> $matches C:\PS> Имя Значение --- -------- 0 day Оператор замены Оператор -replace заменяет часть исходного значения или все значение целиком на указанное значение с использованием регулярных выражений. Оператор -replace может оказаться полезным при выполнении многих административных задач, например при переименовании файлов. Например, следующая команда изменяет расширения всех файлов GIF на JPG. Get-ChildItem | Rename-Item -NewName { $_ -replace '.gif$','.jpg$' } Ниже описан синтаксис оператора -replace, при этому <оригинал> соответствует символам, которые необходимо заменить, а <замена> - символам, которыми необходимо заменить оригинал. <входные_данные> <оператор> <оригинал>, По умолчанию оператор замены не учитывает регистр символов. Для учета регистра символов используйте -creplace. Для явного отключения учета регистра символов используйте -ireplace. Рассмотрим следующие примеры. C:\PS> "book" -replace "B", "C" Cook C:\PS> "book" -ireplace "B", "C" Cook C:\PS> "book" -creplace "B", "C" book Побитовые операторы Оболочка Windows PowerShell поддерживает стандартные побитовые операторы, включая побитовое И (-band), побитовое ИЛИ и побитовое исключающее ИЛИ (-bor и -bxor). Начиная с версии Windows PowerShell 2.0, все побитовые операторы работают с 64-разрядными целыми числами. Windows PowerShell поддерживает следующие побитовые операторы: Оператор Описание Пример -------- -------------------------- ------------------- -band Побитовое И C:\PS> 10 -band 3 2 -bor Побитовое ИЛИ (включающее) C:\PS> 10 -bor 3 11 -bxor Побитовое ИЛИ (исключающее) C:\PS> 10 -bxor 3 9 Побитовые операторы используют двоичный формат значений. Например, для числа 10 используется битовая структура 00001010 (с учетом 1 байта), а для числа 3 - 00000011. При использовании побитового оператора для сравнения 10 и 3 выполняется сравнение отдельных битов в каждом байте. При операции побитового И результирующий бит устанавливается в 1 только в том случае, если оба входных бита равняются 1. 00001010 (10) 00000011 ( 3) ------------------ bAND 00000010 ( 2) При операции побитового ИЛИ (включающего) результирующий бит устанавливается в 1, если любой из входных битов или они оба равняются 1. Результирующий бит устанавливается в 0 только в том случае, если оба входных бита равняются 0. 00001010 (10) 00000011 ( 3) ---------------- bOR (включающее ИЛИ) 00001011 (11) При операции побитового ИЛИ (исключающего) результирующий бит устанавливается в 1 только в том случае, если один из входных битов равняется 1. 00001010 (10) 00000011 ( 3) ---------------- bXOR (исключающее) 00001001 ( 9) СМ. ТАКЖЕ about_Operators about_Regular_Expressions about_Wildcards Compare-Object about_Continue РАЗДЕЛ about_Continue КРАТКОЕ ОПИСАНИЕ Описывает использование инструкции Continue для немедленного перехода программного потока в начало цикла программы. ПОЛНОЕ ОПИСАНИЕ Инструкция Continue в скрипте вызывает немедленный возврат программного потока в начало самого внутреннего цикла, управляемого любой из следующих инструкций: For, Foreach и While. Ключевое слово Continue поддерживает метки. Метка - это имя, присвоенное инструкции в скрипте. Дополнительные сведения о метках см. в разделе about_Break. В следующем примере программный поток возвращается в начало цикла While, если значение переменной $ctr равняется 5. В результате отображаются все числа от 1 до 10, за исключением 5. while ($ctr -lt 10) { $ctr +=1 if ($ctr -eq 5) {continue} Write-Host $ctr } Обратите внимание, что в цикле For выполнение продолжается с первой строки цикла. Если аргументы инструкции For проверяют значение, изменяемое инструкцией For, в результате может образоваться бесконечный цикл. СМ. ТАКЖЕ about_Comparison_Operators about_Core_Commands РАЗДЕЛ about_Core_Commands КРАТКОЕ ОПИСАНИЕ Выводит список командлетов, предназначенных для работы с поставщиками Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В состав оболочки Windows PowerShell входит набор командлетов, которые специально предназначены для управления элементами в хранилищах данных, предоставленных поставщиками Windows PowerShell. Эти командлеты можно использовать для единообразного управления различными типами данных, предоставляемых поставщиками. Чтобы получить дополнительные сведения о поставщиках, введите команду "get-help about_providers". Например, командлет Get-ChildItem можно использовать для вывода списка файлов в каталоге файловой системы, ключей в разделе реестра или элементов, предоставленных поставщиком, который написан или загружен пользователем. Ниже представлен список командлетов Windows PowerShell, предназначенных для работы с поставщиками. Командлеты для работы с дочерними элементами Get-ChildItem Командлеты для работы с содержимым Add-Content Clear-Content Get-Content Set-Content Командлеты для работы с элементами Clear-Item Copy-Item Get-Item Invoke-Item Move-Item New-Item Remove-Item Rename-Item Set-Item Командлеты для работы со свойствами элементов Clear-ItemProperty Copy-ItemProperty Get-ItemProperty Move-ItemProperty New-ItemProperty Remove-ItemProperty Rename-ItemProperty Set-ItemProperty Командлеты для работы с расположением Get-Location Pop-Location Push-Location Set-Location Командлеты для работы с путями Join-Path Convert-Path Split-Path Resolve-Path Test-Path Командлеты для работы с дисками PowerShell Get-PSDrive New-PSDrive Remove-PSDrive Командлеты для работы с поставщиками PowerShell Get-PSProvider Чтобы получить дополнительные сведения о командлете, введите команду "get-help <имя_командлета>". СМ. ТАКЖЕ about_Providers about_data_sections РАЗДЕЛ about_Data_Sections КРАТКОЕ ОПИСАНИЕ Описывает разделы Data, позволяющие отделить текстовые строки и другие данные, предназначенные только для чтения, от логики скрипта. ПОЛНОЕ ОПИСАНИЕ Скрипты, предназначенные для Windows PowerShell, могут содержать один или несколько разделов Data, в которых хранятся только данные. Один или несколько разделов Data можно добавить в любой скрипт, функцию или расширенную функцию. Содержимое раздела Data ограничено определенным поднабором языка скриптов Windows PowerShell. Отделение данных от логики кода упрощает идентификацию и управление как логикой, так и данными. Это разделение позволяет создавать отдельные файлы строковых ресурсов для вывода текстовых сообщений, например сообщений об ошибках и строк справки. Кроме того, такой подход позволяет выделить логику кода, что упрощает обеспечение безопасности и проведение тестирования. Раздел Data используется в Windows PowerShell 2.0 для поддержки перевода скрипта на различные языки. Разделы Data можно использовать для упрощения отделения, обнаружения и обработки строк, которые будут переведены на различные языки пользовательского интерфейса. Раздел Data является функцией Windows PowerShell 2.0. Скрипты с разделами Data не будут работать в Windows PowerShell 1.0, если не внести в них изменения. Синтаксис Для раздела Data используется следующий синтаксис: DATA [-supportedCommand <имя_командлета>] { <Разрешенное_содержимое> } Ключевое слово Data является обязательным. Регистр символов не имеет значения. Разрешенное содержимое ограничивается следующими элементами. - Все операторы Windows PowerShell, за исключением -match - Инструкции If, Else и ElseIf - Следующие автоматические переменные: $PSCulture, $PSUICulture, $True, $False и $Null. - Комментарии - Конвейеры - Инструкции разделяются точкой с запятой (;). - Литералы, например следующие: a 1 1,2,3 "Windows PowerShell 2.0" @( "red", "green", "blue" ) @{ a = 0x1; b = "great"; c ="script" } [XML] @' <p> Hello, World </p> '@ - Командлеты, которые могут использоваться в разделе Data. По умолчанию допускается использование только командлета ConvertFrom-StringData. - Командлеты, которые пользователь разрешил использовать в разделе Data с использованием параметра SupportedCommand. Если командлет ConvertFrom-StringData используется в разделе Data, можно заключать пары "ключ-значение" в строки или автономные строки в одиночных или двойных кавычках. Однако строки, содержащие переменные и подвыражения, должны заключаться в строки или автономные строки в одиночных кавычках, чтобы вместо переменных не подставлялись значения, а подвыражения не могли выполняться. SupportedCommand Параметр SupportedCommand позволяет указать, что командлет или функция только создает данные. Этот параметр позволяет пользователям включать в раздел Data командлеты и функции, написанные или протестированные пользователями. В качестве значения параметра SupportedCommand используется разделенный запятыми список имен командлетов и функций. Например, в следующий раздел данных включен написанный пользователем командлет, Format-XML, который форматирует данные в XML-файле. DATA -supportedCommand Format-XML { Format-XML -strings string1, string2, string3 } Использование раздела Data Для использования содержимого раздела Data присвойте его переменной и выполняйте доступ к содержимому с помощью синтаксиса работы с переменными. Например, в следующем разделе данных содержится команда ConvertFrom- StringData, которая конвертирует автономную строку в хэш-таблицу. Хэш-таблица сохраняется в переменной $TextMsgs. Переменная $TextMsgs не является частью раздела данных. $TextMsgs = DATA { ConvertFrom-StringData -stringdata @' Text001 = Windows 7 Text002 = Windows Server 2008 R2 '@ } Для доступа к ключам и значениям в хэш-таблице, сохраненной в переменной $TextMsgs, используются следующие команды. $TextMsgs.Text001 $TextMsgs.Text002 ПРИМЕРЫ Простые строки данных. DATA { "Благодарю вас за использование моего скрипта Windows PowerShell Or ganize.pst." "Он бесплатно предоставляется всем желающим." "Буду благодарен за отзывы и комментарии." } Строки, содержащие разрешенные переменные.. DATA { if ($null) { "Для отображения справки для этого командлета введите команду get- help new-dictionary." } } Автономная строка в одиночных кавычках, которая использует командлет ConvertFrom-StringData: DATA { ConvertFrom-StringData -stringdata @' Text001 = Windows 7 Text002 = Windows Server 2008 R2 '@ } Автономная строка в двойных кавычках, которая использует командлет ConvertFrom-StringData: DATA { ConvertFrom-StringData -stringdata @" Msg1 = Для запуска нажмите любую клавишу. Msg2 = Для завершения работы введите "quit". "@ } Раздел данных, содержащий написанный пользователем командлет, который генерирует данные. DATA -supportedCommand Format-XML { Format-XML -strings string1, string2, string3 } СМ. ТАКЖЕ about_Automatic_Variables about_Comparison_Operators about_Hash_Tables about_If about_Operators about_Quoting_Rules about_Script_Internationalization ConvertFrom-StringData Import-LocalizedData about_debuggers РАЗДЕЛ about_Debuggers КРАТКОЕ ОПИСАНИЕ Описывает отладчик Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Отладка представляет собой процесс проверки скрипта во время его выполнения с целью выявления и исправления ошибок в инструкциях скрипта. Отладчик Windows PowerShell помогает выполнять проверку и находить в скриптах ошибки и неэффективные фрагменты. Примечание. Отладчик Windows PowerShell не выполняется удаленно. Чтобы отладить скрипт на удаленном компьютере, скопируйте его на локальный компьютер. Функции отладчика Windows PowerShell позволяют проверять скрипты, функции, команды и выражения Windows PowerShell во время их выполнения. Отладчик Windows PowerShell включает набор командлетов, позволяющих устанавливать точки останова, управлять ими, а также просматривать стек вызова. В Windows PowerShell имеется несколько методов отладки скриптов, функций и команд. Метод 1. Командлет Set-PsDebug реализует базовые функции отладки скриптов, включая пошаговое выполнение и трассировку. Чтобы получить дополнительные сведения, введите следующую команду: "get-help set-psdebug". Метод 2. Командлет Set-StrictMode позволяет обнаруживать ссылки на неинициализированные переменные, ссылки на несуществующие свойства объектов, а также недопустимый синтаксис функций. Метод 3. В скрипт добавляются диагностические инструкции, например инструкции, выводящие на экран значения переменных, считывающие данные из командной строки или сообщающие об инструкции, которая выполняется в текущий момент. Для этого следует использовать командлеты, содержащие слово Write, например Write-Host, Write-Deb ug, Write-Warning или Write-Verbose. Метод 4. Для отладки скрипта используется отладчик Windows PowerShell. Либо с помощью отладчика можно выполнять отладку функции или блока скрипта, введенных в командной строке. Можно задавать точки останова, выполнять скрипты по шагам, проверять значения переменных, выполнять команды диагностики и ведения журнала, а также отображать содержимое стека вызова. Командлеты отладчика Отладчик Windows PowerShell включает следующий набор командлетов: Set-PsBreakpoint: устанавливает точки останова на строках, переменных и командах. Get-PsBreakpoint: получает точки останова в текущем сеансе. Disable-PsBreakpoint: отключает точки останова в текущем сеансе. Enable-PsBreakpoint: заново включает точки останова в текущем сеан се. Remove-PsBreakpoint: удаляет точки останова из текущего сеанса. Get-PsCallStack: отображает текущий стек вызова. Запуск и остановка отладчика Чтобы запустить отладчик, установите одну или несколько точек останова. После этого выполните скрипт, команду или функцию, которые требуется отладить. При достижении точки останова выполнение останавливается, а управление передается отладчику. Чтобы остановить отладчик, выполните скрипт, команду или функцию до конца. Либо введите команду "stop" или "t". Команды отладчика При использовании отладчика в консоли Windows PowerShell управление выполнением осуществляется с помощью следующих команд. Примечание. Дополнительные сведения об использовании отладчика в других ведущих приложениях см. в документации по конкретному ведущему приложению. s, Step-into Выполняет следующую инструкцию и останавливается. v, Step-over Выполняет следующую инструкцию, но пропускает функции и вызовы. Пропущенные инструкции выполняютс я, но в них отладчик не останавливается. o, Step-out Выходит из текущей функции; на один уровень вверх, если функция является вложенной. Если управл ение находится в теле главной функции, выполнение продол жается до конца функции или до очередной точки останова. П ропущенные инструкции выполняются, но в них отладчик не остана вливается. c, Continue Продолжает выполнение до завершения скрипта или до достижения очередной точки останова. Пропущенные инструкции выполняются, но в них отладчик не останавливается. l, List Отображает выполняющуюся часть скрипта. По умолчанию отображается текущая строка, пять предыдущих и десять следующих строк. Чтобы продолжить вывод скрипта, нажмите клавишу ВВОД. l <m>, List Отображает 16 строк скрипта, начиная со строки, которая задается значением <m>. l <m> <n>, List Отображает <n> строк скрипта, начиная со строки, которая задается значением <m>. q, Stop Останавливает выполнение скрипта и закрывает отладч ик. k, Get-PsCallStack Отображает текущий стек вызова. <Ввод> Повторение последней команды, если это была команда (s), Step-over (v) или List (l). В противном случае выпол няет действие отправки. ?, h Отображает команду Help отладчика. Чтобы выйти из отладчика, воспользуйтесь командой Stop (q). Находясь в режиме отладчика, можно также вводить команды, отображать значения переменных, использовать командлеты и выполнять скрипты. Используя эти команды отладчика, можно выполнять скрипты, останавливаться в сомнительных местах, проверять значения переменных и состояние системы, а также продолжать выполнение скриптов, пока не будут найдены неполадки. Среда отладчика При достижении точки останова происходит вход в среду отладчика. Командная строка изменяется и начинается с "[DBG]:". Командную строку можно настраивать. Кроме того, в некоторых приложениях, например в консоли Windows PowerShell (но не в интегрированной среде скриптов Windows PowerShell), для отладки открывается вложенная командная строка. Вложенная командная строка отличается повторяющимися знаками "больше" (код ASCII 62). Например, ниже показана командная строка по умолчанию в консоли Windows PowerShell: [DBG]: PS (get-location)>>> Уровень вложенности можно определить с помощью автоматической переменной $NestedPromptLevel. Кроме того, в локальной области определена автоматическая переменная $PSDebugContext. По наличию переменной можно $PsDebugContext можно определить, что включен отладчик. Пример: if ($psdebugcontext) {"Debugging"} else {"Not Debugging"} Значение переменной $PSDebugContext можно использовать при отладке. [DBG]: PS>>> $psdebugcontext.invocationinfo Name CommandLineParameters UnboundArguments Location ---- --------------------- ---------------- -------- = {} {} C:\ps-test\vote.ps1 (1) Отладка и область Запуск отладчика не изменяет текущую рабочую область, однако при достижении точки останова в скрипте происходит переход в область скрипта. Область скрипта является дочерней для области, в которой запущен отладчик . Чтобы найти переменные и псевдонимы, определенные в области скрипта, следует использовать параметр Scope командлетов Get-Alias or Get-Variable . Например, следующая команда получает переменные в локальной области (области скрипта): get-variable -scope 0 Эту команду можно сократить следующим образом: gv -s 0 Это удобный способ, позволяющий видеть только переменные, определенные в скрипте и определенные во время отладки. Отладка в командной строке Точки останова переменной или команды можно устанавливать только в файле скрипта. Однако по умолчанию точка останова устанавливается в любом выполняемом в текущем сеансе компоненте. Например, если установить точку останова на переменной $name, отладчик остановит выполнение на любой переменной $name в любом выполняемом скрипте, команде, функции, командлете скрипта или выражении, если не отключить или удалить эту точку останова. Это позволяет отлаживать скрипты в более реалистичном контексте, когда на них могут оказывать влияние другие функции, переменные и скрипты из сеанса и профиля пользователя. Точки останова строк связаны с конкретными файлами скриптов, поэтому они задаются только в файлах скриптов. Отладка функций При установке точки останова на функции, имеющей разделы Begin, Process и End, отладчик будет останавливать выполнение на первой строке каждого из разделов. Пример: function test-cmdlet { begin { write-output "Begin" } process { write-output "Process" } end { write-output "End" } } C:\PS> set-psbreakpoint -command test-cmdlet C:\PS> test-cmdlet Begin Выполняется запуск в режиме отладки. Введите "h" или "?" для получения справки. Выполнение Точка останова команды на "prompt:test-cmdlet" test-cmdlet [DBG]: C:\PS> c Process Выполняется запуск в режиме отладки. Введите "h" или "?" для получения справки. Выполнение Точка останова команды на "prompt:test-cmdlet" test-cmdlet [DBG]: C:\PS> c End Выполняется запуск в режиме отладки. Введите "h" или "?" для получения справки. Выполнение Точка останова команды на "prompt:test-cmdlet" test-cmdlet [DBG]: C:\PS> Отладка удаленных скриптов Отладчик Windows PowerShell нельзя запускать в удаленных сеансах. Чтобы отладить скрипт на удаленном компьютере, скопируйте его на локальный компьютер. Следующая команда копирует скрипт Test.ps1 с удаленного компьютера Server01 на локальный компьютер: invoke-command -computername Server01 ` {get-content c:\ps-test\test.ps1} | set-location c:\ps-test\test.ps1 Примеры Этот тестовый скрипт определяет версию операционной системы и отображает сообщение, соответствующее конкретной системе. Он включает функцию, вызов функции и переменную. Следующая команда отображает содержимое файла тестового скрипта: c:>\PS-test> get-content test.ps1 function psversion { "Windows Powershell " + $psversiontable.psversion if ($psversiontable.psversion.major -lt 2) { "Upgrade to Windows PowerShell 2.0" } else { "Have you run a background job today (start-job)?" } } $scriptname = $MyInvocation.MyCommand.Path psversion "Done $scriptname." Сначала установите точку останова в нужном месте скрипта, например на строке, команде, переменной или функции. Начните с создания точки останова строки на первой строке скрипта Test.ps1 в текущем каталоге. PS C:\ps-test> set-psbreakpoint -line 1 -script test.ps1 Эту команду можно сократить следующим образом: PS C:\ps-test> spb 1 -s test.ps1 Эта команда возвращает объект точки останова строки (System.Management.Automation.LineBreakpoint). Column : 0 Line : 1 Action : Enabled : True HitCount : 0 Id : 0 Script : C:\ps-test\test.ps1 ScriptName : C:\ps-test\test.ps1 Теперь запустите скрипт. PS C:\ps-test> .\test.ps1 Когда выполнение скрипта дойдет до первой точки останова, сообщение точки останова покажет, что работает отладчик. Сообщение будет содержать описание точки останова и предварительный просмотр первой строки скрипта, которая представляет собой объявление функции. Кроме того, изменится командная строка, что будет указывать на то, что управление находится у отладчика. Строка предварительного просмотра будет включать имя скрипта и номер строки с показываемой командой. Выполняется запуск в режиме отладки. Введите "h" или "?" для получения справки. Выполнение Точка останова строки на "C:\ps-test\test.ps1:1" test.ps1:1 function psversion { DBG> Воспользуйтесь командой Step (s), чтобы выполнить первую инструкцию скрипта и увидеть следующую инструкцию. В следующей инструкции используется автоматическая переменная $MyInvocation, позволяющая присвоить переменной $ScriptName путь и имя файла скрипта. DBG> s test.ps1:11 $scriptname = $MyInvocation.MyCommand.Path В этот момент значение переменной $ScriptName не присваивается; значение переменной можно проверить, отобразив его. В данном случае переменная имеет значение $null. DBG> $scriptname DBG> С помощью еще одной команды Step (s) выполните текущую инструкцию и отобразите следующую инструкцию скрипта. Следующая инструкция вызывает функцию PsVersion. DBG> s test.ps1:12 psversion В этот момент переменной $ScriptName присваивается значение, и его можно проверить, отобразив. Теперь оно имеет значение пути к скрипту. DBG> $scriptname C:\ps-test\test.ps1 Воспользуйтесь еще одной командой Step, чтобы выполнить вызов функции. Чтобы выполнить команду Step, нажмите клавишу ВВОД или введите "s". DBG> s test.ps1:2 "Windows Powershell " + $psversiontable.psversion Сообщение отладки включает предварительный просмотр инструкции в функции. Чтобы выполнить эту инструкцию и увидеть следующую инструкцию в функции, можно использовать команду Step. Но в данном случае воспользуйтесь командой Step-Out (o). Она завершит выполнение функции (если не будет достигнута точка останова) и перейдет к следующей инструкции в скрипте. DBG> o Windows Powershell 2.0 Have you run a background job today (start-job)? test.ps1:13 "Done $scriptname" Поскольку достигнута последняя инструкция в скрипте, результат выполнения команд Step, Step-Out и Continue одинаков. В данном случае воспользуйтесь командой Step-Out (o). Done C:\ps-test\test.ps1 PS C:\ps-test> Командлет Step-Out выполняет последнюю команду. Стандартный вид командной строки указывает на то, что работа отладчика завершена, а управление передано обработчику команд. Снова запустите отладчик. Сначала удалите текущую точку останова (воспользуйтесь командлетами Get-PsBreakpoint и Remove-PsBreakpoint). (Если эта точка останова может понадобиться позже, вместо командлета Remove-PsBreakpoint используйте командлет Disable-PsBreakpoint.) PS C:\ps-test> Get-PsBreakpoint | Remove-PSBreakpoint Эту команду можно сократить следующим образом: PS C:\ps-test> gbp | rbp Либо выполните команду, написав функцию, например следующим образом: function delbr { gbp | rbp } После этого создайте точку останова на переменной $scriptname. PS C:\ps-test> set-psbreakpoint -variable scriptname -script test.ps1 Эту команду можно сократить следующим образом: PS C:\ps-test> sbp -v scriptname -s test.ps1 Теперь запустите скрипт. Скрипт достигнет точки останова переменной. По умолчанию используется режим Write, поэтому выполнение будет остановлено непосредственно перед тем, как инструкция изменит значение переменной. PS C:\ps-test> .\test.ps1 Выполнение Точка останова переменной на "C:\ps- test\test.ps1:$scriptname" (доступ к Write) test.ps1:11 $scriptname = $MyInvocation.mycommand.path DBG> Отобразите текущее значение переменной $scriptname, которое равняется $null. DBG> $scriptname DBG> Воспользуйтесь командой Step (s), чтобы выполнить инструкцию, которая присваивает значение переменной. Затем выведите новое значение переменной $scriptname. DBG> $scriptname C:\ps-test\test.ps1 Воспользуйтесь командой Step (s), чтобы увидеть следующую инструкцию в скрипте. DBG> s test.ps1:12 psversion Следующая инструкция представляет собой вызов функции PsVersion. Чтобы пропустить функцию, но выполнить ее, воспользуйтесь командой Step-Over (v). Если во время использования команды Step-Over функция уже выполняется, она не действует. Вызов функции отображается, но она не выполняется. DBG> v Windows Powershell 2.0 Have you run a background job today (start-job)? test.ps1:13 "Done $scriptname" Команда Step-Over выполняет функцию и выводит предварительный просмотр следующей инструкции скрипта, которая выводит последнюю строку. Чтобы выйти из отладчика, воспользуйтесь командой Stop (t). Командная строка снова примет стандартный вид. C:\ps-test> Чтобы удалить точки останова, воспользуйтесь командлетами Get-PsBreakpoint и Remove-PsBreakpoint. PS C:\ps-test> Get-PsBreakpoint | Remove-PSBreakpoint Создайте новую точку останова команды на функции PsVersion. PS C:\ps-test> Set-PsBreakpoint -command psversion -script test.ps1 Эту команду можно сократить следующим образом: PS C:\ps-test> sbp -c psversion -s test.ps1 Теперь выполните скрипт. PS C:\ps-test> .\test.ps1 Выполнение Точка останова команды на "C:\ps-test\test.ps1:psversion" test.ps1:12 psversion DBG> Скрипт достигает точки останова на вызове функции. В этот момент функция еще не была вызвана. Это позволяет воспользоваться параметром Action команды Set-PsBreakpoint, чтобы задать условия выполнения точки останова или выполнить подготовительные или диагностические задачи, например запустить ведение журнала или вызвать скрипт диагностики или обеспечения безопасности. Для задания действия воспользуйтесь командой Continue (c), чтобы выйти из скрипта, и командой Remove-PsBreakpoint, чтобы удалить текущую точку останова. (Точки останова доступны только для чтения, поэтому добавить действие в текущую точку останова невозможно.) DBG> c Windows PowerShell 2.0 Have you run a background job today (start-job)? Done C:\ps-test\test.ps1 PS C:\ps-test> get-psbreakpoint | remove-psbreakpoint PS C:\ps-test> После этого создайте новую точку останова команды с действием. Следующая команда устанавливает точку останова команды с действием, которое при вызове функции записывает в журнал значение переменной $scriptname. Поскольку в действии не используется ключевое слово Break, выполнение не останавливается. (Обратный апостроф (`) является знаком продолжения строки.) PS C:\ps-test> set-psbreakpoint -command psversion -script test.ps1 ` -action { add-content "The value of `$scriptname is $scriptname." ` -path action.log} Кроме того, можно добавлять действия, которые задают условия для точки останова. В следующей команде точка останова команды выполняется только в том случае, если задана политика выполнения RemoteSigned - наиболее строгая политика, которая позволяет выполнять скрипты. (Обратный апостроф (`) является знаком продолжения строки.) PS C:\ps-test> set-psbreakpoint -script test.ps1 -command psversion ` -action { if ((get-executionpolicy) -eq "RemoteSigned") { break }} Ключевое слово Break в действии указывает отладчику, что необходимо выполнить точку останова. Кроме того, можно воспользоваться ключевым словом Continue, чтобы отладчик выполнялся без останова. Поскольку по умолчанию используется ключевое слово Continue, чтобы остановить выполнение, необходимо задать ключевое слово Break. Теперь выполните скрипт. PS C:\ps-test> .\test.ps1 Выполнение Точка останова команды на "C:\ps-test\test.ps1:psversion" test.ps1:12 psversion Поскольку задана политика выполнения RemoteSigned, выполнение останавливается на вызове функции. На этом этапе может потребоваться проверить стек вызова. Воспользуйтесь командлетом Get-PsCallStack или командой отладчика Get-PsCallStack (k). Следующая команда возвращает текущий стек вызова. DBG> k 2: prompt 1: .\test.ps1: $args=[] 0: prompt: $args=[] Этот пример демонстрирует лишь один из множества способов использования отладчика Windows PowerShell. Чтобы получить дополнительные сведения о командлетах отладчика, введите следующую команду: help <cmdlet-name> -full Например, введите следующую команду: help set-psbreakpoint -full СМ. ТАКЖЕ Disable-PsBreakpoint Get-PsBreakpoint Remove-PsBreakpoint Set-PsBreakpoint Set-PsDebug Set-Strictmode Write-Debug Write-Verbose Enable-PsBreakpoint Get-PsCallStack about_do РАЗДЕЛ about_Do КРАТКОЕ ОПИСАНИЕ Выполняет список инструкций один или несколько раз в зависимости от условия While или Until. ПОЛНОЕ ОПИСАНИЕ Ключевое слово Do используется совместно с ключевым словом While или Until, чтобы инструкции в блоке скрипта выполнялись в зависимости от условия. В отличие от цикла While, блок скрипта в цикле Do всегда выполняется по крайней мере один раз. Цикл Do-While представляет собой разновидность цикла While. В цикле Do-While условие проверяется после выполнения блока скрипта. Как и в цикле While, блок скрипта повторяется до тех пор, пока условие остается истинным. Как и цикл Do-While, цикл Do-Until всегда выполняется по крайней мере один раз, прежде чем будет проверено условие. Однако блок скрипта выполняется только в том случае, если условие ложно. В циклах Do-While и Do-Until можно использовать ключевые слова управления потоком выполнения Continue и Break. Синтаксис Ниже показан синтаксис инструкции Do-While: do {<список_инструкций>} while (<условие>) Ниже показан синтаксис инструкции Do-Until: do {<список_инструкций>} until (<условие>) Список инструкций содержит одну или несколько инструкций, которые выполняются каждый раз при входе в цикл и его повторении. Условие в инструкции принимает значение true или false. Пример В следующем примере инструкция Do подсчитывает число элементов в массиве, пока не будет достигнуто значение 0. C:\PS> $x = 1,2,78,0 C:\PS> do { $count++; $a++; } while ($x[$a] -ne 0) C:\PS> $count 3 В следующем примере кода используется ключевое слово Until. Обратите внимание, что оператор "не равно" (-ne) заменен оператором "равно" (-eq). C:\PS> $x = 1,2,78,0 C:\PS> do { $count++; $a++; } until ($x[$a] -eq 0) C:\PS> $count 3 В следующем примере выводятся все значения в массиве, кроме значений, которые меньше нуля. do { if ($x[$a] -lt 0) { continue } Write-Host $x[$a] } while (++$a -lt 10) СМ. ТАКЖЕ about_While about_Operators about_Assignment_Operators about_Comparison_Operators about_Break about_Continue about_environment_variables РАЗДЕЛ about_Environment_Variables КРАТКОЕ ОПИСАНИЕ Описывает, как обращаться к переменным среды Windows из Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Переменные среды хранят сведения о среде операционной системы. Эти сведения включают в себя такие данные, как путь операционной системы, количество процессоров, используемых операционной системой, а также местонахождение временных папок. В переменных среды хранятся данные, используемые операционной системой и другими программами. Например, переменная среды WINDIR содержит местоположение каталога установки Windows. Программы могут запрашивать значение этой переменной, чтобы определить, где находятся файлы операционной системы Windows. Windows PowerShell позволяет просматривать и изменять значения переменных среды Windows, в том числе переменных, заданных в реестре и заданных для конкретного сеанса. Поставщик среды Windows PowerShell упрощает процесс просмотра и изменения переменных среды. В отличие от переменных других типов в Windows PowerShell, переменные среды и их значения наследуются в дочерних сеансах, например в локальных фоновых заданиях и сеансах, в которых выполняются модули. Поэтому переменные среды хорошо подходят для хранения значений, которые требуются как в родительских, так и в дочерних сеансах. Поставщик среды Windows PowerShell Поставщик среды Windows PowerShell позволяет обращаться к переменным среды Windows из Windows PowerShell на диске Windows PowerShell (диск Env:). Этот диск очень похож на диски файловой системы. Чтобы перейти к диску Env:, введите: set-location env: Затем, чтобы отобразить содержимое диска Env:, введите: get-childitem Переменные среды на диске Env: можно просматривать с любого другого диска Windows PowerShell; кроме того, можно войти на диск Env:, чтобы просматривать и изменять переменные среды. Объекты переменных среды В Windows PowerShell каждая переменная среды представляется объектом, который является экземпляром класса System.Collections. DictionaryEntry. В каждом объекте DictionaryEntry имя переменной среды является ключом словаря. Значение переменной является значением словаря. Для отображения переменной среды в Windows PowerShell необходимо получить объект, представляющий переменную, а затем отобразить значения свойств объекта. При изменении переменной среды в Windows PowerShell следует использовать методы, связанные с объектом DictionaryEntry. Для отображения свойств и методов объекта, представляющего переменную среды в Windows PowerShell, следует использовать командлет Get-Member. Например, для отображения методов и свойств всех объектов на диске Env: введите: get-item -path env:* | get-member Отображение переменных среды Для отображения и изменения значений переменных среды, можно использовать командлеты, содержащие слово Item (командлеты Item). Поскольку у переменных среды нет дочерних элементов, выходные данные командлетов Get-Item и Get-ChildItem одинаковы. При обращении к переменной среды введите имя диска Env: и имя переменной. Например, для отображения значения переменной среды COMPUTERNAME введите: get-childitem env:computername Для отображения значений всех переменных среды введите: get-childitem env: По умолчанию в Windows PowerShell перемененные отображаются в том порядке, в котором они извлекаются. Чтобы отсортировать список переменных среды по имени переменной, необходимо передать выходные данные команды Get-ChildItem по конвейеру командлету Sort-Object. Например, из любого диска Windows PowerShell введите: get-childitem env: | sort name Кроме того, к диску Env: можно перейти с помощью командлета Set-Location: set-location env: Если диск Env: уже открыт, имя диска Env: в пути можно не указывать. Например, для отображения всех переменных среды введите: get-childitem Чтобы отобразить значение переменной COMPUTERNAME, находясь на диске Env:, введите: get-childitem computername Отображать и изменять значения переменных среды можно также без использования командлета при помощи синтаксического анализатора выражений в Windows PowerShell. Для отображения значения переменной среды используется следующий синтаксис: $env:<имя_переменной> Например, чтобы отобразить значение переменной среды WINDIR, введите в командную строку Windows PowerShell следующую команду: $env:windir В этом выражении знак доллара ($) обозначает переменную, а имя диска указывает, что используется переменная среды. Изменение переменных среды Чтобы сохранить изменение переменной среды, необходимо воспользоваться компонентом "Система" в "Панели управления" (вкладка "Дополнительно" или пункт "Дополнительные параметры системы") и сохранить изменение в реестре. При изменении переменных среды в Windows PowerShell эти изменения распространяются только на текущий сеанс. Это похоже на применение команды Set в средах на базе Windows и команды Setenv в средах на базе UNIX. Необходимо также иметь разрешение на изменение значений переменных. При попытке изменения значения без необходимого разрешения команду выполнить не удается, и в Windows PowerShell появляется сообщение об ошибке. Значения переменных можно изменять без применения командлета, используя следующий синтаксис: $env:<имя_переменной> = "<новое_значение>" Например, чтобы добавить к переменной среды Path фрагмент ";c:\temp", следует воспользоваться следующим выражением: $env:path = $env:path + ";c:\temp" Для изменения значений переменных среды могут использоваться также командлеты Item, такие как Set-Item, Remove-Item и Copy-Item. Например, чтобы добавить к переменной среды Path фрагмент ";c:\temp" с помощью командлета Set-Item, следует воспользоваться следующим выражением: set-item -path env:path -value ($env:path + ";c:\temp") В этой команде значение, заключенное в круглые скобки, интерпретируется как единое выражение. Сохранение изменений переменных среды Чтобы создать или изменить значение переменной среды во всех сеансах Windows PowerShell, необходимо добавить изменение в профиль Windows PowerShell. Например, чтобы добавить каталог C:\Temp в переменную среды Path во всех сеансах Windows PowerShell, необходимо добавить в профиль Windows PowerShell следующую команду. $env:path = $env:path + ";c:\temp" Чтобы добавить команду в существующий профиль, например в профиль CurrentUser,AllHosts, введите: add-content -path $profile.CurrentUserAllHosts -value '$env:path = $env:path + ";c:\temp"' Переменные среды, в которых хранятся параметры Компоненты Windows PowerShell могут использовать переменные среды для хранения пользовательских параметров. Эти переменные ведут себя как привилегированные переменные, но наследуются дочерними сеансами тех сеансов, в которых они были созданы. Дополнительные сведения о привилегированных переменных см. в разделе about_preference_variables. Переменные среды, в которых хранятся параметры, включают: PSModulePath Хранит пути к каталогам модулей по умолчанию. Если полный путь к модулю не задан, среда Windows PowerShell ищет модули в указанных каталогах. По умолчанию переменная $env:PSModulePath имеет следующее значение: $home\Documents\WindowsPowerShell\Modules; $pshome\Modules Среда Windows PowerShell устанавливает значение "$pshome\Modules" в реестре. Значение "$home\Documents\WindowsPowerShell\Modules" устанавливается при каждом запуске Windows PowerShell. Кроме того, программы установки, которые устанавливают модули в другие каталоги, например в каталог Program Files, добавляют соответствующие местоположения в значение переменной PSModulePath. Чтобы изменить каталоги модулей по умолчанию, измените значение переменной среды PSModulePath. Например, чтобы добавить в значение переменной среды PSModulePath каталог "C:\ps-test\Modules", введите: $env:PSModulePath = $env:PSModulePath + ";c:\ps-test\Modules" Точка с запятой (;) в этой команде отделяет новый путь от предыдущего пути в списке. Изменения распространяются только на текущий сеанс, если только не добавляется команда, которая изменяет значение в профиле, или не используется элемент "Система" в "Панели управления", с помощью которого значение переменной среды PSModulePath изменяется в реестре. Дополнительные сведения см. в разделе about_Modules. СМ. ТАКЖЕ Поставщик среды about_escape_characters РАЗДЕЛ about_Escape_Characters КРАТКОЕ ОПИСАНИЕ Представляет escape-символы Windows PowerShell и их назначение. ПОЛНОЕ ОПИСАНИЕ Escape-символы служат для задания особых функций для указанных после них знаков. В Windows PowerShell escape-символом является обратный апостроф (`), также называемый грависом (код ASCII 96). Escape-символ можно использовать для обозначения литерала, продолжения строки или специального знака. Обозначение литерала Если escape-символ помещается перед переменной, он не позволяет подставить вместо переменной ее значение. Если escape-символ помещается перед двойной кавычкой, среда Windows PowerShell интерпретирует двойную кавычку в качестве символа, а на разделителя строк. Пример: C:\>$a = 5 C:\>"Значение хранится в переменной $a." Значение хранится в переменной 5. C:\>$a = 5 C:\>"Значение хранится в переменной `$a." Значение хранится в переменной $a. C:\> "Используйте двойные кавычки (") для обозначения строки." Неожиданный токен ")" в выражении или инструкции. В строке:1 знак:25 + "Используйте двойные кавычки (") < для обозначения строки." C:\> "Используйте двойные кавычки (`")для обозначения строки." Используйте двойные кавычки (")для обозначения строки. Обозначение продолжения строки Escape-символ указывает среде Windows PowerShell, что продолжение команды находится на следующей строке. Пример: C:\> get-process ` >> powershell Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 340 8 34556 31864 149 0.98 2036 powershell Обозначение специальных знаков При использовании с кавычками escape-символы обозначают специальные знаки, которые являются инструкциями для синтаксического анализатора команд. В Windows PowerShell распознаются следующие специальные символы: `0 Null `a Предупреждение `b Возврат курсора `f Перевод страницы `n Новая строка `r Возврат каретки `t Горизонтальная табуляция `v Вертикальная табуляция Пример: C:\> "12345678123456781`nCol1`tColumn2`tCol3" 12345678123456781 Col1 Column2 Col3 Чтобы получить дополнительные сведения, введите следующую команду: get-help about_special_characters СМ. ТАКЖЕ about_Quoting_Rules about_eventlogs РАЗДЕЛ about_EventLogs КРАТКОЕ ОПИСАНИЕ Windows PowerShell создает журнал событий Windows с именем "Windows PowerShell" для записи событий Windows PowerShell. Этот журнал можно просматривать в средстве просмотра событий или с помощью командлетов, получающих события, например командлета Get-EventLog. По умолчанию в журнал событий записываются события обработчика и поставщика Windows PowerShell, однако с помощью привилегированных переменных журнал событий можно настраивать. Например, можно добавить в него события, связанные с командами Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В журнал событий Windows PowerShell записываются сведения об операциях Windows PowerShell, например о запуске и остановке обработчика программы и о запуске и остановке поставщиков Windows PowerShell. Кроме того, в журнал можно записывать сведения о командах Windows PowerShell. В Windows Vista и более поздних версиях Windows журнал событий Windows PowerShell находится в группе журналов приложений и служб. Журнал Windows PowerShell является классическим журналом событий, не использующим технологию обработки событий Windows. Для просмотра журнала используются командлеты, предназначенные для классических журналов событий, например Get-EventLog. Просмотр журнала событий Windows PowerShell Журнал событий Windows PowerShell можно просматривать с помощью средства просмотра событий или командлетов Get-EventLog и Get-WmiObject. Для просмотра содержимого журнала Windows PowerShell введите следующую команду: get-eventlog -logname "Windows PowerShell" Для просмотра событий и их свойств следует использовать командлет Sort-Object, командлет Group-Object и командлеты, содержащие слово Format (командлеты the Format). Например, для просмотра событий в журнале событий, сгруппированных по идентификатору события, введите следующую команду: get-eventlog "Windows PowerShell" | format-table -groupby eventid Также можно ввести команду: get-eventlog "Windows PowerShell" | sort-object eventid ` | group-object eventid Для просмотра классических журналов событий введите следующую команду: get-eventlog -list Кроме того, можно воспользоваться командлетом Get-WmiObject, чтобы использовать для просмотра журнала событий классы инструментария WMI. Например, для просмотра всех свойств файла журнала событий введите следующую команду: get-wmiobject win32_nteventlogfile | where ` {$_.logfilename -eq "Windows PowerShell"} | format-list -property * Чтобы найти классы WMI, связанные с событием Win32, введите следующую команду: get-wmiobject -list | where {$_.name -like "win32*event*"} Чтобы получить дополнительные сведения, введите команды get-help get- eventlog и get-help get-wmiobject. Выбор событий для журнала событий Windows PowerShell Привилегированные переменные журнала событий позволяют определять, какие события записываются в журнал событий Windows PowerShell. Имеется шесть привилегированных переменных журнала событий - по одной для каждого из компонентов ведения журнала: обработчика (программы Windows PowerShell), поставщиков и команд. Переменные LifeCycleEvent отвечают за ведение журнала стандартных событий запуска и остановки. Переменные Health отвечают за ведение журнала ошибок. В следующей таблице перечислены привилегированные переменные журнала событий. Переменная Описание -------------------------- ---------------------------------------- $LogEngineLifeCycleEvent Запись в журнал событий запуска и завершения Windows PowerShell. $LogEngineHealthEvent Запись в журнал ошибок программы Windows PowerShell. $LogProviderLifecycleEvent Запись в журнал событий запуска и завершения поставщиков Windows PowerShell. $LogProviderHealthEvent Запись в журнал ошибок поставщиков Windows PowerShell. $LogCommandLifeCycleEvent Запись в журнал событий запуска и завершения команд. $LogCommandHealthEvent Запись в журнал ошибок команд. (Чтобы получить дополнительные сведения о поставщиках Windows PowerShell, введите команду get-help about_providers.) По умолчанию включена регистрация в журнале событий только следующих типов: $LogEngineLifeCycleEvent $LogEngineHealthEvent $LogProviderLifecycleEvent $LogProviderHealthEvent Чтобы включить тип событий, установите для привилегированной переменной для этого типа значение $true. Например, чтобы включить события жизненного цикла команд, введите следующую команду: $LogCommandLifeCycleEvent Также можно ввести следующую команду: $LogCommandLifeCycleEvent = $true Чтобы отключить тип событий, установите для привилегированной переменной для этого типа значение $false. Например, чтобы отключить события жизненного цикла команд, введите следующую команду: $LogProviderLifeCycleEvent = $false Действие этих переменных распространяется только на текущий сеанс Windows PowerShell. Чтобы применить их ко всем сеансам Windows PowerShell, добавьте их в профиль Windows PowerShell. Безопасность и аудит Журнал событий Windows PowerShell предназначен для регистрации операций и сохранения сведений, необходимых для устранения неполадок. Но, как и большинство журналов событий приложений на базе Windows, журнал событий небезопасен. Его не следует использовать для аудита системы безопасности или записи конфиденциальных сведений или сведений, представляющих интеллектуальную собственность. Журналы событий разработаны таким образом, чтобы они были удобны и понятны пользователям. Пользователи могут выполнять запись и чтение в журналах. Злоумышленник может прочитать журнал событий на локальном или удаленном компьютере, записать поддельные данные или препятствовать ведению журнала операций. СМ. ТАКЖЕ Get-EventLog Get-WmiObject about_Preference_Variables about_execution_policies РАЗДЕЛ about_Execution_Policies КРАТКОЕ ОПИСАНИЕ Описывает политики выполнения Windows PowerShell и способы управления ими. ПОЛНОЕ ОПИСАНИЕ Политики выполнения Windows PowerShell позволяют определять условия, при которых среда Windows PowerShell загружает файлы конфигурации и выполняет скрипты. Политику выполнения можно задать для локального компьютера, текущего пользователя или конкретного сеанса. Для задания политик выполнения для пользователей и компьютеров можно использовать параметры групповой политики. Политики выполнения для локального компьютера и текущего пользователя хранятся в реестре. Политики выполнения не требуется задавать в профиле Windows PowerShell. Политика выполнения для конкретного сеанса хранится только в памяти и теряется после закрытия сеанса. Политика выполнения не является механизмом обеспечения безопасности, который ограничивает действия пользователей. Например, пользователи могут обходить политику путем ввода содержимого скрипта в командной строке, если выполнить скрипт не удается. Вместо этого политика выполнения помогает пользователям задавать базовые правила и не позволяет непреднамеренно наруш ать их. ПОЛИТИКИ ВЫПОЛНЕНИЯ WINDOWS POWERSHELL ------------------------------------- Существуют следующие политики выполнения Windows PowerShell. Restricted - политика по умолчанию. Restricted - Политика выполнения по умолчанию. - Допускает отдельные команды, но скрипты выполнять нельзя. - Препятствует выполнению всех файлов скриптов, включая файлы форматирования и конфигурации (PS1XML), файлы скриптов модулей (PSM1) и профили Windows PowerShell (PS1). AllSigned - Выполнение скриптов разрешено. - Требует, чтобы все скрипты и файлы конфигурации были подписаны надежным издателем, в том числе скрипты, подготовленные на локальном компьютере. - Перед выполнением скриптов издателей, для которых еще не определено, являются ли они надежными, выводятся предупреждения. - Имеется риск выполнения неподписанных скриптов из источников, отличных от Интернета, а также подписанных, но вредоносных скриптов. RemoteSigned - Выполнение скриптов разрешено. - Требует наличия цифровой подписи надежного издателя у скриптов и файлов конфигурации, загружаемых из Интернета (включая электронную почту и программы мгновенного обмена сообщениями). - Не требует наличия цифровых подписей у скриптов, выполняемых и написанных на локальном компьютере (не загруженных из Интернета). - Имеется риск выполнения подписанных, но вредоносных скриптов. Unrestricted - Могут выполняться неподписанные скрипты. (Имеется риск выполнения вредоносных скриптов.) - Предупреждает пользователя перед выполнением скриптов и файлов конфигурации, загруженных из Интернета. Bypass - Ничего не блокируется, и никакие предупреждения и запросы не появляются. - Эта политика выполнения предназначена для конфигураций, в которых скрипт Windows PowerShell встроен в более крупное приложение, или для конфигураций, в которых Windows PowerShell является платформой для программы, у которой имеется собственная модель обеспечения безопасности. Undefined - В текущей области не задана политика выполнения. - Если политика выполнения во всех областях имеет значение Undefined, действует политика выполнения Restricted, которая является политикой выполнения по умолчанию. Примечание. В системах, которые не отличают UNC-пути от путей в Интернете, выполнение скриптов, которые задаются UNC-путями, может быть запрещено, если включена политика выполнения RemoteS igned. ОБЛАСТЬ ПОЛИТИКИ ВЫПОЛНЕНИЯ --------------------------- Можно задать политику выполнения, которая действует только в конкретной области. Допустимые значения параметра Scope - Process, CurrentUser и LocalMachine. При задании политики выполнения по умолчанию используется значение LocalMachine. Значения Scope перечислены в порядке приоритета. - Process Действие политики выполнения распространяется только на текущий сеанс (текущий процесс Windows PowerShell). Политика выполнения хранится в переменной среды $PSExecutionPolicyPreferenc e. Это значение удаляется, когда сеанс, в котором задана политика, закрывается. - CurrentUser Действие политики выполнения распространяется только на текущего пользователя. Она хранится в разделе реестра HKEY_CURRENT_USER. - LocalMachine Действие политики выполнения распространяется на всех пользователей текущего компьютера. Она хранится в разделе реестра HKEY_LOCAL_MACHINE. Политика, имеющая более высокий приоритет, действует в текущем сеансе даже в том случае, если на более низком уровне приоритета была задана более строгая политика. Дополнительные сведения см. в описании командлета Set-ExecutionPolicy. ПОЛУЧЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ ------------------------------ Чтобы получить политику выполнения Windows PowerShell, которая действует в текущем сеансе, используется командлет Get-ExecutionPo licy. Следующая команда получает текущую политику выполнения: get-executionpolicy Чтобы получить все политики выполнения, влияющие на текущий сеанс и отобразить их в порядке приоритета, введите: get-executionpolicy -list Выходные данные будут выглядеть примерно следующим образом: Scope ExecutionPolicy ----- --------------- MachinePolicy Undefined UserPolicy Undefined Process Undefined CurrentUser RemoteSigned LocalMachine AllSigned В этом случае действует политика выполнения RemoteSigned, поскольку политика выполнения текущего пользователя имеет приоритет по сравнению с политикой выполнения для локального компьютера. Чтобы получить политику выполнения для конкретной области, следует использовать параметр Scope командлета Get-ExecutionPolicy. Например, следующая команда получает политику выполнения для области текущего пользователя. get-executionpolicy -scope CurrentUser ИЗМЕНЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ ------------------------------ Чтобы изменить политику выполнения Windows PowerShell на компьютере, следует использовать командлет Set-ExecutionPolicy. Изменение вступает в силу немедленно; перезапускать оболочку Windows PowerShell не требуется. Если задать политику выполнения для локального компьютера (по умолчанию) или текущего пользователя, изменение сохраняется в реестре и остается в силе, пока политика не будет изменена снова. Если задать политику выполнения для текущего процесса, она не сохраняется в реестре. Она сохраняется, пока текущий процесс и все его дочерние процессы не будут закрыты. Примечание. В Windows Vista и более поздних версиях Windows для выполнения команд, которые изменяют политику выполнения для локального компьютера (по умолчанию), запустите Windows PowerShell командой "Запуск от имени администратора". Чтобы изменить политику выполнения, введите: Set-ExecutionPolicy <имя_политики> Пример: Set-ExecutionPolicy RemoteSigned Чтобы задать политику выполнения в конкретной области, введите: Set-ExecutionPolicy <имя_политики> -scope <область> Пример: Set-ExecutionPolicy RemoteSigned -scope CurrentUser Команда изменения политики выполнения может быть выполнена успешно, но не изменить действующую политику выполнения. Например, команда, устанавливающая политику выполнения для локального компьютера, может быть выполнена успешно, но она может быть переопределена политикой выполнения для текущего пользователя. УДАЛЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ ---------------------------- Чтобы удалить политику выполнения для конкретной области, следует задать для политики выполнения значение Undefined. Например, чтобы удалить политику выполнения для всех пользователей локального компьютера, введите: set-executionpolicy Undefined Также можно ввести команду: set-executionpolicy Undefined -scope LocalMachine Если ни в одной из областей не задана ни одна политика выполнения, будет действовать политика выполнения Restricted, которая является политикой по умолчанию. УСТАНОВКА ПОЛИТИКИ ВЫПОЛНЕНИЯ В POWERSHELL.EXE ---------------------------------------------- С помощью параметра ExecutionPolicy программы PowerShell.exe можно задать политику выполнения для нового сеанса Windows PowerShell. Действие политики распространяется только на текущий сеанс и его дочерние сеансы. Чтобы задать политику выполнения для нового сеанса, запустите Windows PowerShell в командной строке (например, Cmd.exe или Windows PowerShell), а затем воспользуйтесь параметром ExecutionPolicy программы PowerShell.exe, чтобы задать политику выполнения. Пример: powershell.exe -executionpolicy -allsigned Задаваемая политика выполнения не сохраняется в реестре. Вместо этого она сохранятся в переменной среды $PSExecutionPolicyP reference. Переменная удаляется, когда сеанс, в котором задана политика, закрывается. На протяжении сеанса политика выполнения, которая задана для сеанса, имеет приоритет по сравнению с политикой выполнения, заданной в реестре для локального компьютера или текущего пользователя. Однако она не имеет приоритета по сравнению с политикой выполнения, заданной с помощью групповой политики (см. ниже). УПРАВЛЕНИЕ ПОЛИТИКАМИ ВЫПОЛНЕНИЯ С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ ------------------------------------------------------------- С помощью параметра групповой политики "Включить выполнение скриптов" можно управлять политикой выполнения компьютеров в организации. Этот параметр групповой политики переопределяет политики выполнения, заданные в Windows PowerShell во всех областях. Параметр политики "Включить выполнение скриптов" работает следующим образом. -- Если отключить параметр "Включить выполнение скриптов", скрипты выполняться не будут. Это эквивалентно применению политики выполнения Restricted. -- Если включить параметр "Включить выполнение скриптов", можно выбрать политику выполнения. Параметры групповой политики эквивалентны следующим политикам выполнения. Групповая политика Политика выполнения ---------------------- ------------------- Разрешить все скрипты. Unrestricted Разрешить локальные RemoteSigned скрипты и удаленные подписанные скрипты. Разрешить только AllSigned подписанные скрипты. -- Если параметр "Включить выполнение скриптов" не задан, он не действует. Действует политика выполнения, заданная в Windows PowerShell. Файл PowerShellExecutionPolicy.adm добавляет политику "Включить выполнение скриптов" в узлы "Конфигурация компьютера" и "Конфигурация пользователя" редактора групповой политики по следующим путям. В Windows XP и Windows Server 2003: Административные шаблоны\Компоненты Windows\Windows PowerShell В Windows Vista и более поздних версиях Windows: Административные шаблоны\Классические административные шаблоны\Компоненты Windows\Windows PowerShell Политики в узле "Конфигурация компьютера" имеют приоритет по сравнению с политиками в узле "Конфигурация пользователя". Файл PowerShellExecutionPolicy.adm можно загрузить из Центра загрузки Майкрософт. Дополнительные сведения см. в разделе "Административные шаблоны для Windows PowerShell" по адресу http://go.microsoft.com/fwlink/?LinkId=131786. ПРИОРИТЕТ ПОЛИТИК ВЫПОЛНЕНИЯ ---------------------------- При определении действующей политики выполнения для сеанса среда Windows PowerShell вычисляет политики выполнения на основании следующего порядка приоритетов. - Групповая политика: конфигурация компьютера - Групповая политика: конфигурация пользователя - Политика выполнения: Process (или PowerShell.exe - ExecutionPolicy) Политика выполнения: CurrentUser - Политика выполнения: LocalMachine УПРАВЛЕНИЕ ПОДПИСАННЫМИ И НЕПОДПИСАННЫМИ СКРИПТАМИ -------------------------------------------------- Если в Windows PowerShell установлена политика выполнения RemoteSigned, среда Windows PowerShell не будет выполнять неподписанные скрипты, загружаемые из Интернета (включая электронную почту и программы мгновенного обмена сообщениями). Можно подписать скрипт или выполнить неподписанный скрипт без изменения политики выполнения. Дополнительные сведения см. в разделе about_Signing. СМ. ТАКЖЕ Get-ExecutionPolicy Set-ExecutionPolicy about_Signing "Административные шаблоны для Windows PowerShell" (http://go.microsoft.com/fwlink/?LinkId=131786) about_For РАЗДЕЛ about_For КРАТКОЕ ОПИСАНИЕ Описывает команду языка, которую можно использовать для выполнения инструкций в зависимости от условия. ПОЛНОЕ ОПИСАНИЕ Инструкция For (называемая также циклом For) - это языковая конструкция, которая служит для создания цикла, в котором блок команд выполняется, пока заданное условие остается истинным. Типичным применением цикла For является перебор массива значений и выполнение действий на подмножестве этих значений. В большинстве случаев, если необходимо перебрать все значения в массиве, имеет смысл применять инструкцию Foreach. Синтаксис Ниже показан синтаксис инструкции For. for (<инициация>; <условие>; <повторение>) {<список_инструкций>} Заполнитель <инициация> представляет одну или несколько разделяемых запятыми команд, выполняемых перед началом цикла. Обычно элемент инструкции <инициация> используется для создания переменной и присвоения ей начального значения. Эта переменная затем будет использоваться для проверки условия в следующей части инструкции For. Заполнитель <условие> представляет часть инструкции For, которая принимает логическое значение true или false. Windows PowerShell вычисляет условие при каждом выполнении цикла For. Если результатом вычисления выражения является значение true, выполняется блок команд, а выражение вычисляется снова. Если условие по прежнему имеет значение true, команды в списке инструкций выполняются снова. Цикл повторяется, пока условие не примет значение false. Заполнитель <повторение> представляет одну или несколько команд, разделенных запятыми, которые выполняются при каждом повторении цикла. Обычно это используется для изменения переменной, проверяемой внутри части <условие> инструкции. Заполнитель <список_инструкций> представляет одну или несколько команд, выполняющихся при каждом входе в цикл или его повторении. Содержимое списка инструкций заключается в фигурные скобки. Примеры Как минимум, для инструкции For необходимы круглые скобки, заключающие блок <инициация>, <условие> и <повторение>, а также заключенная в фигурные скобки команда в блоке <список_инструкций>. Обратите внимание, что в приведенных ниже примерах намеренно приводится код за пределами инструкции For. В следующих примерах код помещен внутрь инструкции For. Например, следующая инструкция For будет постоянно отображать значение переменной $i до тех пор, пока команда не будет вручную прервана нажатием клавиш Ctrl+C. $i = 1 for (;;){Write-Host $i} В список инструкций можно добавить дополнительные команды, чтобы значение переменной $i увеличивалось на 1 при каждом выполнении цикла, как показано в следующем примере. for (;;){$i++; Write-Host $i} До тех пор, пока пользователь не прервет команду нажатием клавиш CTRL+C, эта инструкция будет постоянно отображать значение переменной $i, которое будет увеличиваться на 1 при каждом выполнении цикла. Вместо изменения значения переменной в списке инструкций цикла For можно воспользоваться блоком <повторение>, как показано ниже. $i=1 for (;;$i++){Write-Host $i} Эта инструкция по-прежнему будет повторяться бесконечно долго или до тех пор, пока пользователь не прервет команду нажатием клавиш CTRL+C. Задав соответствующее условие (с помощью блока <условие> инструкции For), можно завершить цикл For, когда условие примет значение false. В следующем примере цикл For выполняется, пока значение переменной $i меньше или равно 10. $i=1 for(;$i -le 10;$i++){Write-Host $i} Вместо создания и инициализации переменной за пределами инструкции For то же самое можно сделать внутри цикла For с помощью блока <инициация>. for($i=1; $i -le 10; $i++){Write-Host $i} В качестве разделителя в блоках <инициация>, <условие> и <повторение> инструкции For вместо точки с запятой можно использовать знаки возврата каретки. В следующем примере показана эта альтернативная форма инструкции For. for (<инициация> <условие> <повторение>){ <список_инструкций> } Такая альтернативная форма инструкции For используется в файлах скриптов Windows PowerShell и в командной строке Windows PowerShell. Но при вводе интерактивных команд с консоли удобнее использовать синтаксис инструкции For с точкой с запятой. Цикл For обладает большей гибкостью, чем цикл Foreach, поскольку он позволяет увеличивать значения в массиве или в коллекции при помощи шаблонов. В следующем примере переменная $i увеличивается на 2 в блоке <повторение> инструкции For. for ($i = 0; $i -ile 20; $i += 2) {Write-Host $i} СМ. ТАКЖЕ about_Comparison_Operators about_Foreach about_Foreach РАЗДЕЛ about_Foreach КРАТКОЕ ОПИСАНИЕ Описывает команду языка, позволяющую перебрать все элементы в коллекции. ПОЛНОЕ ОПИСАНИЕ Инструкция Foreach (называемая также циклом Foreach) является языковой конструкцией для пошагового перемещения (итерации) по последовательности значений в коллекции элементов. Самым простым и наиболее часто используемым типом коллекции, по которой производится перемещение, является массив. Обычно в цикле Foreach одна или несколько команд выполняются на каждом элементе массива. Синтаксис Ниже показан синтаксис инструкции Foreach: foreach ($<элемент> in $<коллекция>){<список_инструкций>} Инструкция Foreach за пределами конвейера команд В заключаемой в круглые скобки части инструкции Foreach указываются переменная и коллекция для перебо ра. При выполнении цикла Foreach среда Windows PowerShell автоматически создает п еременную ($<элемент>). Перед каждой итерацией в цикле переменной присваивается значени е в коллекции. Блок за инструкцией Foreach {<список_инструкций>} содержит набор команд, выпо лняемых на каждом элементе коллекции. Примеры Например, цикл Foreach в следующем примере отображает значения в массиве $letterArray. $letterArray = "a","b","c","d" foreach ($letter in $letterArray) { Write-Host $letter } В этом примере создается массив $letterArray, который затем инициализируется строковыми значениями "a", "b", "c" и "d". При первом выполнении инструкции Foreach переменная $letter устанавливается равной первому элементу в массиве $letterArray ("a"). Затем буква "a" отображается с помощью командлета Write-Host. При следующей итерации цикл а переменной $letter присваивается значение "b" и т. д. После того как цикл Foreach отобразит букву "d", Windows PowerShell выходит из цикла. Инструкция Foreach должна представляться в одной строке целиком, чтобы она выполнялась как команда в командной строке Windows PowerShell. Инструкция Foreach не обязательно должна представляться в одной строке целиком, если команда помещается в файл скрипта PS1. Инструкции Foreach могут также использоваться совместно с командлетами, возвращающими коллекции элементов. В следующем примере инструкция Foreach выполняет перебор элементов списка, возвращаемого командлетом Get-ChildItem. foreach ($file in Get-ChildItem) { Write-Host $file } Пример может быть усовершенствован при помощи инструкции If для ограничения возвращаемых результатов. В следующем примере инструкция Foreach выполняет те же операции в цикле, что и в предыдущем примере, но здесь добавлена инструкция If, ограничивающая результаты файлами, размер которых превышает 100 килобайт (КБ). foreach ($file in Get-ChildItem) { if ($file.length -gt 100k) { Write-Host $file } } В этом примере цикл Foreach использует свойство переменной $file для выполнения операции сравнения ($file.length -gt 100k). Переменная $file содержит все свойства в объекте, возвращаемом командлетом Get-ChildItem. Поэтому может возвращаться не только имя файла. В следующем примере Windows PowerShell внутри списка инструкций возвращает длину и время последнего обращения: foreach ($file in Get-ChildItem) { if ($file.length -gt 100k) { Write-Host $file Write-Host $file.length Write-Host $file.lastaccesstime } } В этом примере в списке инструкций не обязательно выполнять только одну команду. Кроме того, можно использовать переменную вне цикла Foreach и увеличивать ее значение внутри цикла. Следующий пример подсчитывает файлы, размер которых превышает 100 КБ: $i = 0 foreach ($file in Get-ChildItem) { if ($file.length -gt 100k) { Write-Host $file "file size:" ($file.length / 1024).ToString("F0") KB $i = $i + 1 } } if ($i -ne 0) { Write-Host Write-Host $i " file(s) over 100 KB in the current directory."} else { Write-Host "No files greater than 100 KB in the current directory." } В предыдущем примере переменной $i присваивается значение 0 вне цикла, а увеличение значения происходит внутри цикла для каждого найденного файла размером больше 100 КБ. При выходе из цикла инструкция If вычисляет значение переменной $i для отображения количества всех файлов размером более 100 КБ. Либо отображается сообщение о том, что ни одного файла размером более 100 КБ не найдено. Предыдущий пример также демонстрирует, как форматировать результаты для длины: ($file.length / 1024).ToString("F0") Значение делится на 1024, чтобы показать результаты в килобайтах, а не в байтах. Полученное значение далее форматируется при помощи спецификатора формата с фиксированной запятой для удаления из результата дробной части. Значение 0 спецификатора формата указывает, что дробная часть отображаться не должна. Инструкция Foreach внутри конвейера команд Когда инструкция Foreach используется в конвейере команд, Windows PowerShell использует псевдоним foreach, вызывающий команду ForEach-Object. При использовании псевдонима foreach в конвейере команд не используется синтаксическая конструкция ($<элемент> in $<коллекция>), как это делается с инструкцией Foreach. Это является следствием того, что эти сведения предоставляет предыдущая команда в конвейере. Синтаксис псевдонима foreach, применяемого в конвейере команд, выглядит следующим образом: <команда> | foreach {<блок_команд>} Например, цикл Foreach в следующем конвейере команд отображает все процессы, рабочий набор (использование памяти) которых превышает 20 мегабайт (МБ). Оболочка Windows PowerShell передает выходные данные команды Get-Process по конвейеру псевдониму foreach. Внутри блока команд псевдонима foreach переменная $_.WS содержит значение свойства WS (рабочего набора), передаваемое ей командлетом Get-Process. (Часть $_ объявления является автоматической переменной WSH, а часть WS является свойством.) Инструкция If использует условное выражение для определения того, превышает ли рабочий набор 20 МБ (20 000 000 байт). Если превышает, то отображаются имя процесса, хранящееся в переменной $_.name, и размер рабочего набора в мегабайтах. При отсутствии рабочего набора процесса, размер которого превышает 20 МБ, ничего не отображается. Write-Host "Processes with working-sets greater than 20 MB" Get-Process | foreach { if ($_.WS -gt 20m) { Write-Host $_.name ": " ($_.WS/1m).ToString("F0") MB -Separator "" } } Кроме того, псевдоним foreach поддерживает понятия начального блока команд, среднего блока команд и конечного блока команд. Начальный и конечный блоки команд выполняются один раз, а средний блок команд выполняется каждый раз, когда цикл Foreach перемещается к очередному элементу коллекции или массива. Синтаксис псевдонима foreach, используемого в конвейере команд с начальным, средним и конечным блоками команд выглядит следующим образом: <команда> | foreach {<начальный_блок_команд>} {<средний_блок_команд>}{<конечный_блок_команд>} В следующем примере демонстрируется использование начального, среднего и конечного блоков команд. Get-ChildItem | foreach { $fileCount = $directoryCount = 0}{ if ($_.PsIsContainer) {$directoryCount++} else {$fileCount++}}{ "$directoryCount directories and $fileCount files"} Начальный блок создает и инициализирует две переменных со значением 0: {$fileCount = $directoryCount = 0} Средний блок проверят, является ли возвращаемый командлетом Get-ChildItem элемент каталогом или файлом: {if ($_.PsIsContainer) {$directoryCount++} else {$fileCount++}} Если возвращаемый элемент является каталогом, значение переменной $directoryCount увеличивается на 1. Если элемент не является каталогом, на 1 увеличивается значение переменной $fileCount. Конечный блок выполняется после того, как средний блок завершит цикл и вернет результат операции: {"$directoryCount directories and $fileCount files"} При помощи структуры начального, среднего и конечного блоков и оператора конвейера можно переписать приведенный выше пример поиска файлов размером более 100 КБ следующим образом: Get-ChildItem | foreach{ $i = 0}{ if ($_.length -gt 100k) { Write-Host $_.name "file size:" ($_.length / 1024).ToString("F0") KB $i++ } }{ if ($i -ne 0) { Write-Host Write-Host "$i file(s) over 100 KB in the current directory." } else { Write-Host "No files greater than 100 KB in the current directory."} } СМ. ТАКЖЕ about_Automatic_Variables about_If Foreach-Object about_format.ps1xml РАЗДЕЛ about_Format.ps1xml КРАТКОЕ ОПИСАНИЕ Файлы Format.ps1xml в Windows PowerShell определяют формат по умолчанию для отображения объектов в консоли Windows PowerShell. Можно создавать собственные файлы Format.ps1xml, чтобы изменять отображение объектов или определять форматы отображения по умолчанию для новых объектов, создаваемых в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Файлы Format.ps1xml в Windows PowerShell определяют формат по умолчанию для отображения объектов в Windows PowerShell. Можно создавать собственные файлы Format.ps1xml, чтобы изменять отображение объектов или определять форматы отображения по умолчанию для новых объектов, создаваемых в Windows PowerShell. Когда в Windows PowerShell отображается объект, для определения формата отображения объекта по умолчанию используются данные, структурированные в файлах форматирования. Данные в файлах форматирования определяют, должен ли объект отображаться в виде таблицы или списка, а также свойства, которые отображаются по умолчанию. Форматирование влияет только на отображение. Оно не влияет на то, какие свойства объекта передаются по конвейеру и как они передаются. Windows PowerShell включает семь файлов форматирования. Эти файлы расположены в каталоге установки ($pshome). Каждый файл определяет отображение группы объектов Microsoft .NET Framework: Certificate.Format.ps1xml Объекты в хранилище сертификатов, например хранилища сертификатов и сертификаты X.509. DotNetTypes.Format.ps1xml Другие типы .NET, например объекты CultureInfo, FileVersionInfo и EventLogEntry. FileSystem.Format.ps1xml Объекты файловой системы, например файлы и каталоги. Help.Format.ps1xml Представления справки, например подробные и полные представления, параметры и примеры. PowerShellCore.format.ps1xml Объекты, создаваемые базовыми командлетами Windows PowerShell, такими как Get-Member и Get-History. PowerShellTrace.format.ps1xml Объекты трассировки, например объекты, создаваемые командлетом Trace-Command. Registry.format.ps1xml Объекты реестра, например разделы и записи. Файл форматирования может определять четыре различных представления каждого из объектов: табличное, списочное, широкое и комплексное. Например, когда выходные данные команды Get-ChildItem передаются по конвейеру команде Format-List, команда Format-List использует представление из файла FileSystem.format.ps1xml, чтобы определить, как отображать объекты файлов и папок в списке. В файле Format.ps1xml представление определяется при помощи набора тегов XML, описывающих имя представления, тип объекта, к которому оно может быть применено, заголовки столбцов, а также свойства, отображаемые в теле представления. Формат из файлов Format.ps1xml применяется непосредственно перед отображением данных для пользователя. Создание новых файлов Format.ps1xml Файлы PS1XML, устанавливаемые вместе с Windows PowerShell, имеют цифровую подпись, защищающую их от искажения, поскольку форматирование может включать блоки скриптов. Поэтому, чтобы изменить формат отображения для существующего представления объекта или добавить представления для новых объектов, следует создавать собственные файлы Format.ps1xml, а затем добавлять их в сеанс Windows PowerShell. Чтобы создать новый файл, скопируйте имеющийся файл Format.ps1xml. Новый файл может иметь любое имя, но он должен иметь расширение PS1XML. Новый файл можно поместить в любой каталог, доступный оболочке Windows PowerShell, однако рекомендуется помещать его в каталог установки Windows PowerShell ($pshome) или в подкаталог каталога установки. Чтобы изменить форматирование текущего представления, найдите это представление в файле форматирования, а затем измените его с помощью тегов. Чтобы создать представление для нового типа объектов, создайте новое представление или воспользуйтесь в качестве шаблона имеющимся представлением. (Теги описаны в следующем подразделе этого раздела.) Можно удалить все остальные представления в файле, чтобы любому, кто просматривает файл, было легко найти изменения. После сохранения изменений необходимо с помощью командлета Update-FormatData добавить новый файл в сеанс Windows PowerShell. Если представление должно иметь приоритет относительно представления, определенного во встроенных файлах, следует использовать параметр PrependData командлета Update-FormatData. Действие командлета Update-FormatData распространяется только на текущий сеанс. Чтобы изменение распространялось на все будущие сеансы, следует добавить команду Update-FormatData в профиль Windows PowerShell. Пример: добавление данных календаря в объекты культуры В этом примере показано, как изменить форматирование объектов культуры (System.Globalization.CultureInfo), созданных командлетом Get-Culture. Команды в этом примере добавляют свойство календаря в табличное представление по умолчанию объектов культуры. Первый шаг - найти файл Format.ps1xml, который содержит текущее представление объектов культуры. Следующая команда Select-String находит этот файл: select-string -path $pshome\*format.ps1xml ` -pattern System.Globalization.CultureInfo В результате выполнения этой команды выясняется, что определение хранится в файле DotNetTypes.Format.ps1xml. Следующая команда копирует содержимое файла в новый файл MyDotNetTypes.Format.ps1xml. copy-item DotNetTypes.Format.ps1xml MyDotNetTypes.Format.ps1xml Затем откройте файл MyDotNetTypes.Format.ps1xml в любом редакторе XML или текста, например в "Блокноте". Найдите раздел объекта System.Globalization.CultureInfo. Следующий XML-код определяет представления объекта CultureInfo. У объекта есть только одно представление TableControl. <View> <Name>System.Globalization.CultureInfo</Name> <ViewSelectedBy> <TypeName>Deserialized.System.Globalization.CultureInfo</TypeName> <TypeName>System.Globalization.CultureInfo</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Width>16</Width> </TableColumnHeader> <TableColumnHeader> <Width>16</Width> </TableColumnHeader> <TableColumnHeader/> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>LCID</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>DisplayName</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> Удалите оставшуюся часть файла, кроме открывающих тегов <?XML>, <Configuration> и <ViewDefinitions> и закрывающих тегов <ViewDefintions> и <Configuration>. Кроме того необходимо удалить цифровую подпись, если файл изменяется. <?xml version="1.0" encoding="utf-8" ?> <Configuration> <ViewDefinitions> <View> <Name>System.Globalization.CultureInfo</Name> <ViewSelectedBy> <TypeName>Deserialized.System.Globalization.CultureInfo</ TypeName> <TypeName>System.Globalization.CultureInfo</TypeName> </ViewSelectedBy> <TableControl> <TableHeaders> <TableColumnHeader> <Width>16</Width> </TableColumnHeader> <TableColumnHeader> <Width>16</Width> </TableColumnHeader> <TableColumnHeader/> </TableHeaders> <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>LCID</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>DisplayName</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> </TableControl> </View> </ViewDefinitions> </Configuration> После этого создайте новый столбец для свойства Calendar, добавив новый набор тегов <TableColumnHeader>. Значение свойства Calendar может быть длинным, поэтому используется значение 45 знаков, как показано ниже: <TableControl> <TableHeaders> <TableColumnHeader> <Width>16</Width> </TableColumnHeader> <TableColumnHeader> <Width>16</Width> </TableColumnHeader> <TableColumnHeader> <Width>45</Width> </TableColumnHeader> <TableColumnHeader/> </TableHeaders> После этого добавьте элемент нового столбца в строки таблицы, как показано ниже: <TableRowEntries> <TableRowEntry> <TableColumnItems> <TableColumnItem> <PropertyName>LCID</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Name</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>Calendar</PropertyName> </TableColumnItem> <TableColumnItem> <PropertyName>DisplayName</PropertyName> </TableColumnItem> </TableColumnItems> </TableRowEntry> </TableRowEntries> После сохранения и закрытия файла с помощью команды Update-FormatData, например приведенной ниже команды, добавьте новый файл формата в текущий сеанс. В этой команде используется параметр PrependData, чтобы задать для нового файла более высокий приоритет по сравнению с исходным файлом. (Чтобы получить дополнительные сведения о команде Update-FormatData, введите команду get-help update-formatdata.) update-formatdata -prependpath $pshome\MyDotNetTypes.format.ps1xml Чтобы проверить изменение, введите команду get-culture и изучите выходные данные, которые теперь должны включать свойство Calendar. C:\PS> get-culture LCID Name Calendar DisplayName ---- ---- -------- ----------- 1033 en-US System.Globalization.GregorianCalendar English (United States) XML-код в файлах Format.ps1xml Раздел ViewDefinitions каждого из файлов Format.ps1xml содержит теги <View>, которые определяют каждое из представлений. Обычно тег <View> содержит следующие теги: <Name> Тег <Name> определяет имя представления. <ViewSelectedBy> Тег <ViewSelectedBy> определяет тип или типы объектов, к которым применимо представление. <GroupBy> Тег <GroupBy> определяет, каким образом элементы в представлении объединяются в группы. <TableControl> <ListControl> <WideControl> <ComplexControl> Эти теги содержат теги, определяющие, каким образом отображается тот или иной элемент. Тег <ViewSelectedBy> может содержать тег <TypeName> для каждого типа объектов, к которым применяется представление. Либо он может содержать тег <SelectionSetName>, который ссылается на набор выбора, определенный в другом месте с помощью тега <SelectionSet>. Тег <GroupBy> содержит тег <PropertyName>, задающий свойство объекта, по которому должны группироваться элементы. Он также содержит тег <Label>, задающий строку, которая должна использоваться в качестве метки для каждой группы, или тег <ComplexControlName>, ссылающийся на комплексный элемент управления, определенный в другом месте при помощи тега <Control>. Тег <Control> содержит теги <Name> и Тег <TableControl> обычно содержит теги <TableHeaders> и <TableRowEntries>, определяющие форматирование заголовков и строк таблицы. Тег <TableHeaders> обычно содержит теги <TableColumnHeader>, которые содержат теги <Label>, <Width> и <Alignment>. Тег <TableRowEntries> содержит теги <TableRowEntry> для каждой строки таблицы. Обычно тег <TableRowEntry> содержит тег <TableColumnItems>, который содержит тег <TableColumnItem> для каждого столбца в строке. Обычно тег <TableColumnItem> содержит либо тег <PropertyName>, идентифицирующий свойство объекта, которое должно отображаться в определенном месте, либо тег <ScriptBlock>, содержащий код скрипта, вычисляющего результат, который должен отображаться в этом месте. Примечание. В местах, в которых могут потребоваться вычисляемые результаты, могут также использоваться блоки скриптов. Тег <TableColumnItem> может также содержать тег <FormatString>, который определяет, как должно отображаться свойство или вычисленные результаты. Тег <ListControl> обычно содержит тег <ListEntries>. Тег <ListEntries> содержит тег <ListItems>. Тег <ListItems> содержит теги <ListItem>, которые в свою очередь содержат теги <PropertyName>. Теги <PropertyName> задают свойство объекта, которое должно отображаться в указанной позиции списка. Если выбор представления определяется при помощи набора выбора, тег <ListControl> может также содержать тег <EntrySelectedBy>, содержащий один или несколько тегов <TypeName>. Эти теги <TypeName> определяют тип объекта, который должен отображаться тегом <ListControl>. Тег <WideControl> обычно содержит тег <WideEntries>. Тег <WideEntries> обычно содержит один или несколько тегов <WideEntry>. Тег <WideEntry> обычно содержит тег <PropertyName>, задающий свойство, которое должно отображаться в указанном месте в представлении. Тег <PropertyName> может содержать тег <FormatString>, который определяет, как должно отображаться свойство. Тег <ComplexControl> содержит более сложные сочетания тегов по сравнению с представлениями других типов. Тег <ComplexControl> обычно содержит тег <ComplexEntries>. Тег <ComplexEntries> содержит несколько тегов <ComplexEntry>. Тег <ComplexEntry> обычно содержит тег <ComplexItem>. Этот тег, в свою очередь, может содержать различные теги, задающие содержимое и форматирование для указанного места в представлении, в том числе теги <Text>, <Indentation>, <ExpressionBinding> и Update-FormatData Чтобы загрузить файлы Format.ps1xml в сеанс Windows PowerShell, используется командлет Update-FormatData. Если представление в файле должно иметь приоритет относительно представлений во встроенном файле Format.ps1xml, следует использовать параметр PrependData командлета Update-FormatData. Действие командлета Update-FormatData распространяется только на текущий сеанс. Чтобы изменение распространялось на все будущие сеансы, следует добавить команду Update-FormatData в профиль Windows PowerShell. Представление по умолчанию в Types.ps1xml В файле Types.ps1xml из каталога $pshome определено представление по умолчанию для некоторых базовых типов объектов. Узлы имеют имена PsStandardMembers, а вложенные узлы обозначаются одним из следующих тегов: <DefaultDisplayProperty> <DefaultDisplayPropertySet> <DefaultKeyPropertySet> Чтобы получить дополнительные сведения, введите следующую команду: get-help about_types.ps1xml Трассировка использования файлов Format.ps1xml Чтобы определить ошибки при загрузке или применении файлов Format.ps1xml, следует использовать командлет Trace-Command и указать при этом в качестве значения параметра Name любой из следующих компонентов формата: FormatFileLoading UpdateFormatData FormatViewBinding Чтобы получить дополнительные сведения, введите следующие команды: get-help trace-command get-help get-tracesource Подписание файлов Format.ps1xml Чтобы защитить пользователей файла Format.ps1xml, его необходимо подписать с помощью цифровой подписи. Чтобы получить дополнительные сведения, введите следующую команду: get-help about_signing СМ. ТАКЖЕ Update-FormatData Trace-Command Get-TraceSource about_functions РАЗДЕЛ about_Functions КРАТКОЕ ОПИСАНИЕ Описывает, как создавать и использовать функции в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Функция представляет собой список инструкций и имеет имя, выбираемое пользователем. Для выполнения функции вводится ее имя. Инструкции в списке выполняются так, как если бы они были введены в командную строку. Как и у командлетов, у функций могут быть параметры. Это могут быть именованные, позиционные и динамические параметры, а также параметры-переключатели. Параметры функций могут считываться из командной строки или из конвейера. Функции могут возвращать значения, которые затем могут отображаться, присваиваться переменным или передаваться другим функциям и командлетам. Список инструкций функции может содержать списки инструкций различных типов с ключевыми словами Begin, Process и End. Эти списки инструкций по-разному обрабатывают поступающий через конвейер ввод. Фильтр представляет собой функцию особого типа, использующую ключевое слово Filter. Функции могут также выступать в роли командлетов. Можно создать функцию, которая работает как командлет, без программирования на языке C#. Дополнительные сведения см. в разделе about_Functions_Ad vanced. Синтаксис Ниже показан синтаксис функции: function [<область:>]<имя> [([тип]$parameter1[,[тип]$parameter2])] { param([тип]$parameter1 [,[тип]$parameter2]) dynamicparam {<список_инструкций>} begin {<список_инструкций>} process {<список_инструкций>} end {<список_инструкций>} } Функция включает один из следующих элементов: - ключевое слово Function; - область (необязательно); - выбранное пользователем имя; - произвольное число именованных параметров (необязательно); - одну или несколько команд Windows PowerShell, заключенных в фигурные скобки ({}). Дополнительные сведения о ключевом слове Dynamicparam и динамических параметрах в функциях см. в разделе about_Functions_Advanced_Parameters. Простые функции Чтобы функции были полезными, они не обязательно должны быть сложными. Показанная ниже функция получает переменные среды, которые не относятся к учетной записи System текущей системы: function other_env { get-wmiObject win32_environment | where {$_.username -ne "<System>"} } Чтобы выполнить эту функцию, введите "other_env". Можно создать набор из небольших полезных функций и добавить эти функции в профиль Windows PowerShell, как описано в разделе about_Profiles и далее в этом разделе. Функции с параметрами С функциями можно использовать параметры, в том числе именованные, позиционные и динамические параметры, а также параметры- переключатели. Дополнительные сведения о динамических параметрах в функциях см. в разделе about_Functions_Advanced_Parameters. Именованные параметры Можно определить произвольное число именованных параметров. Для именованных параметров можно задать значение по умолчанию, как показано далее в этом разделе. Параметры можно определить внутри фигурных скобок, используя ключевое слово Param, как показано в следующем примере. function <name> { param ([type]$parameter1[,[type]$parameter2]) <statement list> } Кроме того, параметры можно определять вне фигурных скобок без ключевого слова Param, как показано в следующем примере. function <имя> [([тип]$parameter1[,[тип]$parameter2])] { <список_инструкций> } Эти два подхода абсолютно равноправны. Можно использовать любой предпочтительный подход. При выполнении функции значение, заданное в качестве параметра, присваивается переменной, которая содержит имя параметра. Значение этой переменной можно использовать в функции. Ниже приведен пример функции с именем Small_files. У этой функции имеется параметр $size. Функция отображает все файлы, размер которых меньше значения параметра, и исключает каталоги. function small_files { param ($size) Get-ChildItem c:\ | where { $_.length -lt $size -and $_.PSIsContainer} } В этой функции можно использовать переменную $size, которая представляет собой имя, определенное для параметра. Чтобы использовать эту функцию, введите следующую команду: C:\PS> function small_files -size 50 Кроме того, значение именованного параметра можно задать без указания имени параметра. Например, результат выполнения следующей команды не отличается от результата выполнения команды с именем параметра size: C:\PS> function small_files 50 Чтобы задать для параметра значение по умолчанию, после имени параметра введите знак равенства и значение, как показано в следующей версии функции Small_files: function small_files ($size = 100) { Get-ChildItem c:\ | where { $_.length -lt $size -and $_.PSIsContainer} } Если ввести имя функции "small_files" без значения, то переменной $size будет присвоено значение 100. Если указать значение, функция будет использовать это значение. Позиционные параметры Позиционный параметр - это параметр без имени. Чтобы связать значение параметра с параметром в функции, в Windows PowerShell используется порядок следования значений параметров. При использовании позиционных параметров необходимо ввести одно или несколько значений после имени функции. Значения позиционных параметров присваиваются массиву $args. Значение, указанное непосредственно после имени функции, присваивается первому элементу массива $args ($args[0]). Приведенная ниже функция Extension добавляет к задаваемому имени файла расширение ".txt": function extension { $name = $args[0] + ".txt" $name } C:\PS> extension myTextFile myTextFile.txt Функция может принимать несколько позиционных параметров. В следующем примере отображаются все значения, введенные после имени функции. function repeat { foreach ($arg in $args) { "The input is $arg" } } C:\PS>repeat one The input is one C:\PS> repeat one two three The input is one The input is two The input is three Эту функцию можно использовать с произвольным числом значений. Данная функция присваивает каждое значение элементу массива $args. Параметры-переключатели Переключатель - это параметр, которому не требуется значение. Имя параметра-переключателя просто указывается после имени функции. Чтобы определить параметр-переключатель, укажите перед именем параметра тип [switch], как показано в следующем примере: function switchExample { param ([switch]$on) if ($on) { "Switch on" } else { "Switch off" } } Если после имени функции ввести параметр-переключатель On, функция выведет текст "Switch on". Без параметра-переключателя будет выведен текст "Switch off". C:\PS> SwitchExample -on Switch on C:\PS> SwitchExample Switch off Кроме того, при выполнении функции можно присвоить переключателю логическое значение, как показано в следующем примере: C:\PS> SwitchExample -on:$true Switch on C:\PS> SwitchExample -on:$false Switch off Передача объектов в функции по конвейеру Все функции могут принимать входные данные с помощью конвейера. Управление обработкой поступающих через конвейер входных данных осуществляется в функции с помощью ключевых слов Begin, Process и End. В следующем примере показаны три ключевых слова: function <имя> { begin {<список_инструкций>} process {<список_инструкций>} end {<список_инструкций>} } Список инструкций Begin выполняется только один раз в начале функции. Список инструкций Process выполняется по одному разу для каждого из объектов в конвейере. Пока выполняется блок Process, каждый объект из конвейера присваивается автоматической переменной $_, по одному объекту за раз. После того как функция получит все объекты в конвейере, один раз выполняется список инструкций из блока End. Если ключевые слова Begin, Process и End не используются, все инструкции выполняются так, как если бы они находились в блоке End. В следующей функции используется ключевое слово Process. Функция отображает примеры из конвейера: function pipelineFunction { process {"The value is: $_"} } Чтобы продемонстрировать эту функцию, введите массив разделенных запятыми чисел, как показано в следующем примере: C:\PS> 1,2,4 | pipelineFunction The value is: 1 The value is: 2 The value is: 4 При использовании функции в конвейере направляемые в функцию объекты присваиваются автоматической переменной $input. Функция выполняет инструкции с ключевым словом Begin, прежде чем будут получены объекты из конвейера. Функция выполняет инструкции в блоке End после получения из конвейера всех объектов. В следующем примере показано использование автоматической переменной $input с ключевыми словами Begin и End. function PipelineBeginEnd { begin {"Begin: The input is $input"} end {"End: The input is $input" } } Если выполнить эту функцию с использованием конвейера, будут выведены следующие результаты: C:\PS> 1,2,4 | PipelineBeginEnd Begin: The input is End: The input is 1 2 4 Когда выполняется инструкция Begin, у функции еще нет входных данных из конвейера. Инструкция End выполняется после получения значений функцией. Если функция содержит ключевое слово Process, то она считывает данные в переменную $input. Ниже показан пример списка инструкций Process: function PipelineInput { process {"Processing: $_ " } end {"End: The input is: $input" } } В этом примере каждый объект, направляемый в функцию по конвейеру, передается в список инструкций Process. Инструкции в блоке Process выполняются для каждого объекта по очереди. Когда функция достигает ключевого слова End, автоматическая переменная $input пуста. C:\PS> 1,2,4 | PipelineInput Processing: 1 Processing: 2 Processing: 4 End: The input is: Фильтры Фильтр - этот тип функции, которая выполняется для каждого объекта в конвейере. Фильтр напоминает функцию, все инструкции которой находятся в блоке Process. Синтаксис фильтра имеет следующий вид: filter [<область:>]<имя> {<список_инструкций>} Следующий фильтр принимает из конвейера записи журнала и отображает либо всю запись, либо только сообщение из записи: filter ErrorLog ([switch]$message) { if ($message) { out-host -inputobject $_.Message } else { $_ } } Область функции Функция существует в пределах области, в которой она была создана. Если функция является частью скрипта, эта функция доступна в инструкциях в этом скрипте. По умолчанию функции в скрипте не доступны в командной строке. Область функции можно задать. Например, в следующем примере функция добавляется в глобальную область: function global:get-dependentsvs { get-service | where {$_.dependentservices} } Если функция принадлежит к глобальной области, ее можно использовать в скриптах, в функциях и в командной строке. Обычно функции образуют собственную область. Элементы, создаваемые внутри функции, например переменные, существуют только в пределах области этой функции. Дополнительные сведения об областях в Windows PowerShell см в разделе about_Scope. Поиск функций и управление ими с помощью диска Function: Все функции и фильтры в Windows PowerShell автоматически сохраняются на диске Function:. Этот диск предоставляется поставщиком функций Windows PowerShell. При обращении к диску Function: необходимо ставить двоеточие после слова Function, как это происходит при обращении к диску C или D компьютера. Следующая команда отображает все функции в текущем сеансе Windows PowerShell: C:\PS> dir function: Команды в функции хранятся в виде блока скрипта в свойстве definition функции. Например, чтобы отобразить команды в функции Help, входящей в состав Windows PowerShell, введите: (dir function:help).definition Дополнительные сведения о диске Function: см. в разделе Function. Повторное использование функций в новых сеансах При вводе функции в командной строке Windows PowerShell функция становится частью текущего сеанса. Она доступна до завершения сеанса. Чтобы использовать функцию во всех сеансах Windows PowerShell, добавьте функцию в профиль Windows PowerShell. Дополнительные сведения о профилях см. в разделе about_Profiles. Кроме того, функцию можно сохранить в файле скрипта Windows PowerShell. Введите функцию в текстовый файл и сохраните файл с расширением PS1. Создание справки для функций Командлет Get-Help возвращает справку для функций, а также для командлетов, поставщиков и скриптов. Чтобы получить справку для функции, введите командлет Get-Help и имя функции. Например, чтобы получить справку для функции MyDisks, введите: get-help MyDisks Имеется два способа написания справки для функции. -- Справка для функции на основе комментариев Темы справки создаются посредством использования в комментариях специальных ключевых слов. Чтобы создать для функции справку на основе комментариев, комментарии необходимо поместить в начало или конец тела функции или в строки, предшествующие ключевому слову function. Дополнительные сведения о справке на основе комментариев см. в разделе about_Comment_Based_Help. -- Справка для функции на основе XML Создайте раздел справки XML подобно тому, как это делается для командлетов. Справка на основе XML нужна в том случае, если разделы справки локализуются для различных языков. Чтобы связать функцию с разделом справки XML, воспользуйтесь ключевым словом комментариев справки .ExternalHelp. Дополнительные сведения о ключевом слове ExternalHelp см. в разделе about_Comment_Based_Help. Дополнительные сведения о справке на основе XML см. в разделе "How to Write Cmdlet Help" (Как писать справку для командлетов) в библиотеке MSDN. СМ. ТАКЖЕ about_Automatic_Variables about_Comment_Based_Help about_Functions_Advanced about_Functions_CmdletBindingAttribute about_Parameters about_Profiles about_Scopes about_Script_Blocks Function (поставщик) about_functions_advanced РАЗДЕЛ about_Functions_Advanced КРАТКОЕ ОПИСАНИЕ Представляет расширенные функции, которые работают подобно командлетам. ПОЛНОЕ ОПИСАНИЕ Расширенные функции позволяют писать функции, которые выполняют операции, похожие на операции, выполняемые с помощью командлетов. Расширенные функции удобно использовать, если нужно быстро написать функцию. В этом случае можно обойтись без написания скомпилированного командлета на одном из языков Microsoft .NET Framework. Кроме того, они могут оказаться полезными, если требуется ограничить функциональность скомпилированного командлета или если нужно написать функцию, похожую на скомпилированный командлет. Существует различие между созданием скомпилированных командлетов и расширенных функций. Скомпилированные командлеты представляют собой классы .NET Framework, которые следует писать с использованием языка .NET Framework, например C#. В свою очередь расширенные функции разрабатываются на языке скриптов Windows PowerShell, как это происходит в случае других функций или блоков скриптов. Расширенные функции используют атрибут CmdletBinding, чтобы идентифицировать их в качестве функций, действующих подобно командлетам. Атрибут CmdletBinding похож на командлет Cmdlet, который используется в классах скомпилированных командлетов, чтобы идентифицировать эти классы в качестве командлетов. Дополнительные сведения об этом атрибуте см. в разделе about_Functions_CmdletBindingA ttribute. В следующем примере показана функция, которая принимает имя, а затем выводит приветствие, используя указанное имя. Кроме того, обратите внимание, что эта функция имеет имя, включающее глагол (Send) и существительное (Greeting), как это обычно происходит в случае скомпилированных командлетов. Но функции не обязательно должны иметь имя в формате "глагол-существительное". function Send-Greeting { [CmdletBinding()] Param( [Parameter(Mandatory=$true)] [string] $Name ) Process { write-host ("Hello " + $Name + "") } } Параметры функции объявляются с помощью атрибута Parameter. Этот атрибут можно использовать отдельно или объединять с атрибутом Alias или несколькими другими атрибутами проверки параметров. Дополнительные сведения об объявлении параметров (включая динамические параметры, добавляемые во время выполнения) см. в разделе about_Functions_Advanced_Parameters. Фактически операции приведенной в примере функции выполняются в блоке Process, который является эквивалентом метода ProcessingRecord, используемого скомпилированными командлетами для обработки передаваемых командлетам данных. Этот блок, а также блоки Begin и End, описаны в разделе about_Functions_Advanced_Methods. Расширенные функции имеют следующие отличия от скомпилированных командлетов: - привязка параметров расширенных функций не создает исключений, если к параметру типа Boolean привязан массив значений; - атрибуты ValidateSet и ValidatePattern не могут передавать именованные параметры; - расширенные функции нельзя использовать в транзакциях. СМ. ТАКЖЕ about_Functions_Advanced_CmdletBindingAttribute about_Functions_Advanced_Methods about_Functions_Advanced_Parameters Командлеты Windows PowerShell (http://go.microsoft.com/fwlink/?LinkID=135279) about_functions_advanced_methods РАЗДЕЛ about_Functions_Advanced_Methods КРАТКОЕ ОПИСАНИЕ Описывает, каким образом функции, имеющие атрибут CmdletBinding, могут использовать методы и свойства, доступные скомпилированным командлетам. ПОЛНОЕ ОПИСАНИЕ Функции, имеющие атрибут CmdletBinding, могут обращаться к некоторым методам и свойствам через переменную $pscmdlet. Эти методы включают следующие: - методы обработки входных данных, используемые скомпилированными командлетами; - методы ShouldProcess и ShouldContinue, используемые для получения реакции пользователя перед выполнением действия; - метод ThrowTerminatingError для создания записей об ошибках; - несколько методов Write, которые возвращают выходные данные различных типов; - несколько методов Write, которые возвращают выходные данные различных типов. Все методы и свойства командлета PSCmdlet доступны расширенным функциям. Дополнительные сведения об этих методах и свойствах см. в разделе System.Management.Automation.PSCmdlet библиотеки MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkId=142139. Методы обработки ввода Описанные в этом разделе методы называются методами обработки ввода. Для функций эти методы представляются блоками Begin, Process и End в теле функции. Каждая функция должна включать по крайней мере один из этих блоков. Среда выполнения Windows PowerShell использует код внутри этих блоков при выполнении функции. (Кроме того, эти блоки доступны функциям, которые не используют атрибут CmdletBinding.) Begin Этот блок служит для задания в функции необязательных выполняемых однократно операций предварительной обработки. Среда выполнения Windows PowerShell использует код в этом блоке один раз для каждого экземпляра функции в конвейере. Process Этот блок служит для задания операция обработки в функции каждой записи. Этот блок может выполняться неограниченное число раз или вообще не выполняться в зависимости от передаваемых функции входных данных. Например, если функция является первой командой в конвейере, блок Process будет выполнен один раз. Если функция не является первой командой в конвейере, блок Process будет вызываться по одному разу для каждого входного объекта, получаемого функцией из конвейера. Если входные данные через конвейер не поступают, блок Process не используется. Этот блок необходимо определить в том случае, если параметры функции заданы таким образом, что функция должна принимать входные данные из конвейера. Если этот блок не задан, а параметр принимает входные данные из конвейера, функция не сможет обработать значения, переданные ей через конвейер. Кроме того, если функция поддерживает запросы подтверждения (параметр SupportsShouldProcess атрибута Parameter имеет значение $True), вызов метода ShouldProcess должен осуществляться из блока Process. End Этот блок служит для задания в функции необязательных выполняемых однократно операций последующей обработки. В следующем примере показан шаблон функции, которая содержит блок Begin для однократной предварительной обработки, блок Process для обработки нескольких записей и блок End для однократной последующей обработки. Function Test-ScriptCmdlet { [CmdletBinding(SupportsShouldProcess=$True)] Param ($Parameter1) Begin{} Process{} End{} } Методы подтверждения ShouldProcess Этот метод вызывается, чтобы запросить подтверждение у пользователя, прежде чем функция выполнит действие, которое изменит систему. Выполнение функции продолжается в зависимости от возвращаемого этим методом логического значения. Этот метод можно вызывать только из блока Process{} функции. Кроме того, должен быть задан атрибут CmdletBinding, подтверждаю щий, что функция поддерживает использование метода ShouldProcess (как показано в предыдущем примере). Дополнительные сведения об этом методе см. в разделе System.Management.Automation.Cmdlet.ShouldProcess библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142142. Дополнительные сведения о запросах подтверждения см. в разделе "Запрос подтверждения" библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkID=136658. ShouldContinue Этот метод вызывается, чтобы отобразить второе сообщение с запросом подтверждения. Он должен вызываться, когда метод ShouldProcess возвращает значение $true. Дополнительные сведения об этом методе см. в разделе System.Management.Automation.Cmdlet.ShouldContinue библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142143. Методы ошибок Когда происходит ошибка, функции могут вызывать два различных метода. Если произошла непрерывающая ошибка, функция должна вызвать метод WriteError, описанный в разделе "Методы Write". Если произошла прерывающая ошибка и выполнение функции продолжаться не может, должен быть вызван метод ThrowTerminatingError. Кроме того для прерывающих ошибок можно использовать инструкцию Throw, а для непрерывающих - командлет Write-Error. Дополнительные сведения см. в разделе System.Management.Automation .Cmdlet. ThrowTerminatingError библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142144. Методы Write Чтобы возвращать выходные данные различных типов, функция может вызывать следующие методы. Обратите внимание, что не все выходные данные передаются следующей команде в конвейере. Кроме того, можно использовать различные командлеты Write, например Write-Error. WriteCommandDetail Дополнительные сведения о методе WriteCommandDetails см. в разделе System.Management.Automation.Cmdlet.WriteCommandDetail библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142155. WriteDebug В функции используется вызов метода WriteDebug, чтобы предоставить сведения, которые могут помочь при устранении неполадок в функции. Этот метод выводит для пользователя сообщение отладки. Дополнительные сведения см. в разделе System.Management.Automation.Cmdlet.WriteDebug библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142156. WriteError Функции должны вызывать этот метод, когда возникают непрерывающие ошибки, а функция должна продолжать обработку записей. Дополнительные сведения см . в разделе System.Management.Automation.Cmdlet.WriteError библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142157. Примечание. Если произошла прерывающая ошибка, функция должна вызвать метод ThrowTerminatingError. WriteObject Этот метод позволяет функции передать объект следующей команде в конвейере. В большинстве случаев именно этот метод следует использовать в ситуациях, когда функция должна возвращать данные. Дополнительные сведения см. в разделе System.Management.Automation.PSCmdlet.WriteObject библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142158. WriteProgress Для функций, которые выполняются в течение длительного времени, вызов функцией метода WriteProgress позволяет отображать сведения о ходе ее выполнения. Например, можно отображать процент выполнения. Дополнительные сведения см. в разделе System.Management.Automation.PSCmdlet.WriteProgress библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142160. WriteVerbose Чтобы предоставить подробные сведения о действиях функции, функция может вызывать метод WriteVerbose, и будут отображаться подробные сообщения для пользователя. По умолчанию подробные сообщения не отображаются. Дополнительные сведения см. в разделе System.Management.Automation.PSCmdlet.WriteVerbose библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142162. WriteWarning Чтобы предоставить сведения об условиях, которые могут вызвать появление непредсказуемых результатов, функция может вызывать метод WriteWarning, и будут отображаться предупреждения для пользователя. По умолчанию предупреждения не отображаются.Дополнительные сведения см. в разделе System.Management.Automation.PSCmdlet.WriteWarning библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142164. Примечание. Для отображения предупреждений также можно настроить переменную WarningPreference или использовать параметры командной строки Verbose и Debug. Другие методы и свойства Дополнительные сведения о других методах и свойствах, которые доступные через переменную $PSCmdlet, см. в разделе System.Management. Automation.PSCmdlet библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142139. Например, свойство ParameterSetName позволяет определить используемый набор параметров. Наборы параметров дают возможность создавать функции, выполняющие различные задачи в зависимости от параметров, задаваемых при запуске таких функций. СМ. ТАКЖЕ about_Functions_Advanced about_Functions_CmdletBindingAttributes about_Functions_Advanced_Parameters about_functions_advanced_param... РАЗДЕЛ about_Functions_Advanced_Parameters КРАТКОЕ ОПИСАНИЕ Описывает, как добавлять статические и динамические параметры в функции, в которых объявлен атрибут CmdletBinding. ПОЛНОЕ ОПИСАНИЕ При написании функций можно объявлять собственные параметры, а также можно писать функции, которые могут обращаться к общим параметрам, которые доступны скомпилированными командлетам. Дополнительные сведения об общих параметрах Windows PowerShell см. в разделе about_CommonParameters. Статические параметры В следующем примере показано объявление параметра, в котором определяется параметр ComputerName. Этот параметр обладает следующими характеристиками: - он является обязательным; - он принимает входные данные из конвейера; - в качестве входных данных он принимает массив строк; Param ( [parameter(Mandatory=$true, ValueFromPipeline=$true)] [String[]] $ComputerName ) Единственным обязательным атрибутом, который необходимо использовать при объявлении параметра, является атрибут Parameter. Но можно также объявить атрибут Alias и несколько аргументов проверки. Количество атрибутов, которые можно включить в объявление параметра, не ограничено. Атрибут Parameter Атрибут Parameter служит для объявления параметра функции. У этого атрибута есть следующие именованные аргументы, которые служат для определения характеристик параметра, например обязательности параметра. Именованный аргумент Mandatory Аргумент Mandatory указывает, что при запуске функции параметр является обязательным. Если этот аргумент не указан, параметр является необязательным. В следующем примере показано объявление параметра, который обязательно указывать при запуске функции . Param ( [parameter(Mandatory=$true)] [String[]] $ComputerName ) Именованный аргумент Position Аргумент Position задает позицию параметра. Если этот аргумент не указан, при задании параметра необходимо в явном виде указывать имя или псевдоним параметра. Кроме того, если ни у одного из параметров функции нет позиции, среда выполнения Windows PowerShell назначает позиции для каждого из параметров на основании порядка, в котором происходит получение параметров. В следующем примере показано объявление параметра, значение которого должно указываться в качестве первого аргумента при вызове командлета. Обратите внимание, что эту функцию можно запускать как с указанием имени параметра, так и без него. Param ( [parameter(Position=0)] [String[]] $ComputerName ) Именованный аргумент ParameterSetName Аргумент ParameterSetName задает набор параметров, к которому принадлежит параметр. Если набор параметров не задан, параметр принадлежит ко всем наборам параметров, которые определены функцией. Это означает, что в каждом наборе параметров должен быть один уникальны й параметр, который не принадлежит ни к одному из других наборов параметров. В следующем примере показано объявление одного из двух параметров, которые относятся к различным наборам параметров. Param ( [parameter(Mandatory=$true, ParameterSetName="Computer")] [String[]] $ComputerName ) Param ( [parameter(Mandatory=$true, ParameterSetName="User")] [String[]] $UserName ) Дополнительные сведения о наборах параметров см. в разделе "Наборы параметров командлетов" библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=142183. Именованный аргумент ValueFromPipeline Аргумент ValueFromPipeline определяет, что параметр принимает входные данные из объекта конвейера. Этот аргумент следует указывать, если командлет обращается ко всему объекту, а не только к свойству объекта. В следующем примере показано объявление обязательного параметра ComputerName, который принимает входной объект, которые передается функции из конвейера. Param ( [parameter(Mandatory=$true, ValueFromPipeline=$true)] [String[]] $ComputerName ) Именованный аргумент ValueFromPipelineByPropertyName Аргумент valueFromPipelineByPropertyName определяет, что параметр принимает входные данные из свойства объекта конвейера. Этот атрибут следует указывать, если выполняются следующие условия: - параметр используется для доступа к объекту конвейера; - имя свойства совпадает с именем параметра или псевдоним свойства совпадает с псевдонимом параметра. Например, если у функции есть параметр ComputerName, а у объекта конвейера есть свойство ComputerName, значение свойства ComputerName будет присвоено параметру ComputerName функции. В следующем примере показано объявление параметра ComputerName, который принимает входные данные из свойства ComputerName входного объекта, передаваемого командлету. Param ( [parameter(Mandatory=$true, ValueFromPipelineByPropertyName=$true)] [String[]] $ComputerName ) Именованный аргумент ValueFromRemainingArguments Аргумент ValueFromRemainingArguments определяет, что параметр принимает все оставшиеся аргументы, которые не привязаны к параметрам функции. В следующем примере показано объявление параметра ComputerName, который принимает все оставшиеся аргументы входного объекта, передаваемого функции. Param ( [parameter(Mandatory=$true, ValueFromRemainingArguments=$true)] [String[]] $ComputerName ) Именованный аргумент HelpMessage Аргумент HelpMessage задает сообщение, которое содержит краткое описание параметра. В следующем примере показано объявление параметра, в котором определяется описание параметра. Param ( [parameter(Mandatory=$true, HelpMessage="An array of computer names.")] [String[]] $ComputerName ) Атрибут Alias Атрибут Alias задает другое имя параметра. Для параметра можно определить произвольное число псевдонимов. В следующем примере показано объявление обязательного параметра, в котором для параметра ComputerName определен псевдоним CN. Param ( [parameter(Mandatory=$true)] [alias("CN")] [String[]] $ComputerName ) Атрибуты проверки параметров Эти атрибуты определяют, каким образом среда выполнения Windows PowerShell проверяет аргументы расширенных функций. Атрибут проверки AllowNull Атрибут AllowNull позволяет устанавливать аргумент обязательного параметра командлета равным Null. В следующем примере параметр ComputerName может содержать значение Null, даже если параметр является обязательным. Param ( [parameter(Mandatory=$true)] [String] [AllowNull()] $ComputerName ) Атрибут проверки AllowEmptyString Атрибут AllowEmptyString позволяет задавать в качестве аргумента обязательного параметра командлета пустую строку. В следующем примере параметр ComputerName может содержать пустую строку (""), даже если параметр является обязательным. Param ( [parameter(Mandatory=$true)] [String] [AllowEmptyString()] $ComputerName ) Атрибут проверки AllowEmptyCollection Атрибут AllowEmptyCollection позволяет задавать в качестве аргумента обязательного параметра командлета пустую коллекцию. Param ( [parameter(Mandatory=$true)] [String[]] [AllowEmptyCollection()] $ComputerName ) Атрибут проверки ValidateCount Атрибут ValidateCount задает минимальное и максимальное число аргументов, которые может принимать параметр. Среда выполнения Windows PowerShell создает ошибку, если число аргументов выходит за эти пределы . В следующем примере у параметра ComputerName может быть от одного до пяти аргументов. Param ( [parameter(Mandatory=$true)] [String[]] [ValidateCount(1,5)] $ComputerName ) Атрибут проверки ValidateLength Атрибут ValidateLength задает минимальную и максимальную длину аргумента параметра. Среда выполнения Windows PowerShell создает ошибку, если длина аргумента параметра выходит за эти пределы. В следующем примере задаются имена компьютеров, длина которых должна лежать в интервале от 1 до 10 знаков. Param ( [parameter(Mandatory=$true)] [String[]] [ValidateLength(1,10)] $ComputerName ) Атрибут проверки ValidatePattern Атрибут ValidatePattern задает регулярное выражение, которое проверяет шаблон аргумента параметра. Среда выполнения Windows PowerShell создает ошибку, если аргумент параметра не соответствует этому шаблону. В следующем примере аргументом параметра должно быть четырехзначное число, каждый разряд которого может содержать число от 0 до 9. Param ( [parameter(Mandatory=$true)] [String[]] [ValidatePattern("[0-9][0-9][0-9][0-9]")] $ComputerName ) Атрибут проверки ValidateRange Атрибут ValidateRange задает минимальное и максимальное значение аргумента параметра. Среда выполнения Windows PowerShell создает ошибку, если аргумент параметра выходит за эти пределы. В следующем примере аргумент параметра не может быть меньше 0 или больше 10. Param ( [parameter(Mandatory=$true)] [Int[]] [ValidateRange(0,10)] $Count ) Атрибут проверки ValidateScript Атрибут ValidateScript задает скрипт, который используется для проверки аргумента параметра. Среда выполнения Windows PowerShell создает ошибку, если результатом выполнения скрипта является значение false или если скрипт создает исключение. В следующем примере значение параметра Count должно быть менее 4. Param ( [parameter()] [Int] [ValidateScript({$_ -lt 4})] $Count ) Атрибут ValidateSet Атрибут ValidateSet задает набор допустимых значений аргумента параметра.. Среда выполнения Windows PowerShell создает ошибку, если аргумент параметра не совпадает ни с одним из значений в наборе. В следующем примере аргумент параметра может содержать только имена Steve, Mary и Carl. Param ( [parameter(Mandatory=$true)] [String[]] [ValidateRange("Steve", "Mary", "Carl")] $UserName ) Атрибут проверки ValidateNotNull Атрибут ValidateNotNull определяет, что аргумент параметра не может иметь значение Null. Среда выполнения Windows PowerShell создает ошибку, если параметр имеет значение Null. Param ( [parameter(Mandatory=$true)] [String[]] [ValidateNotNull()] $UserName ) Атрибут проверки ValidateNotNullOrEmpty Атрибут ValidateNotNullOrEmpty определяет, что аргумент параметра не может иметь значение Null и не может быть пустым. Среда выполнения Windows PowerShell создает ошибку, если параметр задан, но имеет значение Null, пустой строки или пустого массива. Param ( [parameter(Mandatory=$true)] [String[]] [ValidateNotNullOrEmpty()] $UserName ) Динамические параметры Динамические параметры — это параметры командлета, функции или скрипта, доступные только при определенных условиях. Например, у некоторых командлетов поставщика могут быть параметры, доступные только при использовании командлета в пути поставщика. Одним из динамических параметров является параметр Encoding командлета Set-Item, который доступен только при использовании командлета Set-Item в пути поставщика FileSystem. Для создания динамического параметра функции или скрипта используйте ключевое слово DynamicParam. Синтаксис выглядит следующим образом/ DynamicParam {<список_инструкций>} В списке инструкций используйте инструкцию If для указания условий, при которых параметр будет доступен в функции. Используйте командлет New-Object для создания объекта System.Management.Automation.RuntimeDefinedParameter, представляющего параметр и задающего его имя. Также можно использовать команду New-Object для создания объекта System.Management.Automation.ParameterAttribute, представляющего атрибуты параметра (например, Mandatory, Position или ValueFromPipeline) или его набор параметров. В следующем примере показана функция со стандартными параметрами Name и Path, а также с дополнительным динамическим параметром DP1. Параметр DP1 находится в наборе параметров PSet1 и принадлежит к типу Int32. Параметр DP1 доступен в функции Sample только в том случае, если в значении параметра Path содержится строка "HKLM:", указывающая на использование командлета на диске реестра HKEY_LOCAL_MACHINE. function Sample { Param ([String]$Name, [String]$Path) DynamicParam { if ($path -match "*HKLM*:") { $dynParam1 = new-object System.Management.Automation.RuntimeDefinedParameter("dp1", [Int32], $attributeCollection) $attributes = new-object System.Management.Automation.ParameterAt tribute $attributes.ParameterSetName = 'pset1' $attributes.Mandatory = $false $attributeCollection = new-object -Type System.Collections.ObjectModel.Collection``1[System.Attri bute] $attributeCollection.Add($attributes) $paramDictionary = new-object System.Management.Automation.RuntimeDefinedParameterDictionary $paramDictionary.Add("dp1", $dynParam1) return $paramDictionary } End if } } Дополнительные сведения см. в разделе "Класс RuntimeDefinedParameter" библиотеки MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkID=145130. СМ. ТАКЖЕ about_Advanced Functions about_Functions_Advanced_Methods about_Functions_CmdletBindingAttribute about_functions_cmdletbindinga... РАЗДЕЛ about_Functions_CmdletBindingAttribute КРАТКОЕ ОПИСАНИЕ Описывает атрибут, который объявляет функцию, действие которой похоже на действие скомпилированного командлета. ПОЛНОЕ ОПИСАНИЕ При написании функций можно добавлять атрибут CmdletBinding, чтобы среда Windows PowerShell привязывала параметры функции так же, как выполняется привязка параметров скомпилированных командлетов. Если этот атрибут объявлен, среда Windows PowerShell также задает автоматическую переменную $PSCmdlet. При использовании привязки командлета неизвестные параметры и позиционные аргументы, для которых отсутствуют соответствующие позиционные параметры, вызывают сбой привязки параметров. Кроме того, функция или скрипт с привязкой командлета не использует переменную $args. Примечание. Скомпилированные командлеты используют обязательный атрибут Cmdlet, действие которого похоже на действие описываемого в этом разделе атрибута CmdletBinding. В следующем примере показан шаблон функции, которая задает все необязательные аргументы атрибута CmdletBinding. После примера приведено краткое описание каждого из аргументов. { [CmdletBinding(SupportsShouldProcess=<Boolean>, ConfirmImpact=<String>, DefaultParameterSetName=<String>)] Param ($Parameter1) Begin{} Process{} End{} } SupportsShouldProcess Если аргумент SupportsShouldProcess имеет значение true, это значит, что функция поддерживает вызовы метода ShouldProcess, который запрашивает у пользователя подтверждение, прежде чем функция изменит систему. Если этот аргумент задан, для функции включаются параметры Confirm и WhatIf. Дополнительные сведения о запросах подтверждения см. в разделе "Запрос подтверждения" библиотеки MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkId=136658. DefaultParameterSetName Аргумент DefaultParameterSetName задает имя набора параметров, который среда Windows PowerShell будет пытаться использовать, если ей не удастся определить нужный набор параметров. Этой ситуации можно избежать, сделав уникальный параметр каждого из наборов параметров обязательным. ConfirmImpact Аргумент ConfirmImpact определяет, в каком случае действие функции должно быть подтверждено вызовом метода ShouldProcess. Вызов метода ShouldProcess отображает запрос подтверждения только тогда, когда аргумент ConfirmImpact больше или равен значению привилегированной переменной $ConfirmPreference. (По умолчанию этот аргумент имеет значение Medium.) Этот аргумент следует задавать только в том случае, когда задан аргумент SupportsShouldProcess. СМ. ТАКЖЕ about_Functions_Advanced about_Functions_CmdletBindingAttribute about_Functions_ParameterAttributes about_hash_tables РАЗДЕЛ about_Hash_Tables КРАТКОЕ ОПИСАНИЕ Описывает, как создавать, использовать и сортировать хэш-таблицы в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Хэш-таблица, также называемая словарем или массивом ассоциативных элементов, представляет собой компактную структуру данных, в которой хранится одна или несколько пар "имя-значение". Например, хэш-таблица может содержать набор имен и идентификаторов сотрудников, имен компьютеров и IP-адресов или идентификаторов сообщений и текстов сообщений. Хэш-таблицы используются довольно часто, потому что они позволяют эффективно находить и извлекать данные. В Windows PowerShell с помощью хэш-таблиц можно хранить списки или создавать вычисляемые свойства. Кроме того, в Windows PowerShell имеется командлет ConvertFrom-StringData, который преобразует строки в хэш-таблицу. Создание хэш-таблиц Элементы в хэш-таблице организуются в пары "имя-значение", например: Msg1="Please enter your password." Msg2="The path parameter is required." Msg3="The alias of Get-Command is gcm." Значения сопоставляются или ассоциируются с именами, поэтому в ответ на имя среда Windows PowerShell возвращает значение. В Windows PowerShell синтаксис хэш-таблиц имеет следующий вид: @{ <имя> = <значение>; [<имя> = При создании хэш-таблицы необходимо соблюдать следующие правила: - начинайте хэш-таблицу со знака "@"; - заключайте хэш-таблицу в фигурные скобки ({}); - в качестве содержимого хэш-таблицы вводите одну или более пар "имя-значение"; - используйте знак "равно" (=), чтобы отделять имена от значений; - чтобы разделять пары "имя-значение", используйте точку с запятой (;); - если имя или значение содержит пробелы, заключите его в кавычки. Например, хэш-таблица для приведенных выше сообщений выглядит следующим образом: @{ Msg1="Please enter your password."; Msg2="The path parameter is required."; Msg3="The alias of Get-Command is gcm."; } Чтобы хэш-таблицу можно было использовать в скриптах и командах, сохраните ее в переменной. Значением переменной является объект хэш-таблицы (System.Collections.Hashtable), а имена каждой из пар "имя-значение" являются свойствами объекта хэш- таблицы. Следующие команды сохраняют хэш-таблицу сообщений пользователя в переменной $a, а для отображения значений в них используется обращение через точку. C:\PS> $a = @{ >> Msg1="Please enter your password."; >> Msg2="The path parameter is required."; >> Msg3="The alias of Get-Command is gcm."; >> } C:\PS> $a Name Value ---- ----- Msg1 Please enter your password. Msg3 The alias of Get-Command is gcm. Msg2 The path parameter is required. C:\PS> $a.Msg1 Please enter your password. Хэш-таблицы не ограничиваются одним типом данных. В хэш-таблицу можно вводить данные любого типа, а в одной хэш-таблице можно объединять данные различных типов. Например, можно создать хэш-таблицу, которая содержит целое число, вызов командлета и строку. Сортировка хэш-таблиц Для сортировки хэш-таблицы по алфавиту по ключам или по значениям, используется метод хэш-таблиц GetEnumerator, которые получает ключи и значения хэш-таблицы, после чего они сортируются с помощью командлета Sor t-Object. Например, следующая команда сортирует хэш-таблицу в переменной $a по алфавиту по ключам. C:\PS> $a.getenumerator() | sort-object -property key Name Value ---- ----- Msg1 Please enter your password. Msg2 The path parameter is required. Msg3 The alias of Get-Command is gcm. Следующая команда с помощью того же метода сортирует значения хэш-таблицы по убыванию. C:\PS> $a.getenumerator() | sort-object -property value -descending Name Value ---- ----- Msg2 The path parameter is required. Msg3 The alias of Get-Command is gcm. Msg1 Please enter your password. ConvertFrom-StringData Командлет ConvertFrom-StringData преобразует строку или автономную строку, содержащую пары "имя-значение", в хэш-таблицу. Командлет ConvertFrom-StringData можно безопасно использовать в разделе Data скрипта, либо его можно использовать с командлетом Import-LocalizedData, чтобы отображать сообщения с помощью культуры пользовательского интерфейса текущего пользователя. Автономные строки особенно удобно использовать в случаях, когда значения в хэш-таблице включают кавычки. (Дополнительные сведения об автономных строках см. в разделе about_Quoting_Rules.) В следующем примере показано, как создать автономную строку из пользовательских сообщений из предыдущего примера и с помощью командлета ConvertFrom-StringData преобразовать эту строку в хэш-таблицу. Следующая команда создает автономную строку из пар "имя-значение", а затем сохраняет ее в переменной $string. C:\PS> $string = @" Msg1="Please enter your password." Msg2="The path parameter is required." Msg3="The alias of Get-Command is gcm." "@ Эта команда с помощью командлета ConvertFrom-StringData преобразует автономную строку в хэш-таблицу. C:\PS> convertfrom-stringdata $string Name Value ---- ----- Msg3 "The alias of Get-Command is gcm." Msg2 "The path parameter is required." Msg1 "Please enter your password." СМ. ТАКЖЕ about_Arrays about_Quoting_Rules about_Script_Internationalization ConvertFrom-StringData Import-LocalizedData about_History РАЗДЕЛ about_History КРАТКОЕ ОПИСАНИЕ Описывает, как извлекать команды из журнала команд. ПОЛНОЕ ОПИСАНИЕ При вводе команды в командной строке среда Windows PowerShell сохраняет команды в журнале команд. Журнал команд можно использовать в качестве механизма регистрации выполняемых операций. Кроме того, можно вызывать и выполнять команды, записанные в журнал. Командлеты журнала В Windows PowerShell имеется набор командлетов, управляющих журналом команд. Командлет (псевдоним) Описание --------------------- ------------------------------------ Get-History (h) Возвращает журнал команд. Invoke-History (r) Выполняет команду в журнале команд. Add-History Добавляет команду в журнал команд. Clear-History (clh) Удаляет команды из журнала команд. Сочетания клавиш для управления журналом В консоли Windows PowerShell для управления журналом команд можно использовать следующие сочетания клавиш. Для других приложений см. документацию к соответствующему продукту. Клавиши Действие ------------- ------------------------ СТРЕЛКА ВВЕРХ Отображает предыдущую команду. СТРЕЛКА ВНИЗ Отображает следующую команду. F7 Отображает журнал команд. Чтобы скрыть журнал, нажмите клавишу ESC. F8 Находит команду. Введите один или более знаков и нажмите клавишу F8. Для получения следующе го вхождения снова нажмите клавишу F8. F9 Находит команду по идентификатору в журнале. Введите идентификатор в журнале и нажмите клавишу F9. Чтобы найти идентификатор, нажмите клавишу F7. MaximumHistoryCount Привилегированная переменная $MaximumHistoryCount определяет максимальное число команд, которое Windows PowerShell сохраняет в журнале команд. Значение по умолчанию - 64, что означает, что среда Windows PowerShell сохраняет 64 последние команды, но значение этой переменной можно изменить. Например, следующая команда увеличивает значение $MaximumHistory Count до 100 команд: $MaximumHistoryCount = 100 Чтобы изменения вступили в силу, перезапустите Windows PowerShell. Чтобы сохранить новое значение переменной для всех сеансов Windows PowerShell, добавьте инструкцию присваивания в профиль Windows PowerShell . Дополнительные сведения см. в разделе about_Profiles. Порядок команд в журнале Команды добавляются в журнал по завершении выполнения, а не при вводе. Если для завершения команды требуется некоторое время, или если команда выполняется во вложенной командной строке, порядок следования команд в журнале может быть нарушен. (Команды, выполняемые во вложенной командной строке, завершаются только при выходе из вложенной командной строки.) СМ. ТАКЖЕ about_Line_Editing about_Variables about_Preference_Variables about_If РАЗДЕЛ about_If КРАТКОЕ ОПИСАНИЕ Описывает команду языка, которую можно использовать для выполнения списка инструкций на основании результатов проверки одного или нескольких условий. ПОЛНОЕ ОПИСАНИЕ При помощи инструкции If можно выполнять определенные блоки кода только в том случае, когда заданное условие имеет значение true. Кроме того, можно задать одно или несколько дополнительных условий, если все предыдущие условия имели значение false. Наконец, можно задать дополнительный блок кода, который будет выполняться в том случае, если ни одно из условий не имеет значения "true". Синтаксис В следующем примере показан синтаксис инструкции If: if (<условие_1>) {<список_инструкций_1>} [elseif (<условие_2>) {<список_инструкций_2>}] [else {<список_инструкций_3>}] При выполнении инструкции If среда Windows PowerShell проверяет истинность условного выражения <условие_1>. Если <условие_1> имеет значение true, то выполняется <список_инструкций_1>, а Windows PowerShell завершает выполнение инструкции If. Если <условие_1> имеет значение false, то Windows PowerShell проверяет истинность условного выражения <условие_2>. Если <условие_2> имеет значение true, то выполняется <список_инструкций_2>, а Windows PowerShell завершает выполнение инструкции If. Если и <условие_1>, и <условие_2> имеют значение false, то выполняется <список_инструкций_3>, а затем Windows PowerShell завершает выполнение инструкции If. Можно использовать несколько инструкций Elseif для создания цепочки условий, каждое из которых будет проверяться только в том случае, когда все предыдущие условия имеют значения false. Если требуется создать инструкцию If, содержащую много инструкций Elseif, удобнее использовать инструкцию Switch. Примеры Простейшая инструкция If содержит одну команду и не содержит ни одной инструкции Elseif или Else. В следующем примере показана простейшая форма инструкции If: if ($a -gt 2) { Write-Host "The value $a is greater than 2." } Если в этом примере значение переменной $a больше 2, то условие оказывается равным true, и выполняется набор инструкций. Однако если значение переменной $a меньше или равно 2 либо такой переменной не существует, то инструкция If не будет выводить никаких сообщений. При помощи инструкции Else можно сделать так, чтобы в случае, когда значение переменной $a меньше или равно 2, отображалось сообщение, как это показано в следующем примере: if ($a -gt 2) { Write-Host "The value $a is greater than 2." } else { Write-Host "The value $a is less than or equal to 2, is not created or is not initialized." } Усложняя данный пример, можно воспользоваться инструкцией Elseif для вывода специального сообщения в том случае, когда значение переменной $a равно 2, как это показано в следующем примере: if ($a -gt 2) { Write-Host "The value $a is greater than 2." } elseif ($a -eq 2) { Write-Host "The value $a is equal to 2." } else { Write-Host "The value $a is less than 2 or was not created or initialized." } СМ. ТАКЖЕ about_Comparison_Operators about_Switch about_job_details РАЗДЕЛ about_Job_Details КРАТКОЕ ОПИСАНИЕ Содержит сведения о фоновых заданиях на локальных и удаленных компьютерах. ПОДРОБНОЕ ОПИСАНИЕ В этом разделе описаны принципы работы фоновых заданий и приведены технические сведения о работе фоновых заданий в Windows PowerShell. Этот раздел дополняет разделы about_Jobs и about_Remote_Jobs. Важно: фоновые задания, запущенные с помощью команды Start-Job или параметра AsJob команды Invoke-Command, используют инфраструктуру удаленного взаимодействия Windows PowerShell. Для использования этих функций необходимо настроить в Windows PowerShell удаленное взаимодействие, даже если фоновое задание выполняется только на локальном компьютере. Дополнительные сведения см. в разделе about_Remote_Requirements. ФОНОВЫЕ ЗАДАНИЯ Фоновое задание выполняет команду или выражение асинхронно. Оно может выполнять командлеты, функции, скрипты или другие задачи на базе команд. Фоновые задания предназначены для запуска команд, выполнение которых занимает продолжительное время, но их можно использовать для запуска любых команд в фоновом режиме. При выполнении синхронной команды командная строка Windows PowerShell отключается, пока команда не будет завершена, в то время как при использовании фоновых задании командная строка Windows PowerShell не отключается. Команда, запускающая фоновое задание, возвращает объект задания. Командная строка становится доступной сразу же, поэтому во время выполнения фонового задания можно работать с другими задачами. Однако при запуске фонового задания результаты не возвращаются немедленно, даже если задание выполняется очень быстро. Возвращаемый объект задания содержит полезные сведения о задании, но не содержит результатов выполнения задания. Необходимо выполнить отдельную команду, чтобы получить результаты задания. Кроме того, можно выполнить команду, чтобы остановить задание, дождаться завершения задания или удалить задание. Чтобы синхронизация фонового задания не зависела от других команд, каждое фоновое задание выполняется в собственной среде Windows PowerShell ("сеансе"). Это может быть как временное подключение, которое создается только для выполнения задания, а потом уничтожается, так и постоянный сеанс (PSSession), который можно использовать для выполнения нескольких связанных заданий и команд. ИСПОЛЬЗОВАНИЕ КОМАНДЛЕТОВ JOB Для запуска фонового задания на локальном компьютере служит команда Start-Job. Команда Start-Job возвращает объект задания. Кроме того, объекты заданий, запущенных на локальном компьютере, можно получить с помощью командлета Get-Job. Чтобы получить результаты задания, следует использовать командлет Receive-Job. Если задание не завершено, командлет Receive-Job возвращает частичные результаты. Кроме того, можно использовать командлет Wait-Job, который отключает командную строку, пока одно или все запущенные в сеансе задания не будут завершены. Для остановки фоновых заданий используется командлет Stop-Job. Для удаления заданий используется командлет Remove-Job. Дополнительные сведения о работе командлетов см. в разделах справки, посвященных соответствующим командлетам, а также в разделе about_Jobs. ЗАПУСК ФОНОВЫХ ЗАДАНИЙ НА УДАЛЕННЫХ КОМПЬЮТЕРАХ Создавать фоновые задания и управлять ими можно как на локальном, так и на удаленном компьютере. Чтобы запустить фоновое задание удаленно, следует воспользоваться параметром AsJob командлета, например командлета Invoke-Command, или с помощью командлета Invoke-Command удаленно выполнить команду Start-Job. Кроме того, фоновые задания можно запускать в интерактивных сеансах. Дополнительные сведения об удаленных фоновых заданиях см. в разделе about_Remote_Jobs. ДОЧЕРНИЕ ЗАДАНИЯ Каждое фоновое задание состоит из родительского задания и одного или нескольких дочерних заданий. В заданиях, запускаемых с помощью команды Start-Job или параметра AsJob командлета Invoke-Command, родительское задание является ведущим. Оно не выполняет никаких команд и не возвращает никаких результатов. Реальные команды выполняются дочерними заданиями. (Задания, запускаемые с помощью других командлетов, могут работать иначе.) Дочерние задания хранятся в свойстве ChildJobs объекта родительского задания. Свойство ChildJobs может содержать один или несколько объектов дочерних заданий. У объектов дочерних заданий имеются имя, идентификатор и идентификатор экземпляра, которые отличаются от родительского задания, поэтому родительскими и дочерними заданиями можно управлять по отдельности или как единым целым. Чтоб определить родительские и дочерние задания внутри задания, следует использовать командлет Get-Job, чтобы получить родительское задание, а затем по конвейеру передать это задание команде Format-List, которая выведет значения свойств Name и ChildJobs объектов, как показано в следующей команде. C:\PS> get-job | format-list -property Name, ChildJobs Name : Job1 ChildJobs : {Job2} Кроме того, можно использовать команду Get-Job с дочерним заданием, как показано ниже: C:\PS> get-job job2 Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 2 Job2 Completed True localhost get-process Конфигурация дочернего задания зависит от команды, с помощью которой запускается задание. -- При запуске задания на локальном компьютере с помощью команды Start-Job задание состоит из ведущего родительского задания и дочернего задания, которое выполняет команды. -- При запуске задания на одном или нескольких компьютерах с помощью параметра AsJob команды Invoke-Command задание состоит из ведущего родительского задания и дочернего задания для каждого задания, выполняемого на каждом из компьютеров. -- При выполнении команды Start-Job на одном или нескольких удаленных компьютерах с помощью команды Invoke-Command результат не отличается от выполнения локальной команды на каждом из удаленных компьютеров. Команда возвращает объект задания для каждого компьютера. Объект задания состоит из ведущего родительского задания и одного дочернего задания, которое выполняет команду. Родительское задание представляет все дочерние задания. При управлении родительским заданием также происходит управление связанными с ним дочерними заданиями. Например, если остановить родительское задание, все дочерние задания также будут остановлены. Если получить результаты родительского задания, будут получены результаты всех дочерних заданий. Однако дочерними заданиями можно управлять и по отдельности. Это бывает особенно полезно, если требуется разобраться в проблеме с заданием или получить результаты только для одного из нескольких дочерних заданий, запущенных с помощью параметра AsJob командлета Invoke-Command. (Обратный апостроф (`) является знаком продолжения строки.) В следующей команде с помощью параметра AsJob командлета Invoke-Command запускаются фоновые задания на локальном компьютере и двух удаленных компьютерах. Команда сохраняет задание в переменной $j. C:\PS> $j = invoke-command -computername localhost, Server01, Server02 ` -command {get-date} -AsJob При отображении свойств Name и ChildJob задания в переменной $j видно, что команда вернула объект задания с тремя дочерними заданиями, по одному на каждый компьютер. C:\PS> $j | format-list name, childjobs Name : Job3 ChildJobs : {Job4, Job5, Job6} При отображении родительского задания видно, что задание закончилось сбоем. C:\PS> $j Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job3 Failed True localhost,server... get-date Однако при выполнении команды Get-Job для каждого из дочерних заданий становится понятно, что сбоем закончилось только одно задание. PS C:\ps-test> get-job job4, job5, job6 Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 4 Job4 Completed True localhost get-date 5 Job5 Failed False Server01 get-date 6 Job6 Completed True Server02 get-date Чтобы получить результаты всех дочерних заданий, необходимо с помощью командлета Receive-Job получить результаты родительского задания. Но можно также получить результаты конкретного дочернего задания, как показано в следующей команде. C:\PS> receive-job -job6 -keep | format-table ComputerName, DateTime -a uto ComputerName DateTime ------------ -------- Server02 Четверг, 13 марта 2008 г., 16:16:03 Поддержка дочерних заданий в фоновых заданиях Windows PowerShell обеспечивает более широкие возможности управления выполняемыми заданиями. СМ. ТАКЖЕ about_Jobs about_Remote_Jobs about_Remote Invoke-Command Start-Job Get-Job Wait-Job Stop-Job Remove-Job New-PSSession Enter-PSSession Exit-PSSession about_jobs РАЗДЕЛ about_Jobs КРАТКОЕ ОПИСАНИЕ Сведения о выполнении команд и выражений в фоновых заданиях Windows PowerShell, не затрагивающем текущий сеанс. ПОЛНОЕ ОПИСАНИЕ В этом разделе описывается запуск фоновых заданий в Windows PowerShell на локальном компьютере. Дополнительные сведения о запуске фоновых заданий на удаленных компьютерах см. в разделе about_Remote_Jobs. При запуске фонового задания командная строка возвращается немедленно, даже если для выполнения задания требуется значительное время. Пока задание выполняется, можно продолжать работу с данным сеансом. Важно: фоновые задания, запущенные с помощью команды Start-Job или параметра AsJob команды Invoke-Command, используют инфраструктуру удаленного взаимодействия Windows PowerShell. Для использования этих функций необходимо настроить в Windows PowerShell удаленное взаимодействие, даже если фоновое задание выполняется только на локальном компьютере. Дополнительные сведения см. в разделе about_Remote_Requirements. ЗАПУСК ЗАДАНИЯ НА ЛОКАЛЬНОМ КОМПЬЮТЕРЕ Чтобы запустить фоновое задание на локальном компьютере, используйте командлет Start-Job. При вводе команды Start-Job команда, выполняемая в фоновом задании, заключается в фигурные скобки ( { } ). Для указания команды используйте параметр ScriptBlock. Следующая команда запускает фоновое задание, выполняющее команду Get-Process на локальном компьютере. start-job -scriptblock {get-process} Команда Start-Job возвращает объект, представляющий задание. Объект задания содержит полезные сведения о задании, но не содержит результаты его выполнения. Сохраните объект задания в переменной, чтобы в дальнейшем использовать его с другими командлетами Job для управления фоновыми заданиями. Следующая команда запускает объект задания и сохраняет результирующий объект задания в переменной $job. $job = start-job -scriptblock {get-process} Кроме того, с помощью командлета Get-Job можно получать объекты, представляющие задания, запущенные в текущем сеансе. Командлет Get-Job возвращает тот же объект задания, что и командлет Start-Job. ПОЛУЧЕНИЕ ОБЪЕКТОВ ЗАДАНИЙ Чтобы получить объект, представляющий фоновые задания, запущенные в текущем сеансе, используйте командлет Get-Job. При вызове без параметров команда Get-Job возвращает все задания, запущенные в текущем сеансе. Например, следующая команда получает все задания в текущем сеансе. get-job Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Running True localhost get-process Также можно сохранить объект задания в переменной и использовать его в последующих командах как объект, представляющий это задание. Следующая команда получает задание с идентификатором 1 и сохраняет его в переменной $job. $job = get-job -id 1 Объект задания содержит состояние задания, показывающее, закончено ли его выполнение. Завершенное задание имеет состояние "Complete" (Выполнено) или "Failed" (Не удалось выполнить). Также задание может быть заблокированным или выполняющимся. get-job Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Complete True localhost get-process ПОЛУЧЕНИЕ РЕЗУЛЬТАТОВ ВЫПОЛНЕНИЯ ЗАДАНИЯ При выполнении фонового задания результаты появляются не сразу. Вместо этого командлет Start-Job возвращает объект, представляющий это задание, но не содержащий результатов его выполнения. Чтобы получить результаты выполнения фонового задания, используйте командлет Receive-Job. В следующей команде используется командлет Receive-Job для получения результатов выполнения задания. Используется объект задания, сохраненный в переменной $job и обозначающий это задание. receive-job -job $job Командлет Receive-Job возвращает результаты выполнения задания. Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 103 4 11328 9692 56 1176 audiodg 804 14 12228 14108 100 101.74 1740 CcmExec 668 7 2672 6168 104 32.26 488 csrss ... Результаты выполнения задания также можно сохранить в переменной. Следующая команда сохраняет результат выполнения задания, размещенного в переменной $job, в переменную $results. $results = receive-job -job $job Кроме того, результаты выполнения задания можно сохранить в файле с помощью оператора перенаправления (>) или командлета Out-File. В следующей команде с помощью оператора перенаправления результаты выполнения задания из переменной $job сохраняются в файле Results.txt. receive-job -job $job > results.txt ПОЛУЧЕНИЕ И СОХРАНЕНИЕ ЧАСТИЧНЫХ РЕЗУЛЬТАТОВ ВЫПОЛНЕНИЯ ЗАДАНИЙ Командлет Receive-Job возвращает результаты выполнения фонового задания. Если задание завершено, командлет Receive-Job возвращает полные результаты его выполнения. Если задание все еще выполняется, командлет Receive-Job получает результаты, созданные на данный момент. Затем можно снова запустить команду Receive-Job для получения оставшихся результатов. Когда командлет Receive-Job возвращает результаты, по умолчанию он удаляет их из кэша, где они хранились. При повторном запуске команды Receive-Job получаются только те результаты, которые не были получены в прошлый раз. Следующие команды выводят результаты команд Receive-Job, выполненных до завершения задания. C:\PS> receive-job -job $job Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 103 4 11328 9692 56 1176 audiodg 804 14 12228 14108 100 101.74 1740 CcmExec C:\PS> receive-job -job $job Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 68 3 2632 664 29 0.36 1388 ccmsetup 749 22 21468 19940 203 122.13 3644 communicator 905 7 2980 2628 34 197.97 424 csrss 1121 25 28408 32940 174 430.14 3048 explorer Чтобы команда Receive-Job не удалила возвращенные ей результаты, используйте параметр Keep. В этом случае команда Receive-Job возвращает все результаты, созданные на данный момент. Следующие команды показывают влияние параметра Keep на незавершенное задание. Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 103 4 11328 9692 56 1176 audiodg 804 14 12228 14108 100 101.74 1740 CcmExec C:\PS> receive-job -job $job -keep Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 103 4 11328 9692 56 1176 audiodg 804 14 12228 14108 100 101.74 1740 CcmExec 68 3 2632 664 29 0.36 1388 ccmsetup 749 22 21468 19940 203 122.13 3644 communicator 905 7 2980 2628 34 197.97 424 csrss 1121 25 28408 32940 174 430.14 3048 explorer ОЖИДАНИЕ РЕЗУЛЬТАТОВ Если выполнение задания занимает длительное время, можно с помощью свойств объекта задания определить, когда оно будет завершено. Следующая команда с помощью объекта Get-Job получает все фоновые задания в текущем сеансе. get-job Результаты выводятся в виде таблицы. Состояние задания отображается в столбце "State". Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Complete True localhost get-process 2 Job2 Running True localhost get-eventlog -log syst... 3 Job3 Complete True localhost dir -path c:\* -recurse В этом случае свойство State показывает, что задание Job2 все еще выполняется. Если получить результаты выполнения задания с помощью командлета Receive-Job прямо сейчас, они будут неполными. Можно повторно использовать командлет Receive-Job, пока не будут получены все результаты. По умолчанию при каждом использовании этого командлета получаются только те результаты, которые не были получены ранее, однако с помощью параметра Keep для командлета Receive-Job можно сохранять полученные ранее результаты. Теперь можно сохранить результаты в файл и в дальнейшем добавлять в него новые результаты по мере их поступления. Или можно выждать и проверить состояние задания позже. Также можно использовать командлет Wait-Job для ожидания любых (или всех) результатов выполнения задания. Командлет Wait-Job позволяет дожидаться выполнения определенного задания, всех заданий или любого из них. В следующей команде используется командлет Wait-Job для ожидания результатов выполнения задания с идентификатором 10. wait-job -ID 10 При этом командная строка Windows PowerShell отключается до завершения задания. Также можно задать ожидание в течение определенного срока. В этой команде с помощью параметра Timeout задается предельный срок ожидания 120 секунд. По истечении этого срока возвращается командная строка, но задание продолжает выполняться в фоновом режиме. wait-job -ID 10 -timeout 120 ОСТАНОВКА ЗАДАНИЯ Для остановки фоновых заданий используется командлет Stop-Job. Следующая команда запускает задание, получающее все записи из журнала событий System. Объект задания сохраняется в переменной $job. $job = start-job -scriptblock {get-eventlog -log system} Следующая команда останавливает задание. Она передает задание, содержащееся в переменной $job, в командлет Stop-Job с помощью оператора конвейера (|). $job | stop-job УДАЛЕНИЕ ЗАДАНИЯ Для удаления фоновых заданий используется командлет Remove-Job. Следующая команда удаляет объект, содержащийся в переменной $job. remove-job -job $job ПРОВЕРКА ЗАДАНИЯ, В КОТОРОМ ВОЗНИКЛА ОШИБКА Чтобы выяснить, почему не удалось выполнить задание, используйте свойство Reason объекта задания. Следующая команда запускает задание без требуемых учетных данных. Объект задания сохраняется в переменной $job. $job = start-job -scriptblock {new-item -path HKLM:\Software\MyCompany } Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Failed False localhost new-item -path HKLM:\S... Следующая команда с помощью свойства Reason выясняет причину ошибки, из-за которой не удалось выполнить задание. $job.ChildJobs[0].JobStateInfo.Reason В данном случае задание не удалось выполнить потому, что удаленный компьютер затребовал явно указанные учетные данные для выполнения команды. При этом свойство Reason имеет следующее значение: Не удалось подключиться к удаленному серверу. Сообщение об ошибке: доступ запрещен. КОМАНДЛЕТЫ JOB Start-Job Запускает фоновое задание на локальном компьютере. Get-Job Получает фоновые задания, запущенные в текущем сеансе. Receive-Job Получает результаты выполнения фоновых заданий. Stop-Job Останавливает фоновое задание. Wait-Job Отключает командную строку до выполнения одного задания либо их всех. Remove-Job Удаляет фоновое задание. Invoke-Command Параметр AsJob позволяет запустить любую команду как фоновое задание на удаленном компьютере. С помощью ком анды Invoke-Command также можно удаленно запускать любые команд ы заданий, включая команду Start-Job. СМ. ТАКЖЕ about_Remote_Jobs about_Job_Details about_Remote about_PSSessions Start-Job Get-Job Receive-Job Stop-Job Wait-Job Remove-Job Invoke-Command about_join РАЗДЕЛ about_join КРАТКОЕ ОПИСАНИЕ Описание принципов действия оператора -join, объединяющего несколько строк в одну. ПОЛНОЕ ОПИСАНИЕ Оператор join объединяет набор строк в одну строку. Строки добавляются в конце результирующей строки в том же порядке, в котором они указаны в команде. Синтаксис В следующей схеме показан синтаксис оператора join. -Join <String[]> <String[]> -Join <Delimiter> Параметры String[] Задает одну или несколько объединяемых строк. Delimiter Задает один или несколько символов, помещаемых между объединяемыми строками. По умолчанию разделитель не используется (""). Примечания Унарный оператор join (-join <string[]>) имеет более высокий приоритет, чем запятая. Поэтому если задать ему список перечисленных через запятую строк, ему передается только первая строка (до первой запятой). При использовании унарного оператора join заключите строки в круглые скобки или сохраните их в переменной и передайте переменную этому оператору. Пример: -join "a", "b", "c" a b c -join ("a", "b", "c") abc $z = "a", "b", "c" -join $z abc Примеры Следующая инструкция объединяет три строки. -join ("Windows", "PowerShell", "2.0") WindowsPowerShell2.0 Следующая инструкция объединяет три строки, используя пробел в качестве разделителя. "Windows", "PowerShell", "2.0" -join " " Windows PowerShell 2.0 Следующие инструкции объединяют три строки, используя несколько символов в качестве разделителя. $a = "WIND", "SP", "ERSHELL" $a -join "OW" WINDOWSPOWERSHELL Следующая инструкция объединяет строки, содержащиеся в автономной строке, преобразуя их в единую строку. Поскольку автономная строка представляет собой единую строку, необходимо разделить содержащиеся в ней строки, прежде чем их можно будет объединить. Этим способом можно объединить строки файла XML, сохраненного в автономной строке. $a = @' a b c '@ (-split $a) -join " " a b c СМ. ТАКЖЕ about_Operators about_Comparison_Operators about_Split about_Language_Keywords РАЗДЕЛ about_Language_Keywords КРАТКОЕ ОПИСАНИЕ Описание ключевых слов языка скриптов Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В Windows PowerShell используются следующие ключевые слова. Дополнительные сведения см. в соответствующих разделах справки по отдельным ключевым словам, а также в следующей за таблицей информации. Ключевое слово Разделы справки ------- --------- Begin about_Functions, about_Functions_Advanced Break about_Break, about_Trap Catch about_Try_Catch_Finally Continue about_Continue, about_Trap Data about_Data_Sections Do about_Do, about_While Dynamicparam about_Functions_Advanced_Parameters Else about_If Elseif about_If End about_Functions, about_Functions_Advanced_Methods Exit Описывается в этом разделе. Filter about_Functions Finally about_Try_Catch_Finally For about_For Foreach about_Foreach From Зарезервировано для использования в дальнейшем. Function about_Functions, about_Functions_Advanced If about_If In about_Foreach Param about_Functions Process about_Functions, about_Functions_Advanced Return about_Return Switch about_Switch Throw about_Throw, about_Functions_Advanced_Methods Trap about_Trap, about_Break, about_Try_Catch_Finally Try about_Try_Catch_Finally Until about_Do While about_While, about_Do Ключевые слова языка скриптов Begin ----- Указывает одну из частей тела функции, как и ключевые слова Dynamicparam, Process и End. Список инструкций из блока Begin выполняется однократно, прежде чем какие-либо объекты принимаются с конвейера. Синтаксис: function <имя> { dynamicparam {<список_инструкций>} begin {<список_инструкций>} process {<список_инструкций>} end {<список_инструкций>} } Break ----- Обеспечивает выход из цикла скрипта. Синтаксис: while (<условие>) { <инструкции> ... break ... <инструкции> } Catch ----- Задает список инструкций, выполняемых при возникновении ошибки в сопутствующем списке инструкций Try. Тип ошибки указывается в квадратных скобках. Наличие двойных квадратных скобок означает, что тип ошибки указывать не обязательно. Синтаксис: try {<список_инструкций>} catch [[<тип_ошибки>]] {<список_инструкций>} Continue -------- Обеспечивает остановку цикла скрипта и возврат к условию. Если условие выполняется, цикл скрипта запускается снова. Синтаксис: while (<условие>) { <инструкции> ... continue ... <инструкции> } Data ---- При использовании в скриптах это ключевое слово определяет раздел, отделяющий данные от логики скрипта. Также может содержать инструкции If и некоторые ограниченные команды. Синтаксис: data <переменная> [-supportedCommand <имя_командлета>] {<допустимое_содер жимое>} Do -- Используется в сочетании с ключевым словом While или Until для создания циклов. Windows PowerShell выполняет список инструкций как минимум один раз, в отличие от циклов с ключевым словом While. Синтаксис: do {<список_инструкций>} while (<условие>) do {<список_инструкций>} until (<условие>) Dynamicparam ------------ Указывает одну из частей тела функции, как и ключевые слова Begin, Process и End. Динамические параметры добавляются во время выполнения. Синтаксис: function <имя> { dynamicparam {<список_инструкций>} begin {<список_инструкций>} process {<список_инструкций>} end {<список_инструкций>} } Else ---- Используется с ключевым словом If. Задает список инструкций по умолчанию. Синтаксис: if (<условие>) {<список_инструкций>} else {<список_инструкций>} Elseif ------ Используется с ключевыми словами If и Else. Задает дополнительные условия. Ключевое слово Else необязательное. Синтаксис: if (<условие>) {<список_инструкций>} elseif (<условие>) {<список_инструкций>} else {<список_инструкций>} End --- Указывает одну из частей тела функции, как и ключевые слова Dynamicparam, Begin и End. Список инструкций из блока End выполняется однократно после получения всех объектов с конвейера. Синтаксис: function <имя> { dynamicparam {<список_инструкций>} begin {<список_инструкций>} process {<список_инструкций>} end {<список_инструкций>} } Exit ---- Обеспечивает выход из скрипта Windows PowerShell или из экземпляра Windows PowerShell. Синтаксис: exit Filter ------ Задает функцию, список инструкций которой выполняется по одному разу для каждого объекта ввода. Она действует аналогично функции, содержащей только блок Process. Синтаксис: filter <имя> {<список_инструкций>} Finally ------- Определяет список инструкций, выполняемых после инструкций, связанных с ключевыми словами Try и Catch. Список инструкций из блока Finally выполняется, даже если выйти из скрипта с помощью сочетания клавиш CTRL+C или ключевого слова Exit в скрипте. Синтаксис: try {<список_инструкций>} catch [<тип_ошибки>] {<список_инструкций>} finally {<список_инструкций>} For --- Определяет цикл, используя условие. Синтаксис: for (<инициализация>; <условие>; <итерация>) { Foreach ------- Определяет цикл, используя каждый элемент коллекции. Синтаксис: foreach (<элемент> in <коллекция>){<список_инструкций>} From ----- Зарезервировано для использования в дальнейшем. Function -------- Создает список инструкций, имеющий имя и доступный для многократного использования. Позволяет задать имя области, к которой принадлежит функция. Также позволяет задать один или несколько именованных параметров с помощью ключевого слова Param. В список инструкций функции можно включить списки инструкций Dynamicparam, Begin, Process и End. Синтаксис: function [<scope:>]<name> { param ([type]<$pname1> [, [type]<$pname2>]) dynamicparam {<statement list>} begin {<statement list>} process {<statement list>} end {<statement list>} } } Также можно определить один или несколько параметров вне списка инструкций после имени функции. Синтаксис: function [<scope:>]<name> [([type]<$pname1>, [[type] dynamicparam {<statement list>} begin {<statement list>} process {<statement list>} end {<statement list>} } If -- Определяет условие. Синтаксис: if (<условие>) {<список_инструкций>} In -- Используется в инструкциях Foreach для создания цикла, в котором используется каждый элемент коллекции. Синтаксис: foreach (<элемент> in <коллекция>){<список_инструкций>} Param ----- Определяет параметры в функции. Синтаксис: function [<scope:>]<name> { param ([type]<$pname1>[, [[type]<$pname2>]]) <statement list> } Process ------- Указывает часть тела функции, как и ключевые слова Dynamicparam, Begin и End. Когда список инструкций из блока Process получает входные данные через конвейер, этот список инструкций выполняется по одному разу для каждого элемента из конвейера. Если через конвейер не передано ни одного объекта, список инструкций из блока Process не выполняется. Если команда является первой командой в конвейере, список инструкций из блока Process выполняется один раз. Синтаксис: function <имя> { dynamicparam {<список_инструкций>} begin {<список_инструкций>} process {<список_инструкций>} end {<список_инструкций>} } Return ------ Предписывает Windows PowerShell выйти из текущей области, например из скрипта или функции, и записывает выражение (необязательный параметр) в выходные данные. Синтаксис: return [<выражение>] Switch ------ Задает различные действия, выполняемые с элементами из конвейера или из файла. Можно использовать любую из следующих моделей синтаксиса. Синтаксис 1: switch [-regex|-wildcard|-exact][-casesensitive] ( pipeline ) { <строка>|<число>|<переменная>|{ >} <строка>|<число>|<переменная>|{ >} ... default {<список_инструкций>} } Синтаксис 2: switch [-regex|-wildcard|-exact][-casesensitive] -file filename { <строка>|<число>|<переменная>|{ >} <строка>|<число>|<переменная>|{ >} ... default {<список_инструкций>} } Throw ----- Выдает объект как ошибку. Синтаксис: throw [<объект>] Trap ---- Определяет список инструкций, выполняемый в случае ошибки. Тип ошибки указывается в квадратных скобках. Наличие двойных квадратных скобок означает, что тип ошибки указывать не обязательно. Синтаксис: trap [[<тип_ошибки>]] {<список_инструкций>} Try --- Определяет список инструкций, проверяемых на ошибки при выполнении. Если возникает ошибка, Windows PowerShell продолжает выполнение инструкции Catch или Finally. Тип ошибки указывается в квадратных скобках. Наличие двойных квадратных скобок означает, что тип ошибки указывать не обязательно. Синтаксис: try {<список_инструкций>} catch [[<тип_ошибки>]] {<список_инструкций>} finally {<список_инструкций>} Until ----- Используется в инструкциях Do для создания циклов, в которых список инструкций выполняется не менее одного раза. Синтаксис: do {<список_инструкций>} until (<условие>) While ----- Используется в инструкциях Do для создания циклов, в которых список инструкций выполняется не менее одного раза. Синтаксис: do {<список_инструкций>} while (<условие>) СМ. ТАКЖЕ about_escape_characters about_special_characters about_wildcards about_Line_Editing РАЗДЕЛ about_Line_Editing КРАТКОЕ ОПИСАНИЕ Описание способов редактирования команд в командной строке Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В консоли Windows PowerShell предусмотрены полезные функции для редактирования команд в командной строке Windows PowerShell. Перемещение курсора по горизонтали Чтобы переместить курсор на один символ влево, нажмите клавишу СТРЕЛКА ВЛЕВО. Чтобы переместить курсор на одно слово влево, нажмите сочетание клавиш CTRL+СТРЕЛКА ВЛЕВО. Чтобы переместить курсор на один символ вправо, нажмите клавишу СТРЕЛКА ВПРАВО. Чтобы переместить курсор на одно слово вправо, нажмите сочетание клавиш CTRL+СТРЕЛКА ВПРАВО. Начало и конец строки Чтобы передвинуть курсор в начало строки, нажмите клавишу HOME. Чтобы передвинуть курсор в конец строки, нажмите клавишу END. Удаление символов Чтобы удалить символ перед курсором, нажмите клавишу BACKSPACE. Чтобы удалить символ после курсора, нажмите клавишу DELETE. Удаление оставшейся части строки Чтобы удалить все символы в строке после курсора, нажмите сочетание клавиш CTRL+END. Режимы вставки и замены символов при печати Чтобы переключиться в режим замены, нажмите клавишу INSERT. Чтобы вернуться в режим вставки, нажмите клавишу INSERT еще раз. Функция автозавершения при помощи клавиши TAB; Чтобы автоматически дополнить недостающие символы частично введенной команды (например, имени командлета, его параметра или пути), нажмите клавишу TAB. Если при первом нажатии появилось не то окончание, которое требуется, нажмите клавишу TAB еще раз. СМ. ТАКЖЕ about_Command_Syntax about_Path_Syntax about_locations РАЗДЕЛ about_Locations КРАТКОЕ ОПИСАНИЕ Описание способов доступа к элементам из рабочего местоположения в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Текущим рабочим местоположением является местоположение по умолчанию, на которое указывают команды. Другими словами, это местоположение, которое используется программой Windows PowerShell в том случае, если путь к элементу или местоположению, затрагиваемому командой, не указан явно. В большинстве случаев текущим рабочим местоположением является диск, доступ к которому осуществляется с помощью поставщика Windows PowerShell FileSystem, либо каталог на этом диске. Например, можно назначить текущим рабочим местоположением следующий каталог: C:\Program Files\Windows PowerShell В результате все команды будут выполняться из этого местоположения, если только не будет явно указан другой путь. Windows PowerShell сохраняет текущее рабочее местоположение для каждого диска, даже если он не является текущим. Это позволяет обращаться к элементам, находящимся в текущем рабочем местоположении, указывая только его диск. Например, предположим, что текущим рабочим местоположением является каталог C:\Windows. Предположим также, что текущее рабочее местоположение изменено на диск HKLM: с помощью следующей команды: Set-Location HKLM: Хотя текущим местоположением стал диск реестра, все равно можно обращаться к элементам из каталога C:\Windows, указывая только диск C:, как показано в следующем примере: Get-ChildItem C: Windows PowerShell помнит, что текущим рабочим местоположением на этом диске является каталог Windows, и извлекает элементы из этого каталога. В результате происходит то же, что при выполнении следующей команды: Get-ChildItem C:\Windows Для определения текущего рабочего местоположения в Windows PowerShell можно воспользоваться командой Get-Location, а для установки текущего рабочего местоположения - командой Set-Location. Например, следующая команда назначает текущим рабочим местоположением каталог Windows на диске C: Set-Location c:\windows Как показано в следующем примере, после установки текущего рабочего местоположения можно обращаться к элементам, находящимся на других дисках, указывая в команде только имя диска (с двоеточием): Get-ChildItem HKLM :\software Команда в этом примере извлекает список элементов контейнера Software куста реестра HKEY Local Machine. Также Windows PowerShell позволяет обозначать текущее рабочее местоположение и его родительский каталог специальными знаками. Для обозначения текущего рабочего местоположения используется одна точка. Для обозначения родительского каталога текущего рабочего местоположения используются две точки. Например, следующая команда указывает на вложенный каталог System текущего рабочего местоположения: Get-ChildItem .\system Если текущим рабочим местоположением является C:\Windows, эта команда возвращает список всех элементов каталога C:\Windows\System. Впрочем, если указаны две точки, используется родительский каталог текущего рабочего каталога, как показано в следующем примере: Get-ChildItem ..\"program files" В этом случае Windows PowerShell рассматривает две точки как диск C:, поэтому команда возвращает список всех элементов каталога C:\Program Files. Путь, начинающийся с косой черты, определяет путь из корня текущего диска. Например, если текущим рабочим местоположением является каталог C:\Program Files\Windows PowerShell, то корнем текущего диска является C. Поэтому при выполнении следующей команды выдается список всех элементов каталога C:\Windows: Get-ChildItem \windows Если при вводе имени контейнера или элемента не указан путь, начинающийся с имени диска, косой черты или точки, предполагается, что контейнер или элемент находится в текущем рабочем местоположении. Например, если текущим рабочим местоположением является C:\Windows, то следующая команда возвращает все элементы каталога C:\Windows\System: Get-ChildItem system Если указать имя файла, а не каталога, Windows PowerShell возвращает сведения об этом файле (если он находится в текущем рабочем местоположении). СМ. ТАКЖЕ Set-Location about_Providers about_Path_Syntax about_logical_operators РАЗДЕЛ about_Logical_Operators КРАТКОЕ ОПИСАНИЕ Описание операторов, объединяющих инструкции Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Логические операторы Windows PowerShell объединяют выражения и инструкции, что позволяет проверять несколько условий в одном выражении. Например, в следующем выражении операторы and и or объединяют три условные инструкции. Результатом оценки условия этой инструкции является true, только если значение $a превышает значение $b, и значение любой из этих переменных составляет менее 20. ($a -gt $b) -and (($a -lt 20) -or ($b -lt 20)) Windows PowerShell поддерживает следующие логические операторы: Оператор Описание Пример -------- ------------------------------ ------------------------- -and Логический оператор "И". (1 -eq 1) -and (1 -eq 2) Возвращает TRUE, только если False результатом оценки условий обеих инструкций является TRUE. -or Логический оператор "ИЛИ". (1 -eq 1) -or (1 -eq 2) Возвращает TRUE, если True результатом оценки условий хотя бы одной из двух инструкций является TRUE -xor Логический оператор "исключающее (1 -eq 1) -xor (2 -eq 2) ИЛИ". Возвращает TRUE, только False если для одной инструкции результатом оценки условия является TRUE, а для д ругой - FALSE. -not Логический оператор "НЕ". -not (1 -eq 1) Изменяет результат оценки False условия последующей инструкции на противоположный. (1 -eq 1) Изменяет результат оценки False условия последующей инструкции на противоположный (то же, что и -not) Примечание. В приведенных выше примерах также используется оператор проверки равенства (-eq). Дополнительные сведения см. в разделе about_Comparison_Operators. В этих примерах также используются логические значения целых чисел. Целое число 0 имеет логическое значение FALSE. Все остальные целые числа имеют логическое значение TRUE. Логические операторы используются со следующим синтаксисом: <инструкция> {-AND | -OR | -XOR} <инструкция> { | -NOT} <инструкция> Инструкции, в которых используются логические операторы, возвращают логические значения (TRUE или FALSE). В логических операторах Windows PowerShell оцениваются только те условия инструкций, которые необходимы для проверки их истинности. Если истинность левого операнда в инструкции с оператором and имеет значение FALSE, истинность правого операнда не проверяется. Если истинность левого операнда в инструкции с оператором or имеет значение TRUE, истинность правого операнда не проверяется. Таким образом, эти инструкции можно использовать так же, как инструкцию If. СМ. ТАКЖЕ about_Operators Compare-Object about_Comparison_operators about_If about_methods РАЗДЕЛ about_methods КРАТКОЕ ОПИСАНИЕ Описание способов использования методов для выполнения действий с объектами в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Для представления элементов в хранилищах данных или состояния компьютера в программе Windows PowerShell используются структурированные наборы данных, называемые объектами. Например, обращаясь к файлу в Windows PowerShell, вы работаете не с самим файлом, а с объектом FileInfo, выполняющим роль его прокси. Большинство объектов содержат методы. Метод представляет собой набор инструкций, осуществляющих определенные операции с данным объектом. Например, объект FileInfo содержит метод CopyTo, позволяющий копировать файл, представленный данным объектом. С помощью командлета Get-Member можно просмотреть список методов и их определений, связанных с определенным объектом. Однако для использования командлета необходимо, чтобы объект уже существовал в каком-либо виде: в виде переменной, в виде объекта, созданного при указании команды в качестве аргумента командлета Get-Member, либо в виде объекта, переданного по конвейеру. Предположим, например, что переменной $a присвоено строковое значение, то есть эта переменная связана с объектом-строкой. Чтобы просмотреть список методов объекта, в командной строке Windows PowerShell введите следующую команду: Get-Member -inputobject $a -membertype method Чтобы просмотреть список методов и их определений, связанных с объектом, переданным по конвейеру, можно использовать командлет Get-Member в этом конвейере, как показано в следующем примере: Get-ChildItem c:\final.txt | Get-Member -membertype method Стандартный способ вызвать метод - ввести его имя после ссылки на объект (например, после переменной или выражения). Ссылка на объект и имя метода разделяются точкой. Кроме того, все аргументы, передаваемые методу, должны следовать сразу после имени метода и заключаться в круглые скобки. Если в сигнатуре метода входные аргументы отсутствуют, все равно необходимо указать пустой набор аргументов в круглых скобках. Например, в следующей команде используется метод GetType, возвращающий тип данных, связанный со строковым объектом $a. $a.GetType() Метод GetType возвращает тип данных для любого объекта, а переменная всегда представляет объект. Тип объекта определяется типом данных, хранимых в указанной переменной. Все действия в Windows PowerShell, например объявление переменной или объединение команд в конвейер, связаны с объектами.Поэтому методы можно использовать в самых разных ситуациях. Например, метод можно использовать при проведении операций над значениями свойств, как показано в следующей команде: (Get-ChildItem c:\final.txt).name.ToUpper() В данном случае объектом, для которого осуществляется вызов метода ToUpper, является строка, связанная со свойством name. (Обратите внимание, что для работы этого примера необходимо, чтобы в корневом каталоге диска C: существовал файл Final.txt.) Фактически, свойство name является свойством объекта FileInfo, возвращаемого командлетом Get-ChildItem. В данном примере демонстрируется не только объектная ориентированность среды Windows PowerShell, но и способ вызова методов для любых доступных объектов. Результаты, полученные в предыдущем примере, также можно получить с использованием переменной для хранения выходных данных командлета Get-ChildItem, как показано в следующем примере: $a = (Get-ChildItem c:\final.txt).name $a.ToUpper() В приведенной команде также используется метод ToUpper строкового объекта, связанного с переменной, в которой хранится имя файла, возвращаемое командой Get-ChildItem. В некоторых случаях для использования метода необходимо указать аргумент, управляющий работой метода. Например, объект FileInfo содержит метод MoveTo, с помощью которого можно перемещать файл из одного местоположения в другое. При использовании данного метода необходимо указать аргумент, задающий целевое местоположение файла. В следующем примере показано, как использовать этот аргумент: (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt") Команда Get-ChildItem возвращает объект FileInfo для файла Final.txt, а затем с помощью метода MoveTo для данного объекта задает новое местоположение файла и осуществляет его перемещение. Список аргументов, используемых методом, приводится в соответствующем определении метода. Определение метода содержит как минимум одну сигнатуру метода (также называемую перегрузкой в Microsoft .NET Framework). Сигнатура метода содержит его имя и может содержать параметры, которые необходимо указать при вызове метода. При отображении списка сигнатур методов с помощью командлета Get-Member в качестве разделителя используется запятая. Например, метод CopyTo класса FileInfo содержит следующие две сигнатуры методов: 1. CopyTo(String destFileName) 2. CopyTo(String destFileName, Boolean overwrite) Первая сигнатура метода принимает имя целевого файла (включая путь к нему), в который необходимо скопировать исходный файл. следующем примере первый метод CopyTo используется для В копирования файла Final.txt в каталог C:\Bin. (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt") Если данный файл по указанному пути уже существует, выполнение метода CopyTo завершается с ошибкой и Windows PowerShell выдает следующее сообщение об ошибке: Исключение при вызове "CopyTo" с "1" аргументом: "Файл "c:\bin\final.txt" уже существует". Второй сигнатуре метода передается имя целевого файла, как и в предыдущем примере. Однако при этом также указывается логическое значение, определяющее, будет ли перезаписан существующий файл с таким же именем в целевом местоположении, как показано в следующем примере. (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true) В качестве этого логического значения необходимо использовать переменную $True, создаваемую средой Windows PowerShell автоматически. Переменная $True содержит логическое значение "true". (Соответственно, переменная $False содержит логическое значение "false".) СМ. ТАКЖЕ about_Objects Get-Member about_modules РАЗДЕЛ about_Modules КРАТКОЕ ОПИСАНИЕ Описание процедур установки, импорта и использования модулей Windows PowerShell ПОЛНОЕ ОПИСАНИЕ Модуль - это пакет команд Windows PowerShell, таких как командлеты, поставщики, функции, переменные и псевдонимы. Составляя команды, пользователи могут организовывать их с помощью модулей и передавать их другим пользователям. Получив такой модуль, пользователь может добавить содержащиеся в нем команды в сеанс Windows PowerShell и использовать их аналогично встроенным командам. В этом разделе описывается, как использовать модули Windows PowerShell. Сведения о процедуре создания модулей Windows PowerShell см. в разделе "Создание модуля Windows PowerShell" в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=144916. ИСПОЛЬЗОВАНИЕ МОДУЛЯ Чтобы воспользоваться модулем, выполните следующие действия. 1. Установите модуль. (Обычно это выполняется автоматически.) 2. Импортируйте модуль в сеанс Windows PowerShell. 3. Найдите команды, добавленные модулем. 4. Выполните эти команды. В данном разделе описано, как выполнить эти задачи. В нем также содержатся другие полезные сведения об управлении модулями. УСТАНОВКА МОДУЛЯ Если модуль предоставлен в виде папки с файлами, необходимо установить его на компьютер, чтобы можно было импортировать его в Windows PowerShell. Обычно модули устанавливаются автоматически. В Windows PowerShell имеется несколько предустановленных модулей. В Windows Server 2008 R2 можно воспользоваться мастером добавления компонентов (в диспетчере сервера), чтобы автоматически установить выбранные компоненты. Многие модули поставляются с программой установки, выполняющей установку модуля. Для установки модуля, предоставленного в виде папки, выполните следующие действия. 1. Создайте каталог "Modules" для текущего пользователя, если он не существует. Для этого введите следующую команду: new-item -type directory -path $home\Documents\WindowsPowerShell\Modules 2. Полностью скопируйте папку модуля в каталог "Modules". Скопировать папку можно любыми средствами, включая проводник, программу Cmd.exe и Windows PowerShell. В Windows PowerShell для этого воспользуйтесь командлетом Copy-Item. Например, чтобы скопировать папку "MyModule" из каталога "C:\ps-test\MyModule" в каталог "Modules", введите следующую команду: copy-item -path c:\ps-test\MyModule -dest $home\Documents\WindowsPowerShell\Modules Установить модуль можно в любое местоположение, однако если всегда устанавливать их в местоположение модулей по умолчанию, ими проще управлять. Дополнительные сведения о местоположении модулей по умолчанию см. в разделе "Местоположения модулей и переменная PSModulePath". ПОИСК УСТАНОВЛЕННЫХ МОДУЛЕЙ Если модуль установлен, его можно импортировать в сеанс Windows PowerShell. Чтобы найти модули, установленные в местоположении модулей по умолчанию, в командной строке Windows PowerShell введите следующее: get-module -listAvailable Чтобы найти модули, уже импортированные в сеанс, в командной строке Windows PowerShell введите следующее: get-module Дополнительные сведения о командлете Get-Module см. в разделе Get-Module. ИМПОРТ МОДУЛЯ Чтобы выполнить команды, содержащиеся в модуле, импортируйте его в сеанс Windows PowerShell. Чтобы импортировать модули в текущий сеанс из местоположения модулей по умолчанию, используйте следующий формат команды: import-module <имя_модуля> Например, следующая команда импортирует модуль BitsTransfer в текущий сеанс. import-module BitsTransfer Чтобы импортировать модуль, не находящийся в местоположении по умолчанию, укажите в команде полный путь к папке этого модуля. Например, чтобы добавить в текущий сеанс модуль TestCmdlets, расположенный в папке "C:\ps-test", введите следующую команду: import-module c:\ps-test\TestCmdlets Чтобы получить дополнительные сведения о добавлении модулей в сеансы, см. Import-Module. ИМПОРТ ВСЕХ МОДУЛЕЙ В СЕАНС WINDOWS POWERSHELL. В операционных системах Windows 7 и Windows Server 2008 R2 задача "Импортировать все модули" открывает сеанс Windows PowerShell, содержащий все доступные модули и оснастки Windows PowerShell. Чтобы запустить сеанс Windows PowerShell со всеми доступными модулями и оснастками Windows PowerShell, выполните следующие действия. -- Щелкните правой кнопкой мыши значок Windows PowerShell на панели задач и выберите "Импортировать все модули". Примечание. В Windows Server 2008 R2 значок Windows PowerShell по умолчанию закреплен на панели задач. Впрочем, чтобы появилась задача "Импортировать все модули", необходимо один раз запустить Windows PowerShell. Чтобы импортировать в сеанс все доступные модули в других версиях Windows, в командной строке Windows PowerShell введите следующее: get-module -listAvailable | import-module ПОИСК КОМАНД В МОДУЛЕ После того как модуль импортирован в сеанс Windows PowerShell, можно использовать содержащиеся в нем команды. Чтобы найти добавленные модулем команды, в командной строке Windows PowerShell введите следующее: get-command -module <имя_модуля> Например, чтобы найти команды, добавленные модулем BitsTransfer, введите следующее: get-command -module BitsTransfer Дополнительные сведения о командлете Get-Command см. в разделе Get-Command. ПОИСК СПРАВКИ ПО КОМАНДАМ В МОДУЛЕ Если модуль содержит разделы справки по командам, которые он экспортирует, их можно вывести с помощью командлета Get-Help. Используйте команду такого же формата, как и для любого раздела справки Windows PowerShell. Чтобы найти раздел справки по содержащимся в модуле командам, в командной строке Windows PowerShell введите следующее: get-help <имя_команды> Чтобы вывести более подробную справку, введите следующее: get-help <имя_команды> -detailed Например, чтобы найти подробную справку о командлете Start-BitsTransfer, введите следующую команду: get-help Start-BitsTransfer -detailed Дополнительные сведения о модуле Get-Help см. в разделе Get-Help. УДАЛЕНИЕ МОДУЛЯ Если удалить модуль, добавленные им команды удаляются из сеанса. Чтобы удалить модуль из сеанса, используйте следующий формат команды: remove-module <имя_модуля> Например, следующая команда удаляет модуль BitsTransfer из текущего сеанса. remove-module BitsTransfer Операция удаления модуля отменяет операцию его импорта. При этом установка модуля не отменяется. Дополнительные сведения о командлете Remove-Module см. в разделе Remove-Module. ИМПОРТ МОДУЛЯ В КАЖДОМ СЕАНСЕ Команда Import-Module импортирует модули в текущий сеанс Windows PowerShell. Она затрагивает только текущий сеанс. Чтобы модуль импортировался в каждый новый сеанс Windows PowerShell, добавьте команду Import-Module в профиль Windows PowerShell. Дополнительные сведения о профилях см. в разделе about_Profiles. МЕСТОПОЛОЖЕНИЯ МОДУЛЕЙ И ПЕРЕМЕННАЯ PSMODULEPATH Для модулей Windows PowerShell предусмотрено два местоположения по умолчанию: одно для системы, другое для текущего пользователя. Для системы: $pshome\Modules (%windir%\System32\WindowsPowerShell\v1.0\Modules) Для текущего $home\Documents\WindowsPowerShell\Modules пользователя: (%профиль_пользователя%\Documents\WindowsPowerShell\Modules) - или: $home\My Documents\WindowsPowerShell\Modules (%профиль_пользователя%\My Documents\WindowsPowerShell\ Modules) Примечание. Чтобы добавить или изменить файлы в каталоге %Windir%\System32 в операционных системах Windows Vista, Windows Server 2008 и Windows более поздних версий, запустите Windows PowerShell с параметром "Запуск от имени администратора". Чтобы изменить местоположения модулей по умолчанию для системы, измените значение переменной среды PSModulePath ($env:psmodulepath). Переменная среды PSModulePath основана на переменной среды Path и имеет тот же формат. Чтобы отобразить местоположения модулей по умолчанию, введите следующую команду: $env:psmodulepath Чтобы добавить местоположение модулей по умолчанию, используйте следующий формат команды: $env:psmodulepath = $env:psmodulepath + ";<путь>" Точка с запятой (;) в этой команде отделяет новый путь от предыдущего пути в списке. Например, чтобы добавить каталог "C:\ps-test\Modules", введите следующую команду: $env:psmodulepath + ";c:\ps-test\Modules" После добавления пути в переменную PSModulePath команды Get-Module и Import-Module действуют в том числе на модули в каталоге, на который указывает этот путь. Задаваемое значение влияет только на текущий сеанс. Чтобы сохранить изменение, добавьте эту команду в профиль Windows PowerShell или откройте диспетчер "Система" на панели управления и измените значение переменной среды PSModulePath в реестре. Дополнительные сведения о переменной PSModulePath см. в разделе about_Environment_Variables. МОДУЛИ И КОНФЛИКТЫ ИМЕН Конфликт имен происходит, когда в сеансе имеется несколько команд с одинаковым именем. При импорте модуля возникает конфликт имен, если содержащиеся в нем команды имеют такие же имена, как команды или элементы, уже имеющиеся в сеансе. Конфликты имен могут возникать в результате скрытия или замены команд. -- Скрытие. Скрытой называется команда, не выполняемая при вводе ее имени, но выполняемая другими способами (например, с указанием имени модуля или оснастки, из которой добавлена команда). -- Замена. Замененной называется команда, поверх которой записана команда с таким же именем. Даже если удалить модуль, являющийся причиной конфликта, выполнить замененную команду можно только после перезапуска сеанса. Команда Import-Module может добавить команды, скрывающие или заменяющие команды в текущем сеансе. Кроме того, команды в текущем сеансе могут скрыть команды, добавленные модулем. Чтобы предотвратить конфликт имен, используйте команду Import-Command с параметром Prefix, чтобы создать уникальные имена для импортируемых команд. Команду Import-Module также можно использовать с параметрами Alias, Cmdlet, Function и Variable, чтобы выбрать только те команды, которые требуется импортировать, исключив команды, вызывающие конфликт имен в сеансе. Даже если команда скрыта, можно выполнить ее, указав (помимо ее имени) имя модуля или оснастки, из которой она добавлена. Правила приоритета команд Windows PowerShell определяют, какая из конфликтующих команд запускается в сеансе, содержащем команды с одинаковыми именами. Например, если сеанс содержит функцию и командлет с одинаковым именем, по умолчанию Windows PowerShell выполняет функцию. Если сеанс содержит команды одинакового типа (например, два командлета) с одинаковым именем, по умолчанию выполняется команда, добавленная последней. Дополнительные сведения, включая пояснения правил приоритетов и инструкции по запуску скрытых команд, см. в разделе about_Command_Precedence. МОДУЛИ И ОСНАСТКИ Команды из модулей и оснасток можно добавлять в сеанс. Из модулей можно добавлять все типы команд, включая командлеты, поставщики и функции, а также элементы, такие как переменные, псевдонимы и диски Windows PowerShell. Из оснасток можно добавлять только командлеты и поставщики. Тогда как функции, псевдонимы, переменные и диски можно добавлять в сеанс путем ввода с клавиатуры или запуска добавляющего их скрипта, все командлеты и поставщики, содержащиеся в сеансе, добавляются только из модулей и оснасток. Прежде чем удалить модуль или оснастку из сеанса, с помощью следующих команд определите, какие команды будут при этом удалены. Чтобы определить, откуда командлет добавлен в сеанс, используйте следующий формат команды: get-command <имя_командлета> | format-list -property verb, noun, pssnapin, module Например, для поиска источника командлета Get-Date введите следующую команду: get-command get-date | format-list -property verb, noun, pssnapin, module Дополнительные сведения об оснастках Windows PowerShell см в разделе about_PSSnapins. CМ. ТАКЖЕ about_Command_Precedence about_PSSnapins Get-Command Get-Help Get-Module Import-Module Remove-Module about_objects РАЗДЕЛ about_Objects КРАТКОЕ ОПИСАНИЕ Основные сведения об объектах в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Все действия в оболочке Windows PowerShell связаны с операциями над объектами. Данные между командами передаются в виде идентифицируемых объектов. Объект, таким образом, является набором данных, представляющим элемент в пространстве имен. Объект состоит из трех типов данных: тип объекта, его методы и его свойства. Данные о типе объекта содержат сведения о природе этого объекта. Например, объектом, представляющим файл, является объект FileInfo. Метод объекта является действием, которое можно совершать над элементом, представляемым данным объектом. Например, объект FileInfo включает метод, с помощью которого можно копировать файл. То есть при вызове метода копирования из объекта происходит копирование представленного объектом файла. Свойство объекта - это сведения о состоянии объекта. Например, объект FileInfo включает свойство length, указывающее размер файла, представленного объектом. При работе с объектами их свойства и методы можно использовать в командах для выполнения определенных действий и работы с данными. Это особенно эффективно при объединении нескольких команд в одном конвейере. Передача данных между командами конвейера осуществляется в виде объектов. После выполнения команды она отправляет один или несколько объектов следующей команде конвейера. Следующая команда получает объекты от первой команды, обрабатывает их и передает следующей команде в конвейере измененный или новый объект. Так продолжается до тех пор, пока не будут выполнены все команды конвейера. В следующем примере показано, как объекты передаются между командами: Get-ChildItem c: | where {$_.PsIsContainer -eq $false} | Format-List Первая команда (Get-ChildItem c:) возвращает объект для каждого элемента корневого каталога файловой системы. Полученные объекты передаются по конвейеру второй команде (where {$_.PsIsContainer -eq $false}). Вторая команда с помощью свойства PsIsContainer объекта обеспечивает фильтрацию данных из объектов ввода, исключающую каталоги (контейнеры) из возвращаемых результатов. Затем данные в виде объектов передаются третьей команде (Format-List), которая отображает содержимого каждого объекта в конвейере в виде списка. СМ. ТАКЖЕ about_Methods about_Properties about_Pipelines Get-Member about_operators РАЗДЕЛ about_Operators КРАТКОЕ ОПИСАНИЕ Описание операторов, поддерживаемых в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Оператор - это элемент языка, используемый в командах или выражениях. Windows PowerShell поддерживает несколько типов операторов для работы со значениями. Арифметические операторы Арифметические операторы (+, -, *, /, %) используются для вычисления значений в команде или выражении. С помощью этих операторов можно выполнять сложение, вычитание, умножение и деление значений, а также вычислять остаток при операции деления. Кроме того, арифметические операторы можно использовать со строками, массивами и хэш-таблицами. Оператор сложения объединяет элементы. Операто р умножения возвращает указанное количество копий каждого элемента. Дополнительные сведения см. в разделе about_Arithmetic_Operators. Операторы присваивания Операторы присваивания (=, +=, -=, *=, /=, %=) используются для присваивания одного или нескольких значений переменным, изменения значени й переменных и добавления значений в переменные. Также можно приводить переменные к любым типам данных Microsoft .NET Framework, например string , DateTime и Process. Дополнительные сведения см. в разделе about_Assignment_Operators. Операторы сравнения Операторы сравнения (-eq, -ne, -gt, -lt, -le, -ge) используются для сравнения значений и проверки условий. Например, можно проверить эквивалентность двух строковых значений. К операторам сравнения также относятся операторы -match и -notmatch для поиска соответствий с помощью регулярных выражений, оператор -replace для замены входных значений с помощью регулярных выражений и операторы -like и -notlike для поиска соответствий с помощью подстановочных знаков (*). К ним также относятся побитовые операторы (-bAND, -bOR, -bXOR, -bNOT) для работы с битами в значениях. Дополнительные сведения см. в разделе about_Comparison_Operators. Логические операторы Логические операторы (-and, -or, -xor, -not, ) используются для объединения нескольких условных инструкций в одну составную условную инструкцию. Например, с помощью логического оператора -and можно создать объект фильтра с двумя различными условиями. Дополнительные сведения см. в разделе about_Logical_Operators. Операторы перенаправления Операторы перенаправления (>, >>, 2>, 2> и 2>&1) используются для отправки выходных данных команды или выражения в текстовый файл. Операторы перенаправления действуют подобно командлету Out-File (без параметров), но они также позволяют перенаправлять выходную информацию об ошибках в указанные файлы. Для перенаправления выходных данных также можн о использовать командлет Tee-Object. Дополнительные сведения см. в разделе about_Redirection. Операторы Split и Join Операторы -split и -join разделяют и объединяют подстроки. Оператор -split разделяет строку на подстроки. Оператор -join объединяет несколько строк в одну. Дополнительные сведения см. в разделах about_Split и about_Join. Операторы типов Операторы типов (-is, -isnot, -as) используются для поиска или изменения типов объектов .NET Framework. Дополнительные сведения см. в разделе about_Type_Operators. Унарные операторы Унарные операторы используются для положительного и отрицательного приращения переменных или свойств объекта, а также для присваивания знака целым числам. Например, чтобы увеличить значение переменной $a с 9 до 10, введите команду $a++. Специальные операторы Специальные операторы используются для выполнения задач, которые не могут быть реализованы другими операторами. Например, специальные операторы могут быть использованы для запуска команд и изменения типа данных значения. Оператор вызова & Описание: выполняет команду, скрипт или блок скрипта. Поскольку оператор вызова не выполняет синтаксический анализ, он не может интерпретировать параметры команды. Оператор вызова указывает, что следующее за ним значение является командой. Это позволяет выполнять команды, сохраненные в переменных и представленные в виде строк. Примеры: & "new cmdlet" $c = "get-executionpolicy" & $c Точка (.) как оператор доступа к свойствам Описание: осуществляет доступ к свойствам и методам объекта. Примеры: $myString.length $myString.substring(1,3) Точка (.) как оператор вызова Описание: выполняет скрипт так, что содержащиеся в нем элементы являются частью области вызова. Дополнительные сведения см. в разделе about_Scope. Пример: . c:\scripts.sample.ps1 Примечание. Точка (.) также используется как символ родительского каталога, например: .\sample.ps1 Эта команда выполняет скрипт sample.ps1, но не как часть области вызова. Оператор статического элемента :: Описание: вызывает оператор статических свойств и методы класса .NET Framework. Для поиска статических свойств и методов объекта используется параметр Static для командлета Get-Member. Пример: [datetime]::now .. Оператор диапазона Описание: обозначает последовательные целые числа в целочисленном массиве с заданными границами (верхней и нижней). Примеры: 1..10 10..1 foreach ($a in 1..$max) {write-host $a} -Оператор форматирования f Описание: форматирует строки с помощью метода форматирования строковых объектов. Строка формата указывается слева от оператора, а форматируемые объекты - справа от него. Примеры: C:\PS> "{0} {1,-10} {2:N}" -f C:\PS> 1,"hello",[math]::pi 1 hello 3.14 Оператор подвыражения $( ) Описание: возвращает результат одного или нескольких выражений. В случае одного результата возвращает скалярное значение. В случае нескольких результатов возвращает массив. Примеры: $($x * 23) $(Get-WMIObject win32_Directory) Оператор подвыражения массива @( ) Описание: возвращает результат одного или нескольких выражений в виде массива. Если имеется только один элемент, результирующий массив также содержит один элемент. Пример: @(Get-WMIObject win32_logicalDisk) Оператор "," Описание: если запятая используется как двоичный оператор, создается массив. если она используется как унарный оператор, создается массив с одним элементом. Запятая указывается перед элементом. Примеры: $myArray = 1,2,3 $SingleArray = ,1 CМ. ТАКЖЕ about_Arithmetic_Operators about_Assignment_Operators about_Comparison_Operators about_Logical_Operators about_Type_Operators about_Split about_Join about_Redirection about_parameters РАЗДЕЛ about_Parameters КРАТКОЕ ОПИСАНИЕ Описание работы с параметрами командлетов в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В большинстве командлетов и функций Windows PowerShell для ввода данных и настройки их работы используются параметры. Параметры указываются после имени командлета или функции и обычно имеют следующий формат: -<имя_параметра> <значение_параметра> Перед именем параметра ставится дефис (-), что позволяет оболочке Windows PowerShell отличать параметры от значений, передаваемых командлету или функции. Не все параметры требуют значений, и не все имена параметров необходимо указывать. В некоторых случаях имя параметра подразумевается, и нет необходимости указывать его в команде. Разные командлеты и функции имеют различные типы параметров и требования к ним. Чтобы получить сведения о параметрах или командлете, используйте командлет Get-Help. Например, чтобы получить сведения о параметрах командлета Get-ChildItem, введите следующую команду: get-help get-childitem Чтобы получить сведения о параметрах функции, проверьте определения параметров. Они находятся либо после имени функции, либо в теле функции после ключевого слова Param. Дополнительные сведения см. в разделе about_Functions. Некоторые функции также содержат справку о параметрах на основе комментариев. Для таких функций используйте командлет Get-Help. Дополнительные сведения см. в разделе справки о командлете Get-Help и в разделе about_Comment_Based_Help. Командлет Get-Help возвращает различные сведения о командлете или функции, включая описание, синтаксис команды, информацию о параметрах и примеры использования этого командлета или функции. Также можно получить сведения об определенном параметре командлета или функции с помощью командлета Get-Help с параметром Parameter. Если указать подстановочный знак (*) после параметра Parameter, выводятся сведения о всех параметрах этого командлета или функции. Например, следующая команда получает сведения о всех параметрах командлета или функции Get-Member: get-help get-member -parameter * Эти сведения содержат все необходимые данные по использованию параметра. Например, раздел справки по командлету Get-ChildItem содержит следующие сведения о его параметре Path: -path <string[]> Задает путь к одному или нескольким местоположениям. Подстановочные знаки разрешены. Местоположением по умолчанию является текущий каталог (.). Требуется? false Позиция? 1 Значение по умолчанию Текущий каталог Принимать входные данные с конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true Сведения о параметре включают его синтаксис, описание и атрибуты. В следующих разделах описываются все атрибуты параметров. Обязательный параметр? Этот параметр указывает, является ли параметр обязательным (т. е. требуется ли всегда указывать этот параметр при использовании соответствующего командлета). Если этот атрибут имеет значение "True" и параметр не указан в команде, Windows PowerShell запрашивает ввод значения этого параметра. Позиция параметра? Этот параметр определяет, можно ли задавать значение параметра без указания его имени. Если он имеет значение "0" или "named", указывать имя параметра обязательно. Параметры такого типа называется именованными. Именованные параметры можно указывать после имени командлета в любом порядке. Если параметр "Позиция параметра?" имеет целое ненулевое значение, указывать имя параметра не обязательно. Параметр такого типа называется позиционным, и это значение определяет его порядковый номер в списке позиционных параметров. Если указать имя позиционного параметра, этот параметр можно указать в любом месте списка параметров после имени командлета. Например, командлет Get-ChildItem имеет параметры Path и Exclude. "Позиция параметра?" для параметра Path имеет значение 1, следовательно, это позиционный параметр. "Позиция параметра?" для параметра Exclude имеет значение 0, следовательно, это именованный параметр. Это значит, что имя параметра Path указывать не обязательно, но его значение должно быть первым или единственным среди неименованных параметров, указанных в команде. Впрочем, параметр Exclude является именованным, а потому его можно указать на любой позиции списка параметров команды. Таким образом, значения "Позиция параметра?" для этих двух параметров позволяют использовать любую из следующих команд: Get-ChildItem -path c:\techdocs -exclude *.ppt Get-ChildItem c:\techdocs -exclude *.ppt Get-ChildItem -exclude *.ppt -path c:\techdocs Get-ChildItem -exclude *.ppt c:\techdocs Если требуется задать еще один позиционный параметр, не указывая его имя, его положение в списке параметров должно соответствовать его значению "Позиция параметра?". Тип параметра Этот параметр задает тип Microsoft .NET Framework для значения параметра. Например, если параметр имеет тип Int32, его значение должно быть целочисленным. Если он имеет тип string, он должен представлять собой текстовую строку. Если в строке содержатся знаки пробелов, необходимо заключать ее значение в кавычки либо ставить перед пробелами escape-символ (`). Значение по умолчанию Этот параметр задает значение по умолчанию, присваиваемое параметру, если другого значения не указано. Например, значением по умолчанию для параметра Path обычно является текущий каталог. У обязательных параметров всегда отсутствует значение по умолчанию. У многих необязательных параметров также отсутствует значение по умолчанию, поскольку такие параметры не действуют, если они не указаны. Принимает несколько значений? Этот параметр определяет, может ли параметр принимать несколько значений. Если параметр принимает несколько значений, в качестве его значения в команде можно задать список перечисленных через запятую значений или сохранить такой список (массив) в переменной и указать ее как значение параметра. Например, параметр ServiceName командлета Get-Service принимает несколько значений. Допускается использовать любую из следующих команд: get-service -servicename winrm, netlogon $s = "winrm", "netlogon" get-service -servicename $s Принимает входные данные с конвейера? Этот параметр указывает, можно ли использовать оператор конвейера (|) для передачи значения этому параметру. Значение Описание ----- ----------- False Указывает, что этому параметру нельзя передавать значение по конвейеру. True (по значению) Указывает, что параметру можно передать по конвейеру любое значение, при условии, что для него указан тип .NET Framework или это значение можно преобразовать в указанный тип .NET Framework. Если для параметра указано "True (по значению)", Windows PowerShell пытается сопоставить переданные по конвейеру значения с этим параметром, прежде чем интерпретировать команду другими способами. True (по имени свойства) Указывает, что параметру можно передать значение по конвейеру, но тип .NET Framework параметра должен включать свойство с таким же именем, как у параметра. Например, параметру Name можно передать значение по конвейеру, только если оно имеет свойство с именем "Name". Принимает подстановочные знаки? Этот параметр указывает, может ли значение параметра содержать подстановочные знаки, позволяющие сопоставлять его значение с несколькими элементами, существующими в целевом контейнере. Общие параметры Параметры, которые можно использовать с любым командлетом, называются общими. Чтобы получить дополнительные сведения об общих параметрах, введите следующую команду: help about_commonparameters CМ. ТАКЖЕ about_Command_syntax about_Comment_Based_Help about_Functions_Advanced about_Pipelines about_Wildcards about_Parsing РАЗДЕЛ about_parsing КРАТКОЕ ОПИСАНИЕ Описание синтаксического анализа команд в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Когда пользователь вводит команду в командной строке, Windows PowerShell разделяет текст команды на сегменты, называемые токенами, после чего определяет, как следует интерпретировать каждый токен. Например, Windows PowerShell разделяет приведенную ниже команду на два токена: "Write-Host" и "book", затем интерпретирует каждый из них отдельно. Write-Host book При обработке команды средство синтаксического анализа Windows PowerShell работает либо в режиме выражений, либо в режиме аргументов. - В режиме выражений строковые значения должны быть заключены в кавычки. Числа, не заключенные в кавычки, обрабатываются как численные значения (а не как последовательности символов). - В режиме аргументов каждое значение обрабатывается как расширяемая строка, если только она не начинается с одного из специальных символов: знак доллара ($), знак "@", одиночная кавычка ('), двойная кавычка (") или открывающая скобка ((). Если перед значением указан один из этих знаков, оно обрабатывается как выражение значения. В следующей таблице приведены некоторые примеры команд, обрабатываемых в режимах выражений и аргументов, и результаты выполнения этих команд. Пример Режим Результат ------------------ ---------- ---------------- 2+2 выражений 4 (целое) Write-Output 2+2 аргументов "2+2" (строка) Write-Output (2+2) выражений 4 (целое) $a = 2+2 выражений $a = 4 (целое) Write-Output $a выражений 4 (целое) Write-Output $a/H аргументов "4/H" (строка) Каждый токен может быть интерпретирован как объект того или иного типа, например логическое значение или строка. Windows PowerShell пытается определить тип объекта по выражению. Тип объекта зависит от типа параметра, ожидаемого командой, а также от того, известно ли Windows PowerShell, как преобразовать аргумент в правильный тип. В следующей таблице приведены некоторые примеры типов, которые присваиваются значениям, возвращаемым выражениями. Пример Режим Результат ------------------ ---------- --------------- Write-Output 1" (строка) Write-Output (1) выражений False (логическое) Write-Output (2) выражений 2 (целое) СМ. ТАКЖЕ about_Command_Syntax about_Path_Syntax РАЗДЕЛ about_Path_Syntax КРАТКОЕ ОПИСАНИЕ Описание форматов полного и относительного имени пути в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Каждый элемент в хранилище данных, доступный с помощью поставщика Windows PowerShell, имеет уникальное имя пути. Имя пути - это сочетание имени элемента, контейнера и вложенных контейнеров (в которых расположен элемент), а также диска Windows PowerShell, через который осуществляется доступ к контейнерам. Имена путей в Windows PowerShell подразделяются на два типа: полные и относительные. Полное имя пути включает все элементы пути. Оно имеет следующий формат: [<поставщик>::]<диск>:[\<контейнер>[\ т> <поставщик> - это поставщик Windows PowerShell, через который осуществляется доступ к хранилищу данных. Например, поставщик FileSystem обеспечивает доступ к файлам и каталогам компьютера. Этот элемент синтаксиса необязателен и никогда не требуется, потому что имена дисков уникальны среди всех поставщиков. <диск> - это диск Windows PowerShell, поддерживаемый определенным поставщик ом Windows PowerShell. В случае поставщика FileSystem диски Windows PowerShell отображаются на имеющиеся в системе диски Windows. Например, если в системе имеются диски A: и C:, поставщик FileSystem создает такие же диски в Window s PowerShell. Указав диск, необходимо указать контейнеры и вложенные контейнеры, содержащие элемент. Контейнеры должны быть указаны в том же иерархическом порядке, в котором они располагаются в хранилище данных. Иначе говоря, сначала нужно указать родительский контейнер, затем содержащийся в нем дочерний контейнер и т. д. Каждому контейнеру должна предшествовать обратна я косая черта (\). (Обратите внимание, что Windows PowerShell позволяет использовать и прямую косую черту (/) для совместимости с другими оболочками PowerShell.) После того как заданы контейнер и вложенные контейнеры, необходимо указать имя элемента после обратной косой черты. Например, полное имя пути к файлу Shell.dll в каталоге C:\Windows\System32 будет таким: C:\Windows\System32\Shell.dll В данном случае диском, через который осуществляется доступ к контейнерам, является диск C:, контейнером верхнего уровня - Windows, вложенным контейнером (находящимся в контейнере Windows) - System32, а элементом - Shell.dll. В некоторых ситуациях вместо полного имени пути можно использовать относительное. Относительное имя пути основано на текущем рабочем местоположении. Windows PowerShell позволяет идентифицировать элемент по его местоположению относительно текущего рабочего местоположения. Относительные имена путей можно указать с использованием специальных символов. В следующей таблице приведены все эти символы, а также примеры полных и относительных имен путей. Текущим рабочим каталогом в данных примерах является C:\Windows. Символ Описание Относительный путь Полный путь ------ ------------------------ ------------------- --------- . Текущее рабочее .\System c:\Windows\System местоположение .. Родительский каталог ..\Program Files c:\Program Files текущего рабочего местоположения \ Корневой диск текущего \Program Files c:\Program Files рабочего местоположения [нет] Нет специальных символов System c:\Windows\System При использовании имени пути в команде его следует вводить одинаково, независимо от того, полное оно или относительное. Предположим, к примеру, что текущим рабочим каталогом является C:\Windows. Следующая команда Get-ChildItem извлекает все элементы, содержащиеся в каталоге C:\Techdocs: Get-ChildItem \techdocs Обратная косая черта указывает о том, что используется корневой диск текущего рабочего местоположения. Поскольку рабочим каталогом является C:\Windows, корневым диском является C:. Поскольку каталог techdocs находится на корневом диске, достаточно указать только обратную косую черту. Такой же результат можно получить, выполнив следующую команду: Get-ChildItem c:\techdocs Какое бы имя пути ни использовалось - полное или относительное - оно важно не только потому, что определяет расположение элемента, но и потому, что уникально идентифицирует его, даже если элемент имеет такое же имя, что и другой элемент, расположенный в другом контейнере. Предположим, к примеру, что имеются два файла с одинаковым именем Results.txt. Один расположен в каталоге C:\Techdocs\Jan, а второй - в каталоге C:\Techdocs\Feb. Эти файлы можно четко различать по именам их путей (C:\Techdocs\Jan\Results.txt для первого файла и C:\Techdocs\Feb\Results.txt для второго). СМ. ТАКЖЕ about_Locations about_pipelines РАЗДЕЛ about_pipelines КРАТКОЕ ОПИСАНИЕ Объединение команд в конвейеры в Windows PowerShell ПОЛНОЕ ОПИСАНИЕ Конвейер - это последовательность команд, объединенных операторами конвейера (|)(код ASCII: 124). Каждый оператор конвейера передает результаты предшествующей команды последующей команде. С помощью конвейера можно передавать выходные объекты одной команды на обработку другой команде как входные объекты. Выходные объекты этой команды можно передать еще одной команде. Таким образом получается мощная цепь (или конвейер) команд, состоящая из последовательности простых команд. Пример: Command-1 | Command-2 | Command-3 В этом примере объекты, выдаваемые командой Command-1, передаются команде Command-2. Команда Command-2 обрабатывает их и передает команде Command-3. Команда Command-3 обрабатывает их и передает их далее по конвейеру. Поскольку в конвейере нет следующей команды, результаты отображаются в консоли. Команды в конвейере обрабатываются слева направо в том порядке, в котором они указаны. Обработка выполняется как одна операция, и выходные данные отображаются сразу после их создания. Приведем простой пример. Следующая команда получает процесс Notepad, а затем останавливает его. get-process notepad | stop-process Первая команда с помощью командлета Get-Process получает объект, представляющий идентификатор процесса Notepad. Для передачи объекта процесса командлету Stop-Process, останавливающему процесс Notepad, используется оператор конвейера (|). Обратите внимание, что в команде Stop-Process не указан параметр, задающий имя или идентификатор процесса, поскольку процесс передается по конвейеру. Приведем практический пример. Следующий конвейер команд получает текстовые файлы из текущего каталога, выбирает из них только файлы с размером более 10000 байт, упорядочивает их по размеру и отображает имя и размер каждого файла в таблице. Get-ChildItem -path *.txt | Where-Object {$_.length -gt 10000} | Sort-Object -property Length | Format-Table -property name, length Этот конвейер состоит из четырех команд в указанном порядке. Эта команда пишется слева направо, но на следующей схеме этот процесс представлен вертикально. Get-ChildItem -path *.txt | | (объекты FileInfo) | ( .txt ) | V Where-Object {$_.length -gt 10000} | | (объекты FileInfo) | ( .txt ) | ( Length > 10000 ) | V Sort-Object -property Length | | (объекты FileInfo) | ( .txt ) | ( Length > 10000 ) | ( упоряд. по длине ) | V Format-Table -property name, length | | (объекты FileInfo ) | ( .txt ) | ( Length > 10000 ) | ( упоряд. по длине ) | (в формате таблицы ) | V Name Length ---- ------ tmp1.txt 82920 tmp2.txt 114000 tmp3.txt 114000 ИСПОЛЬЗОВАНИЕ КОНВЕЙЕРОВ Командлеты Windows PowerShell предназначены для использования в конвейерах. Например, результаты командлета Get обычно можно передать командлету действия (например, Set, Start, Stop или Rename) с таким же существительным. Например, можно передать по конвейеру любую службу из командлета Get-Service в командлет Start-Service или Stop-Service (впрочем, перезапускать отключенные службы таким образом нельзя). Следующий конвейер команд запускает на компьютере службу WMI. get-service wmi | start-service Командлеты, получающие и задающие объекты поставщиков Windows PowerShell, например командлеты Item и ItemProperty, также предназначены для использования в конвейерах. Например, можно передать по конвейеру результаты команды Get-Item или Get-ChildItem от поставщика реестра Windows PowerShell командлету New-ItemProperty. Следующая команда добавляет в реестр новую запись "NoOfEmployees" с величиной 8124 (в разделе реестра MyCompany). get-item -path HKLM:\Software\MyCompany | new-Itemproperty -name NoOfEmployees -value 8124 Многие служебные командлеты, такие как Get-Member, Where-Object, Sort-Object, Group-Object и Measure-Object, используются практически исключительно в командлетах. Этим командлетам можно передавать по конвейеру любые объекты. Например, все выполняющиеся на компьютере процессы можно передать команде Sort-Object по конвейеру и упорядочить их по количеству дескрипторов в процессе. get-process | sort-object -property handles Кроме того, любые объекты можно передать по конвейеру командлетам форматирования, таким как Format-List и Format-Table, командлетам экспорта, таким как Export-Clixml и Export-CSV, и командлетам вывода данных, таким как Out-Printer. Например, процесс Winlogon можно передать по конвейеру командлету Format-List, чтобы отобразить все свойства процесса в виде списка. get-process winlogon | format-list -property * Комбинирование простых команд с помощью конвейера избавляет от необходимости вводить лишние команды и делает скрипты более эффективными, и чтобы овладеть этим навыком, достаточно лишь немного практики. ПРИНЦИП ДЕЙСТВИЯ КОНВЕЙЕРА При передаче объектов по конвейеру (т. е. передаче выходных объектов одной команды в другую команду) Windows PowerShell пытается сопоставить переданные объекты с одним из параметров принимающего командлета. Для этого компонент "привязки параметров" Windows PowerShell, сопоставляющий объекты ввода с параметрами командлета, пытается найти параметр, соответствующий следующим критериям: -- Параметр должен принимать входные данные с конвейера (такая возможность есть не у всех параметров). -- Параметр должен принимать тип переданного объекта (или тип, в который его можно преобразовать). -- Параметр не должен быть уже использован в команде. Например, командлет Start-Service имеет множество параметров, но только два из них принимают входные данные с конвейера: Name и InputObject. Параметр Name принимает строки, а параметр InputObject принимает объекты служб. Поэтому командлету Start-Service можно передавать по конвейеру строки и объекты служб (а также объекты, свойства которых можно преобразовать в строки и объекты служб). Если компоненту Windows PowerShell для привязки параметров не удается связать переданные по конвейеру объекты с параметром принимающего объекта, команда не выполняется, и Windows PowerShell запрашивает ввод отсутствующих значений параметров. Компоненту привязки параметров нельзя принудительно предписать связывать переданные по конвейеру объекты с определенным параметром. Нельзя даже предложить такой параметр. Вместо этого логика компонента управляет обработкой конвейера с максимально возможной эффективностью. ПООЧЕРЕДНАЯ ОБРАБОТКА Передача объектов команде по конвейеру во многом подобна их передаче с помощью параметра команды. Например, передача по конвейеру объектов, представляющих службы на компьютере, команде Format-Table, например следующим образом: get-service | format-table -property name, dependentservices во многом подобна сохранению объектов служб в переменной и их передаче с помощью командлета Format-Table с параметром InputObject: $services = get-service format-table -inputobject $services -property name, dependentservices или внедрению команды в значение параметра: format-table -inputobject (get-service wmi) -property name, dependentservices Впрочем, имеется важное различие. Если несколько объектов передаются команде по конвейеру, Windows PowerShell отправляет объекты команде поочередно. При использовании параметра команды объекты передаются в виде единого объекта массива. Это различие, на первый взгляд кажущееся чисто техническим, имеет некоторые интересные (а иногда полезные) следствия. Например, если передать по конвейеру несколько объектов процессов от командлета Get-Process командлету Get-Member, Windows PowerShell поочередно отправляет каждый объект командлету Get-Member. Get-Member отображает классы (типы) .NET объектов процессов, их свойства и методы. (Командлет Get-Member исключает дубликаты, поэтому если все объекты принадлежат к одинаковому типу, отображается только один тип объекта.) В этом случае командлет Get-Member отображает только свойства и методы каждого объекта процесса, т. е. объекта System.Diagnostics .Process. get-process | get-member TypeName: System.Diagnostics.Process Name MemberType Definition ---- ---------- ---------- Handles AliasProperty Handles = Handle count Name AliasProperty Name = ProcessNa me NPM AliasProperty NPM = NonpagedSy stemMemorySize ... Впрочем, если используется параметр InputObject командлета Get-Member, командлет Get-Member получает массив объектов System.Diagnostics.Process как единый блок и отображает свойства массива объектов. (Обратите внимание на символ массива ([]) после имени типа System.Object.) get-member -inputobject (get-process) TypeName: System.Object[] Name MemberType Definition ---- ---------- ---------- Count AliasProperty Count = Length Address Method System.Object& Address(Int32 ) Clone Method System.Object Clone() ... Этот результат может не соответствовать вашим ожиданиям, но изучив его природу, его можно использовать. Например, массив объектов процессов имеет свойство Count, с помощью которого можно подсчитать количество процессов на компьютере. (get-process).count Это важное различие, и при передаче объектов командлету по конвейеру необходимо учитывать, что они доставляются поочередно. ПРИЕМ ВХОДНЫХ ДАННЫХ С КОНВЕЙЕРА Чтобы командлет принимал входные данные с конвейера, у него должен быть параметр, принимающий входные данные с конвейера. С помощью командлета Get-Help с параметром Full или Parameter можно определить, какой параметр командлета принимает входные данные с конвейера (и есть ли вообще такой параметр). По умолчанию командлет Get-Help отображает элемент "Принимает входные данные с конвейера" в таблице атрибутов параметра. Эта таблица выводится только при использовании командлета Get-Help с параметром Full или Parameter. Например, чтобы определить, какой из параметров командлета Start-Service принимает входные данные с конвейера, введите следующую команду: get-help start-service -full get-help start-service -parameter * Например, в справке по командлету Start-Service отображается, что параметры Name и InputObject принимают входные данные с конвейера (значение "true"). Для всех остальных параметров в строке "Принимать входные данные с конвейера?" отображается "false". -name <string[]> Задает имена служб, которые необходимо запустить. Имя параметра указывать необязательно. Можно использовать "-Name" или его псевдоним ("-ServiceName") либо опустить имя параметра. Требуется? true Позиция? 1 Значение по умолчанию --> Принимать входные данные с конвейера? true (ByValue, ByPropertyName) Принимать подстановочные знаки? true -inputObject <ServiceController[]> Задает объекты ServiceController, представляющие запускаемые службы. Введите переменную, содержащую объекты, либо получающую их команду или выражение. Требуется? false Позиция? именованный Значение по умолчанию --> Принимать входные данные с конвейера? true (ByValue) Принимать подстановочные знаки? false Это значит, что можно передавать объекты (PsObjects) командлету Where-Object по конвейеру и Windows PowerShell будет связывать эти объекты с параметром InputObject. МЕТОДЫ ПРИЕМА ВХОДНЫХ ДАННЫХ С КОНВЕЙЕРА Параметры командлетов могут принимать входные данные с конвейера двумя разными способами. -- ByValue (По значению): параметры, принимающие входные данные по значению, могут принимать с конвейера объекты, принадлежащие к тем же типам .NET, что и значения этих параметров, либо объекты, которые можно преобразовать в эти типы. Например, параметр Name командлета Start-Service принимает входные данные с конвейера по значению. Он принимает строковые объекты и объекты, которые можно преобразовать в строки. -- ByPropertyName (По имени свойства): параметры, принимающие входные данные по имени свойства, могут принимать с конвейера только объекты, имеющие свойство с таким же именем, как и имя самого параметра. Например, параметр Name командлета Start-Service может принимать только объекты, имеющие свойство Name. (Чтобы вывести свойства объекта, передайте его командлету Get-Member по конвейеру.) Некоторые параметры могут принимать объекты по значению или по имени свойства. Эти параметры разработаны с учетом удобства приема входных данных с конвейера. ПРОВЕРКА ОШИБОК КОНВЕЙЕРА Если команду на удалось выполнить из-за ошибки конвейера, можно выявить причины этой ошибки и изменить команду. Например, следующая команда пытается переместить запись из одного раздела реестра в другой. Для этого с помощью командлета Get-Item получается конечный путь, который затем передается командлету Move-ItemProperty по конвейеру. А именно, эта команда получает конечный путь с помощью командлета Get-Item. Результат передается командлету Move-ItemProperty с помощью оператора конвейера (|). Команда Move-ItemProperty указывает текущий путь и имя перемещаемой записи реестра. get-item -path hklm:\software\mycompany\sales | move-itemproperty -path hklm:\software\mycompany\design -name product Выполнить команду не удается, и Windows PowerShell выводит следующее сообщение об ошибке: Move-ItemProperty : Не удается привязать объект ввода к любым параметрам команды, так как команда не принимает входные данные конвейера, либо входные данные и их свойства не совпадают с любыми из параметров, принимающих входные данные конвейера. В строке:1 знак:23 + $a | move-itemproperty < -path hklm:\software\mycompany\ design -name product Чтобы проверить эту ошибку, воспользуйтесь командлетом Trace-Command для трассировки компонента привязки параметров Windows PowerShell. Следующая команда выполняет трассировку компонента привязки параметров во время обработки команды. Параметр -pshost используется для вывода результатов в консоль, а команда -filepath - для отправки результатов в файл debug.txt для дальнейшего использования. trace-command -name parameterbinding -expression {get-item -path hklm:\software\mycompany\sales | move-itemproperty -path hklm:\software\mycompany\design -name product} -pshost -filepath debug .txt Результаты трассировки имеют существенный размер, но они показывают значения, привязываемые к командлету Get-Item, а затем именованные значения, привязываемые к командлету Move-ItemProperty. ... BIND NAMED cmd line args [Move-ItemProperty] BIND arg [hklm:\software\mycompany\design] to parameter [Path] ... BIND arg [product] to parameter [Name] .... BIND POSITIONAL cmd line args [Move-ItemProperty] ... И наконец, отображаются сведения о том, что попытка привязать путь к параметру Destination командлета Move-ItemProperty не удалась. ... BIND PIPELINE object to parameters: [Move-ItemProperty] PIPELINE object TYPE = [Microsoft.Win32.RegistryKey] RESTORING pipeline parameter's original values Parameter [Destination] PIPELINE INPUT ValueFromPipelineByPropertyN ame NO COERCION Parameter [Credential] PIPELINE INPUT ValueFromPipelineByPropertyNa me NO COERCION ... Чтобы проверить ошибку, с помощью командлета Get-Help просмотрите атрибуты параметра Destination. Следующая команда получает подробные сведения о параметре Destination. get-help move-itemproperty -parameter destination Результаты показывают, что параметр Destination принимает входные данные с конвейера только по имени свойства. Т. е. у передаваемого по конвейеру объекта должно быть свойство Destination. -destination <string> Определяет путь к целевому местоположению. Требуется? true Позиция? 2 Значение по умолчанию Принимать входные данные с конвейера? true (ByPropertyName) Принимать подстановочные знаки? true Чтобы просмотреть свойства и методы объекта, переданному по конвейеру командлету Move-ItemProperty, передайте его по конвейеру командлету Get-Member. В следующей команде результаты выполнения первой части команды передаются командлету Get-Member по конвейеру. get-item -path hklm:\software\mycompany\sales | get-member Выходные данные показывают, что элемент является разделом реестра Microsoft.Win32.RegistryKey, не имеющим свойства Destination. Это объясняет причины сбоя команды. Чтобы исправить команду, необходимо указать конечный путь в командлете Move-ItemProperty. Этот путь можно получить с помощью командлета Get-ItemProperty, но имя и назначение необходимо указать в той части команды, где находится командлет Move-ItemProperty. get-item -path hklm:\software\mycompany\design | move-itemproperty -dest hklm:\software\mycompany\design -name prod uct Чтобы убедиться, что команда сработала, воспользуйтесь командой Get-ItemProperty. get-itemproperty hklm:\software\mycompany\sales Результаты показывают, что запись реестра Product перемещена в раздел реестра Sales. PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\s oftware\mycompany\sales PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\s oftware\mycompany PSChildName : sales PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry Product : 18 CМ. ТАКЖЕ about_objects about_parameters about_command_syntax about_foreach about_preference_variables РАЗДЕЛ Привилегированные переменные КРАТКОЕ ОПИСАНИЕ Переменные, которые настраивают поведение Windows PowerShell ПОЛНОЕ ОПИСАНИЕ Оболочка Windows PowerShell включает в себя набор переменных, позволяющих настроить ее поведение. Привилегированные переменные действуют как параметры в системах с графическим интерфейсом. Привилегированные переменные влияют на рабочую среду Windows PowerShell и на все запускаемые в среде команды. Во многих случаях у командлетов есть параметры, позволяющие переопределить поведение, заданное привилегированными переменными, для конкретной команды. В следующей таблице перечислены привилегированные переменные и их значения по умолчанию. Переменная Значение по умолчанию -------- ------------- $ConfirmPreference High $DebugPreference SilentlyContinue $ErrorActionPreference Continue $ErrorView NormalView $FormatEnumerationLimit 4 $LogCommandHealthEvent False (запись в журнал не производится ) $LogCommandLifecycleEvent False (запись в журнал не производится ) $LogEngineHealthEvent True (производится запись в журнал) $LogEngineLifecycleEvent True (производится запись в журнал) $LogProviderLifecycleEvent True (производится запись в журнал) $LogProviderHealthEvent True (производится запись в журнал) $MaximumAliasCount 4096 $MaximumDriveCount 4096 $MaximumErrorCount 256 $MaximumFunctionCount 4096 $MaximumHistoryCount 64 $MaximumVariableCount 4096 $OFS (Пробел (" ")) $OutputEncoding ASCIIEncoding object $ProgressPreference Continue $PSEmailServer (Нет) $PSSessionApplicationName WSMAN $PSSessionConfigurationName http://schemas.microsoft.com/powershel l/microsoft.powershell $PSSessionOption (См.далее) $VerbosePreference SilentlyContinue $WarningPreference Continue $WhatIfPreference 0 Windows PowerShell также включает в себя следующие переменные среды, в которых хранятся настройки пользователя. Дополнительные сведения о переменных среды см. в разделе about_environment_variables. Переменная -------- PSModulePath РАБОТА С ПРИВИЛЕГИРОВАННЫМИ ПЕРЕМЕННЫМИ Этот документ описывает каждую из привилегированных переменных. Чтобы вывести на дисплей текущее значение определенной привилегированной переменной, введите имя переменной. В ответ Windows PowerShell выдаст значение. Например, следующая команда отображает значение переменной $ConfirmPreference. PS> $ConfirmPreference High Чтобы изменить значение переменной, используйте инструкцию назначения. Например, следующая инструкция присваивает значение "Medium" переменной $ConfirmPreference. PS> $ConfirmPreference = "Medium" Как и все переменные, заданные значения специфичны для текущего окна Windows PowerShell. Чтобы они действовали во всех окнах Windows PowerShell, их следует добавить в профиль Windows PowerShell. Дополнительные сведения см. в разделе about_profiles. УДАЛЕННАЯ РАБОТА При запуске команд на удаленном компьютере удаленные команды подвержены только настройкам, заданным в клиенте Windows PowerShell на этом удаленном компьютере. Например, при запуске удаленной команды значение переменной $DebugPreference на удаленном компьютере определяет, как Windows PowerShell отвечает на сообщения отладки. Дополнительные сведения об удаленных командах см. в разделе about_remote. $ConfirmPreference ------------------ Определяет, какие действия командлета автоматически запрашивают подтверждение у пользователя перед выполнением. Когда значение $ConfirmPreference (High, Medium, Low, None) больше или равно риску выполнения действия командлета (High, Medium, Low, None), Windows PowerShell автоматически запрашивает подтверждение у пользователя перед выполнением действия. Можно использовать параметр Confirm командлета, чтобы переопределить эту настройку для определенной команды. Допустимые значения: None. Никакие действия командлета не требуют подтверждения автоматически. Пользователям следует использовать параметр Confir m, чтобы запрос подтверждения выполнялся для конкретных команд. Low. Действия командлета с низким, средним или высоким риском автоматически требуют подтверждения. Чтобы отменить подтверждение конкретной команды, используйте параметр -Confirm:$false. Medium. Действия командлета со средним или высоким риском автоматически требуют подтверждения. Чтобы включить подтверждение для конкретно й команды, используйте параметр -confirm. Чтобы отмен ить подтверждение конкретной команды, используйте значение confirm:$f alse. High. Действия командлета с высоким риском автоматически (по умолчанию) требуют подтверждения. Чтобы включить подтверждение для ко нкретной команды, используйте параметр -confirm. Чтобы отмен ить подтверждение для конкретной команды, используйте значение -confi rm:$false. ПОДРОБНОЕ ОБЪЯСНЕНИЕ Когда действие, выполняемое командлетом, значительно влияет на систему, например оно удаляет данные или использует большой объем ресурсов системы, Windows PowerShell может автоматически запросить подтверждение перед выполнением действия. Пример: PS> remove-item pref2.txt Подтверждение Выполнить это действие? Выполнение операции "Удаление файла" над целевым объектом "C:\pref2.txt". [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию "Y"): Оценка риска является частью командлета, это его аспект "ConfirmImpact". Ее нельзя изменить. Командлет, который может представлять угрозу системе, имеет параметр Confirm, который можно использовать для включения или отключения подтверждения для конкретной команды. Так как большинство командлетов имеют по умолчанию показатель риска "Medium", а переменная $ConfirmPreference имеет по умолчанию значение "High", автоматический запрос подтверждения происходит редко. Однако можно активировать автоматический запрос подтверждения, изменив значение переменной $ConfirmPreference на "Medium" или "Low". ПРИМЕРЫ Этот пример показывает, что произойдет, если для переменной $ConfirmPreference задано значение по умолчанию. Значение High требует подтверждения только для действий командлетов с высоким риском. Так как большинство действий имеют средний уровень риска, они не требуют подтверждения автоматически, хотя можно использовать параметр Confirm командлета, чтобы включить подтверждение определенной команды. PS> $confirmpreference #Получение текущего значения пере менной High PS> remove-item temp1.txt #Удалить файл PS> #Удалено без подтверждения PS> remove-item temp2.txt -confirm #Используется параметр Confirm Подтверждение Выполнить это действие? Выполнение операции "Удаление файла" над целевым объектом "C:\temp2.txt". [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию "Y"): Этот пример показывает результат изменения значения переменной $ConfirmPrefernce на Medium. Так как большинство действий командлетов имеют средний уровень риска, для них автоматически требуется подтверждение. Чтобы отключить запрос подтверждения для конкретной команды, следует использовать параметр Confirm со значением $false. PS> $confirmpreference = "Medium" #Изменение значение переменной $ConfirmPreference PS> remove-item temp2.txt #Удаление файла вызывает запрос подтверждения Подтверждение Выполнить это действие? Выполнение операции "Удаление файла" над целевым объектом "C:\temp2.txt". [Y] Да [A] Да для всех [N] Нет [L] Нет для всех [S] Приостановить [?] Справка (по умолчанию "Y"): PS> remove-item temp3.txt -confirm:$false #Используется параметр Con firm для отключения запроса подтверждения PS> $DebugPreference ------------------ Определяет, как Windows PowerShell отвечает на сообщения отладки, созданные скриптом, командлетом или поставщиком, либо командой Write-Debug в командной строке. Некоторые командлеты отображают сообщения отладки, которые обычно являются сугубо техническими сообщениями для программистов и специалистов технической поддержки. По умолчанию сообщения отладки не отображаются, но можно настроить отображение сообщений отладки, изменив значение переменной $DebugPreference. Также можно использовать общий параметр Debug командлета, чтобы отображать или скрывать сообщения отладки для конкретной команды. Чтобы получить дополнительные сведения, введите команду "get-help about_commonparameters". Допустимые значения: Stop. Отображается сообщение отладки и выполнение прекращается. Ошибка записывается на консоль. Inquire. Выводится сообщение отладки и запрос на продолжение. Continue. Отображается сообщение отладки, выполнение продолжается. SilentlyContinue. Результат не заметен. Сообщение отладки (по умолчанию) не отображается, выполнение продолжается без остановки. ПРИМЕРЫ Следующие примеры показывают результат изменения значений переменной $DebugPreference, когда команда Write-Debug вводится в командной строке. Изменение касается всех сообщений отладки, включая сообщения, созданные командлетами и скриптами. Примеры также демонстрируют использование общего параметра Debug, который позволяет отобразить или скрыть сообщения отладки, связанные с определенной командой. Этот пример показывает, что произойдет, если задано значение по умолчанию "SilentlyContinue". Сообщение отладки не отображается, работа продолжается. В последней команде используется параметр Debug, чтобы переопределить настройку для конкретной команды. PS> $debugpreference #Получение текущего значения SilentlyContinue $DebugPreference PS> write-debug "Hello, World" PS> # Сообщение отладки не отобража ется. PS> write-debug "Hello, World" -Debug # Используется параметр Debug ОТЛАДКА: Hello, World # Запрашивается сообщение отладки Подтверждение Продолжить выполнение текущей операции? [Y] Да [A] Да для всех [H] Прервать команду [S] Приостановить [?] Справка (по умолчанию "Y"): Этот пример показывает, что произойдет, если задано значение "Continue". В последней команде используется параметр Debug со значением $false, чтобы скрыть сообщение для конкретной команды. PS> $debugpreference = "Continue" # Значение изменяется на "Continue" PS> write-debug "Hello, World" ОТЛАДКА: Hello, World # Сообщение отладки отображается, ра бота продолжается. PS> PS> write-debug "Hello, World" -Debug:$false # Используется параметр Debug со зна чением false. PS> # Сообщение отладки не отображается. Этот пример показывает, что произойдет, если задано значение "Stop". В последней команде используется параметр Debug со значением $false, чтобы скрыть сообщение для конкретной команды. PS> $debugpreference = "Stop" # Значение изменяется на "Stop" PS> write-debug "Hello, World" ОТЛАДКА: Hello, World Write-Debug : Выполнение команды остановлено, так как переменной оболоч ки "DebugPreference" присвоено значение Stop. В строке:1 знак:12 + write-debug < "Hello, World" PS> write-debug "Hello, World" -Debug:$false # Используется параметр Debug со зна чением $false PS> # Сообщение отладки не отображается, выполнение не останавливается. Этот пример показывает, что произойдет, если задано значение "Inquire". В последней команде используется параметр Debug со значением $false, чтобы скрыть сообщение для конкретной команды. PS> $debugpreference = "Inquire" PS> write-debug "Hello, World" ОТЛАДКА: Hello, World Подтверждение Продолжить выполнение текущей операции? [Y] Да [A] Да для всех [H] Прервать команду [S] Приостановить [?] Справка (по умолчанию "Y"): PS> write-debug "Hello, World" -Debug:$false # Используется параметр Debug со зн ачением $false PS> # Сообщение отладки не отображается, выполнение продолжается без остановки. $ErrorActionPreference ---------------------- Определяет, как Windows PowerShell отвечает на непрерывающую ошибку (ошибка, которая не останавливает обработку командлета) в командной строке или в скрипте, командлете или поставщике (например, на ошибки, сгенерированные командлетом Write-Error). Также можно использовать общий параметр ErrorAction командлета, чтобы переопределить эту настройку для определенной команды. Чтобы получить дополнительные сведения, введите команду "get-help about_commonparameters". Допустимые значения: Stop. Отображается сообщение об ошибке, выполнение прекращае тся. Inquire. Выводится сообщение об ошибке и запрос на продолж ение. Continue. Отображается сообщение об ошибке, выполнение пр одолжается. SilentlyContinue. Результат не заметен. Сообщение об ошибке (по умолчанию) не отображается, выполнение продолжается без останов ки. Ни переменная $ErrorActionPreference, ни общий параметр ErrorAction не влияют на то, как Windows PowerShell отвечает на прерывающие ошибки (ошибки, останавливающие обработку командлета). Чтобы получить дополнительные сведения об общем параметре ErrorAction, введите команду "get-help about_commonparameters". ПРИМЕРЫ Данные примеры показывают, что происходит при различных значениях переменной $ErrorActionPreference и использовании общего параметра ErrorAction для переопределения настройки для конкретной команды. Для параметра ErrorAction допустимы те же значения, что и для переменной $ErrorActionPreference. Этот пример показывает, что произойдет, если задано значение по умолчанию "Continue". PS> $erroractionpreference Continue # Отображается значение привилегированной переменной. PS> write-error "Hello, World" # Генерируется непрерывающая ошибка. write-error "Hello, World" : Hello, World # Отображается сообщение об ошибке и продолжается выполнение. PS> write-error "Hello, World" -ErrorAction:SilentlyContinue # Используется параметр ErrorAction со значение м "SilentlyContinue". PS> # Сообщение об ошибке не отображается, выполнен ие продолжается. Этот пример показывает, что произойдет, если задано значение "SilentlyConti nue". PS> $ErrorActionPreference = "SilentlyContinue" # Изменение значения привилегированной переменн ой. PS> write-error "Hello, World" # Генерируется сообщение об ошибке. PS> # Сообщение об ошибке не выводится. PS> write-error "Hello, World" -erroraction:continue # Используется параметр ErrorAction со значение м "Continue". write-error "Hello, World" -erroraction:continue : Hello, World # Выводится сообщение об ошибке и выполнение продолжается. Этот пример показывает результат реальной ошибки. В данном случае команда запрашивает несуществующий файл nofile.txt. В примере также используется общий параметр ErrorAction для переопределения настройки. PS> $erroractionpreference SilentlyContinue # Отображается значение привилегированной перем енной. PS> get-childitem -path nofile.txt PS> # Сообщение об ошибке не выводится. PS> $ErrorActionPreference = "Continue" # Значение изменяется на "Continue". PS> get-childitem -path nofile.txt Get-ChildItem : Не удается найти путь "C:\nofile.txt", так как он не су ществует. В строке:1 знак:4 + get-childitem < nofile.txt PS> get-childitem -path nofile.txt -erroraction SilentlyContinue # Используется параметр ErrorAction # Сообщение об ошибке не выводится. PS> $ErrorActionPreference = "Inquire" # Значение изменяется на "Inquire". PS> get-childitem -path nofile.txt Подтверждение Не удается найти путь "C:\nofile.txt", так как он не существует. [Y] Да [A] Да для всех [H] Прервать команду [S] Приостановить [?] Справка (по умолчанию "Y"): y Get-ChildItem : Не удается найти путь "C:\nofile.txt", так как он не су ществует. В строке:1 знак:4 + get-childitem < nofile.txt PS> $ErrorActionPreference = "Continue" # Значение изменяется на "Continue". PS> Get-Childitem nofile.txt -erroraction "Inquire" # Используется параметр ErrorAction для переопр еделения значения. Подтверждение Не удается найти путь "C:\nofile.txt", так как он не существует. [Y] Да [A] Да для всех [H] Прервать команду [S] Приостановить [?] Справ ка (по умолчанию "Y"): $ErrorView ---------- Определяет формат отображения сообщений об ошибках в Windows PowerShell. Допустимые значения: NormalView. Отображаются подробные сведения. (по умолчанию) Подходит для большинства пользователей. Включает описание ошибки, имя объекта, с которым связана ошибка, и стрелки (<), указывающие на слова команды, вызвавшие ошибку. CategoryView. Отображаются краткие структурированные сведения. Формат подходит для рабочих сред. Формат:{категория}: ({имя_целевого_объекта}: {тип_целевого_объекта}):[{действие}], {причина} Дополнительные сведения о полях формата CategoryView см. в разделе "Класс ErrorCategoryInfo" документации Windows PowerShell SDK. ПРИМЕРЫ Данные примеры показывают влияние различных значений переменной $ErrorView. Этот пример показывает, как отображается ошибка, если переменная $ErrorView имеет значение NormalView. В данном случае команда Get-ChildItem запрашивает несуществующий файл. PS> $ErrorView # Проверка значения. NormalView PS> get-childitem nofile.txt # Поиск несуществующего файла. Get-ChildItem : Не удается найти путь "C:\nofile.txt", так как он не су ществует. В строке:1 знак:14 + get-childitem < nofile.txt Этот пример показывает, как та же ошибка отображается, если переменная $ErrorView имеет значение CategoryView. PS> $ErrorView = "CategoryView" # Значение изменяется CategoryView PS> get-childitem nofile.txt ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundExc eption Этот пример показывает, что значение переменой $ErrorView влияет только на отображение ошибки; структура объекта ошибки, который хранится в автоматической переменной $error, не меняется. Дополнительные сведения об автоматической переменной $error см. в разделе about_automatic_variables. Эта команда извлекает объект ErrorRecord, связанный с последней ошибкой в массиве ошибок (элемент 0), и приводит все свойства объекта ошибки к формату списка. PS> $error[0] | format-list -property * -force Exception : System.Management.Automation.ItemNotFoundException: Не уда ется найти путь "C:\nofile.txt", так как он не существует. at System.Management.Automation.SessionStateInternal.GetChildItems(Strin gpath, Boolean recurse, CmdletProviderContext context) at System.Management.Automation.ChildItemCmdletProviderIntrinsics.Get(St ring path, Boolean recurse, CmdletProviderContext context) at Microsoft.PowerShell.Commands.GetChildItemCommand.ProcessRecord() : TargetObject : C:\nofile.txt CategoryInfo : ObjectNotFound: (C:\nofile.txt:String) [Get-Chi ldItem], ItemNotFoundException FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetC hildItemCommand ErrorDetails : InvocationInfo : System.Management.Automation.InvocationInfo $FormatEnumerationLimit ----------------------- Определяет, сколько элементов перечисления отображается. Эта переменная не влияет на сами объекты, только на то, как они отображаются.Когда значение переменной $FormatEnumerationLimit меньше, чем число элементов перечисления, Windows PowerShell добавляет многоточие (...) для обозначения неотображенных элементов. Допустимые значения: целые числа (Int32) Значение по умолчанию: 4 ПРИМЕРЫ Этот пример показывает, как использовать переменную $FormatEnumerationLimit, чтобы улучшить отображение перечисляемых элементов. В этом примере команда создает таблицу, где все запущенные на компьютере службы перечислены в виде двух групп, в одну группу входят выполняющиеся службы, во вторую - остановленные. Команда Get-Service используется для получения всех служб и последующей передачи результатов по конвейеру в командлет Group-Object, который группирует результаты, основываясь на состоянии службы. В результате выводится таблица, где состояния перечислены в столбце Name, а соответствующие процессы - в столбце Group. (Чтобы изменить названия столбцов, воспользуйтесь хэш-таблицей. Чтобы получить дополнительные сведения, введите команду "get-help format-table -examples" и изучите примеры.) Для каждого состояния отображается максимум 4 службы в столбце Group. Чтобы увеличить число перечисленных элементов, увеличьте значение переменной $FormatEnumerationLimit до 1000. В результате список в столбце Group будет ограничен длиной строки. В последней команде примера используется параметр Wrap командлета Format-Table для отображения всех процессов в каждой группе состояния. PS> $formatenumerationlimit # Поиск текущего значения 4 PS> get-service | group-object -property status # Перечисляются все службы, сгруппи рованные по состоянию Count Name Group ----- ---- ----- 60 Running {AdtAgent, ALG, Ati HotKey Poller, Audi oSrv...} 41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Sm art...} # Список усекается после 4-го элемента. PS> $formatenumerationlimit = 1000 # Предел увеличивается до 1000. PS> get-service | group-object -property status # Команда повторяется. Count Name Group ----- ---- ----- 60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExe c... 41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSv c... PS> get-service | group-object -property status | format-table -wrap # Добавляется параметр Wrap. Count Name Group ----- ---- ----- 60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, Ccm Exec, Client for NFS, CryptSvc, DcomLaunch, Dhcp, dmserver, Dnscach e, ERSvc, Eventlog, EventSystem, FwcAgent, helpsvc, HidServ, IIS ADMIN, InoRPC, InoRT, InoTask, lanmanserver, lanmanworkstatio n, LmHosts, MDM, Netlogon, Netman, Nla, NtLmSsp, PlugPlay, PolicyA gent, ProtectedStorage, RasMan, RemoteRegistry, RpcSs, SamSs , Schedule, seclogon, SENS, SharedAccess, ShellHWDetection, SMT PS VC, Spooler, srservice, SSDPSRV, stisvc, TapiSrv, TermService, Them es, TrkWks, UMWdf, W32Time, W3SVC, WebClient, winmgmt, wscsvc, wua userv, WZCSVC, zzInterix} 41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, C iSvc, ClipSrv, clr_optimization_v2.0.50727_32, COMSysApp, Cr onService, dmadmin, FastUserSwitchingCompatibility, HTTPFilter, I mapiService, Mapsvc, Messenger, mnmsrvc, MSDTC, MSIServer, msvsmon8 0, NetDDE, NetDDEdsdm, NtmsSvc, NVSvc, ose, RasAuto, RDSessMgr, R emoteAccess, RpcLocator, RSVP, SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, UPS, VSS, WmdmPmSN, Wmi, WmiApSrv, xmlprov} $Log*Event ---------- Привилегированные переменные $Log*Event определяют, какие типы событий записываются в журнал событий Windows PowerShell в средстве просмотра событий. По умолчанию в журнал записываются только события обработчика и события поставщика, но при помощи привилегированных переменных Log*Event можно настроить запись в журнал, например, чтобы записывались события, связанные с командами. Привилегированные переменные $Log*Event: $LogCommandHealthEvent. Позволяет записывать в журнал ошибки и исключения, связанные с инициализацией и обработкой команд. Значение по умолчанию = $false (запись в журнал не производится). $LogCommandLifecycleEvent. Задает запись в журнал запуска и остановки команд и командных конвейеров, а также исключений безопасности при обнаружении команд. Значение по умолчанию = $false (запись в журнал не производится). $LogEngineHealthEvent. Задает запись в журнал ошибок и сбоев сеансо в. Значение по умолчанию = $true (запись в журнал производится). $LogEngineLifecycleEvent. Задает запись в журнал открытия и закрытия сеансов. Значение по умолчанию = $true (запись в журнал производится). $LogProviderHealthEvent. Задает запись в журнал ошибок поставщика, например ошибок чтения и записи, ошибок поиска и ошибок вызова. Значение по умолчанию = $true (запись в журнал производится). $LogProviderLifecycleEvent. Задает запись в журнал добавления и удаления поставщиков Windows PowerShell. Значение по умолчанию = $true (запись в журнал производится). Чтобы получить сведения о поставщиках Windows PowerShell, введите следующую команду: "get-help about_provider". Чтобы включить Log*Event, введите переменную со значением $true, например: $LogCommandLifeCycleEvent - или: $LogCommandLifeCycleEvent = $true Чтобы отключить тип событий, введите переменную со значением $false, например: $LogCommandLifeCycleEvent = $false События включаются только для текущей консоли Windows PowerShell. Чтобы применить конфигурацию ко всем консолям, сохраните параметры переменных в профиле Windows PowerShell. $MaximumAliasCount ------------------ Определяет допустимое число псевдонимов в сеансе Windows PowerShell. В большинстве случаев достаточно числа по умолчанию, 4096, но при необходимости можно его изменить. Допустимые значения: 1024 - 32768 (Int32) Значение по умолчанию: 4096 Чтобы посчитать число псевдонимов в системе, введите следующую команду: (get-alias).count $MaximumDriveCount ------------------ Определяет допустимое число дисков Windows PowerShell в определенном сеансе. Это число включает в себя диски файловой системы и хранилища данных, предоставленные поставщиками Windows PowerShell и отображаемые как диски, например диски Alias: и HKLM:. Допустимые значения: 1024 - 32768 (Int32) Значение по умолчанию: 4096 Чтобы посчитать число дисков Psdrive в системе, введите следующую команду: (get-psdrive).count $MaximumErrorCount ------------------ Определяет, сколько ошибок сохраняется в журнале ошибок для сеанса. Допустимые значения: 256 - 32768 (Int32) Значение по умолчанию: 256 Объекты, представляющие сохраняемые ошибки, хранятся в автоматической переменной $Error. Эта переменная содержит массив объектов записей об ошибках, один объект на каждую ошибку. Последняя ошибка - первый объект массива ($Error[0]). Чтобы посчитать ошибки в системе, используйте свойство Count массива $Error. Введите следующую команду: $Error.count Чтобы отобразить конкретную ошибку, используйте систему индексов массива. Например, чтобы отобразить последнюю ошибку, введите следующую команду: $Error[0] Чтобы отобразить самую старую сохраненную ошибку, введите следующую команду: $Error[($Error.Count -1] Чтобы отобразить свойства объекта ErrorRecord, введите следующую команду: $Error[0] | format-list -property * -force В данной команде параметр Force переопределяет специальное форматирование объектов ErrorRecord и задает традиционный формат. Чтобы удалить все объекты из журнала ошибок, используйте метод Clear массива ошибок. PS> $Error.count 17 PS> $Error.clear() PS> PS> $Error.count 0 Чтобы получить все свойства и методы массива ошибок, используйте командлет Get-Member с параметром InputObject. При передаче коллекции объектов по конвейеру командлету Get-Member, Get-Member отображает свойства и методы объектов коллекции. При использовании параметра InputObject командлета Get-Member, командлет Get-Member отображает свойства и методы коллекции. $MaximumFunctionCount ------------------ Определяет допустимое число функций в определенном сеансе. Допустимые значения: 1024 - 32768 (Int32) Значение по умолчанию: 4096 Чтобы отобразить функции сеанса, используйте диск Function: Windows PowerShell, предоставляемый поставщиком Function Windows PowerShell. (Чтобы получить дополнительные сведения о поставщике Function, введите команду "get-help function".) Чтобы вывести функции текущего сеанса, введите следующую команду: get-childitem function: Чтобы посчитать функции текущего сеанса, введите следующую команду: (get-childitem function:).count $MaximumHistoryCount ------------------ Определяет, сколько команд сохраняется в журнале команд для текущего сеанса. Допустимые значения: 1 - 32768 (Int32) Значение по умолчанию: 64 Чтобы узнать число команд, сохраненных в текущий момент в журнале команд, введите строку: (get-history).count Чтобы отобразить команду, сохраненную в журнале сеанса, используйте командлет Get-History. Чтобы получить дополнительные сведения, введите команду "get-help about_history". $MaximumVariableCount ------------------ Определяет допустимое число переменных в определенном сеансе, включая автоматические переменные, привилегированные переменные и переменные, создаваемые в командах и скриптах. Допустимые значения: 1024 - 32768 (Int32) Значение по умолчанию: 4096 Чтобы отобразить переменные сеанса, используйте командлет Get-Variable, возможности диска Variable: Windows PowerShell и поставщика Variable Windows PowerShell. Чтобы получить сведения о поставщике Variable, введите команду "get-help variable". Чтобы узнать текущее число переменных в системе, введите следующую команду: (get-variable).count $OFS ---- Output Field Separator. Задает знак, разделяющий элементы массива при преобразовании массива в строку. Допустимые значения: любая строка. Значение по умолчанию: пробел По умолчанию переменная $OFS не существует и знаком-разделител ем для выходных файлов является пробел, но пользователь может добавить эту переменную и присвоить ей в качестве значения любую строку. ПРИМЕРЫ Этот пример показывает, что при преобразовании массива в строку для разделения значений используется пробел. В данном случае массив целых чисел сохраняется в переменной, а затем переменная приводится к типу string. PS> $array = 1,2,3 # Сохраняется массив целых чисел. PS> [string]$array # Массив приводится к типу string. 1 2 3 # Элементы разделяются пробелами Чтобы изменить разделитель, добавьте переменную $OFS, назначив ей значение. Для корректной работы переменная должна называться $OFS. PS> $OFS = "+" # Создается переменная $OFS, ей присв аивается значение "+" PS> [string]$array # Команда повторяется 1+2+3 # Элементы разделяются знаками плюс Чтобы восстановить поведение по умолчанию, можно присвоить пробел (" ") в качестве значения переменной $OFS или удалить переменную. Следующая команда удаляет переменную, затем выполняется проверка, что разделителем является пробел. PS> Remove-Variable OFS # Удаление переменной $OFS PS> PS> [string]$array # Команда повторяется 1 2 3 # Элементы разделяются пробелами $OutputEncoding --------------- Определяет метод кодировки, который использует Windows PowerShell при отправке текста другим приложениям. Например, если какое-либо приложение возвращает в Windows PowerShell строки в кодировке Unicode, может потребоваться соответственно изменить значение переменной для корректной отправки символов. Допустимые значения: объекты, унаследованные от класса кодировки, например ASCIIEncoding, SBCSCodePageEncoding, UTF7Encoding, UTF8Encoding, UTF32Encoding и UnicodeEncoding. Значение по умолчанию: объект ASCIIEncoding (System.Text.ASCIIEncoding) ПРИМЕРЫ Этот пример показывает, как настроить работу команды FINDSTR в Windows PowerShell на компьютере, локализованном для языка с символами Unicode, например китайского. Первая команда находит значение переменной $OutputEncoding. Так как значение является объектом кодировки, отображается только его свойство EncodingName. PS> $OutputEncoding.EncodingName # Поиск текущего значения US-ASCII В этом примере команда FINDSTR используется для поиска нескольких китайских символов, которые присутствуют в файле Test.txt. Когда команда FINDSTR запускается в командной строке Windows (Cmd.exe), она находит символы в текстовом файле. Однако при запуске той же команды FINDSTR в Windows PowerShell символы не удается найти, так как Windows PowerShell отправляет их команде FINDSTR как текст в кодировке ASCII вместо кодировки Unicode. PS> findstr <символы_Unicode> # Команда findstr используется для поис ка. PS> # Ничего не найдено. Чтобы настроить работу этой команды в Windows PowerShell, присвойте переменной $OutputEncoding значение свойства OutputEncoding консоли, которое основывается на выбранной для Windows локали. Так как свойство OutputEncoding является статическим свойством консоли, следует использовать двойное двоеточие в команде (::). PS> $OutputEncoding = [console]::outputencoding PS> # Присваивается значение, равное зн ачению свойства OutputEncoding консоли. PS> $OutputEncoding.EncodingName Cyrillic (DOS) # Получение результирующего значени я. В результате изменения команда FINDSTR сможет найти символы. PS> findstr <символы_Unicode> test.txt: <символы_Unicode> # Команда findstr используется для поиска и находит символы в текстовом файле. $ProgressPreference ------------------- Определяет, как Windows PowerShell реагирует на обновления состояния, созданные скриптом, командлетом или поставщиком, например на индикаторы выполнения, созданные командлетом Write-Progress. Командлет Write-Progress создает индикаторы выполнения, отображающие состояние команды. Допустимые значения: Stop. Индикатор выполнения не отображается. Вместо этого отображается сообщение об ошибке и выполнение прекращается. Inquire. Индикатор выполнения не отображается. Запрашивается разрешение на продолжение. В случае ответа "А" или "Х" отображается индикатор выполнения. Continue. Отображается индикатор выполнения, (по умолчанию) продолжается выполнение. SilentlyContinue. Команда выполняется, но индикатор выполнения не отображается. $PSEmailServer -------------- Задает сервер электронной почты по умолчанию, который используется для отправки сообщений. Эта привилегированная переменная используется командлетами, отправляющими сообщения по электронной почте, например командлетом Send-MailMessage. $PSSessionApplicationName --------------------------- Задает имя приложения по умолчанию для удаленной команды, использующей технологию WS-Management. Системное имя приложения по умолчанию - WSMAN, однако при помощи привилегированной переменной имя по умолчанию можно изменить. Имя приложения - это последний узел в URI подключения. Например, в следующем примере URI имя приложения - WSMAN. http://Server01:8080/WSMAN Имя приложения по умолчанию используется, когда удаленная команда не задает URI подключения или имя приложения. Служба WinRM использует имя приложения для выбора прослушивателя для обслуживания запроса подключения. Значение этого параметра должно соответствовать значению свойства URLPrefix прослушивателя на удаленном компьютере. Чтобы переопределить системные настройки по умолчанию и значение этой переменной, и чтобы выбрать другое имя приложения для конкретного сеанса, используйте параметры ConnectionURI или ApplicationName командлетов New-PSSession, Enter-PSSession или Invoke-Command. Эта привилегированная переменная задается на локальном компьютере, но указывает прослушиватель на удаленном компьютере. Если задаваемое имя приложения не существует на удаленном компьютере, команда установить сеанс завершится с ошибкой. $PSSessionConfigurationName --------------------------- Задает конфигурацию сеанса по умолчанию, которая используется для сеансов PSSession, создаваемых в текущем сеансе. Эта привилегированная переменная задается на локальном компьютере, но определяет конфигурацию сеансов, расположенную на удаленном компьютере. Значение переменной $PSSessionConfigurationName является полным URI ресурса. Значение по умолчанию: http://schemas.microsoft.com/powershell/microsoft.powershell задает конфигурацию сеансов Microsoft.PowerShell на удаленном компьютере. Если задать только имя конфигурации, в начало будет добавлен следующий URI схемы: http://schemas.microsoft.com/powershell/ Можно переопределить значение по умолчанию и выбрать другую конфигурацию для конкретного сеанса, задав параметр ConfigurationName командлетов New-PSSession, Enter-PSSession или Invoke-Command. Изменить значение этой переменной можно в любой момент. Изменяя значение, помните, что выбираемая конфигурация сеансов должна существовать на удаленном компьютере. Если это условие не будет выполнено, команда создать сеанс с определенной конфигурацией завершится с ошибкой. Эта привилегированная переменная не определяет, какие локальные конфигурации сеансов используются при создании удаленными пользователями сеанса, подключаемого к данному компьютеру. Однако можно использовать разрешения для локальных конфигураций сеансов, чтобы задать, кто из пользователей может использовать их. $PSSessionOption ---------------- Задает значения по умолчанию для дополнительных параметров пользователя в удаленном сеансе. Эта настройка параметров переопределяет системные значения по умолчанию для параметров сеанса. Можно также задать пользовательские параметры для конкретного удаленного сеанса при помощи параметра SessionOption в командлетах, создающих сеанс, например New-PSSession, Enter-PSSession и Invoke-Command. Значение параметра SessionOption имеет приоритет перед системными значениями по умолчанию и значениями по умолчанию, заданными в этой переменной. Переменная $PSSessionOption содержит объект PSSessionOption (System.Management.Automation.Remoting.PSSession Object). Каждое свойство объекта представляет параметр сеанса. Например, свойство NoCompression отключает сжатие данных во время сеанса. Чтобы создать привилегированную переменную $PSSessionOption, используйте командлет New-PSSessionOption. Сохраните его выходные данные в переменной с именем $PSSessionOption. Пример: $PSSessionOption = New-PSSessionOption -NoCompression Чтобы использовать привилегированную переменную $PSSessionOption во всех сеансах Windows PowerShell, добавьте команду New-PSSessionOption, которая создает переменную $PSSessionOption, в свой профиль Windows PowerShell. Дополнительные сведения о командлете New-PSSessionOption см. в разделе справки для New-PSSessionOption. Дополнительные сведения об удаленных командах и сеансах см. в разделах about_Remote и about_PSSessions. Дополнительные сведения об использовании профиля см. в разделе about_Profiles. $VerbosePreference ------------------ Определяет, как Windows PowerShell отвечает на подробные сообщения, созданные скриптом, командлетом или поставщиком, например на сообщения, созданные командлетом Write-Verbose. Обычно подробные сообщения описывают действия, произведенные для выполнения команды. По умолчанию подробные сообщения не отображаются, но можно изменить это поведение, отредактировав значение переменной $VerbosePreference. Также можно использовать общий параметр Verbose командлета, чтобы отображать или скрывать подробные сообщения для конкретной команды. Чтобы получить дополнительные сведения, введите команду "get-help about_commonparameters". Допустимые значения: Stop. Отображается подробное сообщение и сообщение об ошибке, выполнение прекращается. Inquire. Отображается подробное сообщение и запрос на продолжение выполнения. Continue. Отображается подробное сообщение, выполнение продолжается. SilentlyContinue. Подробное сообщение не (по умолчанию) отображается. Выполнение продолжается. ПРИМЕРЫ Данные примеры показывают, что происходит при различных значениях переменной $VerbosePreference и использовании общего параметра Verbose для переопределения значения переменной. Этот пример показывает, что произойдет, если задано значение по умолчанию "SilentlyContinue ". PS> $VerbosePreference # Поиск текущего значения. SilentlyContinue PS> Write-Verbose "Тестовое подробное сообщение." PS> # Запись подробного сообщения. # Сообщение не отображается. PS> Write-Verbose "Тестовое подробное сообщение." -verbose ПОДРОБНО: Тестовое подробное сообщение. # Используется параметр Verbose. Этот пример показывает, что произойдет, если задано значение "Continue". PS> $VerbosePreference = "Continue" # Значение изменяется на "Continue". PS> Write-Verbose "Тестовое подробное сообщение." # Запись подробного сообщения. ПОДРОБНО: Тестовое подробное # Сообщение отображается. сообщение. PS> Write-Verbose "Тестовое подробное сообщение." -verbose:$false # Используется параметр Verbose со з начением $false. PS> # Сообщение не отображается. Этот пример показывает, что произойдет, если задано значение "Stop". PS> $VerbosePreference = "Stop" # Значение изменяется на "Stop". PS> Write-Verbose "Тестовое подробное сообщение." # Запись подробного сообщения. ПОДРОБНО: Тестовое подробное сообщение. Write-Verbose : Выполнение команды остановлено, так как переменной оболочки "VerbosePreference" присвоено значение Stop. В строке:1 знак:14 + Write-Verbose < "Тестовое подробное сообщение." PS> Write-Verbose "Тестовое подробное сообщение." -verbose:$false # Используется параметр Verbose со зн ачением $false # Сообщение не отображается. Этот пример показывает, что произойдет, если задано значение "Inquire". PS> $VerbosePreference = "Inquire" # Значение изменяется на "Inquire". PS> Write-Verbose "Тестовое подробное сообщение." ПОДРОБНО: Тестовое подробное сообщение. # Запись подробного сообщения. Подтверждение Продолжить выполнение текущей операции? [Y] Да [A] Да для всех [H] Прервать команду [S] Приостановить [?] Справка (по умолчанию "Y"): y PS> Write-Verbose "Тестовое подробное сообщение." -verbose:$false # Используется параметр Verbose. PS> # Сообщение не отображается. $WarningPreference ------------------ Определяет, как Windows PowerShell отвечает на предупреждения, созданные скриптом, командлетом или поставщиком, например на сообщения, созданные командлетом Write-Warning. По умолчанию предупреждения не отображаются, и выполнение продолжается, но можно изменить это поведение, отредактировав значение переменной $WarningPreference. Также можно использовать общий параметр WarningAction командлета, чтобы определить, как Windows PowerShell будет реагировать на предупреждения от конкретной команды. Чтобы получить дополнительные сведения, введите команду "get-help about_commonparameters". Допустимые значения: Stop. Отображается предупреждение и сообщение об ошибке, выполнение прекращается. Inquire. Отображается предупреждение и запрос на продолжение выполнения. Continue. Отображается предупреждение, (по умолчанию) выполнение продолжается. SilentlyContinue. Предупреждение не отображается. Выполнение продолжается. ПРИМЕРЫ Данные примеры показывают, что происходит при различных значениях переменной $WarningPreference и использовании общего параметра WarningAction для переопределения значения переменной. Этот пример показывает, что произойдет, если задано значение по умолчанию "Continue". PS> $WarningPreference # Поиск текущего значения. Continue # Запись предупреждения. PS> Write-Warning "Это действие может привести к удалению данных." ПРЕДУПРЕЖДЕНИЕ: Это действие может привести к удалению данных. # Используется параметр WarningAction коман длета PS> Write-Warning "Это действие может привести к удалению данных." -warningaction silentlycontinue Этот пример показывает, что произойдет, если задано значение "SilentlyContin ue". PS> $WarningPreference = "SilentlyContinue" # Значение изменяется на "SilentlyContinu e". PS> Write-Warning "Это действие может привести к удалению данных." PS> # Запись предупреждения. PS> Write-Warning "Это действие может привести к удалению данных." -warningaction stop # Используется параметр WarningAction для остановки выполнения, когда данная команда генери рует строку "ПРЕДУПРЕЖДЕНИЕ: Это действие может привести к удалению данных". Write-Warning : Выполнение команды остановлено, так как переменной оболочки "WarningPreference" присвоено значение Stop. В строке:1 знак:14 + Write-Warning < "Это действие может привести к удалению данных ." -warningaction stop Этот пример показывает, что произойдет, если задано значение "Inquire". PS> $WarningPreference = "Inquire" # Значение изменяется на "Inquire". PS> Write-Warning "Это действие может привести к удалению данных." # Запись предупреждения. ПРЕДУПРЕЖДЕНИЕ: Это действие может привести к удалению данных. Подтверждение Продолжить выполнение текущей операции? [Y] Да [A] Да для всех [H] Прервать команду [S] Приостановить [?] Справка (по умолчанию "Y"): y PS> Write-Warning "Это действие может привести к удалению данных." -warningaction silentlycontinue PS> # Используется параметр WarningAction дл я изменения # реакции на предупреждение для текущей команды. Этот пример показывает, что произойдет, если задано значение "Stop". PS> $WarningPreference = "Stop" # Значение изменяется на "Stop". PS> Write-Warning "Это действие может привести к удалению данных." # Запись предупреждения. ПРЕДУПРЕЖДЕНИЕ: Это действие может привести к удалению данных. Write-Warning : Выполнение команды остановлено, так как переменной оболочки "WarningPreference" присвоено значение Stop. В строке:1 знак:14 + Write-Warning < "Это действие может привести к удалению данных. " PS> Write-Warning "Это действие может привести к удалению данных." -warningaction inquire ПРЕДУПРЕЖДЕНИЕ: Это действие может привести к удалению данных. Подтверждение Продолжить выполнение текущей операции? [Y] Да [A] Да для всех [H] Прервать команду [S] Приостановить [?] Справка (по умолчанию "Y"): # Используется параметр WarningAction для изменения реакции на предупреждение для текущей команды. $WhatIfPreference ------------------ Определяет, включено ли действие WhatIf автоматически для каждой команды, которая его поддерживает. Когда действие WhatIf включено, командлет сообщает, что произойдет при выполнении команды, но не выполняет команду. Допустимые значения: 0. Действие WhatIf автоматически (по умолчанию) не включено. Чтобы включить его вручную, используйте параметр WhatIf команды. 1: Действие WhatIf автоматически включено для каждой поддерживающей его команды. Можно использовать параметр WhatIf со значением False для отключения действия вручную (WhatIf:$false). ПОДРОБНОЕ ОБЪЯСНЕНИЕ Если командлет поддерживает действие WhatIf, он сообщает, что произойдет при выполнении команды вместо фактического выполнения команды. Например, вместо удаления файла test.txt в ответ на команду Remove-Item Windows PowerShell сообщает, что было бы удалено. Последующая команда Get-Childitem подтверждает, что файл не был удален. PS> remove-item test.txt What if: Выполнение операции "Remove-Item" над целевым объектом "C:\test.txt". PS> get-childitem test.txt Каталог: Microsoft.PowerShell.Core\FileSystem::C: Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 7/29/2006 7:15 PM 84 test.txt ПРИМЕРЫ Данные примеры показывают, что происходит при различных значениях переменной $WhatIfPreference. Также примеры показывают, как использовать параметр WhatIf командлета, чтобы переопределить значение переменной для определенной команды. Этот пример показывает, что произойдет, если задано значение по умолчанию "0" (действие не включено). PS> $whatifpreference 0 # Проверка текущего значения. PS> get-childitem test.txt | format-list FullName FullName : C:\test.txt # Проверка существования файла. PS> remove-item test.txt PS> # Удаление файла. PS> get-childitem test.txt | format-list -property FullName # Проверка удаления файла. Get-ChildItem : Не удается найти путь "C:\test.txt", так как он не существует. В строке:1 знак:14 + get-childitem < test.txt | format-list fullname Этот пример показывает результат применения параметра WhatIf, когда переменная $WhatIfPreference имеет значение 0. PS> get-childitem test2.txt | format-list -property FullName FullName : C:\test2.txt # Проверка существования файла. PS> remove-item test2.txt -whatif What if: Выполнение операции "Удаление файла" над целевым объектом "C:\test2.txt". # Используется параметр WhatIf PS> get-childitem test2.txt | format-list -property FullName FullName : C:\test2.txt # Проверка, что файл не был удален Этот пример показывает, что произойдет при значении переменной "1" (действие WhatIf включено). При использовании командлета Remove-Item для удаления файла, командлет Remove-Item отображает путь к удаляемому файлу, но не удаляет файл. PS> $whatifpreference = 1 PS> $whatifpreference 1 # Значение изменяется. PS> remove-item test.txt What if: Выполнение операции "Удаление файла" над целевым объектом "C:\test.txt". # Попытка удалить файл. PS> get-childitem test.txt | format-list FullName FullName : C:\test.txt # Проверка существования файла. Этот пример показывает, как удалить файл, если переменная $WhatIfPreference имеет значение 1. Для этого следует использовать параметр WhatIf со значением $false. PS> remove-item test.txt -whatif:$false # Используется параметр WhatIf со значени ем $false. Этот пример показывает, что не все командлеты поддерживают поведение WhatIf. В этом примере значение переменной $WhatIfPreference равно 1 (включено), выполняется команда Get-Process, которая не поддерживает действие WhatIf, но команда Stop-Process выполняет действие WhatIf. Поведение WhatIf команды Stop-Process можно переопределить при помощи параметра WhatIf со значением $false. PS> $whatifpreference = 1 # Значение изменяется на "1" PS> get-process winword # Происходит выполнение команды Get-Process . Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessNa me ------- ------ ----- ----- ----- ------ -- --------- -- 234 8 6324 15060 154 0.36 2312 WINWORD PS> stop-process -name winword What if: Выполнение операции "Stop-Process" над целевым объектом "WI NWORD (2312)". # Команда Stop-Process использует поведение WhatIf. PS> stop-process -name winword -whatif:$false PS> # Параметр WhatIf:$false переопределяет пов едение. PS> get-process winword Get-Process : Не удается найти процесс с именем winword. Убедитесь, что имя процесса введено правильно, и повторите вызов ком андлета. В строке:1 знак:12 + get-process < winword # Проверка, что процесс остановлен. СМ. ТАКЖЕ about_Automatic_Variables about_CommonParameters about_Environment_Variables about_Profiles about_Remote about_Scopes about_Variables about_profiles РАЗДЕЛ about_Profiles КРАТКОЕ ОПИСАНИЕ Содержит описание, как создавать и использовать профиль Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Создав профиль Windows PowerShell, вы получаете возможность настраивать окружение и добавлять специфичные для сеанса элементы в каждый создаваемый сеанс. Профиль Windows PowerShell - скрипт, который выполняется в момент запуска Windows PowerShell. Можно использовать профиль в качестве скрипта, выполняемого при входе в систему, для настройки окружения. Можно добавлять команды, псевдонимы, функции, значения, оснастки, модули и диски Windows PowerShell. Также можно добавлять в профиль другие специфичные для сеанса элементы, тогда они будут доступны в каждом сеансе и не будет необходимости их импортировать или создавать заново. Windows PowerShell поддерживает несколько профилей для пользователей и ведущих программ. Однако PowerShell не создает профили. В этом разделе описаны профили; также рассказано, как создавать и обслуживать профили на компьютере. Здесь объясняется, как использовать параметр NoProfile консоли Windows PowerShell (PowerShell.exe) для запуска Windows PowerShell без профиля. Кроме того, описан результат действия политики выполнения Windows PowerShell применительно к профилям. ФАЙЛЫ ПРОФИЛЕЙ Windows PowerShell поддерживает несколько файлов профилей. Кроме того, ведущие приложения Windows PowerShell могут поддерживать собственные профили, специфичные для приложения. Например, консоль Windows PowerShell поддерживает следующие файлы основного профиля. Ниже они указаны в порядке приоритета. Первый профиль имеет наивысший приоритет. Описание Путь ----------- ---- Текущий пользователь, $Home\[My ]Documents\WindowsPowerShell\Profi le.ps1 текущее ведущее приложение Текущий пользователь, $Home\[My ]Documents\Profile.ps1 все ведущие приложения Все пользователи, $PsHome\Microsoft.PowerShell_profile.ps1 текущее ведущее приложение Все пользователи, все $PsHome\Profile.ps1 ведущие приложения Пути к профилям могут включать следующие переменные: - Переменная $PsHome, в которой хранится путь к каталогу установки Windows PowerShell. - Переменная $Home, в которой хранится путь к домашнему каталогу текущего пользователя. Кроме того, другие ведущие приложения Windows PowerShell могут поддерживать собственные профили. Например, интегрированная среда скриптов (ISE) Windows PowerShell поддерживает следующие специфичные для ведущего приложения профили. Описание Путь ----------- ----- Текущий пользователь, $Home\[My ]Documents\WindowsPowerShell\Micro soft.PowerShellISE_profile.ps1 текущее ведущее приложение Все пользователи, $PsHome\Microsoft.PowerShellISE_profile.ps1 текущее ведущее приложение В справке Windows PowerShell профиль "Текущий пользователь, текущее ведущее приложение" наиболее часто называется "вашим профилем Windows PowerShell". ПЕРЕМЕННАЯ $PROFILE Автоматическая переменная $Profile хранит путь к профилям Windows PowerShell, доступным в рамках текущего сеанса. Для просмотра пути к профилю следует отобразить значение переменной $Profile. Можно также использовать переменную $Profile в команде в качестве пути. В переменной $Profile хранится путь к профилю "Текущий пользователь, текущее ведущее приложение". Остальные профили хранятся в свойствах-примечаниях переменной $profile. Например, переменная $Profile в консоли Windows PowerShell имеет следующие значения. Name Описание ----------- ----------- $Profile Текущий пользователь, текущее ведущее приложение $Profile.CurrentUserCurrentHost Текущий пользователь, текущее ведущее приложение $Profile.CurrentUserAllHosts Текущий пользователь, все ведущие приложения $Profile.AllUsersCurrentHost Все пользователи, текущее ведущее приложение $Profile.AllUsersAllHosts Все пользователи, все ведущие приложения Поскольку значения переменной $Profile отличаются для разных пользователей и для различных ведущих приложений, убедитесь, что вы отображаете значения переменных профиля для каждого ведущего приложения Windows PowerShell, которое используется. Чтобы просмотреть текущие значения переменной $Profile, введите следующее: $profile | get-member -type noteproperty Переменную $Profile можно использовать во множестве команд. Например, следующая команда открывает профиль "Текущий пользователь, текущее ведущее приложение" в приложении Блокнот: notepad $profile Следующая команда определяет, был ли на локальном компьютере создан профиль "Все пользователи, все ведущие приложения": test-path $profile.AllUsersAllHosts СОЗДАНИЕ ПРОФИЛЯ Для создания профиля Windows PowerShell используется следующий формат команды: if ((test-path <имя_профиля>)) {new-item -type file -path <имя_профиля> -force} Например, для создания профиля текущего пользователя в текущем ведущем приложении Windows PowerShell используется следующая команда: if ((test-path $profile)) {new-item -type file -path $profile -force} В этой команде инструкция If предотвращает перезапись существующего профиля. Замените значение заполнителя <путь_к_профилю> путем к файлу профиля, который требуется создать. Примечание. Для создания профилей "Все пользователи" в Windows Vista и более поздних версиях Windows необходимо запускать Windows PowerShell командой "Запуск от имени администратора". РЕДАКТИРОВАНИЕ ПРОФИЛЯ Любой профиль Windows PowerShell можно открыть в текстовом редакторе, например в программе Блокнот. Чтобы открыть профиль текущего пользователя в текущем ведущем приложении Windows PowerShell в программе Блокнот, необходимо ввести команду: notepad $profile Чтобы открыть другие профили, необходимо указать имя профиля. Например, чтобы открыть профиль для всех пользователей и всех ведущих приложений, необходимо ввести команду: notepad $profile.AllUsersAllHosts Чтобы применить изменения, нужно сохранить файл профиля, а затем перезапустить Windows PowerShell. ВЫБОР ПРОФИЛЯ При использовании нескольких ведущих приложений поместите элементы, используемые во всех ведущих приложениях, в профиль $Profile.CurrentUserAllHosts (текущий пользователь, все ведущие приложения). Поместите элементы, специфичные для ведущего приложения, например команды, задающие фоновый цвет ведущего приложения, в профиль для данного ведущего приложения. Администратору, настраивающему Windows PowerShell для многих пользователей, нужно соблюдать следующие правила. -- Хранить общие элементы в профиле $profile.AllUsersAllHosts (все пользователи, все ведущие приложения). -- Хранить элементы, специфичные для ведущего приложения в профилях $profile.AllUsersCurrentHost (все пользователи, текущее ведущее приложение). -- Хранить элементы для определенных пользователей в профилях, специфичных для пользователя. Необходимо проверить документацию ведущего приложения, на случай если в приложении работа с профилями Windows PowerShell реализована специальным образом. ИСПОЛЬЗОВАНИЕ ПРОФИЛЕЙ Многие элементы, которые создаются в Windows PowerShell, и большинство выполняемых пользователем команд действуют только в пределах текущего сеанса. Когда сеанс завершается, элементы уничтожаются. Команды и элементы, специфичные для сеанса, включают в себя переменные, привилегированные переменные, псевдонимы, функции, команды (за исключением Set-ExecutionPolicy) и оснастки Windows PowerShell, добавляемые к сеансу. Для сохранения этих элементов и обеспечения их доступности в будущих сеансах их нужно добавить в профиль Windows PowerShell. Другое распространенное использование профилей - сохранение часто используемых функций, псевдонимов и переменных. После сохранения элементов в профиле их можно использовать во время любого сеанса, к которому применен этот профиль, не создавая их заново. С ЧЕГО НАЧАТЬ СОЗДАНИЕ ПРОФИЛЯ? Когда вы впервые открываете файл профиля, он пуст. Однако его можно заполнить переменными, псевдонимами и командами, которыми вы часто пользуетесь. Ниже приведено несколько советов, с чего начать. -- Добавьте команду, облегчающую открытие профиля. Это особенно полезно, если вы используете профиль, отличный от профиля "Текущий пользователь, текущее ведущее приложение". Например, добавьте следующую команду: function pro {notepad $profile.CurrentUserAllHosts} -- Добавьте функцию, открывающую справку Windows PowerShell в виде скомпилированного файла справки HTML (.chm). function Get-CHM { (invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm ) } Эта функция открывает английскую версию файла .chm. Однако вы можете заменить код языка (0409) и открыть другую версию файла .chm. -- Добавьте функцию, перечисляющую псевдонимы какого-либо командлета. function Get-CmdletAlias ($cmdletname) { get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Defi nition, Name -auto } -- Добавьте команду Add-PsSnapin для добавления оснасток Windows PowerShell , которыми вы пользуетесь. -- Настройте консоль. function Color-Console { $host.ui.rawui.backgroundcolor = "white" $host.ui.rawui.foregroundcolor = "black" $hosttime = (dir $pshome\powershell.exe).creationtime $Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ( $hosttime)" clear-host } Color-console -- Добавьте настроенное приглашение командной строки Windows PowerShell, включающее имя компьютера и текущий путь. function prompt { $env:computername + "\" + (get-location) + "> " } Дополнительные сведения о приглашении командной строки Windows PowerShell см в разделе about_Prompts. ПАРАМЕТР NOPROFILE Для запуска Windows PowerShell без профиля используйте параметр NoProfile программы PowerShell.exe, запускающей Windows PowerShell. Для начала откройте программу, которая может запустить Windows PowerShell, например Cmd.exe или саму программу Windows PowerShell. Также можно использовать диалоговое окно Run в Windows. Введите следующую команду: powershell -noprofile Чтобы вывести полный список параметров программы PowerShell.exe, введите следующую команду: powershell -? ПРОФИЛИ И ПОЛИТИКА ВЫПОЛНЕНИЯ Политика выполнения Windows PowerShell отчасти определяет, можно ли выполнять скрипты и загружать файлы конфигурации, в том числе профили. Политика выполнения по умолчанию - Restricted. Она запрещает выполнение скриптов, в том числе профилей. При использовании политики Restricted профиль не запускается и его содержимое не применяется. Команда Set-ExecutionPolicy задает и изменяет политику выполнения. Это одна из немногих команд, которая распространяется на все сеансы Windows PowerShell, так как значение сохраняется в реестре. Нет необходимости задавать значение при открытии консоли и не нужно сохранять команду Set-ExecutionPolicy в вашем профиле. ПРОФИЛИ И УДАЛЕННЫЕ СЕАНСЫ Профили Windows PowerShell не запускаются автоматически в удаленных сеансах, поэтому команды, добавленные профилями, отсутствуют в удаленном сеансе. Кроме того, автоматическая переменная $profile не заполняется в удаленных сеансах. Чтобы запустить профиль в сеансе, используйте командлет Invoke-Command. Например, следующая команда запускает профиль CurrentUserCurrentHo st с локального компьютера в сеансе в $s. invoke-command -session $s -filepath $profile Следующая команда запускает профиль CurrentUserCurrentHost с удаленного компьютера в сеансе в $s. Так как переменная $profile не заполнена, команда использует явный путь к профилю. invoke-command -session $s {invoke-expression "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"} После выполнения этой команды все команды, добавляемые профилем в сеанс, доступны в $s. СМ. ТАКЖЕ about_Automatic_Variables about_Functions about_Prompts about_Execution_Policies about_Signing about_Remote Set-ExecutionPolicy about_prompts РАЗДЕЛ about_Prompts КРАТКОЕ ОПИСАНИЕ Описывает функцию Prompt и показывает, как создать пользовательску ю функцию Prompt. ПОЛНОЕ ОПИСАНИЕ Командная строка Windows PowerShell показывает, что среда Windows PowerShell готова к выполнению команд: PS C:\> Приглашение Windows PowerShell определяется функцией Prompt. Можно настроить приглашение, создав собственную функцию Prompt. Затем функцию можно сохранить в профиле Windows PowerShell. Функция Prompt Функция Prompt определяет внешний вид приглашения Windows PowerShell. Windows PowerShell поставляется со встроенной функцией Prompt, но вы можете переопределить ее, определив собственную функцию Prompt. Функция Prompt имеет следующий синтаксис: function prompt { <тело_функции> } Функция Prompt должна возвращать объект, как правило строку. Рекомендуется, чтобы она возвращала строку или объект, форматированный как строка. Строка не должна превышать длиной 80 символов. Пример: PS C:\> function prompt {"Hello, World > "} Hello, World Как все функции, функция Prompt хранится на диске Function:. Для просмотра кода текущей функции Prompt введите следующую команду: (get-item function:prompt).definition Эта команда использует командлет Get-Item для отображения элемента Prompt на диске Function:. Затем используется точка для отображения значения свойства Definition функции Prompt. Приглашение по умолчанию Приглашение Windows PowerShell по умолчанию: PS> Такое приглашение отображается только в том случае, если функция Prompt выдает ошибку или не возвращает строку или объект. PS C:\> function prompt {$null} PS> Поскольку Windows PowerShell поставляется со встроенным приглашением, пользователь обычно не видит приглашение по умолчанию до тех пор, пока не начинает писать собственную функцию приглашения. Встроенное приглашение Windows PowerShell имеет встроенную функцию Prompt, которая создает привычное приглашение. Эта встроенная функция выглядит так: function prompt { $(if (test-path variable:/PSDebugContext) { '[DBG]: ' } else { '' }) + 'PS ' + $(Get-Location) ` + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> ' } Функция использует командлет Test-Path, чтобы выяснить, определена ли автоматическая переменная $PSDebugContext. Если переменная $PSDebugContext определена, пользователь находится в режиме отладки, и символы "[DBG]" добавляются к приглашению, как в следующем примере: [DBG] PS C:\ps-test> Если переменная $PSDebugContext не определена, функция добавляет к приглашению символы "PS". Также функция использует командлет Get-Location для получения текущего местоположения каталога файловой системы. Затем она добавляет правую угловую скобку (>). Пример: PS C:\ps-test> Если вы находитесь во вложенной командной строке, функция добавляет две угловые скобки (>>) к приглашению. (Вы находитесь во вложенной командной строке, если значение автоматической переменной $NestedPromptLevel больше 1.) Например, если вы отлаживаете во вложенной командной строке, приглашение будет примерно таким: [DBG] PS C:\ps-test>>> Командлет Enter-PSSession предваряет результат работы текущей функции Prompt именем удаленного компьютера. Когда вы пользуетесь командлетом Enter-PSSession, чтобы начать сеанс работы с удаленным компьютером, приглашение командной строки меняется, включая в себя имя удаленного компьютера. Пример: PS Hello, World> Enter-PSSession Server01 [Server01]: PS Hello, World> Другие ведущие приложения Windows PowerShell и альтернативные оболочки могут иметь собственные настраиваемые приглашения командной строки. Дополнительные сведения об автоматических переменных $PSDebugContext и $NestedPromptLevel см. в разделе about_Automatic_Variables. Настройка приглашения командной строки Чтобы изменить приглашение, нужно написать новую функцию Prompt. Эта функция не является защищенной, таким образом, вы можете перезаписать ее. Чтобы написать функцию приглашения, нужно ввести следующее: function prompt { } Затем введите между фигурными скобками команду или строку, создающую ваше приглашение. Например, следующее приглашение включает имя вашего компьютера: function prompt {"PS [$env:COMPUTERNAME]> "} На компьютере с именем Server01 приглашение будет напоминать следующее: PS [Server01] > Включить текущую дату и время можно с помощью следующей функции приглашения: function prompt {"$(get-date)> "} Приглашение будет напоминать следующее: 01/01/2008 17:49:47> Вы также можете изменить функцию Prompt по умолчанию: function prompt { $(if (test-path variable:/PSDebugContext) { '[DBG]: ' } else { '' }) + "$(get-date)" ` + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> ' } Например, следующая измененная функция Prompt добавляет "[ADMIN]:" к встроенному приглашению Windows PowerShell, в случае если Windows PowerShell запускается командой "Запуск от имени администратора": function prompt { $identity = [Security.Principal.WindowsIdentity]::GetCurrent() $principal = [Security.Principal.WindowsPrincipal] $identity $(if (test-path variable:/PSDebugContext) { '[DBG]: ' } elseif($principal.IsInRole([Security.Principal.WindowsBuiltInRole ] "Administrator")) { "[ADMIN]: " } else { '' }) + 'PS ' + $(Get-Location) + $(if ($nestedpromptlevel -ge 1) { '>>' }) + '> ' } Если Windows PowerShell запускается командой "Запуск от имени администратора", приглашение будет напоминать следующее: [ADMIN]: PS C:\ps-test> Следующая функция Prompt показывает идентификатор записи следующей команды. Для получения журнала команд используется командлет Get-History. function prompt { # The at sign creates an array in case only one history item exist s. $history = @(get-history) if($history.Count -gt 0) { $lastItem = $history[$history.Count - 1] $lastId = $lastItem.Id } $nextCommand = $lastId + 1 $currentDirectory = get-location "PS: $nextCommand $currentDirectory >" } Следующая строка использует командлеты Write-Host и Get-Random для создания приглашения, изменяющего цвет случайным образом. Поскольку командлет Write-Host выводит данные в текущее ведущее приложение, не возвращая объект, эта функция включает инструкцию Return. Без нее среда Windows PowerShell использует приглашение по умолчанию: "PS>". function prompt { $color = get-random -min 1 -max 16 write-host ("PS " + $(get-location) +">") -nonewline -foregroundc olor $color return " " } Сохранение приглашения Как любая функция, функция Prompt применяется только к текущему сеансу работы. Чтобы сохранить функцию Prompt для будущих сеансов, добавьте ее в ваш профиль Windows PowerShell. Дополнительные сведения о профилях см. в разделе about_Profiles. СМ. ТАКЖЕ Get-Location Enter-PSSession Get-History Get-Random Write-Host about_Profiles about_Functions about_Scopes about_Debuggers about_Automatic_Variables about_properties РАЗДЕЛ about_Properties КРАТКОЕ ОПИСАНИЕ Содержит описание использования свойств объектов в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В Windows PowerShell используются структурированные наборы данных, называемые объектами, для представления элементов в хранилищах данных или состояния компьютера. Чаще всего вы работаете с объектами, которые являются частью инфраструктуры Microsoft .NET Framework, но также можете создавать пользовательские объекты в Windows PowerShell. Связь между элементом и его объектом очень тесная. При изменении объекта изменяется и представляемый им элемент. Например, получая файл в Windows PowerShell, вы получаете не сам файл. Вы получаете объект FileInfo, который представляет файл. Когда изменяется объект FileInfo, файл также изменяется. Большинство объектов имеет свойства. Свойства - это данные, связанные с объектом. Эти данные описывают объект. Например, объект FileInfo имеет свойство Length, описывающее размер файла, представленного объектом. Свойства объектов Чтобы вывести список свойств объекта, используйте командлет Get-Member. Например, чтобы получить список свойств объекта FileInfo, используйте командлет Get-ChildItem для получения объекта FileInfo, представляющего файл. Затем с помощью оператора конвейера (|) передайте объект FileInfo командлету Get-Member. Следующая команда получает файл PowerShell.exe и отправляет его командлету Get-Member. Автоматическая переменная $Pshome содержит путь к каталогу установки Windows PowerShell. get-childitem $pshome\powershell.exe | get-member В выходных данных команды содержатся элементы объекта FileInfo. Элементы включают как свойства, так и методы. Работая в Windows PowerShell, вы имеете доступ ко всем элементам объектов. Чтобы вывести только свойства объекта, но не методы, используйте параметр MemberType командлета Get-Member со значением "property", как показано в следующем примере. get-childitem $pshome\powershell.exe | get-member -membertype property TypeName: System.IO.FileInfo Name MemberType Definition ---- ---------- ---------- Attributes Property System.IO.FileAttributes Attributes {get; set;} CreationTime Property System.DateTime CreationTime {get;set;} CreationTimeUtc Property System.DateTime CreationTimeUtc {get;set; } Directory Property System.IO.DirectoryInfo Directory {get;} DirectoryName Property System.String DirectoryName {get;} Exists Property System.Boolean Exists {get;} Extension Property System.String Extension {get;} FullName Property System.String FullName {get;} IsReadOnly Property System.Boolean IsReadOnly {get;set;} LastAccessTime Property System.DateTime LastAccessTime {get;set;} LastAccessTimeUtc Property System.DateTime LastAccessTimeUtc {get;se t;} LastWriteTime Property System.DateTime LastWriteTime {get;set;} LastWriteTimeUtc Property System.DateTime LastWriteTimeUtc {get;set Length Property System.Int64 Length {get;} Name Property System.String Name {get;} Узнав о свойствах, вы можете применить их в командах Windows PowerShell. Значения свойств Все объекты определенного типа имеют одинаковые свойства, но значения свойств описывают конкретный объект. Например, каждый объект FileInfo имеет свойство CreationTime, но значение этого свойства различно для каждого файла. Самый простой способ получить значения свойств объекта - использовать метод точки. Укажите объект. Например, введите переменную, содержащую объект, или команду, которая получает этот объект. Затем введите точку (.) и имя свойства. Например, следующая команда отобразит значение свойства CreationTime файла PowerShell.exe. Команда Get-ChildItem возвращает объект FileInfo, представляющий файл PowerShell.exe. Команда заключена в скобки, чтобы гарантировать ее выполнение до того, как будет получен доступ к какому-либо свойству. За командой Get-ChildItem следует точка и имя свойства CreationTime: C:\PS> (Get-ChildItem $pshome\powershell.exe).creationtime Вторник, 18 марта 2008 г., 0:07:52 Также можно сохранить объект в переменной и затем извлечь его свойства при помощи метода точки, как показано в следующем примере: C:\PS> $a = Get-ChildItem $pshome\powershell.exe C:\PS> $a.CreationTime Вторник, 18 марта 2008 г., 0:07:52 Также можно использовать командлеты Select-Object и Format-List для отображения значений свойств объекта. Командлеты Select-Object и Format-List оба имеют параметр Property. При помощи параметра Property можно задать одно или более свойств и их значения. Либо можно использовать подстановочный знак (*) для обозначения всех свойств. Например, следующая команда отобразит значения всех свойств файла PowerShell.exe. C:\PS> Get-ChildItem $pshome\powershell.exe | Format-List -property * PSPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\s ystem32\WindowsPowerShell\v1.0\powershell.exe PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\Windows\s ystem32\WindowsPowerShell\v1.0 PSChildName : powershell.exe PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False VersionInfo : File: C:\Windows\system32\WindowsPower Shell\v1.0\powershell.exe InternalName: POWERSHELL OriginalFilename: PowerShell.EXE.MUI File Version: 6.1.6570.1 (fbl_srv_powershell( nigels).070711-0102) FileDescription: PowerShell.EXE Product: Microsoft® Windows® Operating Sy stem ProductVersion: 6.1.6570.1 Debug: False Patched: False PreRelease: False PrivateBuild: True SpecialBuild: False Language: English (United States) BaseName : powershell Mode : -a--- Name : powershell.exe Length : 160256 DirectoryName : C:\Windows\system32\WindowsPowerShell\v1.0 Directory : C:\Windows\system32\WindowsPowerShell\v1.0 IsReadOnly : False Exists : True FullName : C:\Windows\system32\WindowsPowerShell\v1.0\powersh ell.exe Extension : .exe CreationTime : 3/18/2008 12:07:52 AM CreationTimeUtc : 3/18/2008 7:07:52 AM LastAccessTime : 3/19/2008 8:13:58 AM LastAccessTimeUtc : 3/19/2008 3:13:58 PM LastWriteTime : 3/18/2008 12:07:52 AM LastWriteTimeUtc : 3/18/2008 7:07:52 AM Attributes : Archive СМ. ТАКЖЕ about_Objects Get-Member Select-Object Format-List about_providers РАЗДЕЛ about_Providers КРАТКОЕ ОПИСАНИЕ Описание принципов, по которым поставщики Windows PowerShell обеспечивают доступ к данным и компонентам, труднодоступным через командную строку без их использования. Данные представляются поставщиками в согласованном формате, напоминающем формат файловой системы диска. ПОЛНОЕ ОПИСАНИЕ Поставщики Windows PowerShell - это программы на базе Microsoft .NET Framework, предоставляющие пользователям Windows PowerShell доступ к данным, содержащимся в специализированных хранилищах, что позволяет просматривать эти данные и управлять ими. Предоставляемые поставщиком данные доступны в виде диска, и доступ к требуемому пути осуществляется в точности как для жесткого диска. Для управления данными на диске поставщика можно использовать любые встроенные командлеты, поддерживаемые этим поставщиком. Кроме того, можно использовать пользовательские командлеты, разработанные специально для данных. Кроме того, поставщики могут добавлять динамические параметры во встроенные командлеты. Эти параметры доступны только при использовании командлета с данными поставщика. ВСТРОЕННЫЕ ПОСТАВЩИКИ Windows PowerShell включает ряд встроенных поставщиков, которые можно использовать для доступа к различным хранилищам данных. Поставщик Диск Хранилище данных ----------- ------ ------------------------------------------ Alias Alias: Псевдонимы Windows PowerShell Certificate Cert: Сертификаты x509 для цифровых подписей Environment Env: Переменные среды Windows FileSystem * Файлы, каталоги и диски файловой системы Function Function: Функции Windows PowerShell Registry HKLM:, HKCU: Реестр Windows Variable Variable: Переменные Windows PowerShell WS-Management WSMan Конфигурационная информация WS-Management * Диски FileSystem различаются для каждой из систем. Кроме того, можно создавать собственные поставщики Windows PowerShell и устанавливать поставщики, созданные другими разработчиками. Чтобы вывести список поставщиков, доступных в текущем сеансе, введите следующую команду: get-psprovider УСТАНОВКА И УДАЛЕНИЕ ПОСТАВЩИКОВ Поставщики Windows PowerShell распространяются в оснастках Windows PowerShell - программах на базе .NET Framework, скомпилированных в файлы DLL. Оснастки могут содержать поставщики и командлеты. Перед использованием функций поставщика необходимо установить оснастку и добавить ее в сеанс Windows PowerShell. Дополнительные сведения см. в разделе about_PsSnapins. Удалить поставщик нельзя, однако можно удалить из текущего сеанса оснастку Windows PowerShell, в которой он содержится. При этом удаляется все содержимое оснастки, включая командлеты. Для удаления поставщика из текущего сеанса используется командлет Remove-PsSnapin. При выполнении этого командлета поставщик не удаляется, но становится недоступным в текущем сеансе. Кроме того, с помощью командлета Remove-PsDrive можно удалить любой диск из текущего сеанса. На хранящиеся на диске данные это никак не влияет, но диск становится недоступен в текущем сеансе. ПРОСМОТР ПОСТАВЩИКОВ Чтобы просмотреть список имеющихся на компьютере поставщиков Windows PowerShell, введите следующую команду: get-psprovider В результате выводится список встроенных поставщиков, а также добавленных в текущий сеанс. КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ С ПОСТАВЩИКАМИ Следующие командлеты предназначены для работы с данными, предоставляемыми любым поставщиком. Можно использовать одни и те же командлеты одинаковыми способами для управления различными типами данных, предоставляемых поставщиками. Научившись управлять данными одного поставщик а, можно управлять данными любых других поставщиков аналогичными способами. Например, командлет New-Item создает новый элемент. На диске C:, поддерживаемом поставщиком FileSystem, с помощью командлета New-Item можно создать файл или папку. На дисках, поддерживаемых поставщиком Registry, с помощью командлета New-Item можно создать новый раздел реестра. На диске Alias: с помощью командлета New-Item можно создать новый псевдоним. Подробные сведения о любом из следующих командлетов можно вывести с помощью следующей команды: get-help <имя_командлета> -detailed КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ С ДОЧЕРНИМИ ЭЛЕМЕНТАМИ Get-ChildItem КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ С СОДЕРЖИМЫМ Add-Content Clear-Content Get-Content Set-Content КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ С ЭЛЕМЕНТАМИ Clear-Item Copy-Item Get-Item Invoke-Item Move-Item New-Item Remove-Item Rename-Item Set-Item КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ СО СВОЙСТВАМИ ЭЛЕМЕНТОВ Clear-ItemProperty Copy-ItemProperty Get-ItemProperty Move-ItemProperty New-ItemProperty Remove-ItemProperty Rename-ItemProperty Set-ItemProperty КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ С РАСПОЛОЖЕНИЕМ Get-Location Pop-Location Push-Location Set-Location КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ С ПУТЯМИ Join-Path Convert-Path Split-Path Resolve-Path Test-Path КОМАНДЛЕТЫ ДЛЯ ОПЕРАЦИЙ С ДИСКАМИ POWERSHELL Get-PSDrive New-PSDrive Remove-PSDrive КОМАНДЛЕТ ДЛЯ ОПЕРАЦИЙ С ПОСТАВЩИКАМИ POWERSHELL Get-PSProvider ПРОСМОТР ДАННЫХ, ПРЕДЛАГАЕМЫХ ПОСТАВЩИКАМИ Главное достоинство поставщиков заключается в том, что они обеспечивают доступ к данным привычным согласованным образом. Используемая при этом модель представления данных основана на дисках файловой системы. Предлагаемые поставщиком данные можно просматривать и изменять так, как если бы они хранились на жестком диске. Таким образом, самой важной информацией о поставщике является имя поддерживаемого им диска. Имя этого диска выводится командлетом Get-PsProvider по умолчанию, однако сведения о диске поставщика можно получить с помощью командлета Get-PsDrive. Например, чтобы получить все свойства диска Function:, введите следующую команду: get-psdrive Function | format-list * Просматривать предлагаемые поставщиком данные и перемещаться между ними можно так же, как если бы они хранились на диске файловой системы. Для просмотра содержимого диска поставщика используется командлет Get-Item или Get-ChildItem. При этом вводится имя диска и двоеточие (:). Например, чтобы просмотреть содержимое диска Alias:, введите следующую команду: get-item alias: Для просмотра данных и управления ими с другого диска включите в путь имя нужного диска. Например, чтобы просмотреть раздел реестра HKLM\Software на диске HKLM: из другого диска, введите следующую команду: get-childitem hklm:\software Чтобы открыть этот диск, воспользуйтесь командлетом Set-Location. При вводе пути к диску не забывайте указывать двоеточие. Например, чтобы задать в качестве текущего местоположения корневой каталог диска Cert:, введите следующую команду: set-location cert: Чтобы просмотреть содержимое диска Cert:, введите следующую команду: get-childitem ПЕРЕМЕЩЕНИЕ ПО ИЕРАРХИЧЕСКИМ ДАННЫМ Перемещаться по диску поставщика можно так же, как по жесткому диску. Если данные организованы в виде иерархии элементов, дочерние элементы указываются с помощью обратной косой черты (\). Используйте следующий формат: drive:\location\child-location\... Например, чтобы задать в качестве текущего местоположения раздел реестра HKLM\Software, используйте команду Set-Location следующим образом: set-location hklm:\software Можно также использовать относительные ссылки на местоположения. Текущее местоположение обозначается точкой (.). Например, если текущим местоположением является раздел реестра HKLM:\Software\Microsoft и требуется вывести список подразделов раздела HKLM:\Software\Micrsoft\P owerShell, введите следующую команду: get-childitem .\powershell ПОИСК ДИНАМИЧЕСКИХ ПАРАМЕТРОВ Динамические параметры - это параметры командлета, добавленные поставщиком. Эти параметры доступны только при использовании командлета с поставщиком, из которого они добавлены. Например, диск Cert: добавляет параметр CodeSigningCert для командлетов Get-Item и Get-ChildItem. Этот параметр доступен только при использовании командлета Get-Item или Get-ChildItem с диском Cert:. Чтобы получить список динамических параметров, поддерживаемых поставщиком, обратитесь к файлу справки поставщика. Для этого введите следующую команду: get-help <имя_поставщика> Пример: get-help certificate ПОЛУЧЕНИЕ ИНФОРМАЦИИ О ПОСТАВЩИКАХ Все данные поставщиков представляются в виде дисков, и по ним можно перемещаться как по дискам, однако на этом сходство заканчивается. Хранилища данных, доступ к которым обеспечивает поставщик, могут быть самыми разными: от каталогов Active Directory до почтовых ящиков Microsoft Exchange Server. Чтобы получить сведения об отдельных поставщиках Windows PowerShell, введите следующую команду: get-help <имя_поставщика> Пример: get-help registry Чтобы вывести список разделов справки о поставщиках, введите следующую команду: get-help * -category provider СМ. ТАКЖЕ about_Locations about_Path_Syntax about_pssession_details РАЗДЕЛ about_PSSession_Details КРАТКОЕ ОПИСАНИЕ Предоставляет подробное описание сеансов Windows PowerShell и их роли в работе с удаленными командами. ПОЛНОЕ ОПИСАНИЕ Сеанс - это среда, в которой работает Windows PowerShell. Сеанс создается при каждом запуске Windows PowerShell, пользователь может создавать дополнительные сеансы, называемые "сеансы Windows PowerShell" или "PSSessions" на своем компьютере или на другом компьютере. В отличие от сеансов, которые создает Windows PowerShell, сеансы PSSessions, которые создает пользователь, контролируются и управляются пользователем. Сеансы PSSession играют важную роль для удаленной работы. При создании сеанса PSSession, подключенного к удаленному компьютеру, Windows PowerShell устанавливает постоянное подключение к удаленному компьютеру для поддержки PSSession. PSSession можно использовать для запуска ряда команд, функций и скриптов, использующих данные совместно. Этот раздел содержит подробные сведения об обычных сеансах и сеансах PSSession в Windows PowerShell. Основные сведения о задачах, которые можно выполнять при помощи сеансов, см. в разделе about_PSSessions. СЕАНСЫ Технически сеанс - это среда выполнения, в которой работает Windows PowerShell. Каждый сеанс включает в себя экземпляр обработчика System.Management.Automation и ведущую программу, в которой выполняется Windows PowerShell. Ведущей программой может быть привычная консоль Windows PowerShell или другая программа, выполняющая команды, например Cmd.exe, или программа, построенная, чтобы быть ведущей программой Windows PowerShell, например интегрированная среда скриптов (ISE) Windows PowerShell. С точки зрения Windows сеанс - это процесс Windows на конечном компьютере. Каждый сеанс настраивается независимо. Он имеет собственные свойства, политику выполнения и профили. Среда, существующая в момент создания сеанса, сохраняется в течение времени его существования, даже если изменить среду на компьютере. Все сеансы создаются в глобальной области, даже сеансы, создаваемые в скрипте. В рамках сеанса в один момент времени можно выполнять только одну команду (или командный конвейер). Вторая команда, запущенная синхронно с первой (по одной за раз), ожидает завершения первой команды до четырех минут. Вторая команда, запущенная асинхронно (одновременно), завершается с ошибкой. СЕАНСЫ PSSESSION Сеанс создается при каждом запуске Windows PowerShell. При этом Windows PowerShell создает временные сеансы для выполнения отдельных команд. Однако можно также создавать сеансы, называемые "сеансы Windows PowerShell" или "PSSessions", которые контролируются и управляются пользователем. Сеансы PSSession очень важны для выполнения удаленных команд. Если используется параметр ComputerName командлетов Invoke-Command или Enter- PSSession, Windows PowerShell создает временный сеанс для выполнения команды и закрывает сеанс, как только команда или интерактивный сеанс завершаются. Однако если используется командлет New-PSSession для создания PSSession, Windows PowerShell создает постоянный сеанс на удаленном компьютере, в котором можно выполнять множество команд или интерактивных сеансов. Созданные пользователем сеансы PSSession остаются открытыми и доступными для использования, пока пользователь не удалит их или не закроет сеанс, в котором они были созданы. При создании PSSession на удаленном компьютере система создает процесс PowerShell на удаленном компьютере и устанавливает соединение между локальным компьютером и этим процессом на удаленном компьютере. При создании PSSession на локальном компьютере и новый процесс, и соединения создаются на локальном компьютере. КОГДА ИСПОЛЬЗОВАТЬ PSSESSION? Командлеты Invoke-Command и Enter-PSSession имеют как параметр ComputerName, так и параметр Session. Для выполнения удаленной команды можно использовать любой из них. Для выполнения одной команды или последовательности несвязанных команд на одном или нескольких компьютерах следует использовать параметр ComputerName. Для выполнения команд, работающих с общими данными, необходимо постоянное подключение к удаленному компьютеру. В таком случае необходимо создать сеанс PSSession и использовать параметр Session для выполнения команд в сеансе PSSession. Многие другие командлеты, получающие данные от удаленных компьютеров, например Get-Process, Get-Service, Get-EventLog и Get-WmiObject, имеют только параметр ComputerName. Для удаленного сбора данных они используют технологии, отличные от удаленного взаимодействия Windows PowerShell. У этих командлетов нет параметра Session, но можно использовать командлет Invoke-Command для запуска этих командлетов в сеансе PSSession. КАК СОЗДАТЬ PSSESSION? Для создания сеанса PSSession используйте командлет New-PSSession. Командлет New-PSSession позволяет создавать PSSession на локальном или удаленном компьютере. МОЖНО ЛИ СОЗДАТЬ PSSESSION НА ЛЮБОМ КОМПЬЮТЕРЕ? Чтобы создать сеанс PSSession, подключенный к удаленному компьютеру, в Windows PowerShell для компьютера должно быть настроено удаленное взаимодействие. Текущий пользователь должен быть членом группы "Администраторы" на удаленном компьютере или иметь возможность предоставить учетные данные члена группы "Администраторы". Дополнительные сведения см. в разделе about_Remote_Requirements. МОЖЕТ ЛИ ПОЛЬЗОВАТЕЛЬ УВИДЕТЬ СЕАНСЫ PSSESSION, СОЗДАННЫЕ НА ЕГО КОМПЬЮТЕРЕ ДРУГИМИ ПОЛЬЗОВАТЕЛЯМИ? Нет. Пользователь может получать только сеансы PSSession, которые он создал в текущем сеансе, и управлять он может только этими сеансами. Нельзя увидеть сеансы PSSession, созданные другими пользователями, даже если они выполняют команды на локальном компьютере. МОЖНО ЛИ ВЫПОЛНЯТЬ ФОНОВЫЕ ЗАДАНИЯ В СЕАНСЕ PSSESSION? Да. Фоновое задание - это команда, которая выполняется асинхронно в фоновом режиме без взаимодействия с текущим сеансом. При отправке команды для запуска задания команда возвращает объект задания, но задание продолжает выполняться в фоновом режиме до своего завершения. Чтобы запустить фоновое задание на локальном компьютере, используйте команду Start-Job. Можно запустить фоновое задание в рамках временного подключения (при помощи параметра ComputerName) или в сеансе PSSession (при помощи параметра Session). Чтобы запустить фоновое задание на удаленном компьютере, используйте командлет Invoke-Command с параметром AsJob или используйте командлет Invoke-Command для выполнения команды Start-Job на удаленном компьютере. При использовании параметра AsJob можно использовать параметры ComputerName или Session. При использовании командлета Invoke-Command для запуска команды Start-Job необходимо запускать команду в сеансе PSSession. Если используется параметр ComputerName, Windows PowerShell завершает подключение, когда возвращается объект задания, и задание прерывается. Дополнительные сведения см. в разделе about_Jobs. МОЖНО ЛИ СОЗДАВАТЬ ИНТЕРАКТИВНЫЕ СЕАНСЫ? Да. Чтобы начать интерактивный сеанс с удаленным компьютером, используйте командлет Enter-PSSession. В рамках интерактивного сеанса вводимые команды выполняются на удаленном компьютере, как если бы они вводились непосредственно на удаленном компьютере. Можно запустить интерактивный сеанс в рамках временного сеанса (при помощи параметра ComputerName) или в сеансе PSSession (при помощи параметра Session). Если использовать PSSession, этот сеанс PSSession сохраняет данные предыдущих команд и все данные, созданные в рамках интерактивного сеанса, для использования в последующих командах. При завершении интерактивного сеанса сеанс PSSession остается открытым и доступным для использования. Чтобы получить дополнительные сведения, см. Enter-PSSession и Exit-PSSession. НУЖНО ЛИ УДАЛЯТЬ СЕАНСЫ PSSESSION? Да. PSSession является процессом, это самодостаточная среда, использующая память и другие ресурсы, даже когда находится в бездействии. Когда сеанс PSSession вам больше не нужен, удалите его. При создании нескольких сеансов PSSession следует закрывать те, что не используются, и оставлять только те, что используются в настоящий момент. Для удаления сеансов PSSession используется командлет Remove-PSSession. Он удаляет сеансы PSSession и освобождает все ресурсы, которые они использовали. Можно также использовать параметр TimeOut командлета New-PSSession, чтобы закрыть неиспользуемый сеанс PSSession после заданного интервала времени. Чтобы получить дополнительные сведения, см. New-PSSession. Если не удалить сеанс PSSession или не задать время ожидания, он останется открытым и доступным для использования, пока пользователь не закроет его, не закроет сеанс, в котором он был создан, или не выйдет из Windows PowerShell. Однако сеанс PSSession на удаленном компьютере будет отключен, если удаленный компьютер не отвечает в течение четырех минут. (Удаленный компьютер должен посылать контрольный сигнал каждые три минуты.) Если сохранить объект PSSession в переменной и затем удалить сеанс PSSession или позволить ему быть закрытым по истечении времени ожидания, переменная все еще будет содержать объект PSSession, но сеанс PSSession не активен, его нельзя использовать или восстановить. ВСЕ ЛИ ОБЫЧНЫЕ СЕАНСЫ И СЕАНСЫ PSSESSION ОДИНАКОВЫ? Нет. Разработчики могут создавать настраиваемые сеансы, включающие в себя только выбранные поставщики и командлеты. Если в одном сеансе команда работает, а в другом - нет, это может быть связано с ограничениями сеанса. СМ. ТАКЖЕ about_Jobs about_PSSessions about_Remote about_Remote_Requirements Invoke-Command New-PSSession Get-PSSession Remove-PSSession Enter-PSSession Exit-PSSession about_pssessions РАЗДЕЛ about_PSSessions КРАТКОЕ ОПИСАНИЕ Содержит описание сеансов Windows PowerShell (сеансы PSSession) и объяснение, как установить постоянное подключение к удаленному компьютеру. ПОЛНОЕ ОПИСАНИЕ Для выполнения команд Windows PowerShell на удаленном компьютере можно использовать параметр ComputerName командлета или создать сеанс Windows PowerShell (PSSession) и выполнять команды в сеансе PSSession. При создании сеанса PSSession Windows PowerShell создает постоянное подключение к удаленному компьютеру. Используйте сеанс PSSession для выполнения последовательности связанных команд на удаленном компьютере. Команды, выполняемые в рамках одного сеанса PSSession, могут совместно использовать данные, например значения переменных, псевдонимы и функции. Можно также создать сеанс PSSession на локальном компьютере и выполнять команды в нем. Локальный сеанс PSSession использует инфраструктуру удаленного взаимодействия Windows PowerShell для создания и обслуживания сеанса PSSession. В этом разделе описывается, как создавать, использовать, получать и удалять сеансы PSSession. Чтобы получить дополнительные сведения, см. раздел about_PSSession_Details. Примечание. Сеансы PSSession используют инфраструктуру удаленного взаимодействия Windows PowerShell. Чтобы можно было использовать сеансы PSSession, для локального и удаленного компьютеров должно быть настроено удаленное взаимодействие. Дополнительные сведения см. в разделе about_Remote_Requirements. Чтобы создать сеанс PSSession на локальном компьютере под управлением Windows Vista и более поздних версий Windows, необходимо запускать Windows PowerShell командой "Запуск от имени администратора". ЧТО ТАКОЕ СЕАНС? Сеанс - это среда, в которой работает Windows PowerShell. При каждом запуске Windows PowerShell создается сеанс, в котором можно выполнять команды. Можно также добавлять элементы в сеанс, например модули и оснастки, и создавать элементы, например переменные, функции и псевдонимы. Эти элементы будут существовать только в данном сеансе и будут удалены при завершении сеанса. Можно также создавать дополнительные сеансы, известные как "сеансы Windows PowerShell" или "PSSession", на локальном или удаленном компьютере. Как и в обычном сеансе, в PSSession можно выполнять команды, добавлять и создавать элементы для него. Но в отличие от сеанса, запущенного автоматически, пользователь может управлять созданными сеансами PSSession. Пользователь может получать, создавать, настраивать и удалять их; также можно запускать несколько команд в одном сеансе PSSession. Объект PSSession остается открытым и доступным для использования, пока пользователь не удалит его из сеанса. Обычно сеанс PSSession создается для выполнения последовательности связанных команд на удаленном компьютере. При создании PSSession на удаленном компьютере Windows PowerShell устанавливает постоянное подключение к удаленному компьютеру для поддержки этого сеанса. Если используется параметр computerName командлетов Invoke-Command или Enter-PSSession для запуска удаленной команды или создания интерактивного сеанса, Windows PowerShell создает временный сеанс на удаленном компьютере и закрывает его, как только команда или интерактивный сеанс завершаются. Временными сеансами нельзя управлять и нельзя использовать их более чем для одной команды или одного интерактивного сеанса. В Windows PowerShell "текущий сеанс" - это сеанс, в котором работает пользователь. Название "текущий сеанс" может относиться к любому сеансу, в том числе временному сеансу или сеансу PSSession. КОГДА ИСПОЛЬЗОВАТЬ СЕАНС PSSESSION? PSSession следует использовать, когда необходимо постоянное подключение к удаленному компьютеру. В сеансе PSSession можно выполнять несколько команд, совместно использующих данные, такие как значение переменных, содержимое функции или определение псевдонима. Удаленные команды можно выполнять, не создавая сеанс PSSession. Для выполнения одной команды или последовательности несвязанных команд на одном или нескольких компьютерах можно использовать параметр ComputerName командлетов, позволяющих удаленную работу. Когда используется параметр ComputerName командлетов Invoke-Expression или Enter-PSSession, Windows PowerShell устанавливает временное подключение к удаленному компьютеру и завершает подключение, как только команда завершает выполнение. Все созданные данные теряются при завершении соединения. Другие командлеты, у которых есть параметр ComputerName, например Get- Eventlog и Get-WmiObject, используют другие технологии удаленного взаимодействия для сбора данных. Ни один из них не создает постоянное подключение, как PSSession. СОЗДАНИЕ СЕАНСА PSSESSION Для создания сеанса PSSession используйте командлет New-PSSession. Чтобы создать сеанс PSSession на удаленном компьютере, используйте параметр ComputerName командлета New-PSSession. Например, следующая команда создает новый сеанс PSSession на компьютере Server01. new-pssession -computername Server01 При отправке команды командлет New-PSSession создает сеанс PSSession и возвращает объект, представляющий PSSession. При создании сеанса PSSession объект можно сохранить в переменной или использовать команду Get-PSSession, чтобы получить сеанс PSSession позже. Например, следующая команда создает новый сеанс PSSession на компьютере Server01 и сохраняет полученный объект в переменной $ps. $ps = new-pssession -computername Server01 СОЗДАНИЕ СЕАНСОВ PSSESSION НА НЕСКОЛЬКИХ КОМПЬЮТЕРАХ Чтобы создать сеансы PSSession на нескольких компьютерах, используйте параметр ComputerName командлета New-PSSession. Введите имена удаленных компьютеров в виде списка, разделенного запятыми. Например, чтобы создать сеансы PSSession на компьютерах Server01, Server02 и Server03, введите следующую строку: new-PSSession -computername Server01, Server02, Server03 Командлет New-PSSession создает один сеанс PSSession на каждом из удаленных компьютеров. ПОЛУЧЕНИЕ СЕАНСОВ PSSESSION Чтобы получить сеансы PSSession, созданные в текущем сеансе, используйте командлет Get-PSSession. Командлет Get-PSSession возвращает тот же тип объекта, что и командлет New-PSSession. Следующая команда получает все сеансы PSSession, созданные в текущем сеансе. get-PSSession По умолчанию для сеансов PSSession выводятся их идентификаторы и понятные имена по умолчанию. При создании сеанса можно назначить ему другое понятное имя. Id Name ComputerName State ConfigurationName --- ---- ------------ ----- --------------------- 1 Session1 Server01 Opened Microsoft.PowerShell 2 Session2 Server02 Opened Microsoft.PowerShell 3 Session3 Server03 Opened Microsoft.PowerShell Также можно сохранять сеансы PSSession в переменной. Следующая команда получает сеансы PSSession и сохраняет их в переменной $ps123. $ps123 = get-PSSession При использовании командлетов PSSession можно обратиться к сеансу PSSession по его идентификатору, имени или идентификатору его экземпляра (GUID). Следующая команда получает сеанс PSSession по его идентификатору и сохраняет его в переменной $ps01. $ps01 = get-PSSession -id 1 Команда Get-PSSession получает только сеансы PSSession, созданные в текущем сеансе. Команда не получает сеансы PSSession, созданные в других сеансах или на других компьютерах, даже если сеансы подключены к локальному компьютеру и выполняют на нем команды. ВЫПОЛНЕНИЕ КОМАНД В СЕАНСЕ PSSESSION Для выполнения команды в одном или нескольких сеансах PSSession используйте командлет Invoke-Command. Используйте параметр Session для задания сеансов PSSession и параметр ScriptBlock для задания команды. Например, для выполнения команды Get-ChildItem ("dir") в каждом из трех сеансов PSSession, сохраненных в переменной $ps123, введите следующую строку: invoke-command -session $ps123 -scriptblock {get-childitem} УДАЛЕНИЕ СЕАНСОВ PSSESSION По окончании работы с сеансом PSSession используйте командлет Remove-PSSession для удаления сеанса PSSession и освобождения занятых им ресурсов. remove-PSSession -session $ps - или: remove-PSSession -id 1 Если сеанс PSSession не удалить, он остается открытым и доступным для использования, пока не будет закрыт текущий сеанс или Windows PowerShell. Также можно использовать параметр TimeOut командлета New-PSSession, чтобы задать время ожидания для сеанса PSSession, который не используется. Чтобы получить дополнительные сведения, см. new-PSSession. КОМАНДЛЕТЫ PSSESSION Командлет Описание ----------------- ----------------------------------------------------- - New-PSSession Создает новый сеанс PSSession на локальном или удаленном компьютере. Get-PSSession Выводит все сеансы PSSession в текущем сеансе. Remove-PSSession Удаляет сеансы PSSession в текущем сеансе. Enter-PSSession Создает интерактивный сеанс. Exit-PSSession Завершает интерактивный сеанс. Чтобы вывести список командлетов PSSession, введите следующую команду: get-help *-PSSession ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ Дополнительные сведения о сеансах PSSession см. в разделе about_PSSession_Details. СМ. ТАКЖЕ about_Remote about_Remote_Requirements New-PSSession Get-PSSession Remove-PSSession Enter-PSSession Exit-PSSession Invoke-Command about_PSSnapins РАЗДЕЛ about_PSSnapins КРАТКОЕ ОПИСАНИЕ Описывает оснастки Windows PowerShell, содержит сведения об использовании оснасток и управлении ими. ПОЛНОЕ ОПИСАНИЕ Оснастка Windows PowerShell - это сборка Microsoft .NET Framework, в которой содержатся поставщики и/или командлеты Windows PowerShell. Оболочка Windows PowerShell включает набор базовых оснасток; функциональность оболочки можно расширить, добавив в нее оснастки с поставщиками и командлетами, созданными вами или полученными от других разработчиков. После добавления оснастки содержащиеся в ней командлеты и поставщики мгновенно становятся доступными для использования в текущем сеансе; при этом изменение касается только текущего сеанса. Чтобы можно было добавить оснастку во все будущие сеансы, сохраните ее в своем профиле Windows PowerShell. Кроме того, можно использовать командлет Export-Console для сохранения имен оснасток в файле консоли и применения его в будущих сеансах. Можно даже сохранить несколько файлов консоли, включающих различные наборы оснасток. ВСТРОЕННЫЕ ОСНАСТКИ Оболочка Windows PowerShell включает набор оснасток Windows PowerShell, в которых содержатся встроенные поставщики и командлеты. Microsoft.PowerShell.Core Содержит поставщики и командлеты, используемые для управления базовыми функциями Windows PowerShell. Включает поставщики FileSystem, Registry, Alias, Environment, Function и Variable, а также базовые командлеты, такие как Get-Help, Get-Command и Get-History. Microsoft.PowerShell.Host Содержит командлеты, используемые главным приложением оболочки Windows PowerShell, такие как Start-Transcript и Stop-Transcript. Microsoft.PowerShell.Management Содержит такие командлеты, как Get-Service и Get-ChildItem, которые используются для управления функциями на основе Windows. Microsoft.PowerShell.Security Содержит командлеты, используемые для управления подсистемой обеспечения безопасности Windows PowerShell, такие как Get-Acl, Get-AuthenticodeSignature и ConvertTo-SecureString. Microsoft.PowerShell.Utility Содержит командлеты, используемые для работы с объектами и данными, такие как Get-Member, Write-Host и Format-List. ПОИСК ОСНАСТОК Чтобы получить список имеющихся на компьютере оснасток Windows PowerShell, введите следующую команду: get-pssnapin Чтобы получить оснастку для каждого поставщика Windows PowerShell, введите следующую команду: get-psprovider | format-list name, pssnapin Чтобы получить список командлетов, содержащихся в оснастке Windows PowerShell, введите следующую команду: get-command -module <имя_оснастки> УСТАНОВКА ОСНАСТКИ Встроенные оснастки регистрируются в системе и добавляются в сеанс по умолчанию при запуске оболочки Windows PowerShell. Однако для добавления в сеанс оснасток, созданных самостоятельно или полученных от других разработчиков, их необходимо зарегистрировать. РЕГИСТРАЦИЯ ОСНАСТКИ Оснастка Windows PowerShell - это программа, написанная на языке .NET Framework и скомпилированная в DLL-файл. Для использования поставщиков и командлетов, содержащихся в оснастке, ее нужно зарегистрировать (добавить в реестр). Большинство оснасток поставляется с программой установки (EXE- или MSI- файл), которая регистрирует DLL-файл. Однако оснастку, полученную в виде DLL-файла, также можно зарегистрировать в системе. Дополнительные сведения см. в разделе "Регистрация командлетов, поставщиков и ведущих приложений" библиотеки MSDN по адресу: http://go.microsoft.com/fwlink/?LinkID=143619. Чтобы получить все зарегистрированные в системе оснастки или проверить, что оснастка зарегистрирована, введите следующую команду: get-pssnapin -registered ДОБАВЛЕНИЕ ОСНАСТКИ В ТЕКУЩИЙ СЕАНС Для добавления зарегистрированных оснасток в текущий сеанс используйте командлет Add-PsSnapin. Например, чтобы добавить в сеанс оснастку Microsoft SQL Server, введите следующую команду: add-pssnapin sql После выполнения этой команды поставщики и командлеты, содержащиеся в оснастке, будут доступны в сеансе. Однако они будут доступны только в текущем сеансе; чтобы сделать поставщики и командлеты доступными в других сеансах, их необходимо сохранить. СОХРАНЕНИЕ ОСНАСТОК Для использования оснастки в будущих сеансах Windows PowerShell добавьте команду Add-PsSnapin в профиль Windows PowerShell или экспортируйте имена оснасток в файл консоли. После добавления команды Add-PSSnapin в профиль Windows PowerShell она будет доступна во всех будущих сеансах Windows PowerShell. После экспорта имен оснасток в сеанс файл экспорта можно использовать, когда требуются оснастки. Чтобы добавить команду Add-PsSnapin в профиль Windows PowerShell, откройте профиль, укажите команду путем вставки или ввода и сохраните профиль. Дополнительные сведения см. в разделе about_Profiles. Для сохранения оснасток из сеанса в файл консоли (PSC1) используйте командлет Export-Console. Например, чтобы сохранить оснастки из конфигурации текущего сеанса в файл NewConsole.psc1 в текущем каталоге, введите следующую команду: export-console NewConsole Дополнительные сведения см. в описании командлета Export-Console. ЗАПУСК WINDOWS POWERSHELL С ФАЙЛОМ КОНСОЛИ Для использования файла консоли, включающего оснастку, запустите оболочку Windows PowerShell (Powershell.exe) из командной строки в сеансе Cmd.exe или в другом сеансе Windows PowerShell. Используйте параметр PsConsoleFile для указания файла консоли, который включает оснастку. Например, следующая команда запускает оболочку Windows PowerShell с файлом консоли NewConsole.psc1: powershell.exe -psconsolefile NewConsole.psc1 После выполнения этой команды в текущем сеансе можно использовать поставщики и командлеты, содержащиеся в оснастке. УДАЛЕНИЕ ОСНАСТКИ Для удаления оснастки Windows PowerShell из текущего сеанса используйте командлет Remove-PsSnapin. Например, чтобы удалить оснастку SQL Server из текущего сеанса, введите следующую команду: remove-pssnapin sql Этот командлет удаляет оснастку из сеанса. Оснастка остается загруженной, но поддерживаемые ею поставщики и командлеты становятся недоступными. СМ. ТАКЖЕ Add-PsSnapin Get-PsSnapin Remove-PsSnapin Export-Console Get-Command about_Profiles about_Quoting_Rules РАЗДЕЛ about_Quoting_Rules КРАТКОЕ ОПИСАНИЕ Описывает правила использования одиночных и двойных кавычек в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Кавычки используются для задания литеральных строк. Строку можно заключить в одиночные (') или двойные (") кавычки. Кавычки также используются для создания автономных строк. Автономная строка - это строка, заключенная в одиночные или двойные кавычки, в которой кавычки интерпретируются буквально. Автономная строка может состоять из нескольких строк. Все строки в автономной строке интерпретируются как строки, даже несмотря на то что они не заключены в кавычки. В командах для удаленных компьютеров кавычки определяют части команды, выполняемые на удаленном компьютере. В удаленном сеансе кавычки также определяют, интерпретируются ли переменные в команде сначала на локальном, а затем на удаленном компьютере или наоборот. Строки, заключенные в одиночные и двойные кавычки Если строка заключена в двойные кавычки, имена переменных, перед которыми стоит знак доллара ($), заменяются значениями переменных перед передачей строки команде для обработки. Пример: $i = 5 "Значение $i: $i." Выходные данные команды: Значение 5: 5. Кроме того, в строке, заключенной в двойные кавычки, вычисляются выражения, и результат вставляется в строку. Пример: "Значение $(2+3): 5." Выходные данные команды: Значение 5: 5. Строка, заключенная в одиночные кавычки, передается команде точно в том виде, в котором она введена. Подстановок не производится. Пример: $i = 5 'Значение $i: $i.' Выходные данные команды: Значение $i: $i. Кроме того, выражения, заключенные в одиночные кавычки, не вычисляются. Они интерпретируются как литералы. Пример: 'Значение $(2+3): 5.' Выходные данные команды: Значение $(2+3): 5. Для предотвращения подстановки значения переменной в строке, заключенной в двойные кавычки, используйте обратный апостроф (`)[код ASCII 96], который является escape-символом Windows PowerShell. В следующем примере перед первым вхождением переменной $i указан обратный апостроф (`), в результате чего Windows PowerShell не заменяет имя переменной ее значением. Пример: $i = 5 "Значение `$i: $i." Выходные данные команды: Значение $i: 5. Для отображения двойных кавычек в строке необходимо заключить всю строку в одиночные кавычки. Пример: 'Как говорится, "учись, пока жив".' Выходные данные команды: Как говорится, "учись, пока жив". Также можно заключить строку, содержащую одиночные кавычки, в двойные кавычки. Пример: "Как говорится, 'учись, пока жив'." Выходные данные команды: Как говорится, 'учись, пока жив'. Кроме того, можно заключить строку, содержащую двойные кавычки, в двойные кавычки. Пример: "Как говорится, ""учись, пока жив""." Выходные данные команды: Как говорится, "учись, пока жив". Для включения одиночной кавычки в строку, заключенную в одиночные кавычки, используйте одиночную кавычку два раза подряд. Пример: 'don''t' Выходные данные команды: don't Чтобы оболочка Windows PowerShell интерпретировала двойные кавычки буквально, используйте обратный апостроф. Это не позволяет оболочке Windows PowerShell интерпретировать кавычку как разделитель строк. Пример: "Используйте двойную кавычку (`") в начале строки." Поскольку содержимое строки, заключенной в одиночные кавычки, интерпретируется буквально, в ней нельзя использовать обратный апостроф для принудительной интерпретации литерала. Например, следующая команда выдает ошибку, поскольку Windows PowerShell не распознает escape-символ. Эта команда интерпретирует вторую кавычку как конец строки. PS C:\> 'Используйте одиночную кавычку (`') в начале строки.' Неожиданный токен ")" в выражении или инструкции. В строке:1 знак:27 + 'Используйте одиночную кавычку (`') < в начале строки.' Автономные строки, заключенные в одиночные и двойные кавычки Правила использования кавычек в автономных строках немного отличаются. Автономная строка - это строка, заключенная в одиночные или двойные кавычки, в которой кавычки интерпретируются буквально. Автономная строка может состоять из нескольких строк. Все строки в автономной строке интерпретируются как строки, даже несмотря на то что они не заключены в кавычки. В автономных строках, заключенных в двойные кавычки, переменные заменяются своими значениями подобно регулярным выражениям. В автономных строках, заключенных в одиночные кавычки, переменные не заменяются своими значениями. Автономные строки можно использовать в случае любого текста, но они являются особенно полезными в случае текста следующих типов. - Текст, в котором содержатся литералы в кавычках Текст, - состоящий из нескольких строк, например HTML- или XML-документ - Текст справки для скрипта или функции Автономная строка может иметь один из следующих форматов, где <Ввод> означает перевод строки или скрытый символ новой строки, который добавляется при нажатии клавиши ВВОД. Формат 1: @"<Ввод> <строка> [строка] ...<Ввод> "@ Формат 2: @'<Ввод> <строка> [строка] ...<Ввод> '@ В обоих форматах закрывающая кавычка должна быть первым символом строки. В автономной строке содержится весь текст между двумя скрытыми символами. В автономной строке все кавычки интерпретируются буквально. Пример: @" Для отображения справки введите команду "get-help" "@ Выходные данные команды: Для отображения справки введите команду "get-help" Применение автономной строки позволяет упростить используемую в команде строку. Пример: @" Используйте одиночную кавычку (') в начале строки. "@ Выходные данные команды: Используйте одиночную кавычку (') в начале строки. В автономных строках, заключенных в одиночные кавычки, переменные интерпретируются буквально и воспроизводятся точно в том виде, в котором они заданы. Пример: @' В переменной $profile содержится путь к вашему профилю Windows PowerShell. '@ Выходные данные команды: В переменной $profile содержится путь к вашему профилю Windows PowerShell. В автономных строках, заключенных в двойные кавычки, переменные заменяются своими значениями. Пример: @" Даже если профиль не создан, задан следующий путь к профилю: $profile. "@ Выходные данные команды: Даже если профиль не создан, задан следующий путь к профилю: C:\Users\User01\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 . Автономные строки обычно используются для присвоения переменной значения, состоящего из нескольких строк. Например, следующая автономная строка позволяет присвоить переменной $page страницу XML-документа. $page = [XML] @" <command:command xmlns:maml="http://schemas.microsoft.com/maml/2004/10" xmlns:command="http://schemas.microsoft.com/maml/dev/command/2004/10" xmlns:dev="http://schemas.microsoft.com/maml/dev/2004/10"> <command:details> <command:name> Format-Table </command:name> <maml:description> <maml:para>Форматирует вывод в виде таблицы.</maml:para> </maml:description> <command:verb>format</command:verb> <command:noun>table</command:noun> <dev:version></dev:version> </command:details> ... </command:command> "@ Автономные строки также являются удобным форматом входных данных для командлета ConvertFrom-StringData, который преобразует автономные строки в хэш-таблицы. Дополнительные сведения см. в описании командлета ConvertFrom-StringData. СМ. ТАКЖЕ about_Escape_Characters ConvertFrom-StringData about_Redirection РАЗДЕЛ about_Redirection КРАТКОЕ ОПИСАНИЕ Описывает порядок перенаправления вывода из Windows PowerShell в текстовые файлы. ПОЛНОЕ ОПИСАНИЕ По умолчанию Windows PowerShell передает выходные данные команды в консоль Windows PowerShell. Однако можно направить вывод в текстовый файл, а также перенаправить выходную информацию об ошибках в постоянный выходной поток. Перенаправление выходных данных можно выполнить следующими способами. - Использование командлета Out-File, который передает выходные данные команды в текстовый файл. Как правило, командлет Out-File применяется, если необходимо использовать его параметры, такие как Encoding, Force, Width и NoClobber. - Использование командлета Tee-Object, который выполняет передачу выходных данных команды в текстовый файл с последующей передачей этого файла по конвейеру. - Использование операторов перенаправления Windows PowerShell. Существуют следующие операторы перенаправления Windows PowerShell. Оператор Описание Пример -------- ---------------------- ------------------------------ > Передает выходные данные get-process > process.txt в указанный файл. >> Добавляет выходные данные dir *.ps1 >> scripts.txt к содержимому указанного файла. 2> Передает информацию об get-process none 2> errors.txt ошибках в указанный файл. 2>> Добавляет информацию об get-process none 2>> save-errors.txt ошибках к содержимому указанного файла. 2>&1 Передает информацию об get-process none, powershell 2>&1 ошибках в выходной поток. Операторы перенаправления используются со следующим синтаксисом: <входные_данные> <оператор> [<путь>\] Если указанный файл уже существует, операторы перенаправления, которые не добавляют данные (> и 2>), перезаписывают текущее содержимое файла без предупреждения. Однако если файл является доступным только для чтения, скрытым, или системным файлом, перенаправление выполнить не удастся. Операторы перенаправления с добавлением (>> и 2>>) не записывают данные в файл, доступный только для чтения, но добавляют содержимое в системный или скрытый файл. Для принудительного перенаправления содержимого в доступный только для чтения, скрытый или системный файл используйте командлет Out-File с параметром Force. При записи данных в файлы операторы перенаправления используют кодировку Юникод. Если файл имеет другую кодировку, выходные данные могут быть представлены в неверном формате. Для перенаправления содержимого в файлы, которые имеют кодировку, отличную от Юникода, используйте командлет Out-File с параметром Encoding. СМ. ТАКЖЕ Out-File Tee-Object about_Operators about_Command_Syntax about_Path_Syntax about_Ref РАЗДЕЛ about_Ref КРАТКОЕ ОПИСАНИЕ Описывает порядок создания и использования типа ссылочной переменной. ПОЛНОЕ ОПИСАНИЕ Тип ссылочной переменной можно использовать, чтобы разрешить методу изменять значение переданной ему переменной. Если с объектом связан тип [ref], он возвращает ссылку на этот объект. Если в методе используется ссылка, метод может ссылаться на переданный ему объект. Изменение объекта, выполненное внутри метода, отображается как изменение значения переменной после возвращения управления вызывающему методу. При использовании ссылок переданный параметр должен представлять собой ссылочную переменную. В противном случае возникает исключение InvalidArgument. Параметры, использовавшиеся при вызове метода, должны иметь типы, требуемые методом. Примеры: PS> function swap([ref]$a,[ref]$b) >> { >> $a.value,$b.value = $b.value,$a.value >> } PS> $a = 1 PS> $b = 10 PS> $a,$b 1 10 PS> swap ([ref]$a) ([ref]$b) PS> $a,$b 10 1 PS C:\ps-test> function double >> { >> param ([ref]$x) $x.value = $x.value * 2 >> } PS C:> $number = 8 PS C:> $number 8 PS C> double ([ref]$number) PS C> $number 16 Переменная должна быть переменной ссылочного типа. PS C:\ps-test> double $number double: Ссылочный тип ожидается в аргументе. В строке:1 знак:7 + double < $number СМ. ТАКЖЕ about_Variables about_Environment_Variables about_Functions about_Script_Blocks about_regular_expressions РАЗДЕЛ about_Regular_Expressions КРАТКОЕ ОПИСАНИЕ Описание регулярных выражений в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Windows PowerShell поддерживает следующие знаки регулярных выражений. Формат Логика Пример ---------- -------------------------------- ----------------------- значение Точное соответствие со знаками "книга" -match "ни" в любой части исходного значения. . Любой отдельный знак. "копия" -match "к..я" [значение] Хотя бы один из знаков "жук" -match "ж[аоу]к" в квадратных скобках. [диапазон] Хотя бы один из знаков в указанном "нос" -match "[к-н]ос" диапазоне. С помощью дефиса (-) можно задать смежный знак. [^] Любые знаки, кроме указанных "бык" -match "[^грт]ык" в квадратных скобках. ^ Знаки в начале строки. "книга" -match "^кн" $ Знаки в конце строки. "книга" -match "га$" * Любые совпадения с указанным "тонна" -match "н*" символом. ? Одно совпадение с указанным "тонна" -match "н?" символом. \ Знак, указанный как escape-символ. "Try$" -match "Try\$" Оболочка Windows PowerShell поддерживает классы символов, доступные в регулярных выражениях Microsoft .NET Framework. Формат Логика Пример -------- ------------------------------- ----------------------- \p{имя} Любой знак в именованном "abcd defg" -match "\p{Ll}+" классе символов {имя}. Поддерживаемые имена: группы символов Юникода и блочные диапазоны, такие как "Ll", "Nd", "Z", "IsGreek" и "IsBoxDrawing". \P{имя} Любой текст, не входящий в 1234 -match "\P{Ll}+" группы или блочные диапазоны, заданные классом {имя}. \w Любой знак, который может "abcd defg" -match "\w+" входить в слово. Эквивалентно (выбирается abcd) символьным категориям Юникода [\p{Ll}\p{Lu}\p{Lt}\p{Lo}\ p{Nd}\p{Pc}]. Если задано совместимое с ECMAScript поведение при помощи параметра ECMAScript, \w эквивалентно [a-zA-Z_0-9]. \W Любой знак, который не может "abcd defg" -match "\W+" входить в слово. Эквивалентно (выбирается пробел) категориям Юникода [^\p{Ll}\p{Lu}\ p{Lt}\p{Lo}\p{Nd}\p{Pc}]. \s Выбираются любые символы пробела. "abcd defg" -match "\s+" Соответствует символьным категориям Юникода [\f\n\r\t\v\x85\p{Z}]. \S Выбираются любые символы, "abcd defg" -match "\S+" кроме пробелов. Соответствует символьным категориям Юникода [^\f\n\r\t\v\x85\p{Z}]. \d Любая десятичная цифра. 12345 -match "\d+" Соответствует классу \p{Nd} при использовании Юникода и [0-9] в противном случае. \D Любой знак, кроме десятичных "abcd" -match "\D+" цифр. Соответствует классу \P{Nd} при использовании Юникода и [^0-9] в противном случае. Windows PowerShell поддерживает кванторы, доступные в регулярных выражениях .NET Framework. Ниже приведено несколько примеров кванторов. Формат Логика Пример -------- ------------------------------- ----------------------- * Указывает ноль или более "abc" -match "\w*" совпадений, например \w* или (abc)*. Эквивалентно {0,}. + Повторяющиеся экземпляры знаков, "xyxyxy" -match "xy+" указанных перед этим символом. ? Указывает ни одного или одно "abc" -match "\w?" совпадение, например \w?. или (abc)?. Эквивалентно {0,1}. {n} Указывает ровно n совпадений, "abc" -match "\w{2}" например (пицца){2}. {n,} Указывает не менее n совпадений, "abc" -match "\w{2,}" например (abc){2,}. {n,m} Указывает не менее n и не "abc" -match "\w{2,3}" более m совпадений. Все сравнения в примерах из приведенной выше таблицы дают положительный результат. Обратите внимание, что для регулярных выражений используется escape-символ обратная косая черта (\), отличный от используемого в Windows PowerShell. В Windows PowerShell в качестве escape-символа используется обратный апостроф (`) (код ASCII 96). Дополнительные сведения см. в разделе "Элементы языка регулярных выражений" в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=133231. СМ. ТАКЖЕ about_Comparison_Operators about_Operators about_remote РАЗДЕЛ about_Remote КРАТКОЕ ОПИСАНИЕ Описывает, как выполнять удаленные команды в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Удаленные команды можно выполнять на одном компьютере или на нескольких компьютерах, используя временное или постоянное подключение. Кроме того, можно создать интерактивный сеанс с одним удаленным компьютером. В этом разделе представлен ряд примеров, демонстрирующих порядок выполнения удаленных команд различных типов. После практического ознакомления с этими базовыми командами прочитайте разделы справки для каждого командлета, используемого в этих командах. В этих разделах приводятся подробные сведения и объясняется порядок изменения команд в соответствии с конкретными потребностями. Примечание. Для использования удаленного взаимодействия Windows PowerShell локальный и удаленный компьютеры должны быть настроены на удаленное взаимодействие. Дополнительные сведения см. в разделе about_Remote_Requirements. СОЗДАНИЕ ИНТЕРАКТИВНОГО СЕАНСА (ENTER-PSSESSION) Самый простой способ выполнить удаленные команды - создать интерактивный сеанс с удаленным компьютером. После начала сеанса вводимые команды выполняются на удаленном компьютере, как будто они вводятся непосредственно на нем. В каждом интерактивном сеансе можно подключиться только к одному компьютеру. Чтобы запустить интерактивный сеанс, используйте командлет Enter-PSSession. Следующая команда начинает интерактивный сеанс с компьютером Server01: enter-pssession server01 Командная строка изменяется, чтобы указать, что установлено подключение к компьютеру Server01. Server01\PS> Теперь можно вводить команды на компьютере Server01. Чтобы завершить интерактивный сеанс, введите следующую команду: exit-pssession Дополнительные сведения см. в описании командлета Enter-PSSession. ИСПОЛЬЗОВАНИЕ КОМАНДЛЕТОВ С ПАРАМЕТРОМ COMPUTERNAME ДЛЯ ПОЛУЧЕНИЯ УДАЛЕННЫХ ДАННЫХ Некоторые командлеты имеют параметр ComputerName, который позволяет получать объекты удаленных компьютеров. Поскольку эти командлеты не используют для связи удаленное взаимодействие Windows PowerShell на основе WS-Management, можно применять их параметр ComputerName на любом компьютере с запущенной оболочк ой Windows PowerShell. Компьютеры не обязательно должны быть настроены на удаленное взаимодействие Windows PowerShell и не обязательно должны соответствовать системным требованиям для удаленного взаимодействия. Параметр ComputerName предусмотрен в следующих командлетах. Clear-EventLog Limit-EventLog Get-Counter New-EventLog Get-EventLog Remove-EventLog Get-HotFix Restart-Computer Get-Process Show-EventLog Get-Service Show-Service Get-WinEvent Stop-Computer Get-WmiObject Write-EventLog Например, следующая команда получает службы на удаленном компьютере Server01: get-service -computername server01 Обычно командлеты, поддерживающие удаленную работу без специальной настройки, имеют параметр ComputerName и не имеют параметра Session. Чтобы найти эти командлеты в текущем сеансе, введите команду: get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.para meters.keys -notcontains "Session"} ВЫПОЛНЕНИЕ УДАЛЕННОЙ КОМАНДЫ Для выполнения других команд на удаленных компьютерах используйте командлет Invoke-Command. Для выполнения одной команды или нескольких несвязанных команд используйте параметр ComputerName командлета Invoke-Command, позволяющий указать удаленные компьютеры. Для указания команды используйте параметр ScriptBlock. Например, следующая команда выполняет команду Get-Culture на удаленном компьютере Server01. invoke-command -computername Server01 -scriptblock {get-culture} Параметр ComputerName предназначен для использования в случаях, когда требуется выполнить одну команду или несколько несвязанных команд на одном или нескольких компьютерах. Чтобы установить постоянное подключение к удаленному компьютеру используйте параметр Session. СОЗДАНИЕ ПОСТОЯННОГО ПОДКЛЮЧЕНИЯ (PSSESSION) При использовании параметра ComputerName командлета Invoke-Command оболочка Windows PowerShell устанавливает подключение только для команды. После выполнения команды оболочка закрывает подключение. Информация о всех переменных и функциях, определенных в команде, теряется. Чтобы создать постоянное подключение к локальному или удаленному компьютеру, используйте командлет New-PSSession. Например, следующая команда создает сеансы PSSession на компьютерах Server01 и Server02, а затем сохраняет эти сеансы в переменной $s. $s = new-pssession -computername Server01, Server02 ВЫПОЛНЕНИЕ КОМАНД В СЕАНСЕ PSSESSION В сеансе PSSession можно выполнить несколько удаленных команд, совместно использующих такие данные, как функции, псевдонимы и значения переменных. Для выполнения команд в сеансе PSSession используйте параметр Session командлета Invoke-Command. Например, следующая команда использует командлет Invoke-Command для выполнения команды Get-Process в сеансах PSSession на компьютерах Server01 и Server02. Команда сохраняет процессы в переменной $s в каждом сеансе PSSession. invoke-command -session $s -scriptblock {$p = get-process} Поскольку сеанс PSSession использует постоянное подключение, в одном сеансе PSSession можно выполнить другую команду, использующую переменную $p. Следующая команда подсчитывает количество процессов, сохраненных в переменной $p. invoke-command -session $s -scriptblock {$p.count} ВЫПОЛНЕНИЕ УДАЛЕННОЙ КОМАНДЫ НА НЕСКОЛЬКИХ КОМПЬЮТЕРАХ Чтобы выполнить удаленную команду на нескольких компьютерах, введите имена всех компьютеров в качестве значения параметра ComputerName командлета Invoke-Command. Разделяйте имена запятыми. Например, следующая команда выполняет команду Get-Culture на трех компьютерах: invoke-command -computername S1, S2, S3 -scriptblock {get-culture} Кроме того, можно выполнить команду в нескольких сеансах PSSession. Следующие команды создают сеансы PSSession на компьютерах Server01, Server02 и Server03, а затем выполняют команду Get-Culture в каждом сеансе PSSession. $s = new-pssession -computername S1, S2, S3 invoke-command -session $s -scriptblock {get-culture} Чтобы включить локальный компьютер в список компьютеров, введите имя локального компьютера, точку (.) или "localhost". invoke-command -computername S1, S2, S3, localhost -scriptblock {get-culture} ВЫПОЛНЕНИЕ СКРИПТА НА УДАЛЕННЫХ КОМПЬЮТЕРАХ Чтобы выполнить скрипт на удаленных компьютерах, используйте параметр FilePath командлета Invoke-Command. Например, следующая команда выполняет скрипт Sample.ps1 на компьютерах S1 и S2: invoke-command -computername S1, S2 -filepath C:\Test\Sample.ps1 Результаты выполнения скрипта возвращаются на локальный компьютер. Копировать какие-либо файлы не требуется. ПРЕРЫВАНИЕ ВЫПОЛНЕНИЯ УДАЛЕННОЙ КОМАНДЫ Чтобы прервать выполнение команды, нажмите сочетание клавиш CTRL+C. Запрос прерывания передается на удаленный компьютер и завершает работу команды. ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ -- Сведения о системных требованиях для удаленного взаимодействия см. в разделе about_Remote_Requirements. -- Справочные сведения о форматировании выходных данных на удаленном компьютере см. в разделе about_Remote_Output. -- Сведения о принципах работы удаленного взаимодействия, управлении удаленными данными, специальных конфигурациях и проблемах безопасности, а также ответы на другие часто задаваемые вопросы см. в разделе about_Remote_FAQ. -- Справочные сведения об устранении неполадок удаленного взаимодействия см. в разделе about_Remote_Troubleshooting. -- Сведения о сеансах PSSession и постоянных подключениях см. в разделе about_PSSessions. -- Сведения о фоновых заданиях Windows PowerShell см в разделе about_Jobs. КЛЮЧЕВЫЕ СЛОВА about_Remoting СМ. ТАКЖЕ about_PSSessions about_Remote_Requirements about_Remote_FAQ about_Remote_TroubleShooting Enter-PSSession Invoke-Command New-PSSession about_remote_FAQ РАЗДЕЛ about_Remote_FAQ КРАТКОЕ ОПИСАНИЕ Содержит вопросы о выполнении удаленных команд в Windows PowerShell и ответы на них. ПОЛНОЕ ОПИСАНИЕ При удаленной работе команды вводятся в Windows PowerShell на одном компьютере (который называется "локальным компьютером"), но выполняются на другом компьютере (который называется "удаленным компьютером). Удаленная работа должна быть максимально похожа на непосредственную работу на удаленном компьютере. Примечание. Для использования удаленного взаимодействия Windows PowerShell удаленный компьютер должен быть настроен на удаленное взаимодействие. Дополнительные сведения см. в разделе about_Remote_Requirements. ДОЛЖНА ЛИ ОБОЛОЧКА WINDOWS POWERSHELL БЫТЬ УСТАНОВЛЕНА НА ОБОИХ КОМПЬЮТЕРАХ? Да. Для удаленной работы на локальном и удаленном компьютерах должны быть установлены следующие компоненты: Windows PowerShell, Microsoft .NET Framework 2.0 и протокол WS-Management. Все файлы и другие ресурсы, необходимые для выполнения конкретной команды, должны находиться на удаленном компьютере. Пользователю необходимо располагать разрешением на подключение к удаленному компьютеру, разрешением на запуск Windows PowerShell, а также разрешением на доступ к хранилищам данных (таким как файлы и папки) и реестру на удаленном компьютере. Дополнительные сведения см. в разделе about_Remote_Requirements. КАК РАБОТАЕТ УДАЛЕННОЕ ВЗАИМДЕЙСТВИЕ? При запуске удаленная команда передается по сети обработчику Windows PowerShell на удаленном компьютере и запускает клиент Windows PowerShell на удаленном компьютере. Результаты выполнения команды передаются обратно на локальный компьютер и отображаются в сеансе Windows PowerShell на локальном компьютере. Для передачи команд и получения выходных данных Windows PowerShell использует протокол WS-Management. Дополнительные сведения об этом протоколе см. в разделе "Протокол WS-Management" библиотеки MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=144634. ЯВЛЯЕТСЯ ЛИ УДАЛЕННОЕ ВЗАИМОДЕЙСТВИЕ WINDOWS POWERSHELL БЕЗОПАСНЫМ? При подключении к удаленному компьютеру система использует учетные данные (имя пользователя и пароль) на локальном компьютере или учетные данные, переданные в команде, для входа в систему на удаленном компьютере. Учетные данные и остальные передаваемые данные шифруются. Для дополнительной защиты можно настроить удаленный компьютер на использование протокола SSL вместо протокола HTTP, чтобы прослушивать запросы удаленного управления Windows (WinRM). После этого пользователи смогут использовать параметры UseSSL командлетов Invoke-Command, New-PSSession и Enter-PSSession при установлении подключения. Этот параметр позволяет использовать HTTPS-канал, который является более защищенным по сравнению с HTTP-каналом. УДАЛЕННОЕ ВЗАИМОДЕЙСТВИЕ WINDOWS POWERSHELL ТРЕБУЕТСЯ ДЛЯ ВСЕХ КОМАНД? Нет. Некоторые командлеты имеют параметр ComputerName, который позволяет получать объекты удаленного компьютера. Эти командлеты не используют удаленное взаимодействие Windows PowerShell. Таким образом, их можно использовать на любом компьютере с запущенной оболочкой Windows PowerShell, даже если компьютер не настроен на удаленное взаимодействие Windows PowerShell или не соответствует требованиям для удаленного взаимодействия Windows PowerShell. К таким командлетам относятся следующие: Get-Process Get-Service Get-WinEvent Get-EventLog Get-WmiObject Test-Connection Чтобы найти все командлеты с параметром ComputerName, введите следующую команду: get-help * -parameter ComputerName Чтобы определить, требуется ли для параметра ComputerName конкретного командлета удаленное взаимодействие Windows PowerShell, см. описание параметра. Для отображения описания параметра введите следующую команду: get-help <имя_командлета> -parameter ComputerName Пример: get-help get-process -parameter Computername Для всех остальных команд используйте командлет Invoke-Command. КАК ВЫПОЛНИТЬ КОМАНДУ НА УДАЛЕННОМ КОМПЬЮТЕРЕ? Чтобы выполнить команду на удаленном компьютере, используйте командлет Invoke-Command. Чтобы представить команду в виде блока скрипта, заключите ее в фигурные скобки ( {} ). Для указания команды используйте параметр ScriptBlock командлета Invoke-Command. Параметр ComputerName командлета Invoke-Command можно использовать для указания удаленного компьютера. Кроме того, можно создать постоянное подключение к удаленному компьютеру (сеанс) и использовать параметр Session командлета Invoke-Command для выполнения команды в сеансе. Например, следующие команды позволяют удаленно выполнить команду Get-Process. invoke-command -computername Server01, Server02 -scriptblock {get-process} - ИЛИ - invoke-command -session $s -scriptblock {get-process} Чтобы прервать выполнение удаленной команды, нажмите сочетание клавиш CTRL+C. Запрос прерывания передается на удаленный компьютер и завершает работу команды. Дополнительные сведения об удаленных командах см. в разделе about_Remote и разделах справки для командлетов, поддерживающих удаленное взаимодействие. МОЖНО ЛИ ДЛЯ ДОСТУПА К УДАЛЕННОМУ КОМПЬЮТЕРУ ИСПОЛЬЗОВАТЬ ПРОТОКОЛ, ПОДОБНЫЙ TELNET? Чтобы начать интерактивный сеанс с удаленным компьютером, можно использовать командлет Enter-PSSession. В командной строке Windows PowerShell введите следующую команду: Enter-PSSession <имя_компьютера> Командная строка изменяется, чтобы указать, что установлено подключение к удаленному компьютеру. <имя_компьютера>\C:> Теперь вводимые команды выполняются на удаленном компьютере, как будто они вводятся непосредственно на нем. Чтобы завершить интерактивный сеанс, введите следующую команду: Exit-PSSession Интерактивный сеанс - это постоянный сеанс, использующий протокол WS-Management. Последний отличается от протокола Telnet, но предоставляет аналогичную функциональность. Дополнительные сведения см. в описании командлета Enter-PSSession. МОЖНО ЛИ СОЗДАТЬ ПОСТОЯННОЕ ПОДКЛЮЧЕНИЕ? Да. Удаленные команды можно выполнять, указывая имя удаленного компьютера, его имя NetBIOS или его IP-адрес. Кроме того, удаленные команды можно выполнять, указывая сеанс Windows PowerShell (PSSession), подключенный к удаленному компьютеру. При использовании параметра ComputerName командлета Invoke-Command или Enter-PSSession оболочка Windows PowerShell устанавливает временное подключение. Windows PowerShell использует это подключение только для выполнения текущей команды, а затем закрывает его. Это очень эффективный способ выполнения одной команды или нескольких несвязанных команд даже на большом количестве удаленных компьютеров. При использовании командлета New-PSSession для создания сеанса PSSession оболочка Windows PowerShell устанавливает постоянное подключение для сеанса PSSession. После этого в сеансе PSSession можно выполнить несколько команд, включая команды, которые совместно используют данные. Как правило, сеанс PSSession создают для выполнения последовательности связанных команд, которые совместно используют данные. В других случаях для большинства команд достаточно создать временное подключение с помощью параметра ComputerName. Дополнительные сведения о сеансах см. в разделе about_PSSessions. МОЖНО ЛИ ВЫПОЛНЯТЬ КОМАНДЫ ОДНОВРЕМЕННО НА НЕСКОЛЬКИХ КОМПЬЮТЕРАХ? Да. Параметр ComputerName командлета Invoke-Command принимает несколько имен компьютеров, а параметр Session - несколько сеансов PSSession. При запуске команды Invoke-Command оболочка Windows PowerShell выполняет команды на всех указанных компьютерах или во всех указанных сеансах PSSession. Windows PowerShell может одновременно управлять сотнями удаленных подключений. Однако количество удаленных команд, которые можно передать, может ограничиваться ресурсами локального компьютера и его возможностью устанавливать и поддерживать несколько сетевых подключений. Дополнительные сведения см. в примере в разделе справки для командлета Invoke-Command. ГДЕ ХРАНЯТСЯ МОИ ПРОФИЛИ? Профили Windows PowerShell не запускаются автоматически в удаленных сеансах, поэтому команды, добавляемые профилем, отсутствуют в сеансе. Кроме того, автоматическая переменная $profile не заполняется в удаленных сеансах. Чтобы запустить профиль в сеансе, используйте командлет Invoke-Command. Например, следующая команда запускает профиль CurrentUserCurrentHo st с локального компьютера в сеансе в $s. invoke-command -session $s -filepath $profile Следующая команда запускает профиль CurrentUserCurrentHost с удаленного компьютера в сеансе в $s. Так как переменная $profile не заполнена, команда использует явный путь к профилю. invoke-command -session $s {. "$home\Documents\WindowsPowerShell\Micros oft.PowerShell_profile.ps1"} После выполнения этой команды все команды, добавляемые профилем в сеанс, доступны в $s. Кроме того, можно использовать скрипт запуска в конфигурации сеанса для запуска профиля в каждом удаленном сеансе, который использует эту конфигурацию сеанса. Дополнительные сведения о профилях Windows PowerShell см в разделе about_Profiles. Дополнительные сведения о конфигурациях сеансов см. в разделе Register-PSSessionConfiguration. КАК РАБОТАЕТ ФУНКЦИЯ РЕГУЛИРОВАНИЯ ДЛЯ УДАЛЕННЫХ КОМАНД? Для упрощения управления ресурсами на локальном компьютере в оболочке Windows PowerShell предусмотрена функция регулирования, которая позволяет ограничить количество одновременных удаленных подключений, устанавливаемых для каждой команды. Количество одновременных подключений по умолчанию составляет 32, однако с помощью параметров ThrottleLimit для конкретных команд можно задать пользовательский предел регулирования. При использовании функции регулирования следует помнить, что она применяется к каждой команде, а не ко всему сеансу или компьютеру. При одновременном выполнении команд в нескольких обычных сеансах или сеансах PSSession количество одновременных подключений определяется как сумма одновременных подключений во всех сеансах. Чтобы найти командлеты с параметром ThrottleLimit, введите следующую команду: get-help * -parameter ThrottleLimit КАКИЕ ХАРАКТЕРНЫЕ ДЛЯ СИСТЕМЫ РАЗЛИЧИЯ СЛЕДУЕТ УЧИТЫВАТЬ ПРИ УДАЛЕННОМ ВЗАИМОДЕЙСТВИИ? При выполнении команд на нескольких компьютерах следует учитывать различия в операционных системах, структуре файловой системы и реестре. При подключении к удаленному компьютеру под управлением Windows Vista или Windows Server 2003 начальным местоположением по умолчанию является домашний каталог текущего пользователя, который хранится в переменной среды %homepath% ($env:homepath) и переменной Windows PowerShell $home. В Windows Vista домашним каталогом, как правило, является C:\Users\<имя_пользователя>. В Windows Server 2003 домашним каталогом, как правило, является C:\Documents and Settings\<имя_пользователя>. При подключении к удаленному компьютеру под управлением Windows XP начальным местоположением по умолчанию является домашний каталог пользователя по умолчанию, который хранится в переменной среды %homepath% ($env:homepath) для пользователя по умолчанию. Домашним каталогом, как правило, является C:\Documents and Setting\Default User. ОТЛИЧАЮТСЯ ЛИ ВЫХОДНЫЕ ДАННЫЕ УДАЛЕННЫХ КОМАНД ОТ ЛОКАЛЬНЫХ ВЫХОДНЫХ ДАННЫХ? При локальном использовании Windows PowerShell пользователь передает и получает "активные" объекты .NET Framework; "активные" объекты - это объекты, связанные с фактическими программами или системными компонентами. При вызове методов или изменении свойств активных объектов изменения воздействуют на фактическую программу или компонент. Если изменяются свойства программы или компонента, свойства представляющих их объектов также изменяются. Однако поскольку большинство активных объектов невозможно передать по сети, Windows PowerShell "сериализует" большинство объектов, передаваемых в удаленных командах, т. е. выполняет преобразование каждого объекта в набор XML-элементов для передачи. Когда оболочка Windows PowerShell получает сериализованный объект, она преобразует XML-данные в десериализованный объект. Десериализованный объект представляет собой запись свойств программы или компонента, являющуюся точной для момента времени, предшествующего текущему, но эта запись не является "активной", т. е. она больше не связана с компонентом. Методы удаляются, поскольку они больше не являются действенными. Как правило, десериализованные объекты можно использовать так же, как активные, но при этом необходимо помнить об их ограничениях. Кроме того, объекты, возвращаемые командлетом Invoke-Command, имеют дополнительные свойства, которые позволяют определить происхождение команды. Некоторые объекты, такие как DirectoryInfo и GUID, при получении преобразуются обратно в активные объекты. Для этих объектов не требуется какая-либо специальная обработка или форматирование. Дополнительные сведения об интерпретации и форматировании выходных данных удаленных команд см. в разделе about_Remote_Output. МОЖНО ЛИ УДАЛЕННО ВЫПОЛНЯТЬ ФОНОВЫЕ ЗАДАНИЯ? Да. Фоновое задание Windows PowerShell - это команда Windows PowerShell, которая выполняется асинхронно без взаимодействия с сеансом. При запуске фонового задания командная строка отображается мгновенно, что позволяет продолжить работу в сеансе во время выполнения фонового задания, даже если для его завершения требуется длительное время. Фоновое задание можно запустить даже во время выполнения других команд, поскольку оно всегда выполняется асинхронно во временном сеансе. Выполнять фоновые задания можно как на локальном, так и на удаленном компьютере. По умолчанию фоновое задание выполняется на локальном компьютере. Однако можно использовать параметр AsJob командлета Invoke-Command для выполнения любой удаленной команды в качестве фонового задания. Кроме того, командлет Invoke-Command можно использовать для удаленного выполнения команды Start-Job. Дополнительные сведения о фоновых заданиях в Windows PowerShell см. в разделах "about_Jobs" и "about_Remote_Jobs". МОЖНО ЛИ ЗАПУСКАТЬ ПРОГРАММЫ WINDOWS НА УДАЛЕННОМ КОМПЬЮТЕРЕ? Удаленные команды Windows PowerShell можно использовать для запуска программ Windows на удаленных компьютерах. Например, можно запустить программу Shutdown.exe или Ipconfig на удаленном компьютере. Однако команды Windows PowerShell нельзя использовать, чтобы открыть пользовательский интерфейс для какой-либо программы на удаленном компьютере. При запуске программы Windows на удаленном компьютере команда не завершается и командная строка не отображается, пока программа не завершится или не будет прервана пользователем с помощью сочетания клавиш CTRL+C. Например, после запуска программы IpConfig на удаленном компьютере командная строка отображается только после завершения работы IpConfig. При использовании удаленных команд для запуска программы с пользовательским интерфейсом процесс программы запускается, но пользовательский интерфейс не отображается. Команда Windows PowerShell не завершается и командная строка не отображается, пока процесс программы не будет остановлен или не будет прерван пользователем с помощью сочетания клавиш CTRL+C. Например, при использовании команды Windows PowerShell для запуска программы "Блокнот" на удаленном компьютере процесс Notepad запускается на удаленном компьютере, но пользовательский интерфейс программы не отображается. Для прерывания команды и отображения командной строки нажмите сочетание клавиш CTRL+C. МОЖНО ЛИ ОГРАНИЧИТЬ НАБОР КОМАНД, КОТОРЫЕ ПОЛЬЗОВАТЕЛИ МОГУТ ВЫПОЛНЯТЬ НА МОЕМ КОМПЬЮТЕРЕ? Да. Каждый удаленный сеанс должен использовать одну из конфигураций сеанса на удаленном компьютере. Можно управлять конфигурациями сеансов (и разрешениями на использование этих конфигураций) на своем компьютере для определения пользователей, которые могут выполнять на нем удаленные команды, а также набора доступных для выполнения команд. Конфигурация сеанса используется для настройки среды для сеанса. Конфигурацию можно определить с помощью сборки, реализующей новый класс конфигурации, или скрипта, выполняющегося в сеансе. Конфигурация может определять команды, доступные в сеансе. Кроме того, конфигурация может включать параметры для защиты компьютера, например параметры, ограничивающие объем данных, принимаемых сеансом удаленно в одном объекте или команде. Также можно задать дескриптор безопасности, определяющий разрешения, необходимые для использования конфигурации. Командлет Enable-PSRemoting создает конфигурацию сеанса по умолчанию на текущем компьютере, Microsoft.PowerShell (и Microsoft.PowerShell32 в 64-разрядных операционных системах). Командлет Enable-PSRemoting задает дескриптор безопасности для конфигурации, позволяющий использовать ее только членам группы "Администраторы" на текущем компьютере. Командлеты для работы с конфигурациями сеансов можно использовать для изменения конфигураций сеансов по умолчанию, создания новых конфигураций сеансов и изменения дескрипторов безопасности всех конфигураций сеансов. При применении командлетов Invoke-Command, New-PSSession или Enter-PSSession можно использовать параметр ConfigurationName, чтобы указать конфигурацию сеанса для данного сеанса. Кроме того, можно изменить конфигурацию по умолчанию, используемую сеансами, путем изменения значения привилегированной переменной $PSSessionConfigurationName в сеансе. Дополнительные сведения о конфигурациях сеансов см. в разделах справки по командлетам для работы с конфигурациями сеансов. Чтобы найти командлеты для работы с конфигурациями сеансов, введите следующую команду: get-command *pssessionconfiguration ЧТО ПРЕДСТАВЛЯЮТ СОБОЙ КОНФИГУРАЦИИ СХОЖДЕНИЯ И РАЗВЕТВЛЕНИЯ? В наиболее распространенном сценарии удаленного взаимодействия Windows PowerShell, включающем несколько компьютеров, используется конфигурация "один ко многим", в которой один локальный компьютер (компьютер администратора) выполняет команды Windows PowerShell на нескольких удаленных компьютерах. Такая конфигурация называется конфигурацией "разветвления". Однако в некоторых компаниях используется конфигурация "многие к одному", в которой несколько клиентских компьютеров подключаются к одному удаленному компьютеру (например, файловому серверу или киоску) с запущенной оболочкой Windows PowerShell. Такая конфигурация называется конфигурацией "схождения". Удаленное взаимодействие Windows PowerShell поддерживает как конфигурации разветвления, так и конфигурации схождения. В случае конфигурации разветвления Windows PowerShell использует протокол WS-Management и службу WinRM, поддерживающую выполненную Майкрософт реализацию протокола WS-Management. При подключении локального компьютера к удаленному компьютеру протокол WS-Management устанавливает соединение и использует подключаемый модуль для Windows PowerShell, чтобы запустить хост-процесс Windows PowerShell (Wsmprovhost.exe) на удаленном компьютере. Пользователь может задать альтернативный порт, альтернативную конфигурацию сеанса и другие функции для настройки удаленного подключения. С целью поддержки конфигурации "схождения" Windows PowerShell использует службы IIS для размещения WS-Management, загрузки подключаемого модуля Windows PowerShell и запуска Windows PowerShell. В этом сценарии вместо запуска каждого сеанса Windows PowerShell в отдельном процессе все сеансы Windows PowerShell выполняются в одном хост-процессе. IIS-размещение и удаленное управление в конфигурации схождения не поддерживается в Windows XP и Windows Server 2003. В конфигурации схождения пользователь может указать URI подключения и конечную точку HTTP, включая транспорт, имя компьютера, порт и имя приложения. Службы IIS перенаправляют все запросы с указанным именем приложения соответствующему приложению. По умолчанию используется протокол WS-Management, который может размещать Windows PowerShell. Кроме того, можно указать механизм проверки подлинности и запретить или разрешить перенаправление из конечных точек HTTP и HTTPS. МОЖНО ЛИ ПРОТЕСТИРОВАТЬ УДАЛЕННОЕ ВЗАИМОДЕЙСТВИЕ НА ОДНОМ КОМПЬЮТЕРЕ (НЕ В ДОМЕНЕ)? Да. Удаленное взаимодействие Windows PowerShell доступно, даже если компьютер не входит в домен. Функции удаленного взаимодействия можно использовать для подключения к сеансам и создания сеансов на одном и том же компьютере. Функции работают так же, как при подключении к удаленному компьютеру. Для выполнения удаленных команд на компьютере в рабочей группе измените следующие параметры Windows на компьютере. Внимание Эти параметры воздействуют на всех пользователей системы и могут сделать ее более уязвимой к атакам злоумышленников. Будьте осмотрительны при изменении этих параметров. -- Windows XP с пакетом обновления 2 (SP2): Используйте локальные параметры безопасности (Secpol.msc) для изменения значения политики "Сетевой доступ: модель совместного доступа и безопасности для локальных учетных записей" в Security Settings\Local Policies\Security Options на "Классическая". -- Windows Vista: Создайте следующую запись реестра и задайте для нее значение 1: LocalAccountTokenFilterPolicy в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System Для добавления этой записи можно использовать следующую команду Windows PowerShell: new-itemproperty ` -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ` -name LocalAccountTokenFilterPolicy -propertyType DWord -value 1 -- Windows°2003: Выполнять изменения не требуется, поскольку для политики "Сетевой доступ: модель совместного доступа и безопасности для локальных учетных записей" задано значение "Классическая". Проверьте значение, чтобы убедиться, что оно не изменялось. МОЖНО ЛИ ВЫПОЛНЯТЬ УДАЛЕННЫЕ КОМАНДЫ НА КОМПЬЮТЕРЕ В ДРУГОМ ДОМЕНЕ? Да. Как правило, команды выполняются без ошибок, хотя может потребоваться использовать параметр Credential командлетов Invoke-Command, New-PSSession или Enter-PSSession для предоставления учетных данных члена группы "Администраторы" на удаленном компьютере. Иногда это требуется, даже если текущий пользователь является членом группы "Администраторы" на локальном и удаленном компьютерах. Однако если удаленный компьютер не входит в домен, которому доверяет локальный компьютер, удаленный компьютер может оказаться неспособным выполнить проверку подлинности учетных данных пользователя. Чтобы включить проверку подлинности, используйте следующую команду для добавления удаленного компьютера в список доверенных узлов локального компьютера в WinRM. Введите команду в командной строке Windows PowerShell. set-item WSMan:\localhost\Client\TrustedHosts -value <имя_удаленного_ко мпьютера> Например, чтобы добавить компьютер Server01 в список доверенных узлов на локальном компьютере, введите следующую команду в командной строке Windows PowerShell: set-item WSMan:\localhost\Client\TrustedHosts -value Server01 СМ. ТАКЖЕ about_Remote about_Profiles about_PSSessions about_Remote_Jobs Invoke-Command New-PSSession about_remote_jobs РАЗДЕЛ about_Remote_Jobs КРАТКОЕ ОПИСАНИЕ Описывает, как выполнять фоновые задания на удаленных компьютерах. ПОДРОБНОЕ ОПИСАНИЕ Фоновое задание - это команда, которая выполняется асинхронно без взаимодействия с текущим сеансом. Командная строка отображается мгновенно, что позволяет продолжать работу в сеансе во время выполнения задания. По умолчанию фоновые задания выполняются на локальном компьютере. Однако можно использовать несколько различных процедур для выполнения фоновых заданий на удаленных компьютерах. В этом разделе описано, как выполнить фоновое задание на удаленном компьютере. Дополнительные сведения о запуске фоновых заданий на локальном компьютере см. в разделе about_Jobs. Дополнительные сведения о фоновых заданиях см. в разделе about_Job_Details. УДАЛЕННЫЕ ФОНОВЫЕ ЗАДАНИЯ Фоновые задания можно выполнять на удаленных компьютерах тремя различными способами. -- Создание интерактивного сеанса с удаленным компьютером и запуск задания в этом сеансе. Процедуры аналогичны выполнению локального задания, хотя все действия выполняются на удаленном компьютере. -- Выполнение фонового задания на удаленном компьютере, который возвращает результаты на локальный компьютер. Используйте этот способ при необходимости сбора результатов выполнения фоновых заданий и сохранения их в центральном местоположении на локальном компьютере. -- Выполнение фонового задания на удаленном компьютере с сохранением на нем результатов. Используйте этот способ, если требуется более надежное хранение данных задания на компьютере, на котором они были получены. ЗАПУСК ФОНОВОГО ЗАДАНИЯ В ИНТЕРАКТИВНОМ СЕАНСЕ Можно начать интерактивный сеанс с удаленным компьютером и запустить фоновое задание в этом сеансе. Дополнительные сведения об интерактивных сеансах см. в разделах about_Remote и Enter-PSSession. Процедура запуска фонового задания в интерактивном сеансе практически идентична процедуре запуска фонового задания на локальном компьютере. Однако все операции выполняются на удаленном, а не на локальном компьютере. ШАГ 1: ENTER-PSSESSION Используйте командлет Enter-PSSession, чтобы начать интерактивный сеанс с удаленным компьютером. Можно использовать параметр ComputerName командлета Enter-PSSession для установления временного подключения к интерактивному сеансу. Или можно использовать параметр Session для создания интерактивного сеанса в сеансе Windows PowerShell (PSSession). Следующая команда начинает интерактивный сеанс на компьютере Server01. C:\PS> Enter-PSSession -computername Server01 Командная строка изменяется, чтобы указать, что установлено подключение к компьютеру Server01. Server01\C:> ШАГ 2: START-JOB Используйте командлет Start-Job, чтобы запустить фоновое задание в сеансе. Следующая команда запускает фоновое задание, которое получает события в журнале событий Windows PowerShell на компьютере Server01. Командлет Start-Job возвращает объект, представляющий задание. Эта команда сохраняет объект задания в переменной $job. Server01\C:> $job = start-job -scriptblock {get-eventlog "Windows Power Shell"} Во время выполнения задания можно использовать интерактивный сеанс для выполнения других команд, включая другие фоновые задания. Однако интерактивный сеанс должен оставаться открытым до завершения фонового задания. В случае завершения сеанса задание прерывается и результаты теряются. ШАГ 3: GET-JOB Чтобы проверить, выполнено ли задание, отобразите значение переменной $job или используйте командлет Get-Job для получения задания. В следующей команде используется командлет Get-Job для отображения задания. Server01\C:> get-job $job SessionId Name State HasMoreData Location Command --------- ---- ----- ----------- -------- ------- 1 Job1 Complete True localhost get-eventlog "Windo ws PowerShell" Выходные данные командлета Get-Job показывают, что задание выполняется на компьютере "localhost", поскольку задание было запущено и выполняется на одном и том же компьютере (в данном случае на компьютере Server01). ШАГ 4: RECEIVE-JOB Используйте командлет Receive-Job, чтобы получить результаты выполнения задания. Результаты можно отобразить в интерактивном сеансе или сохранить в файле на удаленном компьютере. Следующая команда получает результат выполнения задания, сохраненного в переменной $job. Оператор перенаправления (>) используется для сохранения результатов выполнения задания в файле PsLog.txt на компьютере Server01. Server01\C:> receive-job $job > c:\logs\PsLog.txt ШАГ 5: EXIT-PSSESSION Используйте командлет Exit-PSSession, чтобы завершить интерактивный сеанс. Командная строка изменяется, чтобы указать, что выполнен возврат к исходному сеансу на локальном компьютере. Server01\C:> Exit-PSSession C:\PS> ШАГ 6: INVOKE-COMMAND, GET-CONTENT Для просмотра содержимого файла PsLog.txt на компьютере Server01 в любое время начните другой интерактивный сеанс или выполните удаленную команду. Команду этого типа лучше всего выполнять в сеансе PSSession (постоянное подключение), если требуется использовать несколько команд для просмотра данных в файле PsLog.txt и управления ими. Дополнительные сведения о сеансах PSSession см. в разделе about_PSSessions. В следующих командах используется командлет New-PSSession для создания сеанса PSSession, который подключается к компьютеру Server01, и командлет Invoke-Command для выполнения команды Get-Content в сеансе PSSession с целью просмотра содержимого файла. C:\PS> $s = new-pssession -computername Server01 C:\PS> invoke-command -session $s -scriptblock {get-content c:\logs\psl og.txt} ЗАПУСК УДАЛЕННОГО ЗАДАНИЯ, ВОЗВРАЩАЮЩЕГО РЕЗУЛЬТАТЫ НА ЛОКАЛЬНЫЙ КОМПЬЮТЕР (ASJOB) Чтобы запустить фоновое задание на удаленном компьютере, возвращающем результаты выполнения команды на локальный компьютер, используйте параметр AsJob какого-либо командлета, например командлета Invoke-Command. При использовании параметра AsJob объект задания создается на локальном компьютере, даже если само задание выполняется на удаленном компьютере. После завершения задания результаты возвращаются на локальный компьютер. Для управления каким-либо заданием, созданным любым командлетом, можно использовать командлеты, в именах которых содержится существительное Job (командлеты Job). Большое количество командлетов, имеющих параметр AsJob, не использует удаленное взаимодействие Windows PowerShell, поэтому эти командлеты можно использовать даже на компьютерах, которые не настроены на удаленное взаимодействие и не соответствуют требованиям для удаленного взаимодействия Windows PowerShell. ШАГ 1: INVOKE-COMMAND -ASJOB В следующей команде с помощью параметра AsJob командлета Invoke-Command запускается фоновое задание на компьютере Server01. Задание выполняет команду Get-Eventlog, которая получает события из журнала системных событий. Можно использовать параметр JobName, чтобы назначить заданию отображаемое имя. invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob Выходные данные должны выглядеть примерно следующим образом. SessionId Name State HasMoreData Location Command --------- ---- ----- ----------- -------- ------- 1 Job1 Running True Server01 get-eventlog s ystem При использовании параметра AsJob командлет Invoke-Command возвращает объект задания, который имеет такой же тип, что и тип объекта задания, возвращаемого командлетом Start-Job. Объект задания можно сохранить в переменной, или можно использовать команду Get-Job для получения задания. Обратите внимание, что значение свойства Location указывает, что задание выполнялось на компьютере Server01. ШАГ 2: GET-JOB Для управления заданием, запущенным с помощью параметра AsJob командлета Invoke-Command, используйте командлеты Job. Поскольку объект, представляющий удаленное задание, находится на локальном компьютере, выполнять удаленные команды для управления заданием не требуется. Чтобы определить, выполнено ли задание, используйте команду Get-Job. Следующая команда получает все задания, запущенные в текущем сеансе. get-job Поскольку удаленное задание было запущено в текущем сеансе, локальная команда Get-Job получает задание. Свойство State объекта задания показывает, что команда выполнена успешно. SessionId Name State HasMoreData Location Command --------- ---- ----- ----------- -------- ------- 1 Job1 Completed True Server01 get-eventlog sy stem ШАГ 3: RECEIVE-JOB Используйте командлет Receive-Job, чтобы получить результаты выполнения задания. Поскольку результаты выполнения задания автоматически возвращаются на компьютер, где находится объект задания, их можно получить с помощью команды Receive-Job. В следующей команде используется командлет Receive-Job для получения результатов выполнения задания. Для определения задания используется идентификатор сеанса. Эта команда сохраняет результаты выполнения задания в переменной $results. Кроме того, результаты можно перенаправить в файл. $results = receive-job -id 1 ЗАПУСК УДАЛЕННОГО ЗАДАНИЯ С СОХРАНЕНИЕМ РЕЗУЛЬТАТОВ НА УДАЛЕННОМ КОМПЬЮТЕРЕ Чтобы запустить фоновое задание на удаленном компьютере с сохранением на нем результатов выполнения команды, используйте командлет Invoke-Command для выполнения команды Start-Job на удаленном компьютере. Этот способ можно использовать для выполнения фоновых заданий на нескольких компьютерах. При удаленном запуске команды Start-Job объект задания создается на удаленном компьютере и результаты выполнения задания сохраняются на удаленном компьютере. С точки зрения задания все операции являются локальными. Пользователь просто выполняет команды удаленно для управления локальным заданием на удаленном компьютере. ШАГ 1: INVOKE-COMMAND START-JOB Используйте командлет Invoke-Command, чтобы выполнить команду Start-Job на удаленном компьютере. Для этой команды требуется сеанс PSSession (постоянное подключение). При использовании параметра ComputerName командлета Invoke-Command для установления временного подключения команда Invoke-Command считается выполненной, если объект задания возвращен. В результате временное подключение закрывается и задание отменяется. В следующей команде с помощью командлета New-PSSession создается сеанс PSSession, подключенный к компьютеру Server01. Команда сохраняет сеанс PSSession в переменной $s. $s = new-pssession -computername Server01 В следующей команде с помощью командлета Invoke-Command выполняется команда Start-Job в сеансе PSSession. Команды Start-Job и Get-Eventlog заключаются в фигурные скобки. invoke-command -session $s -scriptblock {start-job -scriptblock {get-eve ntlog system}} Выходные данные должны выглядеть примерно следующим образом. Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 2 Job2 Running True Localhost get-eventlog syst em При удаленном выполнении команды Start-Job командлет Invoke-Command возвращает объект задания, который имеет такой же тип, что и тип объекта задания, возвращаемого командлетом Start-Job. Объект задания можно сохранить в переменной, или можно использовать команду Get-Job для получения задания. Обратите внимание, что значение свойства Location указывает, что задание выполнялось на локальном компьютере "LocalHost", несмотря на то что в действительности оно выполнялось на компьютере Server01. Поскольку объект задания создается на компьютере Server01 и задание выполняется на этом же компьютере, оно считается локальным фоновым заданием. ШАГ 2: INVOKE-COMMAND GET-JOB Для управления удаленным фоновым заданием используйте командлеты Job. Поскольку объект задания находится на удаленном компьютере, необходимо выполнять удаленные команды для получения, остановки, ожидания или извлечения результатов выполнения задания. Чтобы определить, выполнено ли задание, используйте командлет Invoke-Command для выполнения команды Get-Job в сеансе PSSession, подключенном к компьютеру Server01. invoke-command -session $s -scriptblock {get-job} Команда возвращает объект задания. Свойство State объекта задания показывает, что команда выполнена успешно. SessionId Name State HasMoreData Location Command --------- ---- ----- ----------- -------- ------- 2 Job2 Completed True LocalHost get-eventl og system ШАГ 3: INVOKE-COMMAND RECEIVE-JOB Используйте командлет Invoke-Command для выполнения команды Receive-Job в сеансе PSSession, подключенном к компьютеру Server01, чтобы получить результаты выполнения задания. В следующей команде используется командлет Receive-Job для получения результатов выполнения задания. Для определения задания используется идентификатор сеанса. Эта команда сохраняет результаты выполнения задания в переменной $results. Параметр Keep командлета Receive-Job используется для сохранения результата в кэше заданий на удаленном компьютере. $results = invoke-command -session $s -scriptblock {receive-job -sessio nid 2 -keep} Кроме того, можно перенаправить результаты в файл на локальном или удаленном компьютере. В следующей команде используется оператор перенаправления для сохранения результатов в файле на компьютере Server01. invoke-command -session $s -command {receive-job -sessionid 2 > c:\logs \pslog.txt} СМ. ТАКЖЕ about_Jobs about_Job_Details about_Remote Invoke-Command Start-Job Get-Job Wait-Job Stop-Job Remove-Job New-PSSession Enter-PSSession Exit-PSSession about_remote_output РАЗДЕЛ about_Remote_Output КРАТКОЕ ОПИСАНИЕ Описывает, как интерпретировать и форматировать выходные данные удаленных команд. ПОЛНОЕ ОПИСАНИЕ Выходные данные команды, выполненной на удаленном компьютере, могут выглядеть аналогично выходным данным той же команды, выполненной на локальном компьютере, однако имеется несколько существенных различий. В этом разделе описано, как интерпретировать, форматировать и отображать выходные данные команд, выполняемых на удаленных компьютерах. ОТОБРАЖЕНИЕ ИМЕНИ КОМПЬЮТЕРА При использовании командлета Invoke-Command для выполнения команды на удаленном компьютере команда возвращает объект, включающий имя компьютера, который сформировал данные. Имя удаленного компьютера хранится в свойстве PSComputerName. В случае многих команд свойство PSComputerName отображается по умолчанию. Например, следующая команда выполняет команду Get-Culture на двух удаленных компьютерах Server01 и Server02. Представленные ниже выходные данные включают имена удаленных компьютеров, на которых выполнялась команда. C:\PS> invoke-command -script {get-culture} -comp Server01, Server02 LCID Name DisplayName PSComputerName ---- ---- ----------- -------------- 1033 en-US English (United States) Server01 1033 es-AR Spanish (Argentina) Server02 Параметр HideComputerName командлета Invoke-Command можно использовать для скрытия свойства PSComputerName. Этот параметр предназначен для команд, собирающих данные только с одного удаленного компьютера. Следующая команда выполняет команду Get-Culture на удаленном компьютере Server01. Параметр HideComputerName используется для скрытия свойства PSComputerName и связанных с ним свойств. C:\PS> invoke-command -scr {get-culture} -comp Server01 -HideComputerNa me LCID Name DisplayName ---- ---- ----------- 1033 en-US English (United States) Также можно отобразить свойство PSComputerName, если по умолчанию оно не отображается. Например, следующие командлеты с помощью командлета Format-Table добавляют свойство PSComputerName в выходные данные удаленной команды Get-Date. C:\PS> $dates = invoke-command -script {get-date} -computername Server0 1, Server02 C:\PS> $dates | format-table DateTime, PSComputerName -auto DateTime PSComputerName -------- -------------- Понедельник, 21 июля 2008 г., 19:16:58 Server01 Понедельник, 21 июля 2008 г., 19:16:58 Server02 ОТОБРАЖЕНИЕ СВОЙСТВА MACHINENAME Некоторые командлеты, включая Get-Process, Get-Service и Get-EventLog, имеют параметр ComputerName, который позволяет получать объекты на удаленном компьютере. Эти командлеты не используют удаленное взаимодействие Windows PowerShell, поэтому их можно использовать даже на компьютерах, которые не настроены на удаленное взаимодействие в Windows PowerShell. В объектах, возвращаемых этими командлетами, имя удаленного компьютера хранится в свойстве MachineName. (Эти объекты не имеют свойства PSComputerName.) Например, эта команда получает процесс PowerShell на удаленных компьютерах Server01 и Server02. По умолчанию свойство MachineName не отображается. C:\PS> get-process powershell -computername server01, server02 Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 920 38 97524 114504 575 9.66 2648 powershell 194 6 24256 32384 142 3020 powershell 352 27 63472 63520 577 3.84 4796 powershell Для отображения свойства MachineName объектов процессов можно использовать командлет Format-Table. Например, следующая команда сохраняет процессы в переменной $p и использует оператор конвейера (|) для передачи сохраненных в ней процессов командлету Format-Table. Параметр Property командлета Format-Table используется для включения свойства MachineName в набор отображаемых данных. C:\PS> $p = get-process powershell -comp Server01, Server02 C:\PS> $P | format-table -property ID, ProcessName, MachineName -auto Id ProcessName MachineName -- ----------- ----------- 2648 powershell Server02 3020 powershell Server01 4796 powershell Server02 Следующая более сложная команда добавляет свойство MachineName в используемый по умолчанию набор отображаемых данных о процессах. Для задания вычисляемых свойств используются хэш-таблицы. К счастью, нет необходимости понимать эту команду, чтобы использовать ее. (Обратите внимание, что обратный апостроф [`] является знаком продолжения строки.) C:\PS> $p = get-process powershell -comp Server01, Server02 C:\PS> $p | format-table -property Handles, ` @{Label="NPM(K)";Expression={[int]($_.NPM/1024)}}, ` @{Label="PM(K)";Expression={[int]($_.PM/1024)}}, ` @{Label="WS(K)";Expression={[int]($_.WS/1024)}}, ` @{Label="VM(M)";Expression={[int]($_.VM/1MB)}}, ` @{Label="CPU(s)";Expression={if ($_.CPU -ne $()){ $_.CPU.To String("N")}}}, ` Id, ProcessName, MachineName -auto Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName MachineName ------- ------ ----- ----- ----- ------ -- ----------- ----------- 920 38 97560 114532 576 2648 powershell Server02 192 6 24132 32028 140 3020 powershell Server01 438 26 48436 59132 565 4796 powershell Server02 ДЕСЕРИАЛИЗОВАННЫЕ ОБЪЕКТЫ При выполнении удаленных команд, формирующих выходные данные, эти данные передаются по сети обратно на локальный компьютер. Большинство активных объектов Microsoft .NET Framework (таких как объекты, возвращаемые командлетами Windows PowerShell) невозможно передать по сети, поэтому активные объекты "сериализуются". Другими словами, активные объекты преобразуются в XML-представлени я объектов и их свойств. После этого сериализованный объект на основе XML передается по сети. Оболочка Windows PowerShell на локальном компьютере принимает сериализованный объект на основе XML и "десериализует" его путем преобразования в стандартный объект .NET Framework. Однако десериализованный объект не является активным объектом. Он представляет собой снимок объекта, созданный во время сериализации, и включает свойства, но не методы. В Windows PowerShell можно использовать эти объекты и управлять ими; например, можно передавать эти объекты по конвейеру, отображать выбранные свойства и форматировать их. Большинство десериализованных объектов автоматически форматируется для отображения в виде записей в файле Types.ps1xml или Format.ps1xml. Однако на локальном компьютере могут отсутствовать файлы форматирования для всех десериализованных объектов, которые были созданы на удаленном компьютере. Если объекты не являются форматированными, все свойства каждого объекта отображаются в консоли в потоковом списке. Если объекты не форматируются автоматически, можно использовать форматирующие командлеты, такие как Format-Table или Format-List, для форматирования и отображения выбранных свойств. Или можно использовать командлет Out-GridView для отображения объектов в таблице. Кроме того, при выполнении команды на удаленном компьютере, который использует командлеты, отсутствующие на локальном компьютере, возвращаемые командой объекты могут быть отформатированы неправильно из-за отсутствия файлов форматирования для этих объектов на локальном компьютере. Для получения данных форматирования с другого компьютера используйте командлеты Get-FormatData и Export-FormatData. Некоторые объекты, такие как DirectoryInfo и GUID, при получении преобразуются обратно в активные объекты. Для этих объектов не требуется какая-либо специальная обработка или форматирование. УПОРЯДОЧЕНИЕ РЕЗУЛЬТАТОВ Порядок имен компьютеров в параметре ComputerName командлетов определяет порядок подключения Windows PowerShell к удаленным компьютерам. Однако результаты отображаются в порядке их получения локальным компьютером, который может отличаться от исходного порядка. Для изменения порядка результатов используйте командлет Sort-Object. Можно выполнять сортировку по свойству PSComputerName или MachineName. Кроме того, можно выполнять сортировку по другому свойству объекта, чтобы результаты с разных компьютеров перемежались. СМ. ТАКЖЕ about_Remote Format-Table Get-EventLog Get-Process Get-Service Get-WmiObject Invoke-Command Out-GridView Select-Object about_remote_requirements РАЗДЕЛ about_Remote_Requirements КРАТКОЕ ОПИСАНИЕ Описывает требования к системе и конфигурации для выполнения удаленных команд в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В этом разделе описываются требования к системе, пользователям и ресурсам для установления удаленных подключений и выполнения удаленных команд в Windows PowerShell. Кроме того, в этом разделе содержатся инструкции по настройке удаленных операций. Примечание. Многие командлеты (включая Get-Service, Get-Process, Get-WMIObject, Get-EventLog и Get-WinEvent) получают объекты с удаленных компьютеров с помощью методов Microsoft .NET Framework, используемых для извлечения объектов. Они не используют инфраструктуру удаленного взаимодействия Windows PowerShell. Требования, описанные в этом документе, не применяются к таким командлетам. Чтобы найти командлеты, которые имеют параметр ComputerName и не используют удаленное взаимодействие Windows PowerShell, прочитайте описание параметра ComputerName командлетов. ТРЕБОВАНИЯ К СИСТЕМЕ На локальном и удаленном компьютерах должны быть установлены следующие компоненты: -- Windows PowerShell 2.0 или более поздней версии; -- Microsoft .NET Framework 2.0 или более поздней версии; -- Windows Remote Management 2.0. Чтобы определить номер установленной версии Windows PowerShell, используйте автоматическую переменную $PSVersionTable. Значение свойства $PSVersionTable.Version.Major должно быть не меньше 2. Windows Remote Management 2.0 входит в состав Windows 7 и Windows Server 2008 R2. Кроме того, этот компонент входит в интегрированный пакет установки для более ранних версий Windows, включающий Windows PowerShell. Для интегрированной среды скриптов Windows PowerShell (ISE) и командлета Out-Gridview требуется Microsoft .NET Framework 3.5 с пакетом обновления 1. Для командлета Get-WinEvent требуется Microsoft .NET Framework 3.5 или более поздней версии. Эти обновления не требуются для удаленного взаимодействия. РАЗРЕШЕНИЯ ПОЛЬЗОВАТЕЛЕЙ Для установления удаленного подключения и выполнения удаленных команд текущий пользователь должен быть членом группы "Администраторы" на удаленном компьютере или должен быть способным предоставить учетные данные администратора. ВЫПОЛНЕНИЕ ОПЕРАЦИЙ ОТ ИМЕНИ АДМИНИСТРАТОРА В Windows Vista, Windows Server 2008 и более поздних версиях Windows привилегии администратора требуются для выполнения следующих операций удаленного взаимодействия. -- Установление удаленного подключения к локальному компьютеру. Эту операцию обычно называют "замыканием на себя". -- Управление конфигурациями сеансов на локальном компьютере. -- Просмотр и изменение параметров WS-Management на локальном компьютере. Эти параметры находятся в узле LocalHost диска WSMAN:. Для выполнения этих задач необходимо запустить Windows PowerShell командой "Запуск от имени администратора", даже если пользователь является членом группы "Администраторы" на локальном компьютере. Чтобы запустить Windows PowerShell командой "Запуск от имени администратора" в Windows 7 и Windows Server 2008 R2, выполните следующие действия: 1. В меню "Пуск" выберите "Все программы", "Стандартные", а затем щелкните папку Windows PowerShell. 2. Щелкните правой кнопкой мыши Windows PowerShell и выберите команду "Запуск от имени администратора". Чтобы запустить Windows PowerShell командой "Запуск от имени администратора" в Windows Vista и Windows Server 2008, выполните следующие действия: 1. В меню "Пуск" выберите "Все программы" и щелкните папку Windows PowerShell. 2. Щелкните правой кнопкой мыши Windows PowerShell и выберите команду "Запуск от имени администратора". Команда "Запуск от имени администратора" также доступна в других элементах проводника для Windows PowerShell, включая ярлыки. Просто щелкните правой кнопкой мыши элемент и выберите команду "Запуск от имени администратора". При запуске Windows PowerShell из другой программы, например Cmd.exe, используйте для запуска программы команду "Запуск от имени администратора". НАСТРОЙКА КОМПЬЮТЕРА ДЛЯ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ Функции удаленного взаимодействия Windows PowerShell поддерживаются службой WinRM, которая является выполненной Майкрософт реализацией протокола WS-Management. Для использования функций удаленного взаимодействия необходимо изменить конфигурацию WS-Management по умолчанию в системе. Чтобы настроить Windows PowerShell на прием удаленных команд, выполните следующие действия: 1. Запустите Windows PowerShell. В Windows Vista и более поздних версиях Windows запустите Windows PowerShell командой "Запуск от имени администратора". 2. В командной строке введите следующую команду: enable-psremoting Эта процедура позволяет пользователям на других компьютерах устанавливать удаленные подключения и выполнять удаленные команды на локальном компьютере. Она также позволяет создать подключение "с замыканием на себя" на локальном компьютере. Для проверки правильной настройки удаленного взаимодействия выполните тестовую команду, которая создает удаленный сеанс на локальном компьютере. new-pssession Если удаленное взаимодействие настроено правильно, команда создаст сеанс на локальном компьютере и возвратит объект, представляющий сеанс. Выходные данные должны выглядеть примерно следующим образом. C:\PS> new-pssession Id Name ComputerName State ConfigurationName -- ---- ------------ ----- ----- 1 Session1 localhost Opened Microsoft.PowerShell Если команда завершается неудачей, см. раздел about_Remote_Trouble shooting. ПОНИМАНИЕ ПОЛИТИК При удаленной работе используется два экземпляра Windows PowerShell: один находится на локальном компьютере, а второй - на удаленном компьютере. В результате на работу пользователя влияют политики Windows и политики Windows PowerShell на локальном и удаленном компьютерах. В общем случае перед подключением и во время установления подключения действуют политики локального компьютера. При использовании подключения действуют политики удаленного компьютера. СМ. ТАКЖЕ about_Remote about_PSSessions Invoke-Command Enter-PSSession New-PSSession about_remote_troubleshooting РАЗДЕЛ about_Remote_Troubleshooting КРАТКОЕ ОПИСАНИЕ Описывает, как устранять неполадки удаленных операций в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В этом разделе описаны некоторые неполадки, которые могут возникнуть при использовании функций удаленного взаимодействия Windows PowerShell, основанных не технологии WS-Management, и приводятся рекомендации по устранению этих неполадок. Перед использованием функций удаленного взаимодействия Windows PowerShell ознакомьтесь с разделами about_Remote и about_Remote_Requirement s, чтобы получить инструкции по настройке и выполнению базовых операций. Кроме того, в разделах справки по каждому из командлетов, в особенности в описаниях операций, содержатся полезные сведения, помогающие избежать неполадок. Обновленные версии этого, а также других разделов справки по Windows PowerShell, доступны в Интернете в библиотеке Microsoft TechNet. Чтобы открыть интернет-версию этого раздела справки, вставьте в интернет-браузер следующий URL-адрес: http://go.microsoft.com/fwlink/?LinkID=135188 ПРИМЕЧАНИЕ. В Windows Vista, Windows Server 2008 и более поздних версиях Windows для просмотра и изменения параметров локального компьютера на диске WSMan:, в том числе конфигурации сеансов, доверенных узлов, портов и прослушивателей, запускайте Windows PowerShell в режиме "Запуск от имени администратора". УСТРАНЕНИЕ НЕПОЛАДОК, СВЯЗАННЫХ С РАЗРЕШЕНИЯМИ И ПРОВЕРКОЙ ПОДЛИННОСТИ В этом разделе описаны неполадки удаленного взаимодействия, связанные с разрешениями пользователей и компьютеров и требованиями удаленного взаимодействия. ВЫПОЛНЕНИЕ ОПЕРАЦИЙ ОТ ИМЕНИ АДМИНИСТРАТОРА --------------------------- ОШИБКА. Доступ запрещен. Необходимо запустить этот командлет из повышенного процесса. Для запуска удаленного сеанса на локальном компьютере или просмотра и изменения параметров локального компьютера на диске WSMan:, в том числе конфигурации сеансов, доверенных узлов, портов и прослушивателей, запустите Windows PowerShell в режиме "Запуск от имени администратора". Запуск Windows PowerShell в режиме "Запуск от имени администратора" -- Щелкните правой кнопкой мыши значок Windows PowerShell (или Windows PowerShell ISE) и выберите пункт "Запуск от имени администратора". Запуск Windows PowerShell в режиме "Запуск от имени администратора" в Windows 7 и Windows Server 2008 R2 -- На панели задач Windows щелкните правой кнопкой мыши значок Windows PowerShell и выберите команду "Запустить Windows PowerShell от имени администратора". Примечание. В Windows Server 2008 R2 значок Windows PowerShell по умолчанию закреплен на панели задач. ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ---------------------- ОШИБКА. ДОСТУП ЗАПРЕЩЕН - либо - ОШИБКА. В подключении к указанному удаленному узлу отказано. Убедитесь, что на удаленном узле служба WS-Management запущена и настроена на прослушивание запросов с использованием правильного порта и URL-адреса HTTP. Чтобы компьютер мог отправлять удаленные команды, никакая настройка не требуется. Однако для получения удаленных команд компьютер необходимо настроить, чтобы он поддерживал удаленное взаимодействие. Процедура настройки включает запуск службы WinRM, установку типа запуска "Авто" для службы WinRM, создание прослушивателей для подключений HTTP и HTTPS, а также создание конфигураций сеансов по умолчанию. Чтобы настроить на компьютере получение удаленных команд, воспользуйтесь командлетом Enable-PSRemoting. Следующая команда включает все необходимые параметры удаленного взаимодействия, активирует конфигурации сеансов и перезапускает службу WinRM, чтобы изменения вступили в силу. enable-psremoting Чтобы подавить все запросы подтверждения, введите следующую команду: enable-psremoting -force Дополнительные сведения см. в разделе Enable-PSRemoting. ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ НА ПРЕДПРИЯТИИ --------------------------------------- ОШИБКА. ДОСТУП ЗАПРЕЩЕН - либо - ОШИБКА. В подключении к указанному удаленному узлу отказано. Убедитесь, что на удаленном узле служба WS-Management запущена и настроена на прослушивание запросов с использованием правильного порта и URL-адреса HTTP. Чтобы включить возможность получения удаленных команд Windows PowerShell и приема подключений на одном компьютере, воспользуйтесь командлетом Enable-PSRemoting. Чтобы включить удаленное взаимодействие на нескольких компьютерах предприятия, можно воспользоваться следующими масштабированными процедурами . -- Чтобы настроить прослушиватели для удаленного взаимодействия, включите групповую политику "Разреить автоматическую настройку прослушивателей". Инструкции см. в ниже в разделе "Включение прослушивателей с помощью групповой политики". -- Чтобы установить тип запуска "Авто" для службы удаленного управления Windows (WinRM), воспользуйтесь командлетом Set-Service. Инструкции см. ниже в разделе "Установка типа запуска службы WinRM" -- Чтобы включить исключение брандмауэра, воспользуйтесь групповой политикой "Брандмауэр Windows: Разрешать локальные исключения для портов". Инструкции см. в ниже в разделе "Создание исключения брандмауэра с помощью групповой политики". ВКЛЮЧЕНИЕ ПРОСЛУШИВАТЕЛЕЙ С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ ------------------------------------------------ ОШИБКА. ДОСТУП ЗАПРЕЩЕН - либо - ОШИБКА. В подключении к указанному удаленному узлу отказано. Убедитесь, что на удаленном узле служба WS-Management запущена и настроена на прослушивание запросов с использованием правильного порта и URL-адреса HTTP. Чтобы настроить прослушиватели для всех компьютеров в домене, включите политику "Разрешить автоматическую настройку прослушивателей" по следующему пути групповых политик: Конфигурация компьютера\Административные аблоны\Компоненты Windows \Удаленное управление Windows (WinRM)\Служба WinRM. Включите политику и укажите фильтры IPv4 и IPv6. Подстановочные знаки (*) разрешены. ВКЛЮЧЕНИЕ ИСКЛЮЧЕНИЯ БРАНДМАУЭРА С ПОМОЩЬЮ ГРУППОВОЙ ПОЛИТИКИ ---------------------------------------------------------- ОШИБКА. ДОСТУП ЗАПРЕЩЕН - либо - ОШИБКА. В подключении к указанному удаленному узлу отказано. Убедитесь, что на удаленном узле служба WS-Management запущена и настроена на прослушивание запросов с использованием правильного порта и URL-адреса HTTP. Чтобы включить исключение брандмауэра на всех компьютерах домена, включите политику "Брандмауэр Windows: Разрешать локальные исключения для п ортов" по следующему пути групповых политик: Конфигурация компьютера\Административные аблоны\Сеть\Сетевые подключения\Брандмауэр Windows\Профиль домена Эта политика разрешает членам группы "Администраторы" на компьютере использовать брандмауэр Windows в панели управления, чтобы создавать исключения брандмауэра для службы удаленного управления Windows. УСТАНОВКА ТИПА ЗАПУСКА "АВТО" ДЛЯ СЛУЖБЫ WINRM. ------------------------------------------------ ОШИБКА. ДОСТУП ЗАПРЕЩЕН При удаленном взаимодействии Windows PowerShell используется служба удаленного управления Windows (WinRM). Для поддержки удаленных команд эта служба должна быть запущена. В Windows Server 2003, Windows Server 2008 и Windows Server 2008 R2 для службы удаленного управления Windows (WinRM) используется тип запуска "Авто". Однако в Windows XP, Windows Vista и Windows 7 служба WinRM по умолчанию отключена. Чтобы установить тип запуска службы на удаленном компьютере, воспользуйтесь командлетом Set-Service. Для выполнения команды на нескольких компьютерах можно создать текстовый или CSV-файл с именами компьютеров. Например, следующая команда получает список компьютеров из файла Servers.txt, а затем устанавливает тип запуска "Авто" для службы WinRM на всех компьютерах. C:\PS> $servers = get-content servers.txt C:\PS> set-service WinRM -computername $servers -startuptype Automatic Чтобы увидеть результаты, воспользуйтесь командлетом Get-WMIObject с объектом Win32_Service. Дополнительные сведения см. в разделе Set-Service . ВОССОЗДАНИЕ КОНФИГУРАЦИЙ СЕАНСОВ ПО УМОЛЧАНИЮ -------------------------------------------------- ОШИБКА. ДОСТУП ЗАПРЕЩЕН Чтобы подключиться к локальному компьютеру и выполнять команды удаленно, локальный компьютер должен содержать конфигурации сеансов для удаленных команд. Командлет Enable-PSRemoting создает на локальном компьютере конфигурации сеансов по умолчанию. Удаленные пользователи применяют эти конфигурации сеансов каждый раз, когда удаленная команда не содержит параметра ConfigurationName. Если конфигурации по умолчанию не зарегистрированы на компьютере или были удалены, воспользуйтесь командлетом Enable-PSRemoting, чтобы создать их заново. Этот командлет можно использовать повторно. Если компонент уже настроен, ошибки не создаются. Если конфигурации сеансов по умолчанию были изменены и требуется восстанови ть исходные конфигурации сеансов по умолчанию, с помощью командлета Unregister-PSSessionConfiguration удалите измененные конфигурации сеансов, а затем с помощью командлета Enable-PSRemoting восстановите их. Командлет Enable-PSRemoting не изменяет имеющиеся конфигурации сеансов. Примечание. Когда командлет Enable-PSRemoting восстанавливает конфигурации сеансов по умолчанию, он не создает явные дескрипторы безопасности для этих конфигураций. Вместо этого конфигурации наследуют дескриптор безопасности элемента RootSDDL, который является защищенным по умолчанию. Чтобы увидеть дескриптор безопасности RootSDDL, введите команду: get-item wsman:\localhost\Service\RootSDDL Чтобы изменить элемент RootSDDL, воспользуйтесь командлетом Set-Item на диске WSMan:. Чтобы изменить дескриптор безопасности конфигурации сеанса, воспользуйтесь командлетом Set-PSSessionConfiguration с параметром SecurityDescriptorSDDL или ShowSecurityDescriptorUI. Дополнительные сведения о диске WSMan: см. в разделе справки, посвященной поставщику WS-Management ("get-help wsman"). ПРЕДОСТАВЛЕНИЕ УЧЕТНЫХ ДАННЫХ АДМИНИСТРАТОРА ---------------------------------------- ОШИБКА. ДОСТУП ЗАПРЕЩЕН Для создания сеанса PSSession или выполнения команд на удаленном компьютере по умолчанию текущий пользователь должен быть членом группы "Администраторы" на удаленном компьютере. Иногда требуется указывать учетные данные, даже если текущий пользователь является членом группы "Администраторы". Если текущий пользователь является членом группы "Администраторы" на удаленном компьютере или может указать учетные данные члена группы "Администраторы", воспользуйтесь для удаленного подключения параметром Credential командлета New-PSSession, Enter-PSSession или Invoke-Command. Например, в следующей команде задаются учетные данные администратора. Invoke-Command -ComputerName Server01 -Credential Domain01\Admin01 Дополнительные сведения о параметре Credential см. в разделе New-PSSession, Enter-PSSession или Invoke-Command. ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ, НЕ ЯВЛЯЮЩИХСЯ АДМИНИСТРАТОРАМИ --------------------------------------------------- ОШИБКА. ДОСТУП ЗАПРЕЩЕН Для создания сеанса PSSession или выполнения команды на удаленном компьютере пользователю требуется разрешение на использование конфигураций сеансов на удаленном компьютере. По умолчанию только члены группы "Администраторы" на компьютере имеют разрешение на использование конфигураций сеансов по умолчанию. Поэтому только члены группы "Администраторы" могут удаленно подключаться к компьютеру. Чтобы разрешить другим пользователям подключаться к локальному компьютеру, предоставьте разрешение на запуск для конфигураций сеансов по умолчанию на локальном компьютере. Следующая команда открывает лист свойств, позволяющий изменять дескриптор безопасности конфигурации сеанса Microsoft.PowerShell по умолчанию на локальном компьютере. Set-PSSessionConfiguration Microsoft.Powershell -ShowSecurityDescriptor UI Дополнительные сведения см. в разделе about_Session_Configurations. ВКЛЮЧЕНИЕ УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ДЛЯ АДМИНИСТРАТОРОВ В ДРУГИХ ДОМЕНАХ ---------------------------------------------------------- ОШИБКА. ДОСТУП ЗАПРЕЩЕН Если пользователь из другого домена является членом группы "Администраторы" на локальном компьютере, он не может удаленно подключаться к локальному компьютеру с правами администратора. По умолчанию удаленные подключения из других документов запускаются только с токенами разрешений обычного пользователя. Однако с помощью параметра реестра LocalAccountTokenFilterPolicy можно изменить поведение по умолчанию и разрешить удаленным пользователям, входящим в группу "Администраторы", выполнять операции с правами администратора. Внимание Параметр реестра LocalAccountTokenFilterPolicy отключает ограничения на удаленное взаимодействие функции контроля учетных записей для всех пользователей на всех затрагиваемых компьютерах. Перед изменением политики внимательно изучите возможные последствия. Чтобы изменить политику, воспользуйтесь следующей командой, устанавливающей для параметра реестра LocalAccountTokenFilterPolicy значение 1. C:\PS> new-itemproperty -name LocalAccountTokenFilterPolicy -path ` HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies \System -propertyType `DWord -value 1 ИСПОЛЬЗОВАНИЕ В УДАЛЕННОЙ КОМАНДЕ IP-АДРЕСА ----------------------------------------------------- ОШИБКА. Клиенту WinRM не удается обработать запрос. Если применяемая схема проверки подлинности отличается от Kerberos или компьютер клиента не входит в домен, необходимо использовать транспорт HTTPS или добавить компьютер назначения к значениям параметра конфигурации TrustedHosts. Параметр ComputerName командлетов New-PSSession, Enter-PSSession и Invoke-Command принимает в качестве допустимого значения IP-адрес. Но поскольку проверка подлинности Kerberos не поддерживает IP-адреса, в случае указания IP-адреса по умолчанию используется проверка подлинности NTLM. В случае использования проверки подлинности NTLM для удаленного взаимодейст вия необходимо выполнить следующие действия. 1. Настройте на компьютере использование транспорта HTTPS или добавьте IP-адреса удаленных компьютеров в список TrustedHosts на локальном компьютере. Инструкции см. ниже в разделе "Добавление компьютера в список TrustedHos ts". 2. Во всех удаленных командах используйте параметр Credential. Это необходимо даже в том случае, если указываются учетные данные текущего пользователя. УДАЛЕННОЕ ПОДКЛЮЧЕНИЕ С КОМПЬЮТЕРА, ВХОДЯЩЕГО В РАБОЧУЮ ГРУППУ ------------------------------------------------------- ОШИБКА. Клиенту WinRM не удается обработать запрос. Если применяемая схема проверки подлинности отличается от Kerberos или компьютер клиента не входит в домен, необходимо использовать транспорт HTTPS или добавить компьютер назначения к значениям параметра конфигурации TrustedHosts. Если локальный компьютер не входит в домен, для удаленного взаимодействия необходимо выполнить следующие действия. 1. Настройте на компьютере использование транспорта HTTPS или добавьте имена удаленных компьютеров в список TrustedHosts на локальном компьютере. Инструкции см. ниже в разделе "Добавление компьютера в список TrustedHos ts". 2. Проверьте, что на входящем в рабочую группу компьютере задан пароль. Если пароль не задан или пуст, выполнять удаленные команды невозможно. Чтобы задать пароль для учетной записи пользователя, воспользуйтесь элементом "Учетные записи пользователей" панели управления. 3. Во всех удаленных командах используйте параметр Credential. Это необходимо даже в том случае, если указываются учетные данные текущего пользователя. ДОБАВЛЕНИЕ КОМПЬЮТЕРА В СПИСОК TRUSTEDHOSTS ----------------------------------------------- Элемент TrustedHosts может содержать список разделенных запятыми имен компьютеров, IP-адресов и полных доменных имен. Подстановочные знаки разрешены. Для просмотра и изменения списка доверенных узлов, воспользуйтесь диском WSMan:. Элемент TrustedHost расположен в узле WSMan:\localhost\Clien t. Только члены группы "Администраторы" на компьютере имеют разрешение на изменение списка доверенных узлов на компьютере. Внимание Действие значения, заданного в элементе TrustedHosts, распространяется на всех пользователей компьютера. Для просмотра списка доверенных узлов необходимо использовать следующую команду: get-item wsman:\localhost\Client\TrustedHosts Кроме того, можно с помощью командлета Set-Location (псевдоним cd) перейти к нужному расположению на диске WSMan:. Пример: "cd WSMan:\localhost\Client; dir". Чтобы добавить в список доверенных узлов все компьютеры, воспользуйтесь следующей командой, в которой для параметра ComputerName задано значение * (все). set-item wsman:localhost\client\trustedhosts -value * Кроме того, с помощью подстановочного знака (*) можно добавить в список доверенных узлов все компьютеры из определенного домена. Например, следующая команда добавляет в список доверенных узлов все компьютеры из домена Fabrikam. set-item wsman:localhost\client\trustedhosts *.fabrikam.com Чтобы добавить в список доверенных узлов имена отдельных компьютеров, необходимо использовать следующий формат команд: set-item wsman:\localhost\Client\TrustedHosts -value <имя_компьютера>[, имя_компьютера>] Здесь каждое значение <имя_компьютера> должно иметь следующий формат: <компьютер>.<домен>.<компания>. Пример: set-item wsman:\localhost\Client\TrustedHosts -value Server01.Domain01. Fabrikam.com Чтобы добавить имя компьютера в имеющийся список доверенных узлов, необходимо сначала сохранить текущее значение в переменной, а затем присвоить значение разделенному запятыми списку, который включает текущее и новое значения. Например, чтобы добавить компьютер Server01 в имеющийся список доверенных узлов, воспользуйтесь следующей командой: $curValue = (get-item wsman:\localhost\Client\TrustedHosts).value set-item wsman:\localhost\Client\TrustedHosts -value "$curValue, Server 01.Domain01.Fabrikam.com" Чтобы добавить в список доверенных узлов IP-адреса отдельных компьютеров, необходимо использовать следующий формат команд: set-item wsman:\localhost\Client\TrustedHosts -value <IP-адрес> Пример: set-item wsman:\localhost\Client\TrustedHosts -value 172.16.0.0 Чтобы добавить компьютер в список TrustedHosts удаленного компьютера, с помощью командлета Connect-WSMan добавьте узел удаленного компьютера на диск WSMan: локального компьютера. После этого добавьте компьютер с помощью команды Set-Item. Дополнительные сведения о командлете Connect-WSMan см. в разделе Connect-WS Man. УСТРАНЕНИЕ НЕПОЛАДОК, СВЯЗАННЫХ С КОНФИГУРАЦИЕЙ КОМПЬЮТЕРОВ В этом разделе описаны неполадки удаленного управления, связанные с конкретными конфигурациями компьютеров, доменов или предприятия. НАСТРОЙКА УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ ЧЕРЕЗ АЛЬТЕРНАТИВНЫЕ ПОРТЫ -------------------------------------------- ОШИБКА. В подключении к указанному удаленному узлу отказано. Убедитесь, что на удаленном узле служба WS-Management запущена и настроена на прослушивание запросов с использованием правильного порта и URL-адреса HTTP. По умолчанию при удаленном взаимодействии Windows PowerShell для транспорта HTTP используется порт 80. Порт по умолчанию используется всегда, когда пользователь не указывает в удаленной команде параметр ConnectionURI или Port. Чтобы изменить порт, используемый в Windows PowerShell по умолчанию, с помощью командлета Set-Item на диске WSMan: измените значение Port в конечном узле прослушивателя. Например, следующая команда изменяет порт по умолчанию на 8080. set-item wsman:\localhost\listener\listener*\port -value 8080 НАСТРОЙКА УДАЛЕННОГО ВЗАИМОДЕЙСТВИЯ С ИСПОЛЬЗОВАНИЕМ ПРОКСИ-СЕРВЕРА --------------------------------------------- ОШИБКА. Клиенту не удается подключиться к узлу назначения, указанному в запросе. Убедитесь, что служба на узле назначения работает и принимает запросы. Поскольку при удаленном взаимодействии Windows PowerShell используется протокол HTTP, также действуют параметры прокси HTTP. На предприятиях, применяющих прокси-серверы, пользователи не могут напрямую обращаться к удаленному компьютеру Windows PowerShell. Чтобы решить эту проблему, необходимо использовать в удаленных командах параметры прокси-серверов. Доступны следующие параметры. -- ProxyAccessType -- ProxyAuthentication -- ProxyCredential Чтобы задать эти параметры для определенной команды, используйте описанную ниже процедуру. 1. С помощью параметров ProxyAccessType, ProxyAuthentication и ProxyCredential командлета New-PSSessionOption создайте объект параметра сеанса, содержащий параметры прокси -сервера предприятия. Сохраните объект параметра в переменной. 2. Используйте переменную, содержащую объект параметра, в качестве значения параметра SessionOption команды New-PSSession, Enter-PSSession или Invoke-Command. Например, следующая команда создает объект параметра сеанса с параметрами сеанса прокси, а затем создает с помощью этого объекта удаленный сеанс. C:\PS> $SessionOption = New-PSSessionOption -ProxyAccessTypeIEConfig ` -ProxyAuthentication Negotiate -ProxyCredential Domain01\User01 C:\PS> New-PSSession -ConnectionURI https://www.fabrikam.com Дополнительные сведения о командлете New-PSSessionOption см. в разделе New-PSSessionOption. Чтобы задать эти параметры для всех удаленных команд в текущем сеансе, используйте объект параметра, созданный с помощью командлета New-PSSessionOption, в качестве значения привилегированной переменной $PSSessionOption. Дополнительные сведения о привилегированной переменной $PSSessionOption см. в разделе about_Preference_Variables. Чтобы задать эти параметры для всех удаленных команд во всех сеансах Windows PowerShell на локальном компьютере, добавьте привилегированную переменную $PSSessionOption в профиль Windows PowerShell. Дополнительные сведения о профилях Windows PowerShell см. в разделе about_Profiles. ОБНАРУЖЕНИЕ 32-РАЗРЯДНОГО СЕАНСА НА 64-РАЗРЯДНОМ КОМПЬЮТЕРЕ --------------------------------------------------- ОШИБКА. Условие "<имя_средства>" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, наличие и правильность пути и повторите попытку. Если на удаленном компьютере установлена 64-разрядная версия Windows, а в удаленной команде используется конфигурация 32-разрядного сеанса, например Microsoft.PowerShell32, служба удаленного управления Windows (WinRM) загружает процесс WOW64, и операционная система Windows все ссылки на каталог %Windir% \System32 автоматически перенаправляет на каталог %windir% \SysWOW64. В результате при попытке загрузить из каталога System32 средства, у которых нет аналогов в каталоге SysWow64, например Defrag.exe, найти такие средства в каталоге не удается. Чтобы определить используемую в сеансе архитектуру процессора, воспользуйте сь значением переменной среды PROCESSOR_ARCHITECTURE. Следующая команда определяет архитектуру процессора сеанса в переменной $s. C:\PS> $s = new-pssession -computername Server01 -configurationName Cus tomShell C:\PS> invoke-command -session $s {$env:PROCESSOR_ARCHITECTURE} x86 Дополнительные сведения о конфигурациях сеансов см. в разделе about_session _configurations. УСТРАНЕНИЕ НЕПОЛАДОК ПОЛИТИК И УСТАНОВЛЕННЫХ ПАРАМЕТРОВ В этом разделе описаны проблемы удаленного взаимодействия, связанные с политиками и параметрами, заданными на локальном и удаленном компьютерах. ИЗМЕНЕНИЕ ПОЛИТИКИ ВЫПОЛНЕНИЯ ДЛЯ КОМАНДЛЕТОВ IMPORT-PSSESSION И IMPORT-MOD ULE ------------------------------------------------------------------------- ОШИБКА. Import-Module: Не удается загрузить файл <имя_файла>, так как выполнение скриптов запрещено для данной системы. Командлеты Import-PSSession и Export-PSSession создают модули, содержащие неподписанные файлы скриптов и файлы форматирования. Чтобы можно было импортировать модули, созданные этими командлетами, с помощью командлетов Import-PSSession и Import-Module, политика выполнения в текущем сеансе не может иметь значение Restricted или AllSigned. (Дополнительные сведения о политиках выполнения Windows PowerShell см. в разделе about_Execution_Polic ies.) Чтобы импортировать модули без изменения политики выполнения для заданного в реестре локального компьютера, необходимо с помощью параметра Scope командлета Set-ExecutionPolicy задать менее жесткую политику выполнения для отдельного процесса. Например, следующая команда запускает процесс с политикой выполнения RemoteSigned. Изменение политики выполнения распространяется только на текущий процесс и не приводит к изменению параметра реестра Windows PowerShell ExecutionPolicy. set-executionpolicy -scope process -executionpolicy RemoteSigned Кроме того, с помощью параметра ExecutionPolicy программы PowerShell.exe можно запустить отдельный сеанс с менее жесткой политикой выполнения. powershell.exe -executionpolicy RemoteSigned Дополнительные сведения о командлетах см. в разделах Import-PSSession, Export-PSSession и Import-Module. Дополнительные сведения о политиках выполнения см. в разделе about_Execution_Policies. Чтобы получить дополнительные сведения о параметр ах справки консоли PowerShell.exe, введите команду "powershell.exe -?". ЗАДАНИЕ И ИЗМЕНЕНИЕ КВОТ ---------------------------- ОШИБКА. Общий объем данных, полученных от удаленного клиента, превысил допустимое значение. Квоты позволяют защищать локальный компьютер и удаленный компьютер от чрезмерного использования ресурсов, как случайного так и злонамеренного. В базовой конфигурации доступны следующие квоты. -- Поставщик WS-Management (WSMan:) предоставляет несколько параметров квот, например параметры MaxEnvelopeSizeKB и MaxProviderReque sts в узле WSMan:\<имя_компьютера> и параметры MaxConcurrentOperations, MaxConcurrentOperationsPerUser и MaxConnections в узле WSMan:\<имя_компь ютера>\Service. -- Локальный компьютер можно защитить с помощью параметров MaximumReceivedDataSizePerCommandMB и MaximumReceivedObjectSizeMB команд лета New-PSSessionOption и привилегированной переменной $PSSessionOption. -- Удаленный компьютер можно защитить, добавив ограничения в конфигурации сеанса, например с помощью параметров MaximumReceivedDataSi zePerCommandMB и MaximumReceivedObjectSizeMB командлета Register-PSSessionConfiguration . Если квоты противоречат команде, Windows PowerShell создает оШибку. Для устранения ошибки измените удаленную команду, чтобы она соответствовала квоте. Или определите источник квоты и увеличьте квоту, чтобы можно было выполнить команду. Например, следующая команда увеличивает квоту размеров объектов в конфигурации сеансов Microsoft.PowerShell на удаленном компьютере с 10 МБ (значение по умолчанию) до 11 МБ. Set-PSSessionConfiguration -name microsoft.powershell ` -MaximumReceive dObjectSizeMB 11 -Force Дополнительные сведения о командлете New-PSSsessionOption см. в разделе New-PSSessionOption. Дополнительные сведения о квотах WS-Management см. в разделе справки, посвященном поставщику WS-Management (введите команду "get-help WSMan"). УСТРАНЕНИЕ ОШИБОК ТАЙМ-АУТА ----------------------------- ОШИБКА. Службе WS-Management не удается заверить операцию в течение времени, указанного в OperationTimeout. Тайм-ауты позволяют защищать локальный компьютер и удаленный компьютер от чрезмерного использования ресурсов, как случайного так и злонамеренного. Если тайм-ауты заданы как на локальном, так и на удаленном компьютере, Windows PowerShell использует меньшее из заданных значений. В базовой конфигурации доступны следующие тайм-ауты. -- Поставщик WS-Management (WSMan:) предоставляет несколько параметров тайм-аутов на стороне клиента и на стороне сервера, например параметр MaxTimeoutms в узле WSMan:\<имя_компьютера> и параметры EnumerationTimeoutms и MaxPacketRetrievalTimeSeconds в узле WSMan:\<имя_компьютера>\Service. -- Локальный компьютер можно защитить с помощью параметров CancelTimeout, IdleTimeout, OpenTimeout, и OperationTimeout командлета New-PSSessionOption и привилегированной переменной $PSSessionOption. -- Можно также защитить удаленный компьютер, установив значения тайм-аутов для сеанса программным образом в конфигурации сеанса. Если значение тайм-аута делает невозможным заверение операции, Windows PowerShell прерывает операцию и создает ошибку. Для устранения ошибки измените команду, чтобы она завералась в пределах отведенного тайм-аута, или определите источник ограничения тайм-аута и увеличьте значение тайм-аута, чтобы можно было выполнить команду. Например, следующие команды с помощью командлета New-PSSessionOption создают объект параметра сеанса со значением OperationTimeout, равным 4 минутам (в миллисекундах), а затем создают удаленный сеанс с использованием этого объекта параметра сеанса. C:\PS> $pso = new-pssessionoption -operationtimeout 240000 C:\PS> new-pssession -computername Server01 -sessionOption$pso Дополнительные сведения о периодах ожидания WS-Management см. в разделе справки, посвященном поставщику WS-Management (введите команду "get-help WSMan"). Дополнительные сведения о командлете New-PSSsessionOption см. в разделе New-PSSessionOption. УСТРАНЕНИЕ НЕПОЛАДОК, ПРИ КОТОРЫХ ОБОЛОЧКА ПЕРЕСТАЕТ ОТВЕЧАТЬ В этом разделе описаны неполадки удаленного взаимодействия, не позволяющие заверить команду или задерживающие появление командной строки Windows PowerShell. ПРЕРЫВАНИЕ КОМАНДЫ -------------------------- Некоторые собственные программы Windows, например программы с пользовательским интерфейсом, консольные приложения, требующие ввода данных, и консольные приложения, использующие консольный интерфейс API Win32, некорректно работают с удаленным узлом Windows PowerShell. При использовании таких программ может наблюдаться непредсказуемое поведение, например отсутствие вывода, частичный вывод, либо удаленная команда может быть не завершена. Чтобы заверить переставшую отвечать программу, нажмите сочетание клавиш CTRL + C. Чтобы увидеть оишбки, которые могли быть созданы, введите на локальном узле и в удаленном сеансе "$error". CМ. ТАКЖЕ Интернет-версия: http://go.microsoft.com/fwlink/?LinkID=135188 about_remote about_remote_requirements about_requires РАЗДЕЛ about_Requires КРАТКОЕ ОПИСАНИЕ Запрещает выполнение скриптов при отсутствии указанных оснасток и версии. ПОЛНОЕ ОПИСАНИЕ Инструкция #Requires запрещает выполнение скрипта, если не выполняются предварительные условия по версии Windows PowerShell, оснастке и версии оснастки. Если предварительные условия не выполняются, Windows PowerShell не выполняет скрипт. Инструкции #Requires можно использовать в любом скрипте. Их нельзя использовать в функциях, командлетах и оснастках. Синтаксис Для указания требуемой оснастки и ее версии используйте следующий синтаксис: #requires -PsSnapIn <оснастка_PS> [-Version <N>[.<n>]] Для указания минимальной требуемой версии Windows PowerShell используйте следующий синтаксис: #requires -Version <N>[.<n>] Для указания требуемой оболочки используйте следующий синтаксис: #requires -ShellId <ИД_оболочки> Правила использования - Инструкция #Requires должна быть первым элементом в строке скрипта. - Скрипт может включать несколько инструкций #Requires. - Инструкции #Requires могут быть расположены в любой строке скрипта. Примеры Следующая инструкция требует оснастку Microsoft.PowerShell.Security: #requires -PsSnapIn Microsoft.PowerShell.Security Если оснастка Microsoft.PowerShell.Security не загружена, скрипт не выполняется и в Windows PowerShell отображается следующее сообщение об ошибке: "Не удалось выполнить скрипт "<имя_скрипта>", так как отсутствуют следующие оснастки Windows PowerShell, указанные инструкциями "#requires": Microsoft.PowerShell.Security.". Следующая инструкция требует версию Windows PowerShell 2.0 или любую более позднюю версию оснастки Microsoft.PowerShell.Security: #requires -PsSnapIn Microsoft.PowerShell.Security -Version 2 Следующая инструкция требует Windows PowerShell 2.0 или более поздней версии: #requires -Version 2.0 В следующем скрипте содержатся две инструкции #Requires. Должны быть выполнены требования, указанные в обеих инструкциях. В противном случае скрипт не будет выполнен. Каждая инструкция #Requires должна быть первым элементом в строке. #requires -PsSnapIn Microsoft.PowerShell.Security -Version 2 Get-WMIObject WIN32_LogicalDisk | out-file K:\status\DiskStatus.txt #requires -Version 2 Следующая инструкция #Requires запрещает выполнение скрипта, если указанный идентификатор оболочки не соответствует текущему. Текущий идентификатор оболочки хранится в переменной $ShellId. #requires -ShellId MyLocalShell СМ. ТАКЖЕ about_Automatic_Variables about_Language_Keywords about_PSSnapins get-PSSnapin about_Reserved_Words РАЗДЕЛ about_Reserved_Words КРАТКОЕ ОПИСАНИЕ Содержит список зарезервированных слов, которые имеют специальное значение в Windows PowerShell и не могут использоваться в качестве идентификаторов. ПОЛНОЕ ОПИСАНИЕ Некоторые слова в Windows PowerShell имеют специальное значение. Если такие слова встречаются без кавычек, оболочка Windows PowerShell пытается применить их специальное значение, не рассматривая их как символьные строки. Чтобы использовать зарезервированные слова в качестве аргументов в команде или скрипте - то есть не использовать их специальное значение, - заключайте эти слова в кавычки. Ниже приведены зарезервированные слова в Windows PowerShell. Break Continue Do Else Elseif Filter For Foreach Function If In Local Private Return Switch Until Where While Чтобы получить сведения об инструкциях языка, таких как Foreach, If, For и While, последовательно введите "get-help", префикс "about_" и название инструкции. Например, чтобы получить сведения об инструкции Foreach, введите следующую команду: get-help about_foreach Чтобы получить сведения о синтаксисе инструкции Filter или Return, введите следующую команду: get-help about_functions СМ. ТАКЖЕ about_Command_Syntax about_Escape_Characters about_Language_Keywords about_Parsing about_Quoting_Rules about_Script_Blocks about_Special_Characters about_Return РАЗДЕЛ about_Return КРАТКОЕ ОПИСАНИЕ Выход из текущей области действия, которая может быть функцией, скриптом или блоком скриптов. ПОЛНОЕ ОПИСАНИЕ Ключевое слово Return служит для выхода из функции, скрипта или блока скриптов. Его можно использовать для выхода из области действия в определенной точке, для вывода значения или для указания на окончание области действия. Пользователи, знакомые с языками, подобными C или C#, могут использовать ключевое слово Return, чтобы сделать явной логику выхода из области действия. В Windows PowerShell результаты выражений выводятся даже при отсутствии выражений с ключевым словом Return. В таких языках как C или C# выводится только значение или значения, указанные ключевым словом Return. Синтаксис Ключевое слово Return имеет следующий синтаксис: return [<выражение>] Ключевое слово Return может использоваться отдельно, или за ним может следовать значение или выражение: return return $a return (2 + $a) Примеры В следующем примере ключевое слово Return используется для выхода из функции в определенной точке при выполнении условия: function ScreenPassword($instance) { if (($instance.screensaversecure)) {return $instance.name} <additional statements> } foreach ($a in @(get-wmiobject win32_desktop)) { ScreenPassword($a) } Этот скрипт проверяет учетную запись каждого пользователя. Функция ScreenPassword выводит имя любой учетной записи пользователя, для которой отсутствует экранная заставка, защищенная паролем. Если экранная заставка пользователя защищена паролем, функция выполняет другие инструкции и Windows PowerShell не возвращает никакого значения. В Windows PowerShell значения могут возвращаться, даже если ключевое слово Return не используется. Возвращаются результаты каждого выражения. Например, следующие инструкции выводят значение переменной $a: $a return Следующая инструкция также возвращает значение $a: return $a В следующем примере содержится инструкция, сообщающая пользователю о том, что функция выполняет вычисление: function calculation { param ($value) "Подождите. Идет вычисление..." $value += 73 return $value } Запуск этой функции и назначение результата переменной приводят к следующему результату: C:\PS> $a = calculation 14 C:\PS> Строка "Подождите. Идет вычисление..." не отображается. Вместо этого ей назначается значение переменной $a, как показано в следующем примере: C:\PS> $a "Подождите. Идет вычисление..." 87 Эта функция выводит информационную строку и результат вычисления и назначает их переменной $a. СМ. ТАКЖЕ about_Functions about_Scopes about_Script_Blocks about_scopes РАЗДЕЛ about_Scopes КРАТКОЕ ОПИСАНИЕ Объясняется концепция области действия в Windows PowerShell и показывается, как устанавливать и изменять область элементов. ПОЛНОЕ ОПИСАНИЕ Windows PowerShell защищает доступ к переменным, псевдонимам, функциям и дискам Windows PowerShell (PSDrives), ограничивая область их чтения и изменения. Применением нескольких простых правил для области действия Windows PowerShell обеспечивает защиту от случайного изменения элементов, которые менять не следует. Ниже перечислены основные правила области. - Любой элемент, включенный в область действия, виден в области, в которой он был создан, а также в ее дочерних областях, если он явно не сделан закрытым. Переменные, псевдонимы, функции и диски Windows PowerShell можно помещать в одну или в несколько областей. - Объект, созданный в области, можно изменить только в той области, в которой он был создан, если для него явно не указана другая область. При создании в одной области элемента с таким же именем, как у элемента в другой области, первоначальный элемент может быть скрыт под новым элементом. Однако он не переопределяется и не изменяется. Области Windows PowerShell Области в Windows PowerShell имеют имена и номера. Имена задают абсолютную область. Номера являются относительными и отражают отношения между областями. Глобальная: область, действующая при запуске Windows PowerShell. Переменные и функции, присутствующие при запуске Windows PowerShell, созданы в глобальной области. В нее входят автоматические переменные и привилегированные переменные. Кроме того, в нее входят переменные, псевдонимы и функции, входящие в профили Windows PowerShell. Локальная: текущая область. Локальной областью может быть глобальная или любая другая область. Закрытая: элементы, созданные в закрытой области, недоступны из-за пределов текущей области. Закрытая область позволяет создавать закрытую версию элемента с таким же именем в другой области. Скрипт: область, создаваемая при запуске файла скрипта. В области скрипта выполняются только команды скрипта. Для команд скрипта область скрипта является локальной областью. Нумерованные области: на области можно ссылаться по имени или по номеру, описывающему расположение областей относительно друг друга. Область 0 - это текущая или локальная область. Область 1 - это ближайшая родительская область текущей области. Область 2 - это родительская область ближайшей родительской области и т. д. Нумерация областей полезна при использовании большого количества рекурсивных областей. Родительские и дочерние области Новую область можно создать, запустив скрипт или функцию, создав сеанс или запустив новый экземпляр Windows PowerShell. При создании новой области возникают родительская область (первоначальная область) и дочерняя область (созданная область). Все области Windows PowerShell являются дочерними для глобальной области, однако при этом можно создавать много обычных и рекурсивных областей. Элементы в родительской области доступны дочерней области, если они явно не сделаны закрытыми. Элементы, создаваемые и изменяемые в дочерней области, не влияют на родительскую область, если при их создании область не указывается явно. Наследование Дочерняя область не наследует переменные, псевдонимы и функции родительской области. Дочерней области доступен просмотр не являющихся закрытыми элементов родительской области. Из дочерней области можно изменить элементы родительской области, явно сославшись на них, однако они не являются частью дочерней области. Однако дочерняя область создается со своим набором элементов. Обычно в нее входят все псевдонимы с параметром AllScope. Об этом параметре рассказано далее в этом разделе. В область входят все переменные с параметром AllScope, а также некоторые переменные, которые можно использовать для настройки области, например, MaximumFunctionCount. Для поиска элементов в определенной области нужно использовать параметр Scope командлетов Get-Variable или Get-Alias. Например, для получения всех переменных в локальной области введите следующую команду: get-variable -scope local Для получения всех переменных в глобальной области введите следующую команду: get-variable -scope global Модификаторы области Чтобы указать область новой переменной, псевдонима или функции, используйте модификатор области. Модификатор может иметь значения Global или Script. Синтаксис модификатора области в переменной: $[<scope-modifier>]:<name> = <value> Синтаксис модификатора области действия в функции: function [<scope-modifier>]:<name> {<function-body>} Для скриптов по умолчанию устанавливается область скрипта. Для функций и псевдонимов по умолчанию устанавливается локальная область, даже если они определяются в скрипте. Следующая команда, не использующая модификатор области, создает переменную в текущей или локальной области: $a = "один" Для создания той же переменной в глобальной области нужно использовать модификатор области Global: $global:a = "один" Для создания той же переменной в области скрипта используйте модификатор области Script: $script:a = "один" Модификатор области также можно использовать в функциях. Следующее определение функции создает функцию в глобальной области: function global:Hello { write-host "Всем привет" } Модификаторы области также можно использовать для ссылок на переменные в другой области. Следующая команда ссылается на переменную $test, сначала в локальной, а затем в глобальной области: $test $global:test Параметр AllScope Переменные и псевдонимы имеют свойство Option, которое может иметь значение AllScope. Элементы со свойством AllScope становятся частью создаваемых дочерних областей, хотя они не наследуются родительскими областями. Элементы со свойством AllScope видимы в дочерних областях и являются их частью. Изменения в элементах любой области влияют на все области, в которых определены переменные. Управление областью В некоторых командлетах используется параметр Scope, позволяющий получить или установить (создать и изменить) элементы в определенной области. С помощью следующей команды можно найти все командлеты текущего сеанса с параметром Scope: get-help * -parameter scope Для поиска переменных, видимых в определенной области, нужно использовать параметр Scope командлета Get-Variable. Видимыми являются глобальные параметры, параметры в родительской области и параметры в текущей области. Например, следующая команда получает переменные, видимые в локальной области: get-variable -scope local Для создания переменной в определенной области используйте модификатор области или параметр Scope командлета Set-Variable. Следующая команда создает переменную в глобальной области: new-variable -scope global -name a -value "Один" Для указания области можно использовать и параметр Scope командлетов New-Alias, Set-Alias или Get-Alias. Следующая команда создает псевдоним в глобальной области: new-alias -scope global -name np -value Notepad.exe Для получения функция в определенной области используйте командлет Get-Item в этой области. У командлета Get-Item нет параметра scope. Использование с областями записи источника с точками Скрипты и функции подчиняются всем правилам области. При создании в определенной области они влияют только на нее, если не использовать параметр командлета или модификатор области для ее смены. Однако в текущую область можно добавить скрипт или функцию, используя запись источника с точками. В этом случае при запуске скрипта в текущей области все функции, псевдонимы и переменные, создаваемые скриптом, становятся доступными в текущей области. Чтобы добавить функцию в текущую область, введите точку (.) и пробел перед путем и именем функции в вызове функции. Например, для запуска скрипта Sample.ps1 из каталога C:\Scripts в области скрипта (используемой по умолчанию для скриптов) используйте следующую команду: c:\scripts\sample.ps1 Для запуска скрипта Sample.ps1 в локальной области используйте следующую команду: . c:\scripts.sample.ps1 При использовании оператора вызова (&) для запуска функции или скрипта они не добавляются в текущую область. В следующем примере используется оператор вызова: & c:\scripts.sample.ps1 Любые псевдонимы, функции и переменные, создаваемые скриптом Sample.ps1, недоступны в текущей области. Ограничение без области Некоторые концепции Windows PowerShell сходны с областями или взаимодействуют с ними. Эти концепции можно перепутать с областью или с ее поведением. Сеансы, модули и вложенные командные строки являются автономными средами, но не являются дочерними областями глобальной области сеанса. Сеансы: сеанс - это среда, в которой работает Windows PowerShell. При создании сеанса на удаленном компьютере Windows PowerShell открывает постоянное подключение к этому удаленному компьютеру. Постоянное подключение позволяет использовать сеанс для нескольких связанных команд. Поскольку сеанс является вложенной средой, он имеет собственную область, но не является дочерней областью сеанса, в котором был создан. Сеанс открывается с собственной глобальной областью. Эта область независима от глобальной области сеанса. В сеансе можно создавать дочерние области. Например, для создания дочерней области в сеансе можно запустить скрипт. Модули: модули Windows PowerShell используются для общего использования и передачи средств Windows PowerShell. Модуль - это блок, содержащий командлеты, скрипты, функции, переменные, псевдонимы и другие полезные элементы. Элементы модуля недоступны вне модуля, если иное не указано явно. Поэтому модули можно добавлять в сеанс и использовать содержащиеся в них общие элементы, не беспокоясь о том, что другие элементы могут аннулировать командлеты, скрипты, функции и другие элементы текущего сеанса. По закрытости модуль напоминает область, но при добавлении в сеанс модуля область действия не изменяется. Кроме того, модули не имеют собственных областей, хотя скрипты в модуле, например, все скрипты Wind ows PowerShell, имеют собственные области. Вложенные командные строки: аналогично, вложенные командные строки не имеют собственных областей. При вводе вложенная командная строка является подмножеством среды. Однако при этом действительной остается локальная область. Скрипты имеют собственные области. При отладке скрипта и при достижении точки останова скрипта действительной становится область скрипта. Параметр Private. Переменные и псевдонимы имеют свойство Option, которое может иметь значение Private. Элементы с параметром Private можно просматривать и изменять в области, в которой они были созданы, но нельзя просматривать и изменять за ее пределами. Например, при создании переменной с параметром private в глобальной области и последующем запуске скрипта команды Get-Variable в скрипте не будут выводить эту закрытую переменную. Это происходит даже при использовании модификатора глобальной области. Параметр Option командлетов New-Variable, Set-Variable, New-Alias и Set-Alias можно использовать для установки значения Private для свойства Option. Видимость. Свойство Visibility переменной или псевдонима определяет, видимы ли они вне контейнера (например, модуля), в котором были созданы. Свойство Visibility предназначено для контейнеров, точно так же как значение Private свойства Option предназначено для областей. Свойство Visibility может иметь значения Public и Private. Элементы с закрытой видимостью можно просматривать и изменять только в контейнере, в котором они были созданы. Если контейнер добавлен или импортирован, элементы с закрытой видимостью нельзя просматривать или изменять. Поскольку свойство Visibility разработано для контейнеров, в области оно функционирует иначе. При создании в глобальной области элемент с закрытой видимостью нельзя просматривать или редактировать ни в одной области. При попытке просмотра или изменения значения переменной с закрытой видимостью Windows PowerShell возвращает сообщение об ошибке. Для создания переменной с закрытой видимостью можно использовать командлеты New-Variable и Set-Variable. ПРИМЕРЫ Пример 1. Изменение значения переменной только в скрипте Следующая команда меняет значение переменной $ConfirmPreference в скрипте. Изменение не влияет на глобальную область. Сначала для отображения значения переменной $ConfirmPreference в локальной области нужно использовать следующую команду: C:\PS> $ConfirmPreference High Создайте скрипт Scope.ps1, содержащий следующие команды: $ConfirmPreference = "Low" "Значение `$ConfirmPreference равно $ConfirmPreference." Запустите скрипт. Скрипт изменит значение переменной $ConfirmPreference и выведет ее значение в области скрипта. Выходные данные должны выглядеть следующим образом. Значение $ConfirmPreference равно Low. Затем проверьте текущее значение переменной $ConfirmPreference в текущей области. C:\PS> $ConfirmPreference High Этот пример показывает, что изменение значения переменной в области скрипта не влияет на значение этой переменной в родительской области. Пример 2. Просмотр значения переменной в других областях Модификаторы области можно использовать для просмотра значения переменной в локальной области и в родительской области. Сначала определите переменную $test в глобальной области. $test = "Глобальная" Затем создайте скрипт Sample.ps1, определяющий переменную $test. В скрипте нужно использовать модификатор области для ссылки на глобальную или локальную версии переменной $test. # In Sample.ps1 $test = "Локальная" "Локальное значение `$test равно $test." "Глобальное значение `$test равно $global:test." При запуске скрипта Sample.ps1 выходные данные должны выглядеть следующим образом. Локальное значение `$test равно Локальная. Глобальное значение `$test равно Глобальная. По завершении скрипта в сеансе определено только глобальное значение переменной $test. C:\PS> $test Global Пример 3. Изменение значения переменной в родительской области Если переменная не защищена параметром Private или другим способом, ее значение в родительской области можно просматривать и изменять. Сначала определите переменную $test в глобальной области. $test = "Глобальная" Затем создайте скрипт Sample.ps1, определяющий переменную $test. В скрипте нужно использовать модификатор области для ссылки на глобальную или локальную версии переменной $test. # In Sample.ps1 $global:test = "Локальная" "Глобальное значение `$test равно $global:test." По завершении скрипта изменяется глобальное значение переменной $test. C:\PS> $test Local Пример 4. Создание закрытой переменной Закрытая переменная - это переменная, для которой параметр Option имеет значение Private. Закрытые переменные наследуются дочерней областью, но просматривать и изменять их можно только в области, в которой они были созданы. Следующая команда создает закрытую переменную $ptest в локальной области. new-variable -name ptest -value 1 -option private Значение переменной $ptest можно показать и изменить в локальной области. C:\PS> $ptest 1 C:\PS> $ptest = 2 C:\PS> $ptest 2 Затем создайте скрипт Sample.ps1, содержащий следующие команды. Команда пытается отобразить и изменить значение $ptest. # In Sample.ps1 "Значение `$Ptest равно $Ptest." "Значение `$Ptest равно $global:Ptest." Поскольку переменная $ptest невидима в области действия скрипта, выходные данные не отображаются. "Значение $Ptest равно ." "Значение $Ptest равно ." СМ. ТАКЖЕ about_Variables about_Environment_Variables about_Functions about_Script_Blocks about_script_blocks РАЗДЕЛ about_Script_Blocks КРАТКОЕ ОПИСАНИЕ Определение блока скрипта и описание использования блоков скрипта в языке программирования Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В языке программирования Windows PowerShell блок скрипта представляет собой набор выражений или инструкций, которые можно использовать как одно целое. Блок скрипта может принимать аргументы и возвращать значения. Синтаксически блок скрипта представляет собой список выражений в скобках, как показано ниже: {<statement list>} Блок скрипта возвращает выходные данные всех команд в блоке скрипта в виде единого объекта или в виде массива. Как и функции, блоки скрипта могут включать параметры. Ключевое слово Param позволяет назначать именованные параметры, как показано ниже: { param ([type]$parameter1 [,[type]$parameter2]) <statement list> } В отличие от функции, в блоке скрипта нельзя задавать параметры вне скобок. Как и в функциях, в блоках скрипта можно использовать ключевые слова DynamicParam, Begin, Process и End. Дополнительные сведения см. в разделах about_Functions и about_Functions_Advanced. Использование блоков скриптов Блок скрипта представляет собой экземпляр типа Microsoft .NET Framework (System.Management.Automation.ScriptBlock). Команды могут иметь значения параметров блока скрипта. Например, у командлета Invoke-Command есть параметр ScriptBlock, принимающий значение блока скрипта, как показано в этом примере: C:\PS> invoke-command -scriptblock { get-process } Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 999 28 39100 45020 262 15.88 1844 communicator 721 28 32696 36536 222 20.84 4028 explorer . . . Блок скрипта, используемый как значение, может быть более сложным, как показано в следующем примере: C:\PS> invoke-command -scriptblock { param ($uu = "Parameter"); "$uu задана." } Параметр задан. В предыдущем примере блок скрипта использует ключевое слово Param для создания параметра со значением по умолчанию. В следующем примере параметр Args командлета Invoke-Command используется для назначения другого значения параметру: C:\PS> invoke-command -scriptblock {param ($uu = "Parameter"); "$uu задана."} -args "Другое значение" Другое значение задано. Блок скрипта можно назначить переменной, как показано в следующем примере. C:\PS> $a = {param ($uu = "Parameter"); "$uu задана."} Переменную можно использовать с командлетами, например, с Invoke-Command, как показано в следующем примере: C:\PS> invoke-command -scriptblock $a -args "Другое значение" Другое значение задано. Запустить блок скрипта, назначенного переменной, можно с помощью оператора вызова (&), как показано в следующем примере: C:\PS> &$a Параметр задан. Для блока скрипта можно также задать параметр, как показано в следующем примере: C:\PS> &$a "Другое значение" Другое значение задано. Чтобы назначить переменной значение, создаваемое блоком скрипта, нужно использовать оператор вызова для непосредственног о запуска блока скрипта, как показано в следующем примере: C:\PS> $a = &{param ($uu = "Parameter"); "$uu задана."} C:\PS> $a Параметр задан. Дополнительные сведения об операторе вызова см.в разделе about_Operators. СМ. ТАКЖЕ about_Functions about_Functions_Advanced about_Operators about_script_internationalization РАЗДЕЛ about_Script_Internationalization КРАТКОЕ ОПИСАНИЕ Описание возможностей интернационализации скриптов Windows PowerShell 2.0, позволяющих скриптам выводить пользователям сообщения и команды на языке их пользовательского интерфейса. ПОЛНОЕ ОПИСАНИЕ Возможности интернационализации скриптов Windows PowerShell позволяют более качественно обслуживать пользователей из разных стран мира, выводя справочную информацию и сообщения для скриптов и функций на языке пользовательского интерфейса. При запуске средства интернационализации скриптов запрашивают значение региональных параметров пользовательского интерфейса операционной системы, импортируют соответствующие переведенные текстовые строки и отображают их пользователю. Раздел Data позволяет хранить текстовые строки отдельно от кода, чтобы их можно было легко найти и извлечь. Новый командлет ConvertFrom-Stri ngData преобразует текстовые строки в напоминающие словарь хэш-таблицы для упрощения перевода. Средства Windows PowerShell 2.0, используемые для интернационализа ции скриптов, не поддерживаются PowerShell 1.0. Скрипты с этими средствами не будут работать в Windows PowerShell 1.0, если не внести в них изменения. Для поддержки интернационализации текста справки в Windows PowerShell 2.0 имеются следующие средства. -- Раздел Data, позволяющий отделять текстовые строки от кодовых инструкций. Дополнительные сведения о разделе Data см. в разделе about_Data_Sections. -- Новые автоматические переменные $PSCulture и $PSUICulture. В переменной $PSCulture сохраняется имя языка пользовательского интерфейса, используемого системой для таких элементов, как дата, время и валюта. В переменной $PSUICulture сохраняется имя языка пользовательского интерфейса, используемого системой для таких элементов, как меню и текстовые стро ки. -- Командлет ConvertFrom-StringData преобразует для упрощения перевода текстовые строки в напоминающие словарь хэш-таблицы. Дополнительные сведения см. в описании командлета ConvertFrom-StringData. -- Файл нового типа PSD1, где хранятся переведенные текстовые строки. Файлы PSD1 хранятся в подкаталогах соответствующих языков в каталоге скрипта. -- Командлет Import-LocalizedData, позволяющий импортировать переведенные текстовые строки для указанного языка в скрипт в среде выполнения. Это командлет распознает и импортирует строки на любом языке, поддерживаемом Windows. Дополнительные сведения см. в разделе Import-LocalizedData. РАЗДЕЛ DATA. Сохранение строк по умолчанию Раздел Data в скрипте используется для сохранения текстовых строк на установленном по умолчанию языке. Строки следует располагать парами "ключ-значение" в автономной строке. Каждая пара "ключ-значение" должна находиться на отдельной строке. Если используются комментарии, они должны находиться на отдельных строках. Командлет ConvertFrom-StringData преобразует пары "ключ-значение" в автономной строке в хэш-таблицу, напоминающую словарь, которая сохраняется внутри значения переменной раздела Data. В следующем примере в разделе Data скрипта World.ps1 содержится набор сообщений с предупреждениями для скрипта на английском языке (США) (en-US). Командлет ConvertFrom-StringData преобразует строки в хэш-таблицу и сохраняет их в переменной $msgtable. $msgTable = Data { # culture="en-US" ConvertFrom-StringData @' helloWorld = Hello, World. errorMsg1 = You cannot leave the user name field blank. promptMsg = Please enter your user name. '@ } Дополнительные сведения о приведенных в примере строках см. в разделе about_Quoting_Rules. ФАЙЛЫ PSD1: сохранение переведенных строк Сообщения скрипта для каждого языка пользовательского интерфейса сохраняются в отдельном текстовом файле с тем же именем, что у скрипта, и с расширением PSD1. Файлы сохраняются в подкаталогах каталога скрипта с именами региональных параметров в следующем формате: <язык>-<регион> Примеры: ru-RU, ar-SA, zh-Hans Например, если скрипт World.ps1 сохранен в каталоге C:\Scripts, нужно создать структуру каталогов с файлами, выглядящую примерно так: C:\Scripts C:\Scripts\World.ps1 C:\Scripts\ru-RU\WorldPSD1 C:\Scripts\ar-SA\WorldPSD1 C:\Scripts\zh-CN\WorldPSD1 ... Файл World.psd1 в подкаталоге ru-RU каталога скрипта может содержать следующую инструкцию: ConvertFrom-StringData @' helloWorld = Hello, World (на русском). errorMsg1 = You cannot leave the user name field blank (на русском). promptMsg = Please enter your user name (на русском). '@ Аналогично, файл World.psd1 в подкаталоге ar-SA каталога скрипта может содержать следующую инструкцию: ConvertFrom-StringData @' helloWorld = Hello, World (на арабском). errorMsg1 = You cannot leave the user name field blank (на арабском). promptMsg = Please enter your user name (на арабском). '@ IMPORT-LOCALIZEDDATA: Динамическое извлечение переведенных строк Для извлечения строк на языке пользовательского интерфейса текущего пользователя используйте командлет Import-LocalizedData. Командлет Import-LocalizedData находит значение автоматической переменной $PSUICulture и импортирует содержимое файлов <имя_скрипта>.psd1 из подкаталога, соответствующего значению переменной $PSUICulture. Затем он сохраняет импортированные данные в переменной, указанной в значении параметра BindingVariable. import-localizeddata -bindingVariable msgTable Например, если команда Import-LocalizedData входит в скрипт C:\Scripts\World.ps1 и переменная $PSUICulture имеет значение "ar-SA", команда Import-LocalizedData находит следующий файл: C:\Scripts\ar-SA\World.psd1 Затем она импортирует текстовые строки на арабском языке из этого файла в переменную $msgTable, заменяя любые строки по умолчанию, которые могут быть определены в разделе Data скрипта World.ps1. В результате, когда скрипт использует переменную $msgTable для вывода сообщений пользователю, эти сообщения отображаются на арабском языке. Например, следующий скрипт выводит сообщение Please enter your user name на арабском языке: if (($username)) { $msgTable.promptMsg } Если командлет Import-LocalizedData не может найти файл PSD1, соответствующий значению переменной $PSUIculture, значение $msgTable не заменяется и при вызове $msgTable.promptMsg выводятся строки на установленном по умолчанию языке (английский (США)). ПРИМЕР В этом примере показано, как средства интернационализации используются в скрипте для показа пользователям дня недели на языке, установленном на компьютере. Ниже приведено полное содержание файла скрипта Sample1.ps1. Скрипт начинается с раздела Data с именем Day ($Day), содержащего команду ConvertFrom-StringData. Выражение, отправленное ConvertFrom-StringData, представляет собой автономную строку, содержащую имена дней на установленном по умолчанию языке (Английский, США) в парах вида "ключ-значение". Командлет ConvertFrom-StringData преобразует пары "ключ-значение" из автономной строки в хэш-таблицу и сохраняет их в значении переменной $Day. Команда Import-LocalizedData импортирует содержимое файла PSD1 в каталог, соответствующий значению автоматической переменной $PSUICulture, а затем сохраняет его в переменной $Day, заменяя значения $Day, определенные в разделе Data. Остальные команды загружают строки в массив и выводят их. $Day = DATA { # culture="en-US" ConvertFrom-StringData @' messageDate = Today is d1 = Monday d2 = Tuesday d3 = Wednesday d4 = Thursday d5 = Friday d6 = Saturday d7 = Sunday '@ } Import-LocalizedData -BindingVariable Day # Создание массива дней недели. $a = $Day.d1, $Day.d2, $Day.d3, $Day.d4, $Day.d5, $Day.d6, $Day.d7 # Получение дня недели в виде числа (Monday = 1). # Обращение к индексу массива $a для получения названия дня недели. # Форматирование строки для построения предложения. "{0} {1}" -f $Day.messageDate, $a[(get-date -uformat %u)] | Out-Host Файлы PSD1, поддерживающие скрипт, сохраняются в подкаталогах каталога скрипта, имена которых соответствуют значениям переменной $PSUICulture. The following is a complete listing of .\ru-RU\sample1.psd1: # culture="ru-RU" ConvertFrom-StringData @' messageDate = Today is d1 = Monday (на русском языке) d2 = Tuesday (на русском языке) d3 = Wednesday (на русском языке) d4 = Thursday (на русском языке) d5 = Friday (на русском языке) d6 = Saturday (на русском языке) d7 = Sunday (на русском языке) '@ При запуске скрипта Sample.ps1 в системе, где переменная $PSUICulture имеет значение ru-RU, выводится следующее: Today is Friday (на русском языке) СМ. ТАКЖЕ about_Data_Sections about_Automatic_Variables about_Hash_Tables about_Quoting_Rules ConvertFrom-StringData Import-LocalizedData about_scripts РАЗДЕЛ about_Scripts КРАТКОЕ ОПИСАНИЕ Описание написания и выполнения скриптов в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Скрипт - это текстовый файл, содержащий одну или несколько команд Windows PowerShell. Файлы скриптов Windows PowerShell имеют расширение PS1. Написание скрипта позволяет сохранить команду для последующего использования и легко передать ее другим пользователям. Также очень важно то, что скрипты позволяют выполнять команды, просто вводя путь к скрипту и имя файла. Файлы скриптов могут содержать всего одну команду или длинный набор команд, сопоставимый по размеру с большими приложениями. В скриптах имеются дополнительные возможности, например, возможность использовать специальный комментарий #Requires, возможность использования параметров, поддержка разделов данных и поддержка цифровых подписей для обеспечения безопасности. Кроме того, для скриптов и любых функций внутри скриптов можно писать разделы справки. КАК НАПИСАТЬ СКРИПТ Скрипт может содержать любые допустимые команды Windows PowerShell, в том числе одиночные команды и команды, использующие конвейеры, функции и структуры управления, например, инструкции If и циклы For. Для написания скрипта нужно запустить текстовый редактор (например, Блокнот) или редактор скриптов, например, интегрированную среду скриптов Windows PowerShell (ISE). После этого ввести команды и сохранить их в файле с допустимым именем и расширением PS1. В следующем примере приведен простой скрипт, возвращающий список служб, запущенных в текущей системе, и сохранить его в файле журнала. Имя файла журнала определяется по текущей дате. $date = (get-date).dayofyear get-service | out-file "$date.log" Для создания этого скрипта нужно открыть текстовый редактор или редактор скриптов и ввести эти команды, а затем сохранить их в файле с именем ServiceLog.ps1. ВЫПОЛНЕНИЕ СКРИПТА Прежде чем выполнить скрипт, нужно изменить установленную по умолчанию политику исполнения Windows PowerShell. Установленная по умолчанию политика исполнения запрещает выполнение любых скриптов, в том числе скриптов, созданных на локальном компьютере. Дополнительные сведения см. в разделе about_Execution_ Policies. Для выполнения скрипта нужно ввести полное имя файла скрипта и полный путь к нему. Например, для выполнения скрипта ServicesLog из каталога C:\Scripts введите следующую команду: c:\scripts\ServicesLog.ps1 Для выполнения скрипта из текущего каталога нужно ввести путь к текущему каталогу или использовать точку для обозначения текущего каталога и обратную косую черту для обозначения пути (.\). Например, для выполнения скрипта ServicesLog.ps1 из локального каталога введите следующую команду: .\ServicesLog.ps1 Для обеспечения безопасности Windows PowerShell не выполняет скрипты при двойном щелчке значка скрипта в проводнике и при вводе имени скрипта без указания полного пути, даже если скрипт находится в текущем каталоге. Дополнительные сведения о выполнении команд и скриптов в Windows PowerShell см. в разделе about_Command_Precedence. УДАЛЕННОЕ ВЫПОЛНЕНИЕ СКРИПТОВ Для выполнения скрипта на удаленном компьютере нужно использовать параметр FilePath командлета Invoke-Command. В качестве значения параметра FilePath нужно ввести путь и имя файла скрипта. Скрипт должен располагаться на локальном компьютере или в каталоге, доступ к которому с локального компьютера открыт. Следующая команда выполняет скрипт ServicesLog.ps1 на удаленном компьютере Server01. invoke-command -computername Server01 -filepath C:\scripts\servicesLog. ps1 ПАРАМЕТРЫ В СКРИПТАХ Для определения параметров в скрипте нужно использовать инструкцию Param. Инструкция Param должна быть первой в скрипте, за исключением комментариев и инструкций #Requires. Параметры скриптов работают примерно так же, как и параметры функций. Значения параметров доступны всем командам скрипта. Все возможности параметров функций, в том числе атрибут Parameter и его именованные аргументы, также доступны в скриптах. При выполнении скриптов пользователи скрипта вводят параметры после имени скрипта. В следующем примере показан скрипт Test-Remote.ps1 с параметром ComputerName. Обе функции скрипта могут использовать значение параметра ComputerName. param ($ComputerName = $(throw "ComputerName parameter is required.")) function CanPing { $error.clear() $tmp = test-connection $computername -erroraction SilentlyContinue if ($?) {write-host "Ping failed: $ComputerName."; return $false} else {write-host "Ping succeeded: $ComputerName"; return $true} } function CanRemote { $s = new-pssession $computername -erroraction SilentlyContinue if ($s -is [System.Management.Automation.Runspaces.PSSession]) {write-host "Remote test succeeded: $ComputerName."} else {write-host "Remote test failed: $ComputerName."} } if (CanPing $computername) {CanRemote $computername} Для выполнения этого скрипта нужно ввести имя параметра после имени файла скрипта. Пример: C:\PS> .\test-remote.ps1 -computername Server01 Ping succeeded: Server01 Remote test failed: Server01 Дополнительные сведения о выражении Param и параметрах функций см. в разделах about_Functions и about_Functions_Advanced_Parameters. СПРАВКА ДЛЯ СКРИПТОВ Командлет Get-Help позволяет получить справку для скриптов, а также для командлетов, поставщиков и функций. Чтобы получить справку для скрипта, введите Get-Help и укажите путь и имя файла скрипта. Если путь к скрипту указан в переменной среды Path, его можно не указывать. Например, для получения справки для скрипта ServicesLog.ps1 введите следующую команду: get-help C:\admin\scripts\ServicesLog.ps1 Справку для скрипта можно написать с помощью любого из следующих двух методов: -- Справка для скриптов на основе комментариев Темы справки создаются посредством использования в комментариях специальных ключевых слов. Для создания справки для скрипта на основе комментариев, комментарии нужно разместить в начале или в конце файла скрипта. Дополнительные сведения о справке на основе комментариев см. в разделе about_Comment_Based_Help. -- Справка для скриптов на основе XML Создайте раздел справки XML подобно тому, как это делается для командлетов. Справка на основе XML нужна в том случае, если разделы справки переводятся на различные языки. Для привязки скрипта к теме справки на основе XML нужно использовать ключевое слово комментария справки .ExternalHelp. Дополнительные сведения о ключевом слове ExternalHelp см. в разделе about_Comment_Based_Help. Дополнительные сведения о справке на основе XML см. в разделе "How to Write Cmdlet Help" (Как писать справку для командлетов) в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkID=123415. ОБЛАСТЬ ДЕЙСТВИЯ СКРИПТА И ЗАПИСЬ С ПОМОЩЬЮ ТОЧЕК Каждый скрипт выполняется в своей области действия. Функции, переменные, псевдонимы и диски, создаваемые в скрипте, существуют только в области действия скрипта. Эти элементы и их значения недоступны в области, в которой запущен скрипт. Для выполнения скрипта в другой области можно указать ее при запуске (глобальную или локальную) или использовать запись с точками. Возможность записи с точками позволяет выполнить скрипт в текущей области вместо области скрипта. При выполнении скрипта с использованием записи с точками команды скрипта выполняются так, как если бы они вводились в командной строке. Функции, переменные, псевдонимы и диски, создаваемые скриптом, создаются в текущей области. После выполнения скрипта созданные элементы можно использовать, и их значения будут доступными в текущем сеансе. Для выполнения скрипта с использованием записи с точками нужно ввести точку (.) и пробел перед путем к скрипту. Пример: . C:\scripts\UtilityFunctions.ps1 -или- . .\UtilityFunctions.ps1 После выполнения скрипта UtilityFunctions функции и переменные, создаваемые скриптом, добавляются в текущую область. Например, скрипт UtilityFunctions.ps1 создает функцию New-Profile и переменную $ProfileName. #In UtilityFunctions.ps1 function New-Profile { Write-Host "Running New-Profile function" $profileName = split-path $profile -leaf if (test-path $profile) {write-error "There is already a $profileName profile on this co mputer."} else {new-item -type file -path $profile -force } } При выполнении скрипта UtilityFunctions.ps1 в собственной области функция New-Profile и переменная $ProfileName существуют только во время работы скрипта. После завершения работы скрипта функция и переменная удаляются, как показано в следующем примере. C:\PS> .\UtilityFunctions.ps1 C:\PS> New-Profile Условие "new-profile" не распознано как командлет, функция, выполняемая программа или файл скрипта. Проверьте условие и повторите попытку. В строке:1 знак:12 + new-profile < + CategoryInfo : ObjectNotFound: (new-profile:String) [], + FullyQualifiedErrorId : CommandNotFoundException C:\PS> $profileName C:\PS> При выполнении скрипта с использованием записи с помощью точек скрипт создает функцию New-Profile и переменную $ProfileName в текущем сеансе в текущей области. После выполнения скрипта функцию New-Profile можно использовать в сеансе, как показано в следующем примере. C:\PS> . .\UtilityFunctions.ps1 C:\PS> New-Profile Directory: C:\Users\juneb\Documents\WindowsPowerShell Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 1/14/2009 3:08 PM 0 Microsoft.PowerShellISE_profile.ps 1 C:\PS> $profileName Microsoft.PowerShellISE_profile.ps1 Дополнительные сведения об областях см. в разделе about_Scopes. СКРИПТЫ В МОДУЛЯХ Модуль представляет собой набор связанных ресурсов Windows PowerShell, который можно распространять в качестве единого целого. Модули можно использовать для организации скриптов, функций и других ресурсов. Также модули можно использовать для распространения кода и для получения кода из надежных источников. Скрипты можно добавлять в модули. Можно создавать модули скриптов, полностью или в основном состоящие из скрипта и вспомогательных ресурсов. Модуль скрипта представляет собой скрипт с в виде файла с расширением PSM1. Дополнительные сведения о модулях см. в разделе about_Modules. ДРУГИЕ ВОЗМОЖНОСТИ В СКРИПТАХ В Windows PowerShell имеется множество полезных средств, которые можно использовать в скриптах. #Requires Выражение #Requires можно использовать, чтобы скрипт не выполнялся без указанных модулей или оснасток или при отсутствии указанной версии Windows PowerShell. Дополнительные сведения см. в разделе about_Requires. $MyInvocation Автоматическая переменная $MyInvocation содержит информацию о текущей команде, в том числе о текущем скрипте. Эту переменную и ее свойства можно использовать для получения информации о скрипте во время его работы. Например, переменная $MyInvocation.MyCommand.Path содержит путь и имя файла скрипта. Разделы данных Ключевое слово Data можно использовать для разделения в скриптах данных и логики. Использование разделов данных также упрощает локализацию. Дополнительные сведения см. в разделах about_Data_Sections и about_Script_Localization. Подписание скриптов В скрипты можно добавлять цифровые подписи. В зависимости от политики исполнения цифровые подписи можно использовать для ограничения выполнения скриптов, которые могут содержать небезопасные команды. Дополнительные сведения см. в разделах about_Execution_Policies и about_Signing. СМ. ТАКЖЕ about_Command_Precedence about_Comment_Based_Help about_Execution_Policies about_Functions about_Modules about_Profiles about_Requires about_Scopes about_Script_Blocks about_Signing Invoke-Command about_Session_Configurations РАЗДЕЛ about_Session_Configurations КРАТКОЕ ОПИСАНИЕ Описание конфигураций сеансов, определяющих, пользователей, которые могут подключаться к компьютеру удаленно и команды, которые они могут запускать. ПОЛНОЕ ОПИСАНИЕ Конфигурация сеанса представляет собой группу параметров на локальном компьютере, определяющую среду для сеансов Windows PowerShell, создаваемых при подключении удаленных пользователей к локальному компьютеру. Администраторы компьютера могут использовать конфигурации сеансов для защиты компьютера и определения специальных сред для пользователей, подключающихся к компьютеру. Администраторы также могут использовать конфигурации сеансов, чтобы определять разрешения, необходимые для удаленного подключения к компьютеру. По умолчанию только члены группы "Администраторы" имеют разрешение использовать конфигурацию сеанса для удаленного подключения, однако настройки по умолчанию можно изменить, чтобы разрешить всем или отдельным пользователям удаленно подключаться к компьютеру. Конфигурации сеансов являются функцией удаленного управления Windows PowerShell на основе веб-служб для управления (WS-Management). Они применяются только при использовании командлетов New-PSSession, Invoke-Command, или Enter-PSSession для подключения к удаленному компьютеру . Примечание. Для управления конфигурациями сеансов на компьютерах под управлением Windows Vista, Windows Server 2008 или более поздней версии Windows нужно запустить Windows PowerShell с помощью команды "Запуск от имени администратора". О конфигурациях сеансов В каждом сеансе Windows PowerShell используется конфигурация сеанса. Это относится как к постоянным сеансам, создаваемым с помощью командлетов New-PSSession или Enter-PSSession, так и к временным сеансам, создаваемым Windows PowerShell при использовании параметра ComputerName в командлетах, использующих технологию удаленного взаимодействия на основе WS-Management, например, Invoke-Command. Администраторы могут использовать конфигурации сеансов для защиты ресурсов компьютера и создания специальных сред для пользователей, подключающихся к компьютеру. Например, конфигурацию сеанса можно использовать, чтобы ограничить размер объектов, получаемых компьютером во время сеанса, определить языковой режим сеанса или задать командлеты, поставщики и функции, доступные во время сеанса. Настройка дескриптора безопасности конфигурации сеанса позволяет определить, кто может использовать конфигурацию сеанса для подключения к компьютеру. Для использования конфигурации сеанса в сеансе пользователи должны иметь разрешение на запуск. Если у пользователя нет необходимых разрешений на использование на компьютере любых конфигурация сеанса, он не сможет подключиться к компьютеру удаленно. По умолчанию использовать установленные по умолчанию конфигурации сеансов могут только администраторы компьютера, однако дескрипторы безопасности можно поменять, чтобы разрешить всем, никому или отдельным пользователям использовать конфигурации сеансов на компьютере. Конфигурации сеансов по умолчанию. В состав Windows PowerShell входит встроенная конфигурация сеансов Microsoft.PowerShell. На компьютерах под управлением 64-разрядных версий ОС Windows, в состав Windows PowerShell также входит 32-разрядная конфигурация сеансов Microsoft.PowerShell32. Эти конфигурации сеансов используются для сеансов по умолчанию, т. е. если в команде создания сеанса отсутствует параметр ConfigurationName командлетов New-PSSession, Enter-PSSession или Invoke-Command. Дескрипторы безопасности конфигураций сеансов по умолчанию могут использовать только члены группы "Администраторы" локального компьютера. Таким образом, до изменения установленных по умолчанию параметров удаленно подключаться к компьютеру могут только члены группы "Администраторы". Конфигурации сеанса по умолчанию можно изменить с помощью привилегированной переменной $PSSessionConfigurationName. Дополнительные сведения см. в разделе about_Preference_Variables. Просмотр конфигураций сеансов на локальном компьютере. Для получения конфигураций сеансов на локальном компьютере используйте командлет Get- PSSessionConfiguration. Например, введите следующую команду: C:\PS> get-pssessionconfiguration | format-list -property name, permiss ion Name : microsoft.powershell Permission : BUILTIN\Administrators AccessAllowed Name : microsoft.powershell32 Permission : BUILTIN\Administrators AccessAllowed Также для просмотра конфигураций сеансов можно использовать поставщик WS-Management в Windows PowerShell. Поставщик WS-Management создает в сеансе диск WSMAN:. На диске WSMAN: конфигурации сеансов находятся в узле Plugin. (Все конфигурации сеансов находятся на узле Plugin, но на узле Plugin находятся и элементы, не являющиеся конфигурациями сеансов). Например, для просмотра конфигураций сеанса на локальном компьютере введите: C:\PS> dir wsman:\localhost\plugin\microsoft* WSManConfig: Microsoft.WSMan.Management\WSMan::loc alhost\Plugin Name Type Keys ---- ---- ---- microsoft.powershell Container {Name=microsoft.powersh ell} microsoft.powershell32 Container {Name=microsoft.powersh ell} Просмотр конфигураций сеансов на удаленном компьютере. Для просмотра конфигураций сеансов на удаленном компьютере используйте командлет Connect-WSMan, чтобы добавить примечание для удаленного компьютера на диск WSMAN: на локальный компьютер и использовать диск WSMAN: для просмотра конфигураций сеансов. Например, следующая команда добавляет узел для удаленного компьютера Server01 на диск локального компьютера WSMAN:. C:\PS> connect-wsman server01.corp.fabrikam.com После завершения выполнения команды можно перейти на узел для компьютера Server01 и просмотреть конфигурации сеансов. Пример: C:\PS> cd wsman: PS WSMan:\> dir ComputerName Type ------------ ---- localhost Container server01.corp.fabrikam.com Container PS WSMan:\> dir server01*\plugin\* WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fab rikam.com\Plugin Name Type Keys ---- ---- ---- microsoft.powershell Container {Name=microsoft.powershe ll} microsoft.powershell32 Container {Name=microsoft.powershe ll32} Изменение дескриптора безопасности конфигурации сеанса. По умолчанию члены группы "Администраторы" компьютера имеют разрешение на запуск для установленных по умолчанию конфигураций сеансов. Однако пользователь локального компьютера может поменять дескрипторы безопасности конфигурации сеанса по умолчанию и любых других конфигураций сеансов, созданных этим пользователем. Для представления другим пользователям разрешения на удаленное подключение к компьютеру используйте командлет Set-PSSessionConfig uration, чтобы добавить в дескрипторы безопасности конфигураций сеансов Microsoft.PowerShell и Microsoft.Powershell32 разрешение на запуск для этих пользователей. Например, следующая команда открывает страницу свойств, позволяющую изменить дескриптор безопасности установленной по умолчанию конфигурации сеанса Microsoft.PowerShell. C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -showSecur ityDescriptorUI Чтобы запретить всем пользователям доступ ко всем конфигурациям сеанса на компьютере, нужно использовать функцию Disable-PSRemotin g или командное средство Disable-PSSessionConfiguration. Например, следующая команда добавляет запись Deny All (Запретить всем) во все конфигурации сеансов на компьютере. C:\PS> disable-psremoting Чтобы добавить запись Deny All в определенную конфигурацию сеанса, используйте командлет Disable-PSSessionConfiguration. Например, следующая команда добавляет запись Deny All в конфигурацию сеанса Microsoft.PowerShell. C:\PS> disable-pssessionConfiguration -name Microsoft.PowerShell Чтобы удалить запись Deny All из всех конфигураций сеансов, нужно использовать командное средство Enable-PSRemoting или Enable-PSSessionConfiguration. Например, следующая команда удаляет запись Deny All из конфигураций сеансов, установленных по умолчанию. C:\PS> enable-pssessionConfiguration -name Microsoft.Power* Для внесения других изменений в дескриптор безопасности конфигурации сеанса, нужно использовать командное средство Set- PSSessionConfiguration. Для отправки значения строки SDDL используйте параметр SecurityDescriptorSDDL. Параметр ShowSecurityDescriptorUI используется для вывода листа свойств пользовательского интерфейса, помогающего создать новую строку SDDL. Пример: C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -showSecur ityDescriptorUI Создание новой конфигурации сеанса Для создания новой конфигурации сеанса на локальном компьютере используйте командлет Register-PSSessionConfiguration. Чтобы определить новую конфигурацию сеанса, можно использовать сборку C#, скрипт Window PowerShell и параметры командлета Register-PSSessionConfiguration. Например, следующая команда создает конфигурацию сеанса, идентичную конфигурации сеанса Microsoft.PowerShell, но ограничивающую получение данных, получаемых от удаленной команды, объемом в 20 Мбайт. (По умолчанию 50 Мбайт). c:\PS> register-psSessionConfiguration -name NewConfig --MaximumReceive dDataSizePerCommandMB 20 При создании конфигурацией сеанса можно управлять, используя командлеты других конфигураций сеансов. Новая конфигурация сеанса появляется на диске WSMAN:. Дополнительные сведения см. в разделе Register-PSSessionConfiguration. Удаление конфигурации сеанса Для удаления конфигурации сеанса c локального компьютера используйте командлет Unregister-PSSessionConfiguration. Например, следующая команда удаляет с компьютера конфигурацию сеанса NewConfig. c:\PS> unregister-psSessionConfiguration -name NewConfig Дополнительные сведения см. в описании командлета Unregister-PSSes sionConfiguration. Выбор конфигурации сеанса Для выбора определенной конфигурации сеанса используется параметр ConfigurationName командлетов New-PSSession, Enter-PSSession или Invoke-Command. Например, в следующей команде командлет New-PSSession используется для запуска сеанса PSSession на компьютере Server01. В этой команде параметр ConfigurationName используется для выбора конфигурации WithProfile на компьютере Server01. C:\PS> new-pssession -computername Server01 -configurationName WithProfile Эта команда будет успешно выполнена, только если у текущего пользователя есть разрешение на использование конфигурации сеанса WithProfile или он может указать учетные данные пользователя, имеющего необходимые разрешения. Для изменения установленной по умолчанию конфигурации сеансов на компьютере нужно использовать привилегированную переменную $PSSessionConfigurationName. Дополнительные сведения о привилегированн ой переменной $PSSessionConfigurationName см. в разделе about_Preference_Variables. SEE ALSO about_Preference_Variables about_PSSession about_Remote New-PSSession Disable-PSSessionConfiguration Enable-PSSessionConfiguration Get-PSSessionConfiguration Register-PSSessionConfiguration Set-PSSessionConfiguration Unregister-PSSessionConfiguration about_Signing РАЗДЕЛ about_signing КРАТКОЕ ОПИСАНИЕ Описание процедуры подписания скриптов для их соответствия политикам исполнения Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Политика ограниченного исполнения не разрешает выполнение никаких скриптов. Политики исполнения AllSigned и RemoteSigned не дают Windows PowerShell выполнять скрипты без цифровой подписи. Здесь объясняется, как выполнять неподписанные скрипты при установленной политике исполнения RemoteSigned, а также как подписывать скрипты для собственного использования. Дополнительные сведения о политиках исполнения Windows PowerShell см. в разделе about_Execution_Policy. РАЗРЕШЕНИЕ ВЫПОЛНЕНИЯ ПОДПИСАННЫХ СКРИПТОВ ------------------------------- При первом запуске Windows PowerShell на компьютере вероятнее всего будет действовать установленная по умолчанию политика ограниченного исполнения. Политика ограниченного исполнения не разрешает выполнение никаких скриптов. Чтобы узнать, какая политика исполнения действует на компьютере, введите следующую команду: get-executionpolicy Для выполнения неподписанных скриптов, созданных на локальном компьютере, и подписанных скриптов других пользователей, нужно использовать следующую команду для изменения политики исполнения на RemoteSigned: set-executionpolicy remotesigned Дополнительные сведения см. в описании командлета Set-ExecutionPol icy. ВЫПОЛНЕНИЕ НЕПОДПИСАННЫХ СКРИПТОВ (ПОЛИТИКА ИСПОЛНЕНИЯ REMOTESIGNED) -------------------------------------------------------------------- Если в Windows PowerShell установлена политика исполнения RemoteSigned, Windows PowerShell не будет выполнять неподписанные скрипты, загруженные из Интернета, в том числе неподписанные скрипты, полученные по электронной почты и через программы обмена мгновенными сообщениями. При попытке выполнить загруженный скрипт Windows PowerShell выводит следующее сообщение об ошибке: Файл <file-name> невозможно загрузить. Файл <file-name> не имеет цифровой подписи. Скрипт не будет выполнен в системе. Чтобы получить дополнительные сведения, введите команду "Get-Help about_signing". Перед выполнением скрипта проверьте его код, чтобы убедиться в его надежности. Скрипты делают то же, что и исполняемые программы. Выполнение неподписанного скрипта: 1. Сохраните файл скрипта на компьютер; 2. Нажмите кнопку Пуск, откройте раздел "Мой компьютер" и найдите сохраненный файл скрипта. 3. Щелкните правой кнопкой мыши файл скрипта и выберите пункт "Свойства". 4. Щелкните пункт "Разблокировать". Если загруженный из Интернета скрипт имеет цифровую подпись, но издатель подписи еще не входит в число надежных, Windows PowerShell выводит следующее сообщение: Запустить программу от ненадежного издателя? Файл <file-name> опубликован CN=<publisher-name>. Этот издатель не помечен как надежный в данной системе. Выполнять следует только скрипты надежных издателей. [V] Никогда не выполнять [D] Не выполнять [R] Выполнить один раз [A] Всегда выполнять [?] Справка (по умолчанию "D"): Если вы доверяете издателю, выберите "Выполнить один раз " или "Выполнять всегда". Если вы не доверяете издателю, выберите "Никогда не выполнять" или "Не выполнять". При выборе пункта "Никогда не выполнять" или "Всегда выполнять" Windows PowerShell больше не будет запрашивать о действии для этого издателя. МЕТОДЫ ПОДПИСИ СКРИПТОВ -------------------------- Пользователь может подписывать написанные им скрипты и скрипты, полученные из других источников. Прежде чем подписывать скрипт, нужно проверить все содержащиеся в нем команды, чтобы убедиться в его безопасности. Рекомендации по подписанию кода см. в документе "Рекомендации по подписанию кода" (Code-Signing Best Practices) по адресу http://go.microsoft.com/fwlink/?LinkId=119096. Дополнительные сведения о подписании файлов скриптов см. в описании командлета Set-AuthenticodeSignature. Чтобы добавить в скрипт цифровую подпись, нужно подписать его с помощью сертификата подписи исходного кода. Для подписания файла скрипта можно использовать сертификаты двух типов: -- Сертификаты, создаваемые центрами сертификации: Центры сертификации за плату подтверждают личность пользователя и выдают ему сертификат для подписания кода. При приобретении сертификата в заслуживающем доверия центре сертификации пользователь может отправлять свой скрипт пользователям других компьютеров под управлением Windows, поскольку эти другие компьютеры доверяют центру сертификации. -- Создаваемые вами сертификаты: Пользователи могут создавать собственные сертификаты для подписи, в которых в качестве центра сертификации выступает компьютер пользователя. Эти сертификаты бесплатные и позволяют создавать, подписывать и выполнять скрипты на собственном компьютере. Однако скрипты, подписанные самим пользователем, не будут работать на других компьют ерах. Обычно сертификаты, подписанные самим пользователем, используются только для подписания скриптов, которые созданы этим пользователем для собственного использования, а также для подписания проверенных скриптов, полученных из других источников. Они не подходят для скриптов, которые будут использоваться несколькими пользователями, даже на одном пред приятии. При создании собственного сертификата подписи обязательно нужно включить высокий уровень защиты сертификата с закрытым ключом. Это предотвратит подписание скриптов вредоносными программами от лица пользователя. Необходимые инструкции содержатся в конце настоящего раздела. СОЗДАНИЕ САМОЗАВЕРЕННОГО СЕРТИФИКАТА -------------------------------- Для создания собственного сертификата подписи нужно использовать инструмент для создания сертификатов (MakeCert.exe). Этот инструмент входит в состав комплектов Microsoft .NET Framework SDK (версии 1.1 и более поздние) и Microsoft Windows SDK. Дополнительные сведения о синтаксисе и описание параметров инструмента MakeCert.exe см. в документе "Инструмент для создания сертификатов (MakeCert.exe)" (Certificate Creation Tool (MakeCert.exe)) в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=119097. Чтобы использовать инструмент MakeCert.exe для создания сертификата, нужно выполнить следующие команды в окне командной строки SDK. Примечание. Первая команда создает локальный центр сертификации для вашего компьютера. Вторая команда генерирует персональный сертификат из центра сертификации. Примечание. Команды можно копировать или вводить точно так же, как они выгл ядят. Заменять ничего не нужно, хотя имя сертификата можно изменять. makecert -n "CN=PowerShell Local Certificate Root" -a sha1 ` -eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer ` -ss Root -sr localMachine makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 ` -eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer Средство MakeCert.exe предложит ввести пароль для закрытого ключа. Использование пароля обеспечит невозможность использования сертификата без ведома владельца. Необходимо выбрать пароль, который можно запомнить. Этот пароль потребуется позднее для получения сертификата. Чтобы убедиться в правильности создания скрипта, нужно использовать следующую команду для получения сертификата в хранилище сертификатов на компьютере. (Файл сертификата нельзя найти в каталоге файловой системы). В командной строке Windows PowerShell введите: get-childitem cert:\CurrentUser\my -codesigning Эта команда использует поставщик сертификатов Windows PowerShell для просмотра информации о сертификате. Если сертификат создан, в выходных данных отображается идентификационный отпечаток сертификата, выглядящий примерно так: Directory: Microsoft.PowerShell.Security\Certificate::CurrentUser\My Thumbprint Subject ---------- ------- 4D4917CB140714BA5B81B96E0B18AAF2C4564FDF CN=PowerShell User ] ПОДПИСЬ СКРИПТА ------------- После создания собственного сертификата подписи пользователь может подписывать скрипты. Если использовать политику исполнения AllSigned, подписание скрипта позволит выполнить скрипт на локальном компьютере. Следующий образец скрипта, Add-Signature.ps1, подписывает скрипт. Однако при использовании политики исполнения AllSigned необходимо подписать скрипт Add-Signature.ps1 перед его выполнением. Для использования этого скрипта нужно скопировать следующий текст в текстовый файл и назвать его Add-Signature.ps1. Примечание. Файл скрипта не должен иметь расширение TXT. Если текстовый редактор добавляет расширение TXT, нужно заключить им я файла в кавычки следующим образом: "add-signature.ps1". ## add-signature.ps1 ## Signs a file param([string] $file=$(throw "Please specify a filename.")) $cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0] Set-AuthenticodeSignature $file $cert Чтобы подписать файл скрипта Add-Signature.ps1, нужно ввести следующие команды в командной строке Windows PowerShell: $cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0] Set-AuthenticodeSignature add-signature.ps1 $cert После подписания скрипта можно выполнить его на локальном компьютере. Однако скрипт не будет работать на компьютерах, где политика исполнения Windows PowerShell требует цифровой подписи центра сертификации. При попытке выполнения скрипта без такой цифровой подписи Windows PowerShell выводит следующее сообщение об ошибке: Не удается загрузить файл C:\remote_file.ps1. Невозможно проверить подпись сертификата. В строке:1 знак:15 + .\ remote_file.ps1 Если Windows PowerShell выводит это сообщение при выполнении скрипта, созданного другим пользователем, необходимо работать с этим файлом, как и с любым неподписанным скриптом. Чтобы определить, можно ли доверять скрипту, нужно проверить код. НАДЕЖНАЯ ЗАЩИТА СЕРТИФИКАТА ЗАКРЫТЫМ КЛЮЧОМ ------------------------------------------- Если на компьютере установлен личный сертификат, вредоносные программы могут подписывать скрипты от имени пользователя, что разрешает Windows PowerShell выполнять их. Чтобы предотвратить автоматическое подписание скриптов от лица пользователя, нужно использовать диспетчер сертификатов (Certmgr.exe) для экспорта сертификата подписи в файл PFX. Диспетчер сертификации входит в комплектацию комплектов Microsoft .NET Framework SDK и Microsoft Windows SDK и в браузер Internet Explorer версии 5.0 и выше. Экспорт сертификата. 1. Запустите диспетчер сертификации. 2. Выберите сертификат, выданный центром сертификации PowerShell Local Certificate Root. 3. Нажмите кнопку "Экспортировать", чтобы запустить мастер экспорта сертификатов. 4. Выберите пункт "Да, экспортировать закрытый ключ" и нажмите кнопку "Далее". 5. Выберите "Включить надежную защиту". 6. Введите пароль и повторите ввод для подтверждения пароля. 7. Введите имя файла с расширением PFX. 8. Нажмите кнопку "Готово". Повторный импорт сертификата. 1. Запустите диспетчер сертификации. 2. Нажмите кнопку "Импортировать", чтобы запустить мастер импорта сертификатов. 3. Откройте каталог с файлом PFX, созданным во время экспорта. 4. На странице "Пароль" выберите параметр "Включить высокий уровень защиты сертификата с закрытым ключом" и введите пароль, указанный во время экспорта. 5. Выберите личное хранилище сертификатов. 6. Нажмите кнопку "Готово". ПРЕДОТВРАЩЕНИЕ ИСТЕЧЕНИЯ СРОКА ДЕЙСТВИЯ ПОДПИСИ ----------------------------------- Цифровая подпись скрипта действительна в течение срока действия сертификата подписи или в течение времени, пока сервер временных меток может подтвердить, что скрипт был подписан в период действия сертификата подписи. Поскольку большинство сертификатов подписи действуют всего один год, использование сервера временных меток позволит пользователям использовать скрипт в течение многих лет. СМ. ТАКЖЕ about_Execution_Policies about_Profiles Get-ExecutionPolicy Set-ExecutionPolicy Set-AuthenticodeSignature "Введение в подписание кода" (Introduction to Code Signing) (http://go.microsoft.com/fwlink/?LinkId=106296) about_Special_Characters РАЗДЕЛ about_Special_Characters КРАТКОЕ ОПИСАНИЕ Описание специальных символов, которые можно использовать, чтобы определить, как Windows PowerShell интерпретирует следующий символ в команде или параметре. ПОЛНОЕ ОПИСАНИЕ Windows PowerShell поддерживает последовательности специальных символов, служащие для обозначения символов, не входящих в стандартную кодировку. Специальные символы Windows PowerShell начинаются с символа обратного апострофа, также называемого грависом (ASCII 96). В Windows PowerShell распознаются следующие специальные символы: `0 Null `a Предупреждение `b Возврат курсора `f Перевод страницы `n Новая строка `r Возврат каретки `t Горизонтальная табуляция `v Вертикальная табуляция Эти символы вводятся с учетом регистра. NULL (`0) Windows PowerShell распознает специальный символ null (`0) и выводит его с кодом символа 0. Этот символ отображается в Windows PowerShell как пробел. С помощью этого символа Windows PowerShell можно использовать для чтения и обработки текстовых файлов, в которых используются символы null, например, индикаторы окончания строки или записи. Специальный символ null не эквивалентен переменной $null, которая хранит значение NULL. ПРЕДУПРЕЖДЕНИЕ(`a) Специальный символ предупреждения (`a) отправляет звуковой сигнал на динамик компьютера. Его можно использовать, чтобы предупредить пользователя о выполнении какого-то действия. С помощью следующей команды на динамик локального компьютера отправляется два звуковых сигнала: for ($i = 0; $i -le 1; $i++){"`a"} ВОЗВРАТ КУРСОРА (`b) Специальный символ возврата курсора (`b) возвращает курсор на один символ назад, но не удаляет никакие символы. Следующая команда выводит слово backup, перемещает курсор назад на две позиции и выводит слово out (перед которым идет пробел и которое начинается с новой позиции): "backup`b`b out" Эта команда выводит следующий текст: back out ПЕРЕВОД СТРАНИЦЫ(`f) Символ перевода страницы (`f) - команда печати, извлекающая текущую страницу и продолжающая печать на следующей странице. Этот символ влияет только на печать документов и не влияет на отображение текста на экране. НОВАЯ СТРОКА (`n) Символ новой строки (`n) вставляет разрыв строки сразу после символа. В следующем примере показывается, как нужно использовать символ новой строки в команде Write-Host: "Два разрыва строки `n`nздесь." Эта команда выводит следующий текст: Два разрыва строки здесь. ВОЗВРАТ КАРЕТКИ (`r) Символ возврата каретки (`r) удаляет всю строку до символа `r, как если бы предшествующий ему текст был на другой строке. Пример: Write-Host "Этот текст будет удален`rНе двигайтесь." В результате выполнения данной команды выводится следующий текст: Не двигайтесь. ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ (`t) Символ горизонтальной табуляции(`t) переводит курсор на следующую позицию табуляции, и вывод текста продолжается с этой позиции. По умолчанию позиция табуляции в консоли Windows PowerShell установлена на каждый восьмой пробел. Например, с помощью следующей команды можно вставить две табуляции между каждым столбцом. "Column1`t`tColumn2`t`tColumn3" В результате выполнения данной команды выводится следующий текст: Column1 Column2 Column3 ВЕРТИКАЛЬНАЯ ТАБУЛЯЦИЯ (`v) Символ вертикальной табуляции(`v) переводит курсор на следующую позицию вертикальной табуляции, и вывод текста продолжается с этой позиции. Этот символ влияет только на печать документов. Он не влияет на вывод текста на экран. СМ. ТАКЖЕ about_Quoting_Rules about_Escape_Characters about_split РАЗДЕЛ about_Split КРАТКОЕ ОПИСАНИЕ Описание использования оператора split для разбивки одной или нескольких строк на подстроки. ПОЛНОЕ ОПИСАНИЕ Оператор split используется для разбивки одной или нескольких строк на подстроки. Можно изменять следующие элементы операции split. -- Разделитель. По умолчанию в качестве разделителя используется пробел, однако можно указать и символы, строки, шаблоны или блоки скриптов, задающие разделитель. -- Максимальное количество подстрок. По умолчанию выводятся все подстроки. Если задано число меньше числа подстрок, оставшиеся подстроки объединяются в последнюю подстроку. -- Параметры, задающие состояния, с которыми производится сопоставление разделителя, например, SimpleMatch и Multiline. СИНТАКСИС В следующей схеме показан синтаксис использования оператора -split. Имена параметров не отображаются в команде. Включать в команду нужно только значения параметров. Значения должны появляться в порядке, показанном на схеме синтаксиса. -Split <String> <String> -Split <Delimiter>[,<Max-substrings>[," <String> -Split {<ScriptBlock>} [,<Max-substrings>] В любой команде split можно заменять на -iSplit или -cSplit для -split. В операторах -iSplit и -split регистр не учитывается. В операторе -cSplit при применении правил разделения регистр учитывается. ПАРАМЕТРЫ <String> Задает одну или несколько строк для разбивки. При указании нескольких строк все строки разбиваются по одним и тем же правилам. Пример. -split "red yellow blue green" red yellow blue green <Delimiter> Символы, указывающие на конец подстроки. По умолчанию в качестве разделителя используются пробелы с учетом непечатаемых символов, например, символа новой строки (`n) и символа табуляции (`t). При разбивке строк разделитель исключается из всех подстрок. Пример. "Lastname:FirstName:Address" -split ":" Lastname FirstName Адрес <Max-substrings> Указывает максимальное количество выводимых подстрок. По умолчанию это все подстроки, разделенные разделителем. Если фактическое количество подстрок больше, они объединяются в последней подстроке. Если фактическое количество подстрок меньше, выводятся все подстроки. При выборе значения 0 и отрицательных значений будут выведены все подстроки. Если в оператор split отправляется несколько строк (массив строк), параметр Max-substrings применяется к каждой строке отдельно. Пример. $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" $c -split ",", 5 Mercury Venus Earth Mars Jupiter,Saturn,Uranus,Neptune <ScriptBlock> Выражение, указывающее правила применения разделителя. Выражение должно иметь значение $true или $false. В фигурных скобках содержится блок скрипта. Пример. $c = "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" $c -split {$_ -eq "e" -or $_ -eq "p"} M rcury,V nus,Earth,Mars,Ju it r,Saturn,Uranus,N tun <Options> Заключите имя параметра в кавычки. Параметры действуют только при использовании в инструкции параметра <Max-substrings>. Синтаксис параметра Options: "SimpleMatch [,IgnoreCase]" "[RegexMatch] [,IgnoreCase] [,CultureInvariant] [,IgnorePatternWhitespace] [,ExplicitCapture] [,Singleline | ,Multiline]" Параметры SimpleMatch: -- SimpleMatch: использовать простое сравнение строк при оценке разделителя. Не может использоваться с RegexMatch. -- IgnoreCase: форсирует сопоставление без учета регистра, даже если задан оператор -cSplit. Параметры RegexMatch: -- RegexMatch: для оценки разделителя используется сопоставление по регулярным выражениям. Это поведение установлено по умолчанию. Не может использоваться с SimpleMatch. -- IgnoreCase: Форсирует сопоставление без учета регистра, даже если задан оператор -cSplit. -- CultureInvariant: игнорирует культурные различия языков при оценке разделителя. Можно использовать только с RegexMatch. -- IgnorePatternWhitespace: игнорирует неизбежные пробелы и комментарии, помеченные символом номера (#). Можно использовать только с RegexMatch. -- Multiline: В многострочном режиме распознаются начало и конец строк и выражений. Можно использовать только с RegexMatch. По умолчанию используется однострочный режим (Singleline). -- Singleline: в однострочном режиме распознаются только начало и конец выражений. Можно использовать только с RegexMatch. По умолчанию используется однострочный режим (Singleline). -- ExplicitCapture: игнорирует группы сопоставлений без имен, и в списке результатов выводятся только группы явно именованных шаблонов. Можно использовать только с RegexMatch. УНАРНЫЕ И ДВОИЧНЫЕ ОПЕРАТОРЫ SPLIT Оператор унарной разбивки (-split <string>) имеет более высокий приоритет, чем запятая. Поэтому если отправить в оператор унарной разбивки список разделенных запятыми строк, разбиваться будет только первая строка (до первой запятой). Чтобы разбить несколько строк, нужно использовать оператор двоичной разбивки (<string> -split <delimiter>). Все строки следует заключать в скобки или сохранять в переменной, а затем отправлять в оператор split эту переменную. Рассмотрим следующий пример. -split "1 2", "a b" 1 2 a b "1 2", "a b" -split " " 1 2 a b -split ("1 2", "a b") 1 2 a b $a = "1 2", "a b" -split $a 1 2 a b ПРИМЕРЫ Следующая команда разбивает строку по пробелам. C:\PS> -split "Windows PowerShell 2.0`nWindows PowerShell with remoting" Windows PowerShell 2.0 Windows PowerShell with remoting Следующая команда разбивает строку по запятым. C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split ',' Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Следующая команда разбивает строку по шаблону "er". C:\PS>"Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split 'er' M cury,Venus,Earth,Mars,Jupit ,Saturn,Uranus,Neptune Следующая команда выполняет разбивку по символу "N" с учетом регистра. C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -cSplit 'N' Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus, eptune Следующая команда выполняет разбивку по символам "e" и "t". C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[et]' M rcury,V nus, ar h,Mars,Jupi r,Sa urn,Uranus,N p un Следующая команда выполняет разбивку по символам "e" и "r", но ограничивает количество подстрок шестью. C:\PS> "Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Neptune" -split '[er]', 6 M cu y,V nus, arth,Mars,Jupiter,Saturn,Uranus,Neptune Следующая команда разбивает строку на три подстроки. C:\PS> "a,b,c,d,e,f,g,h" -split ",", 3 a b c,d,e,f,g,h Следующая команда разбивает две строки на три подстроки. (ограничение применяется к каждой строке отдельно). C:\PS> "a,b,c,d", "e,f,g,h" -split ",", 3 a b c,d e f g,h Следующая команда разбивает каждую строку в строке Here String по первой цифре. Для распознания начала каждой строки используется параметр Multiline. 0 означает значение return all (вернуть все) параметра Max-substrings. Такие параметры как Multiline можно использовать, только если указано значение Max-substrings. C:\PS> $a = @' 1The first line. 2The second line. 3The third of three lines. '@ C:\PS> $a -split "^\d", 0, "multiline" The first line. The second line. The third of three lines. В следующей команде параметр SimpleMatch используется, чтобы оператор -split интерпретировал разделитель в виде точки (.) буквально. При использовании параметра по умолчанию RegexMatch символ точки в кавычках (".") интерпретируется как любой символ, кроме символа новой строки. В результате этого команда split выведет пустые строки для каждого символа, кроме символов новой строки. 0 означает значение return all (вернуть все) параметра Max-substrings. Такие параметры как SimpleMatch можно использовать, только если указано значение Max-substrings. C:\PS> "This.is.a.test" -split ".", 0, "simplematch" This is a test Следующая команда выполняет разбивку по одному или двум разделителям в зависимости от значения переменной. C:\PS> $i = 1 C:\PS> $c = "LastName, FirstName; Address, City, State, Zip" C:\PS> $c -split {if ($i -lt 1) {$_ -eq ","} else {$_ -eq ";"}} LastName, FirstName Address, City, State, Zip Следующие команды разбивают файл XML сначала по угловым скобкам, а затем по точкам с запятой. В результате выводится удобная для чтения версия файла XML. C:\PS> get-process powershell | export-clixml ps.xml C:\PS> $x = import-clixml ps.xml C:\PS> $x = $x -split "<" C:\PS> $x = $x -split ";" Для отображения результата введите "$x". C:\PS> $x @{__NounName=Process Name=powershell Handles=428 VM=150081536 WS=34840576 PM=36253696 ... СМ. ТАКЖЕ Split-Path about_Operators about_Comparison_Operators about_Join about_Switch РАЗДЕЛ about_Switch КРАТКОЕ ОПИСАНИЕ Описание использования инструкции Switch для обработки нескольких инструкций If. ПОЛНОЕ ОПИСАНИЕ Инструкция If используется для принятия решения в скрипте или программе. В сущности, она сообщает: "Если данное условие выполняется, то выполните это действие. В противном случае выполните следующее действие". Эту операцию можно выполнять сколько угодно раз, однако если список условий велик, использование инструкции If становится неудобным. Можно объединить длинный список условий в одной инструкции switch. Как и во всех инструкциях с ветвлением, блоки скриптов должны заключаться в скобки ({}). Инструкция Switch фактически представляет собой последовательность инструкций If. Она поочередно сопоставляет выражение с каждым условием. Если обнаружено совпадение, то выполняется действие, связанное с этим условием. Обычно инструкция switch выглядит следующим образом: PS> $a = 3 PS> switch ($a) { 1 {"Один."} 2 {"Два."} 3 {"Три."} 4 {"Четыре."} } Три. В этом простом примере значение сравнивается с каждым условием в списке. Это действие выводит строку совпадения. Однако при проверке всех условий может возникнуть проблема. Пример: PS> $day = "day5" PS> switch ($day){ day1 {"Понедельник"; break} day2 {"Вторник"; break} day3 {"Среда"; break} day4 {"Четверг"; break} day5 {"Пятница"; break} day6 {"Суббота"; break} day7 {"Воскресенье"; break} day5 {"Слишком много дней"; break} } Пятница В списке присутствует два условия day5. Однако инструкция break в конце каждого условия велит инструкции switch прекратить дальнейший поиск и выполнить найденное действие. Если бы инструкции break не было, были бы выполнены оба действия day5. Если инструкция switch применяется к массиву, проверяться будут все элементы массива по порядку, начиная с нулевого элемента (0). В массиве должен быть хотя бы один элемент, удовлетворяющий хотя бы одному условию. В противном случае произойдет ошибка. Если предложений по умолчанию несколько, результатом будет ошибка. Полный синтаксис switch следующий: switch [-regex|-wildcard|-exact][-casesensitive] ( pipeline ) или switch [-regex|-wildcard|-exact][-casesensitive] -file filename с последующим { "string"|number|variable|{ expression } { statementlist } default { statementlist } } Если не использовать никакие параметры, оператор Switch выполняет действие, как если бы было обнаружено точное совпадение без учета регистра. Если результатом конвейера является массив, проверяться будут все элементы массива в восходящем порядке, начиная с нулевого элемента (0). В блоке кода Switch могут присутствовать только один условный элемент и только одно предложение по умолчанию. При наличии нескольких предложений по умолчанию возникает исключение ParseException. Инструкция Switch имеет следующие параметры. Regex Указывает, что удовлетворяющее критерию предложение, являющееся строкой, обрабатывается как стр ока Regex. Использование этого параметра отключает параметры Wildc ard и Exact. Если удовлетворяющее критерию предложение не является с трокой, этот параметр игнорируется. Wildcard Указывает, что удовлетворяющее критерию предложение, являющееся строкой, обрабатывается как строка с подстановочным символом. Использование этого параметра отключает параметры Regex и Exact. Если удовлетворяющее критерию предложение не является строкой, этот параметр игнориру ется. Exact Указывает, что удовлетворяющее критерию предложение, являющееся строкой, должно точно соответст вовать критерию. Использование этого параметра отключает параметры Wildc ard и Regex. Если удовлетворяющее критерию предложение не является строко й, этот параметр игнорируется. CaseSensitive Указывает, что удовлетворяющее критерию предложение, являющееся строкой, изменяется с учетом регистра. Если удовлетворяющее критерию предложение не является строкой, этот параметр игнорируется. File Источник берется из файла (или представителя), а не из инс трукции. При наличии нескольких параметров File используется тол ько последний. Каждая строка файла считывается и передается через блок switch. Допускается многократное использование параметров Regex, Wildcard или Exact. Однако на действие влияет только последний использованный параметр. Ключевое слово Break означает, что обработка больше не выполняется и инструкция Switch завершает работу. Ключевое слово Continue указывает, что обработка текущего токена не будет продолжаться и начнется оценка следующего токена в условии. При отсутствии токенов оператор Switch завершает работу. Блок вида "{ expression }" может быть блоком кода, который будет оцениваться при сравнении. Текущий объект привязывается к автоматической переменной $_ и доступен во время проверки выражения. Считается, что результатом сравнения было совпадение, если выражение принимает значение "true". Это выражение вычисляется в новой области. Ключевое слово Default в инструкции switch указывает, что если соответствия не найдены, начнется проверка кодового блока, следующего за ключевым словом. Программному потоку будет запрещено переключение с блока на блок, поскольку закрывающая скобка ( } ) в составном списке является явным остановом. При обнаружении нескольких соответствий каждое соответствие приводит к запуску выражения. Во избежание этого для предотвращения дальнейшего сравнения можно использовать ключевые слова Break или Continue. СМ. ТАКЖЕ about_Break about_Continue about_If about_Script_Blocks about_Throw РАЗДЕЛ about_Throw КРАТКОЕ ОПИСАНИЕ Описание ключевого слова Throw, генерирующего ошибку с завершением работы. ПОЛНОЕ ОПИСАНИЕ Ключевое слово Throw вызывает ошибку с завершением работы. Ключевое слово Throw можно использовать для остановки обработки команды, функции или скрипта. Например, ключевое слово Throw можно использовать в блоке скрипта инструкции If для отклика на условие или в блоке Catch инструкции Try-Catch-Finally. Ключевое слово Throw можно использовать и при декларировании параметров, чтобы сделать параметр функции обязательным. Ключевое слово Throw может выводить любой объект, в том числе строку сообщения для пользователя или объект, вызвавший ошибку. СИНТАКСИС Ключевое слово Throw имеет следующий синтаксис: throw [<expression>] Выражение в синтаксисе Throw является необязательным. Если ключевое слово Throw не входит в блок Catch и не включает выражение, оно генерирует ошибку ScriptHalted. C:\PS> throw ScriptHalted At line:1 char:6 + throw + CategoryInfo : OperationStopped: (:) [], RuntimeExceptio n + FullyQualifiedErrorId : ScriptHalted Если ключевое слово Throw используется в блоке Catch без выражения, оно выводит текущее исключение RuntimeException. Дополнительные сведения см. в разделе about_Try_Catch_Finally. ИСПОЛЬЗОВАНИЕ КЛЮЧЕВОГО СЛОВА THROW ДЛЯ СТРОКИ Необязательным выражением в составе блока Throw может быть строка, как показано в следующем примере: C:\PS> throw "Это ошибка." Это ошибка. В строке:1 знак:6 + throw < "Это ошибка." + CategoryInfo : OperationStopped: (This is an error.:Stri ng) [], RuntimeException + FullyQualifiedErrorId : Это ошибка. ИСПОЛЬЗОВАНИЕ КЛЮЧЕВОГО СЛОВА THROW ДЛЯ ДРУГИХ ОБЪЕКТОВ Выражение также может являться объектом, который выводит объект, соответствующий процессу PowerShell, как показано в следующем примере. C:\PS> throw (get-process powershell) System.Diagnostics.Process (powershell) At line:1 char:6 + throw < (get-process powershell) + CategoryInfo : OperationStopped: (System.Diagnostics.Pro cess (powershell):Process) [], RuntimeException + FullyQualifiedErrorId : System.Diagnostics.Process (powershell) Свойство TargetObject объекта ErrorRecord в автоматической переменной $error можно использовать для изучения ошибки. C:\PS> $error[0].targetobject Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 319 26 61016 70864 568 3.28 5548 powershell Также с помощью ключевого слова Throw может выводиться объект ErrorRecord или исключение платформы Microsoft.NET Framework. В следующем примере ключевое слово Throw используется для вывода объекта System.FormatException. C:\PS> $formatError = new-object system.formatexception C:\PS> throw $formatError Формат одного из идентифицированных элементов неверен. В строке:1 знак:6 + throw < $formatError + CategoryInfo : OperationStopped: (:) [], FormatException + FullyQualifiedErrorId : Формат одного из идентифицированных элементов не верен. ВОЗВРАЩАЕМАЯ ОШИБКА Ключевое слово Throw может генерировать объект ErrorRecord. Свойство Exception объекта ErrorRecord содержит объект RuntimeException. Остальная часть объекта ErrorRecord и объекта RuntimeException меняются в зависимости от объекта, выводимого ключевым словом Throw. Объект RunTimeException заключается в объект ErrorRecord, а объект ErrorRecord автоматически сохраняется в автоматической переменной $Error ИСПОЛЬЗОВАНИЕ КЛЮЧЕВОГО СЛОВА THROW ДЛЯ СОЗДАНИЯ ОБЯЗАТЕЛЬНОГО ПАРАМЕТРА Ключевое слово Throw можно использовать для превращения параметра функции в обязательный. Это альтернатива использованию параметра Mandatory ключевого слова Parameter. При использовании параметра Mandatory система требует у пользователя ввести обязательное значение параметра. При использовании ключевого слова Throw команда прекращает работу и выводит запись об ошибке. Например, ключевое слово Throw в подвыражении параметра делает параметр Path обязательным параметром функции. В данном случае ключевое слово Throw выводит строку сообщения, однако именно присутствие ключевого слова Throw генерирует ошибку с завершением работы, если параметр Path не указан. Выражение после ключевого слова Throw является необязательным. function Get-XMLFiles { param ($path = $(throw "The Path parameter is required.")) dir -path $path\* -include *.xml -recurse | sort lastwritetime | ft lastwritetime, attributes, name -auto } СМ. ТАКЖЕ about_Break about_Continue about_Scope about_Trap about_Try_Catch_Finally about_transactions РАЗДЕЛ about_Transactions КРАТКОЕ ОПИСАНИЕ Описание способов управления операциями транзакций в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Транзакции поддерживаются в Windows PowerShell начиная с версии Windows PowerShell 2.0. Эта функция позволяет начинать транзакции, указывать команды, входящие в транзакции, и фиксировать или откатывать транзакции. О ТРАНЗАКЦИЯХ Транзакция в Windows PowerShell - это набор из одной или нескольких команд, которыми можно управлять как логическим блоком. При выполнении ("фиксации") транзакции изменяются данные, на которые повлияла транзакция. Транзакцию также можно полностью отменить ("откатить"), не изменяя этой транзакцией данные, на которые она могла бы повлиять. Поскольку команды в транзакции рассматриваются как единый блок, либо все команды фиксируются, либо все команды откатываются. Транзакции широко используются в обработке данных, особенно при операциях с базами данных и для финансовых транзакций. Чаще всего транзакции используются, если худшим вариантом для набора команд является не ошибка всех команд, а успешное выполнение лишь части из них, сопровождаемое ошибками других, приводящими систему в поврежденное, некорректное или нечитаемое состояние, которое трудно исправить. КОМАНДЛЕТЫ ДЛЯ ТРАНЗАКЦИЙ В Windows PowerShell включено несколько командлетов, предназначенных для работы с транзакциями. Командлет Описание -------------- --------------------------------- Start-Transaction Запускает новую транзакцию. Use-Transaction Добавляет в транзакцию команду или выражение. Команда должна использовать объекты, поддерживающие транзакции. Undo-Transaction Откатывает транзакцию, не изменяя транзакцией данные. Complete-Transaction Фиксирует транзакцию. Изменяет данные, на которые влияет транзакция. Get-Transaction Возвращает сведения об активной транзакции. Чтобы вывести список командлетов транзакции, введите следующую команду: get-command *transaction Чтобы получить дополнительные сведения о командлетах, введите следующую команду: get-help <имя_командлета> -detailed Пример: get-help use-transaction -detailed ЭЛЕМЕНТЫ, ПОДДЕРЖИВАЮЩИЕ ТРАНЗАКЦИИ Для участия в транзакции и командлет, и поставщик должны поддерживать транзакции. Эта функция встроена в объекты, на которые влияет транзакция. Поставщик Windows PowerShell Registry поддерживает транзакции в Windows Vista. Объект TransactedString (Microsoft.PowerShell.Commands.Management.TransactedString) работает в любой операционной системе, где установлена оболочка Windows PowerShell. Другие поставщики Windows PowerShell могут поддерживать транзакции. Узнать, какие поставщики Windows PowerShell в текущем сеансе поддерживают транзакции, можно с помощью следующей команды, возвращающей значение "Transactions" свойства поставщиков Capabilities: get-psprovider | where {$_.Capabilities -like "*transactions*"} Дополнительные сведения о поставщиках см. в справке об этих поставщиках. Для получения справки по поставщику введите следующую команду: get-help <имя-поставщика> Например, чтобы получить справку для поставщика Registry, введите следующую команду: get-help registry ПАРАМЕТР USETRANSACTION Командлеты, поддерживающие транзакции, имеют параметр UseTransaction. Этот параметр включает команду в активную транзакцию. Можно использовать полное имя параметра или его псевдоним "usetx". Этот параметр можно использовать только при наличии в сеансе активной транзакции. Если активной транзакции нет, команда, введенная с параметром UseTransaction, завершится ошибкой. Чтобы найти командлеты с параметром UseTransaction, введите следующую команду: get-help * -parameter UseTransaction Все основные командлеты Windows PowerShell, предназначенные для работы с поставщиками Windows PowerShell, поддерживают транзакции. Поэтому для управления транзакциями можно пользоваться командлетами поставщика. Дополнительные сведения о поставщиках Windows PowerShell см в разделе about_Providers. ОБЪЕКТ ТРАНЗАКЦИИ Транзакции в Windows PowerShell представлены объектом транзакции System.Management.Automation.Transaction. Этот объект имеет следующие свойства. RollbackPreference. Содержит параметр отката, установленный для текущей транзакции. Параметр отката можно установить при использовании командлета Start-Transaction для запуска транзакции. Параметр отката определяет условия, при которых транзакция откатывается автоматически. Допустимые значения Error, TerminatingError и Never. По умолчанию используется значение Error. Status. Содержит текущее состояние транзакции. Допустимые значения Active, Committed и RolledBack. SubscriberCount. Содержит количество подписчиков этой транзакции. Подписчик добавляется в транзакцию, запускаемую во время выполнения другой транзакции. При фиксации транзакции подписчиком количество подписчиков уменьшается. АКТИВНЫЕ ТРАНЗАКЦИИ В Windows PowerShell в каждый момент времени активна только одна транзакция и управлять можно только одной активной транзакцией. В один сеанс одновременно может выполняться несколько транзакций, но активна только транзакция, запущенная последней. Поэтому при использовании командлетов транзакций нельзя выбирать определенные транзакции. Команды всегда применяются к активной транзакции . Это хорошо иллюстрирует поведение командлета Get-Transaction. Команда Get-Transaction при вводе всегда возвращает только один объект транзакции. Этот объект представляет активную транзакцию. Для управления другой транзакцией нужно сначала закончить активную транзакцию, зафиксировав или откатив ее. После этого предыдущая транзакци я автоматически становится активной. Транзакции становятся активным в порядке, обратном запуску, то есть транзакция, запущенная последней, всегда активна. ПОДПИСЧИКИ И НЕЗАВИСИМЫЕ ТРАНЗАКЦИИ При запуске транзакции во время выполнения другой транзакции Windows PowerShell по умолчанию не запускает новую транзакцию. Вместо этого в текущую транзакцию добавляется "подписчик". Если у транзакции несколько подписчиков, одна команда Undo-Transaction в любой момент откатывает всю транзакцию для всех подписчиков. При этом для фиксации транзакции необходимо ввести по одной команде Complete-Transaction для каждого подписчика. Чтобы узнать количество подписчиков в транзакции, проверьте свойство SubscriberCount объекта транзакции. Например, следующая команда используе т командлет Get-Transaction, чтобы вернуть значение свойства SubscriberCoun t активной транзакции: (Get-Transaction).SubscriberCount Добавление подписчика - поведение по умолчанию, потому что большинство транзакций, запускаемых при выполнении другой транзакции, связаны с этой исходной транзакцией. В обычной ситуации скрипт, содержащий транзакцию, вызывает вспомогательный скрипт, содержащий собственную транзакцию. Эти транзакции связаны, поэтому их нужно откатывать или фиксировать единым блоком. Однако с помощью параметра Independent командлета Start-Transaction можно запустить транзакцию, независимую от текущей. При запуске независимой транзакции командлет Start-Transaction создает новый объект транзакции и новая транзакция становится активной. Независимую транзакцию можно зафиксировать или откатить, не затрагивая первоначальную транзакцию. По завершении (фиксации или отката) независимой транзакции первоначальная транзакция снова становится активной. ИЗМЕНЕНИЕ ДАННЫХ При использовании транзакций для изменения данных данные, на которые влияет транзакция, не изменяются до фиксации транзакции. Однако те же данные можно изменять с помощью команд, не входящих в транзакцию. Об этом следует помнить при использовании транзакций для управления общими данными. Обычно у баз данных есть механизмы, блокирующие данные при работе с ними, чтобы их не могли изменить другие пользователи, команды, скрипты и функции. Однако блокирование обеспечивается базой данных. Оно не связано с транзакциями. При работе в файловой системе или другом хранилище данных, поддерживающем транзакции, данные могут изменяться во время выполнения транзакции. ПРИМЕРЫ Примеры в данном разделе используют поставщик Windows PowerShell Registry, поэтому предполагается, что вы с ним знакомы. Чтобы получить сведения о поставщике Registry, введите команду "get-help registry". ПРИМЕР 1: ФИКСАЦИЯ ТРАНЗАКЦИИ Чтобы создать транзакцию, используйте командлет Start-Transaction. Следующая команда запускает транзакцию с параметрами по умолчанию. start-transaction Для включения в транзакцию команд используется параметр командлета UseTransaction. По умолчанию команды не включаются в транзакцию. Например, следующая команда, назначающая текущим расположением раздел Software на диске HKCU:, не включена в транзакцию. cd hkcu:\Software Следующая команда, создающая раздел MyCompany, использует параметр UseTransaction командлета New-Item, чтобы включить команду в активную транзакцию. new-item MyCompany -UseTransaction Команда возвращает объект, представляющий новый раздел, но реестр еще не изменяется, потому что команда входит в транзакцию. Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 0 0 MyCompany {} Чтобы зафиксировать транзакцию, используйте командлет Complete-Transaction. Транзакцию указать нельзя, потому что командлет всегда влияет на активную транзакцию. complete-transaction В результате в реестр добавляется раздел MyCompany.. dir m* Hive: HKEY_CURRENT_USER\software SKC VC Name Property --- -- ---- -------- 83 1 Microsoft {(default)} 0 0 MyCompany {} ПРИМЕР 2: ОТКАТ ТРАНЗАКЦИИ Чтобы создать транзакцию, используйте командлет Start-Transaction. Следующая команда запускает транзакцию с параметрами по умолчанию. start-transaction Следующая команда, создающая раздел MyOtherCompany, использует параметр UseTransaction командлета New-Item, чтобы включить команду в активную транзакцию. new-item MyOtherCompany -UseTransaction Команда возвращает объект, представляющий новый раздел, но реестр еще не изменяется, потому что команда входит в транзакцию. Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 0 0 MyOtherCompany {} Чтобы откатить транзакцию, используйте командлет Undo-Transaction. Транзакция не указывается, потому что командлет всегда влияет на активную транзакцию. Undo-transaction В результате раздел MyOtherCompany не добавляется в реестр. dir m* Hive: HKEY_CURRENT_USER\software SKC VC Name Property --- -- ---- -------- 83 1 Microsoft {(default)} 0 0 MyCompany {} ПРИМЕР 3: ПРЕДВАРИТЕЛЬНЫЙ ПРОСМОТР ТРАНЗАКЦИИ Обычно команды, использующиеся в транзакции, изменяют данные. Но команды, возвращающие данные, тоже полезны в транзакции, потому что они возвращают данные внутри транзакции. Это позволяет узнать, как будут выглядеть изменения после фиксации транзакции. В следующем примере показано использование команды Get-ChildItem (ее псевдоним "dir") для предварительного просмотра изменений в транзакции. Следующая команда запускает транзакцию. start-transaction Следующая команда использует командлет New-ItemProperty, чтобы добавить в раздел MyCompany запись реестра MyKey. Команда использует параметр UseTransaction для включения команды в транзакцию. new-itemproperty -path MyCompany -Name MyKey -value 123 -UseTransaction Команда возвращает объект, представляющий новую запись реестра, но не изменяет саму запись реестра. MyKey ----- 123 Для получения текущих элементов в реестре используйте команду Get-ChildItem ("dir") без параметра UseTransaction. Следующая команда возвращает элементы, начинающиеся на "M". dir m* В результатах показано, что в раздел MyCompany записи еще не добавлены. Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 83 1 Microsoft {(default)} 0 0 MyCompany {} Чтобы узнать, как будет выглядеть эффект от фиксации транзакции, введите команду Get-ChildItem ("dir") с параметром UseTransaction. Эта команда содержит представление данных из транзакции. dir m* -useTransaction В результатах показано, что при фиксации транзакции в раздел MyCompany будет добавлена запись MyKey. Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 83 1 Microsoft {(default)} 0 1 MyCompany {MyKey} ПРИМЕР 4: ОБЪЕДИНЕНИЕ КОМАНД В РАМКАХ ТРАНЗАКЦИЙ И ВНЕ ТРАНЗАКЦИЙ Во время транзакции можно вводить команды, не входящие в транзакцию. Команды, не входящие в транзакцию, влияют на данные немедленно, но не влияют на транзакцию. Следующая команда запускает транзакцию в разделе реестра HKCU:\Software. start-transaction Три следующие команды добавляют в реестр разделы с помощью командлета New-Item. Первая и третья команды включаются в транзакцию с помощью параметра UseTransaction. Во второй команде этот параметр опускается. Поскольку вторая команда не входит в транзакцию, она действует немедленно. new-item MyCompany1 -UseTransaction new-item MyCompany2 new-item MyCompany3 -UseTransaction Для просмотра текущего состояния реестра используйте команду Get-ChildItem ("dir") без параметра UseTransaction. Эта команда возвращает элементы, начинающиеся на "M". dir m* В результатах показано, что раздел MyCompany2 добавлен в реестр, а разделы MyCompany1 и MyCompany3, которые являются частью транзакцию, не добавлены. Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 83 1 Microsoft {(default)} 0 0 MyCompany2 {} Следующая команда фиксирует транзакцию. complete-transaction Теперь разделы, добавленные как часть транзакции, появятся в реестре. dir m* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 83 1 Microsoft {(default)} 0 0 MyCompany1 {} 0 0 MyCompany2 {} 0 0 MyCompany3 {} ПРИМЕР 5: ИСПОЛЬЗОВАНИЕ АВТОМАТИЧЕСКОГО ОТКАТА Если команда в транзакции выдает какую-либо ошибку, транзакция автоматически откатывается. Это поведение по умолчанию предназначено для скриптов, выполняющих транзакции. Скрипты обычно тщательно тестируются и содержат логику обработки ошибок, поэтому ошибки не ожидаются и должны прерывать транзакцию. Первая команда запускает транзакцию в разделе реестра HKCU:\Software. start-transaction Следующая команда использует командлет New-Item, чтобы добавить в реестр раздел MyCompany. Команда использует параметр UseTransaction (псевдоним - "usetx") для включения команды в транзакцию. New-Item MyCompany -UseTX Так как раздел MyCompany уже есть в реестре, команда завершается неудачей и выполняется откат транзакции. New-Item : раздел по этому пути уже существует В строке:1 знак:9 + new-item < MyCompany -usetx Команда Get-Transaction подтверждает, что выполнен откат транзакции и что количество подписчиков равно 0. RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 0 RolledBack ПРИМЕР 6: ИЗМЕНЕНИЕ ПАРАМЕТРА ОТКАТА Если нужно, чтобы транзакция была менее чувствительна к ошибкам, можно использовать параметр RollbackPreference командлета Start-Transaction, чтобы изменить параметр отката. Следующая команда запускает транзакцию с параметром отката "Never". start-transaction -rollbackpreference Never В этом случае при ошибке команды транзакция не откатывается автоматически. New-Item MyCompany -UseTX New-Item : раздел по этому пути уже существует В строке:1 знак:9 + new-item < MyCompany -usetx Так как транзакция еще активна, команду можно повторно ввести как часть транзакции. New-Item MyOtherCompany -UseTX ПРИМЕР 7: ИСПОЛЬЗОВАНИЕ КОМАНДЛЕТА USE-TRANSACTION Командлет Use-Transaction позволяет непосредственно выполнять скрипты над поддерживающими транзакции объектами Microsoft .NET Framework. Use-Transaction принимает блок скрипта, который может содержать только команды и выражения, использующие объекты .NET Framework, поддерживающие транзакции, такие как экземпляры класса Microsoft.PowerShell.Commands.Management.TransactedString. Следующая команда запускает транзакцию. start-transaction Следующая команда New-Object создает экземпляр класса TransactedString и сохраняет его в переменной $t. $t = New-Object Microsoft.PowerShell.Commands.Management.TransactedStr ing Следующая команда с помощью метода Append объекта TransactedString добавляет текст к строке. Поскольку команда не является частью транзакции, изменение вступает в силу немедленно. $t.append("Windows") Следующая команда использует для добавления текста тот же метод Append, но добавляет текст как часть транзакции. Команда заключена в фигурные скобки и устанавливается как значение параметра ScriptBlock командлета Use-Transaction. Параметр UseTransaction (UseTx) является обязательным. use-transaction {$t.append(" PowerShell")} -usetx Для просмотра текущего содержимого в $t строки, над которой выполняется транзакция, используйте метод ToString объекта TransactedString. $t.tostring() В выходных данных показано, что имеют силу только изменения, не связанные с транзакцией. Windows Для просмотра текущего содержимого в $t строки, над которой выполняется транзакция, из транзакции, внедрите выражение в команду Use-Transaction. use-transaction {$s.tostring()} -usetx В выходных данных показано представление транзакции. Windows PowerShell Следующая команда фиксирует транзакцию. complete-transaction Для просмотра итоговой строки введите: $t.tostring() Windows PowerShell ПРИМЕР 7: УПРАВЛЕНИЕ ТРАНЗАКЦИЯМИ С НЕСКОЛЬКИМИ ПОДПИСЧИКАМИ При запуске транзакции во время выполнения другой транзакции Windows PowerShell по умолчанию не создает вторую транзакцию. Вместо этого в текущую транзакцию добавляется подписчик. В этом примере показано, как просматривать и управлять транзакциями с несколькими подписчиками. Сначала нужно запустить транзакцию в разделе HKCU:\Software. start-transaction Следующая команда с помощью команды Get-Transaction получает активную транзакцию. get-transaction Результат показывает объект, представляющий активную транзакцию. RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 1 Active Следующая команда добавляет в реестр раздел MyCompany. Команда использует параметр UseTransaction для включения команды в транзакцию. new-item MyCompany -UseTransaction Следующая команда запускает транзакцию с помощью команды Start-Transaction. Хотя эта команда введена в командную строку, скорее всего события будут разворачиваться таким образом при выполнении скрипта, содержащего транзакцию. start-transaction Команда Get-Transaction показывает, что количество подписчиков объекта транзакции увеличилось. Новое значение - 2. RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 2 Active Следующая команда использует командлет New-ItemProperty, чтобы добавить в раздел MyCompany запись реестра MyKey. Она использует параметр UseTransaction для включения команды в транзакцию. new-itemproperty -path MyCompany -name MyKey -UseTransaction Раздела MyCompany в реестре нет, но команда выполняется успешно, потому что эти две команды - часть одной транзакции. Следующая команда фиксирует транзакцию. Если бы она откатила транзакцию, откат транзакции был бы выполнен для всех подписчиков. complete-transaction Команда Get-Transaction показывает, что количество подписчиков объекта транзакции равно 1, но значение Status все еще Active (а не Committed). RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 1 Active Для завершения фиксации транзакции введите вторую команду Complete- Transaction. Чтобы зафиксировать транзакцию с несколькими подписчиками, необходимо ввести по одной команде Complete-Transaction для каждой команды Start-Transaction. complete-transaction Еще одна команда Get-Transaction показывает, что транзакция зафиксирована. RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 0 Committed ПРИМЕР 8: УПРАВЛЕНИЕ НЕЗАВИСИМЫМИ ТРАНЗАКЦИЯМИ При запуске транзакции во время выполнения другой транзакции можно использовать параметр Independent командлета Start-Transaction, чтобы новая транзакция была независима от первоначальной. При этом командлет Start-Transaction создает новый объект транзакции и новая транзакция становится активной. Сначала нужно запустить транзакцию в разделе HKCU:\Software. start-transaction Следующая команда с помощью команды Get-Transaction получает активную транзакцию. get-transaction Результат показывает объект, представляющий активную транзакцию. RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 1 Active Следующая команда добавляет раздел реестра MyCompany в состав транзакции. Она использует параметр UseTransaction (UseTx) для включения команды в активную транзакцию. new-item MyCompany -use Следующая команда запускает новую транзакцию. Команда использует параметр Independent, означающий, что эта транзакция не является подписчиком активной транзакции. start-transaction -independent При создании независимой транзакции новая (созданная последней) транзакция становится активной. С помощью команды Get-Transaction можно получить активную транзакцию. get-transaction Обратите внимание, что количество подписчиков транзакции равно 1, то есть других подписчиков нет и транзакция новая. RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 1 Active Новую транзакцию нужно завершить (зафиксировать или откатить) перед тем, как управлять первоначальной транзакцией. Следующая команда добавляет в реестр раздел MyOtherCompany. Она использует параметр UseTransaction (UseTx) для включения команды в активную транзакцию. new-item MyOtherCompany -usetx Теперь откатим транзакцию. Если бы это была одна транзакция с двумя подписчиками, откат транзакции откатил бы всю транзакцию для всех подписчиков. Однако из-за того, что транзакции независимы, откат последней транзакции отменяет изменения реестра, а первоначальная транзакция становится активной. undo-transaction Команда Get-Transaction подтверждает, что первоначальная транзакция в этом сеансе все еще активна. get-transaction RollbackPreference: SubscriberCount: Status ------------------ --------------- ------ Error 1 Active Следующая команда фиксирует активную транзакцию. complete-transaction Команда Get-ChildItem показывает, что реестр изменен. dir m* Hive: HKEY_CURRENT_USER\Software SKC VC Name Property --- -- ---- -------- 83 1 Microsoft {(default)} 0 0 MyCompany {} СМ. ТАКЖЕ Start-Transaction Get-Transaction Complete-Transaction Undo-Transaction Use-Transaction Registry (поставщик) about_Providers Get-PSProvider Get-ChildItem about_trap РАЗДЕЛ about_Trap КРАТКОЕ ОПИСАНИЕ Описывает ключевое слово, обрабатывающее прерывающие ошибки. ПОЛНОЕ ОПИСАНИЕ Прерывающая ошибка останавливает выполнение инструкции. Если Windows PowerShell не обрабатывает каким-либо образом прерывающую ошибку, Windows PowerShell прерывает и функцию или скрипт в текущем конвейере. В других языках, например C#, прерывающие ошибки называются исключениями. Ключевое слово Trap определяет список инструкций, которые нужно выполнить при возникновении прерывающей ошибки. Инструкции Trap обрабатывают прерывающие ошибки и обеспечивают продолжение выполнения скрипта или функции. Синтаксис Синтаксис инструкции Trap следующий: trap [[<тип_ошибки>]] {<список_инструкций>} Инструкция Trap включает список инструкций, которые нужно выполнить при возникновении прерывающей ошибки. Ключевое слово Trap может, кроме того, задавать тип ошибки. Тип ошибки указывается в квадратных скобках. Скрипт или команда могут содержать несколько инструкций Trap. Инструкции Trap можно помещать в любое место скрипта или команды. Перехват всех прерывающих ошибок При возникновении прерывающей ошибки, которая не обрабатывается скриптом или командой, Windows PowerShell проверяет, нет ли инструкции Trap для обработки этой ошибки. Если инструкция Trap есть, Windows PowerShell продолжает выполнять скрипт или команду в инструкции Trap. Ниже показан пример простейшей инструкции Trap: trap {"Обнаружена ошибка."} Эта инструкция Trap перехватывает все прерывающие ошибки. Ниже показан пример функции, содержащей эту инструкцию Trap: function TrapTest { trap {"Обнаружена ошибка."} nonsenseString } Эта функция включает бессмысленную строку, вызывающую ошибку. При выполнении эта функция возвращает следующие результаты: C:\PS> TrapTest Обнаружена ошибка. Ниже показан пример инструкции Trap, выводящей ошибку с помощью автоматической переменной $_: function TrapTest { trap {"Обнаружена ошибка: $_"} nonsenseString } При выполнении эта версия функции возвращает следующие результаты: C:\PS> TrapTest Обнаружена ошибка: условие "nonsenseString" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, наличие и правильность пути и повторите попытку. Инструкции Trap могут быть и сложнее. Инструкция Trap может включать несколько условий или вызовов функций. Она может записывать ошибку в журнал, тестировать или даже запускать другую программу. Перехват определенных прерывающих ошибок Ниже показан пример инструкции Trap, перехватывающей ошибки типа CommandNotFoundException: trap [System.Management.Automation.CommandNotFoundException] {"Перехвачена ошибка команды"} Когда функция или скрипт обнаруживает строку, не совпадающую с какой-нибудь известной командой, эта инструкция Trap отображает строку "Перехвачена ошибка команды". После выполнения инструкций списка Trap Windows PowerShell записывает объект ошибки в поток ошибок и продолжает выполнять скрипт. Windows PowerShell использует типы исключений Microsoft .NET Framework 3.0. В показанном ниже примере задается тип ошибок System.Exception: trap [System.Exception] {"Перехвачена ошибка"} Тип ошибок CommandNotFoundException наследуется от типа System.Exception. Эта инструкция перехватывает ошибку, которую создает неизвестная команда. Она, кроме того, перехватывает другие типы ошибок. В скрипте может быть несколько инструкций Trap. Одна ошибка может быть перехвачена только одной инструкцией Trap. Если происходит ошибка и при этом доступно несколько инструкций Trap, Windows PowerShell использует ту инструкцию Trap, тип ошибок которой лучше всего соответствует ошибке. В следующем примере скрипта содержится ошибка. Скрипт включает общую инструкцию Trap, перехватывающую любые прерывающие ошибки, и определенную инструкцию Trap, для которой задан тип CommandNotFoundException. trap {"Перехвачена другая прерывающая ошибка" } trap [System.Management.Automation.CommandNotFoundException] {"Перехвачена ошибка команды"} nonsenseString Выполнение скрипта приводит к таким результатам: Перехвачена ошибка команды Условие "nonsenseString" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, наличие и правильность пути и повторите попытку. В C:\PS>testScript1.ps1:3 знак:19 + nonsenseString < Так как Windows PowerShell не распознает "nonsenseString" как командлет или другой элемент, возвращается ошибка CommandNotFoundException. Эта прерывающая ошибка перехватывается определенной инструкцией Trap. Ниже показан пример скрипта с теми же инструкциями Trap, но с другой ошибкой: trap {"Перехвачена другая прерывающая ошибка" } trap [System.Management.Automation.CommandNotFoundException] {"Перехвачена ошибка команды"} 1/$null Выполнение скрипта приводит к таким результатам: перехвачена другая прерывающая ошибка; попытка деления на ноль. В C:PS> errorX.ps1:3 знак:7 + 1/ < $null Попытка поделить на ноль не создает ошибку CommandNotFoundExcept ion. Эта ошибка перехватывается другой инструкцией Trap, предназначенной для любых прерывающих ошибок. Перехват ошибок и область Если прерывающая ошибка происходит в той же области, где находится инструкция Trap, Windows PowerShell после выполнения инструкций Trap продолжает с инструкции после ошибки. Если ошибка и инструкция Trap находятся в разных областях, выполнение продолжается со следующей инструкции из области, в которой находится инструкция Trap. Например, если ошибка происходит в функции, а инструкция Trap находится в этой функции, скрипт продолжается со следующей инструкции. Например, следующий скрипт содержит ошибку и инструкцию Trap: function function1 { trap { "Ошибка: " } NonsenseString "function1 выполнена" } Выполнение функции Function1 в следующей части скрипта приводит к таким результатам: function1 Ошибка: Условие "NonsenseString" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, наличие и правильность пути и повторите попытку. В C:\PS>TestScript1.ps1:3 знак:19 + NonsenseString function1 выполнена Инструкция Trap в функции перехватывает ошибку. После вывода сообщения Windows PowerShell продолжает выполнять функцию. Обратите внимание, что функция Function1 была выполнена. Сравните это со следующим примером, в котором содержатся те же ошибка и инструкция Trap. В этом примере инструкция Trap выполняется вне функции: function function2 { NonsenseString "function2 выполнена" } trap { "Ошибка: " } . . . function2 Выполнение функции Function2 в следующей части скрипта приводит к таким результатам: Ошибка: Условие "NonsenseString" не распознано как имя командлета, функции, файла скрипта или выполняемой программы. Проверьте правильность написания имени, наличие и правильность пути и повторите попытку. В C:\PS>TestScript2.ps1:4 знак:19 + NonsenseString В этом примере не была выполнена команда "function2 завершена". Несмотря на то что обе прерывающие ошибки произошли внутри функции, Windows PowerShell не возвращается обратно в функцию после выполнения инструкции Trap, потому что инструкция находилась вне функции. Использование ключевых слов Break и Continue Ключевые слова Break и Continue можно использовать в инструкции Trap, чтобы определить, будет ли скрипт или команда продолжать выполняться после прерывающей ошибки. Если в список инструкций Trap включена инструкция Break, Windows PowerShell прерывает функцию или скрипт. Следующий пример функции использует ключевое слово Break в инструкции Trap: C:\PS> function break_example { trap {"Перехвачена ошибка"; break;} 1/$null "Функция выполнена." } C:\PS> break_example Перехвачена ошибка Попытка деления на ноль. В строке:4 знак:7 Инструкция Trap включала ключевое слово Break, поэтому функция перестала выполняться и строка "Функция выполнена" запущена не была. Если в инструкцию Trap включена инструкция Continue, Windows PowerShell продолжает после утверждения, вызвавшего ошибку, как если бы ключевых слов Break или Continue не было. Но с ключевым словом Continue Windows PowerShell не записывает ошибку в поток ошибок. Следующий пример функции использует ключевое слово Continue в инструкции Trap: C:\PS> function continue_example { trap {"Перехвачена ошибка"; continue;} 1/$null "Функция выполнена."} C:\PS> continue_example Перехвачена ошибка Функция выполнена. Функция продолжает выполнение после перехвата ошибки, и запускается инструкция "Функция выполнена". Ошибка не записывается в поток. СМ. ТАКЖЕ about_Break about_Continue about_Throw about_Try_Catch_Finally about_Scopes about_Try_Catch_Finally about_try_catch_finally РАЗДЕЛ about_Try_Catch_Finally КРАТКОЕ ОПИСАНИЕ Описание использования блоков Try, Catch и Finally для обработки прерывающих ошибок. ПОЛНОЕ ОПИСАНИЕ Блоки Try, Catch и Finally используются для ответа или обработки прерывающих ошибок в скриптах. Для обработки прерывающих ошибок в скриптах можно использовать также инструкцию Trap. Дополнительные сведения см. в разделе about_Trap. Прерывающая ошибка останавливает выполнение инструкции. Если Windows PowerShell не обрабатывает каким-либо образом прерывающую ошибку, Windows PowerShell прерывает и функцию или скрипт, использующий текущий конвейер. В других языках, например C#, прерывающие ошибки называются исключениями. Дополнительные сведения об ошибках см. в разделе about_Errors. С помощью блока Try определяется раздел скрипта, в котором Windows PowerShell следует следить за ошибками. Если в блоке Try происходит ошибка, она сначала сохраняется в автоматическую переменную $Error. Затем Windows PowerShell ищет блок Catch для обработки ошибки. Если у инструкции Try нет соответствующего блока Catch, Windows PowerShell продолжает искать подходящий блок Catch или инструкцию Trap в родительских областях. По завершении блока Catch (или если не удается найти подходящий блок Catch или инструкцию Trap) выполняется блок Finally. Если ошибку обработать невозможно, она записывается в поток ошибок. Блок Catch может включать команды для отслеживания ошибок или для восстановления нормального потока исполнения скрипта. Блок Catch может указывать типы перехватываемых им ошибок. Инструкция Try может включать несколько блоков Catch для разных типов ошибок. Блок Finally можно использовать для высвобождения ресурсов, которые больше не нужны скрипту. Try, Catch и Finally напоминают ключевые слова Try, Catch и Finally, которые используются в языке программирования C#. Синтаксис Инструкция Try содержит блок Try, ноль или больше блоков Catch и ноль или больше блоков Finally. Инструкция Try должна содержать как минимум один блок Catch или один блок Finally. Ниже показан синтаксис блока Try: try {<список_инструкций>} За ключевым словом Try следует список инструкций в фигурных скобках. Если во время выполнения инструкций из списка происходит прерывающая ошибка, скрипт передает объект ошибки из блока Try соответствующему блоку Catch. Ниже показан синтаксис блока Catch: catch [[<тип_ошибки>][',' <тип_ошибки>]*] {<список_инструкций>} Типы ошибок указываются в квадратных скобках. Внешние скобки означают, что этот элемент необязателен. За ключевым словом Catch идет необязательный список спецификаций типов ошибок и список инструкций. Если в блоке Try происходит прерывающая ошибка, Windows PowerShell ищет подходящий блок Catch. Если он найден, выполняются инструкции в блоке Catch. Блок Catch может указывать один или несколько типов ошибок. Тип ошибки - это исключение Microsoft .NET Framework или исключение, наследуемое от исключения .NET Framework. Блок Catch обрабатывает ошибки указанного класса исключений .NET Framework или любого класса, наследуемого от указанного класса. Если блок Catch указывает тип ошибок, этот блок Catch обрабатывает этот тип ошибок. Если блок Catch не указывает тип ошибок, этот блок обрабатывает любые ошибки, возникающие в блоке Try. Инструкция Try может включать несколько блоков Catch для разных определенных типов ошибок. Ниже показан синтаксис блока Finally: finally {<список_инструкций>} За ключевым словом Finally следует список инструкций, выполняющийся при каждом запуске скрипта, даже если инструкция Try была выполнена без ошибок или ошибка была перехвачена инструкцией Catch. Обратите внимание, что при нажатии сочетания клавиш CTRL+C конвейер останавливается. Объекты, отправляемые в конвейер, не попадут в набор выходных данных. Поэтому, если должно отображаться какое-нибудь предложение, например "Выполнен блок Finally", после нажатия сочетания клавиш CTRL+C его отображение не произойдет, даже если блок Finally был выполнен. Перехват ошибок В приведенном ниже примере скрипта показан блок Try с блоком Catch: try { NonsenseString } catch { "Произошла ошибка." } Ключевое слово Catch должно располагаться непосредственно за блоком Try или другим блоком Catch. Windows PowerShell не распознает "NonsenseString" как командлет или другой элемент. Выполнение скрипта возвращает такие результаты: Произошла ошибка. Когда скрипт сталкивается с "NonsenseString", он выдает прерывающую ошибку. Блок Catch обрабатывает ошибку, выполняя список инструкций в блоке. Использование нескольких инструкций Catch Инструкция Try может содержать любое число блоков Catch. Например, следующий скрипт содержит блок Try, загружающий файл MyFile.doc. Блок Try содержит два блока Catch: try { $wc = new-object System.Net.WebClient $wc.DownloadFile("http://www.contoso.com/MyDoc.doc") } catch [System.Net.WebException],[System.IO.IOException] { "Не удается загрузить MyDoc.doc с сайта http://www.contoso.com." } catch { "Произошла неразрешимая ошибка." } Первый блок Catch обрабатывает ошибки типов System.Net.WebExcept ion и System.IO.IOException. Второй блок Catch не указывает тип ошибок. Второй блок Catch обрабатывает любые другие возникающие прерывающие ошибки. Windows PowerShell сопоставляет типы ошибок по наследованию. Блок Catch обрабатывает ошибки указанного класса исключений .NET Framework или любого класса, наследуемого от указанного класса. В следующем примере содержится блок Catch, перехватывающий ошибку "Команда не найдена". catch [System.Management.Automation.CommandNotFoundException] {"Inherited Exception" } Указанный тип ошибок CommandNotFoundException наследуется от типа System.SystemException. Фрагмент в следующем примере тоже перехватывает ошибку "Команда не найдена": catch [System.SystemException] {"Base Exception" } Этот блок Catch обрабатывает ошибку "Команда не найдена" и другие ошибки, наследуемые от типа SystemException. Если указывается класс ошибок и один из производных классов, блок Catch для производного класса следует расположить перед блоком Catch для общего класса. Освобождение ресурсов с помощью Finally Чтобы высвободить ресурсы, используемые скриптом, добавьте после блоков Try и Catch блок Finally. Инструкции блока Finally выполняются независимо от того, происходит ли в блоке Try прерывающая ошибка. Windows PowerShell выполняет блок Finally перед завершением скрипта или перед тем, как текущий блок выйдет из области действия. Блок Finally выполняется даже при нажатии сочетания клавиш CTRL+C для прекращения скрипта. Блок Finally выполняется, и если ключевое слово Exit останавливает скрипт из блока Catch. СМ. ТАКЖЕ about_Errors about_Trap about_type_operators РАЗДЕЛ about_Type_Operators КРАТКОЕ ОПИСАНИЕ Описывает операторы, работающие с типами Microsoft .NET Framework. ПОЛНОЕ ОПИСАНИЕ Операторы логического типа (-is и -isnot) определяют, является ли объект экземпляром указанного типа .NET Framework. Оператор -is возвращает значение TRUE, если тип соответствует объекту и значение FALSE, если нет. Оператор -isnot возвращает значение FALSE, если тип соответствует объекту, и значение TRUE, если нет. Оператор -as пытается преобразовать объект ввода в указанный тип платформы Microsoft .NET Framework. В случае успеха он возвращает преобразованный объект. В случае неудачи он не возвращает ничего. Он не возвращает ошибку. В следующей таблице перечислены операторы типов в Windows PowerShell. Оператор Описание Пример -------- ------------------------ -------------- -is Возвращает TRUE, если на C:\PS> (get-date) -is [datetime] вводе экземпляр указанного True типа .NET Framework. -isnot Возвращает TRUE, если на C:\PS> (get-date) -isnot [datetime] вводе не экземпляр False указанного типа .NET Framework. -as Преобразует объект ввода C:\PS> 12/31/07 -as [datetime] в указанный тип .NET Monday, December 31, 2007 12:00:00 AM Framework. Операторы типов используются со следующим синтаксисом: <входные_данные> <оператор> [тип .NET] Можно использовать также следующий синтаксис: <входные_данные> <оператор> "тип .NET" Тип .NET Framework указывается следующим образом: заключите его имя в квадратные скобки ([ ]) или введите тип как строку, например [DateTime] или "datetime" для типа System.DateTime. Если тип находится не в корневом пространстве имен системы, укажите полное название типа объекта. Можно опустить "System.". Например, чтобы указать System.Diagnostics.Process, введите [System.Diagnost ics.Process], [Diagnostics.Process] или "diagnostics.process". Операторы типов всегда возвращают логическое значение, даже если на вводе была коллекция объектов. При этом, если на вводе коллекция, операторы типов находят тип .NET Framework коллекции. Они не находят типы для каждого объекта, даже если все объекты имеют один тип. Чтобы найти тип .NET Framework объекта, используйте командлет Get-Member. Можно также использовать метод GetType всех объектов вместе со свойством FullName этого метода. Например, следующая инструкция возвращает тип значения, которое возвращает команда Get-Culture: C:\PS> (get-culture).gettype().fullname System.Globalization.CultureInfo ПРИМЕРЫ Ниже показаны примеры использования операторов Type. C:\PS> 32 -is [Float] False C:\PS> 32 -is "int" True C:\PS> (get-date) -is [DateTime] True C:\PS> "12/31/2007" -is [DateTime] False C:\PS> "12/31/2007" -is [String] True C:\PS> (get-process powershell)[0] -is [System.Diagnostics.Process] True C:\PS> (get-command get-member) -is [System.Management.Automation.Cmdle tInfo] True Следующий пример показывает, что если на вводе коллекция объектов, соответствующий тип - тип .NET Framework коллекции, а не тип отдельных объектов коллекции. В этом примере, несмотря на то что оба командлета Get-Culture и Get-UICulture возвращают объекты System.Globalization.CultureInfo, коллекция этих объектов - массив System.Object. C:\PS> (get-culture) -is [System.Globalization.CultureInfo] True C:\PS> (get-uiculture) -is [System.Globalization.CultureInfo] True C:\PS> (get-culture), (get-uiculture) -is [System.Globalization.Culture Info] False C:\PS> (get-culture), (get-uiculture) -is [Array] True C:\PS> (get-culture), (get-uiculture) | foreach {$_ -is [System.Globali zation.CultureInfo]) True True C:\PS> (get-culture), (get-uiculture) -is [Object] True В следующих примерах показано, как использовать оператор -as. C:\PS> "12/31/07" -is [datetime] False C:\PS> "12/31/07" -as [datetime] Monday, December 31, 2007 12:00:00 AM C:\PS> $date = "12/31/07" -as [datetime] C:\PS>$a -is [datetime] True C:\PS> 1031 -as [System.Globalization.CultureInfo] LCID Name DisplayName ---- ---- ----------- 1031 de-DE German (Germany) На следующем примере показано, что если оператор -as не может преобразовать объект ввода в тип .NET Framework, он ничего не возвращает. C:\PS> 1031 -as [System.Diagnostic.Process] C:\PS> СМ. ТАКЖЕ about_Operators about_types.ps1xml РАЗДЕЛ about_Types.ps1xml КРАТКОЕ ОПИСАНИЕ Описывает, как с помощью файлов Types.ps1xml расширить типы Microsoft .NET Framework объектов, используемых в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Файл Types.ps1xml в каталоге установки Windows PowerShell ($pshome) - это текстовый файл на основе XML, позволяющий добавлять свойства и методы к объектам, использующимся в Windows PowerShell. Windows PowerShell содержит встроенный файл Types.ps1xml, добавляющий к типам .NET несколько элементов. Для большего расширения типов можно создавать дополнительные файлы Types.ps1xml. Например, по умолчанию объекты массивов (System.Array) имеют свойство Length, которое указывает количество объектов в массиве. Но так как название "length" (длина) описывает свойство недостаточно четко, Windows PowerShell добавляет свойство-псевдони м под названием "Count" (количество), отображающее то же значение. Следующий фрагмент XML добавляет к типу System.Array свойство Count. <Type> <Name>System.Array</Name> <Members> <AliasProperty> <Name>Count</Name> <ReferencedMemberName> Length </ReferencedMemberName> </AliasProperty> </Members> </Type> Чтобы получить новое свойство AliasProperty, примените команду Get-Member к любому массиву, как показано в следующем примере. Get-Member -inputobject (1,2,3,4) Эта команда возвращает следующий результат. Name MemberType Definition ---- ---------- ---------- Count AliasProperty Count = Length Address Method System.Object& Address(Int32 ) Clone Method System.Object Clone() CopyTo Method System.Void CopyTo(Array array, Int32 index): Equals Method System.Boolean Equals(Object obj) Get Method System.Object Get(Int32 ) ... В результате в Windows PowerShell можно использовать свойство массивов Count или свойство Length. Пример: C:\PS> (1, 2, 3, 4).count 4 C:\PS> (1, 2, 3, 4).length 4 Создание новых файлов Types.ps1xml Файлы PS1XML, устанавливаемые вместе с Windows PowerShell, имеют цифровую подпись, защищающую их от искажения, поскольку форматирование может включать блоки скриптов. Поэтому, чтобы добавить к типу .NET Framework свойство или метод, создавайте собственные файлы Types.ps1xml и добавляйте их в консоль Windows PowerShell. Для создания нового файла сначала скопируйте имеющийся файл Types.ps1xml. Новый файл может иметь любое имя, но он должен иметь расширение PS1XML. Новый файл можно поместить в любой каталог, доступный оболочке Windows PowerShell, однако рекомендуется помещать его в каталог установки Windows PowerShell ($pshome) или в подкаталог каталога установки. После сохранения добавьте новый файл с помощью командлета Update-TypeData в консоль Windows PowerShell. Если новые типы должны иметь приоритет перед типами, определенными во встроенном файле, следует использовать параметр PrependData командлета Update-TypeData. Действие командлета Update-TypeData распространяется только на текущую консоль. Чтобы изменение распространялось на все будущие консоли, экспортируйте консоль или добавьте команду Update-TypeData в профиль Windows PowerShell. Types.ps1xml и командлет Add-Member Файлы Types.ps1xml добавляют свойства и методы ко всем экземплярам объектов указанного типа .NET Framework в задействованной консоли Windows PowerShell. Если же нужно добавить свойства или методы только к одному экземпляру объекта, используйте командлет Add-Member. Дополнительные сведения см. в разделе Add-Member. Пример: добавление члена возраста в объекты FileInfo В данном примере показано, как добавить свойство Age к объектам файлов (System.IO.FileInfo). Возраст файла - это разница в днях между временем его создания и текущим временем. В качестве шаблона для нового файла проще всего использовать первоначальный файл Types.ps1xml. Следующая команда копирует первоначальный файл в файл MyTypes.ps1xml в каталоге $pshome. copy-item Types.ps1xml MyTypes.ps1xml Затем откройте файл Types.ps1xml в любом редакторе XML или текста, например в Блокноте. Так как свойство Age рассчитывается с помощью блока скрипта, найдите тег <ScriptProperty>, который будет использоваться как модель для нового свойства Age. Для создания свойства скрипта скопируйте XML между тегами кода <Type> и </Type>. Затем удалите оставшуюся часть файла, кроме открывающих тегов <?xml> и <Types> и закрывающего тега </Types>. Чтобы предотвратить возникновение ошибок, нужно удалить и цифровую подпись. Начните со свойства скрипта-модели, такого как следующее свойство скрипта, скопированное из первоначального файла Types.ps1xml. <?xml version="1.0" encoding="utf-8" ?> <Types> <Type> <Name>System.Guid</Name> <Members> <ScriptProperty> <Name>Guid</Name> <GetScriptBlock>$this.ToString()</GetScriptBlock> </ScriptProperty> </Members> </Type> </Types> Затем измените имя типа .NET Framework, имя свойства и значение блока скрипта, создав свойство Age для объектов файлов. <?xml version="1.0" encoding="utf-8" ?> <Types> <Type> <Name>System.IO.FileInfo</Name> <Members> <ScriptProperty> <Name>Age</Name> <GetScriptBlock> ((get-date) - ($this.creationtime)).days </GetScriptBlock> </ScriptProperty> </Members> </Type> </Types> Сохранив и закрыв файл, добавьте новый файл Types.ps1xml в текущую консоль с помощью команды Update-TypeData, такой как приведенная ниже. В этой команде используется параметр PrependData, чтобы задать для нового файла более высокий приоритет по сравнению с исходным файлом. (Дополнительные сведения о командлете Update-TypeData см. в разделе Update-TypeData.) update-typedata -prependpath $pshome\MyTypes.ps1xml Для проверки изменений используйте команду Get-ChildItem, чтобы вернуть файл PowerShell.exe в каталоге $pshome, а затем передайте файл по конвейеру командлету Format-List, чтобы получить список всех свойств файла. В результате изменений в списке появилось свойство Age. get-childitem $pshome\powershell.exe | format-list -property * PSPath : Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS... PSParentPath : Microsoft.PowerShell.Core\FileSystem::C:\WINDOWS... PSChildName : powershell.exe PSDrive : C PSProvider : Microsoft.PowerShell.Core\FileSystem PSIsContainer : False Age : 16 VersionInfo : File: C:\WINDOWS\system32\WindowsPow... InternalName: POWERSHELL OriginalFilename: PowerShell.EXE ... Вывести свойство файла Age можно также с помощью следующей команды. (get-childitem $pshome\powershell.exe).age 16 XML в файлах Types.ps1xml Тег <Types> включает все типы, которые определены в файле. Должна быть только одна пара тегов <Types>. Каждый тип .NET Framework, отмеченный в файле, должен быть представлен парой тегов <Type>. Теги типов должны содержать следующие теги. <Name>: пара тегов <Name>, включающих имя задействованного .типа .NET Framework. <Members>: пара тегов <Members>, включающих теги для новых свойств и методов, определяемых для типа .NET Framework. Любые следующие теги членов могут находиться внутри тегов <Members>. <AliasProperty>: определяет новое имя существующего свойства. Тег <AliasProperty> должен иметь пару тегов <Name>, определяющих имя нового свойства, и пару тегов <ReferencedMemberName>, которые задают существующее свойство. Например, свойство-псевдоним Count - псевдоним свойства Length объектов массивов. <Type> <Name>System.Array</Name> <Members> <AliasProperty> <Name>Count</Name> <ReferencedMemberName>Length</ReferencedMembe rName> </AliasProperty> </Members> </Type> <CodeMethod>: ссылается на статический метод класса .NET Framework. Тег <CodeMethod> должен иметь пару тегов <Name>, определяющих имя нового метода, и пару тегов <GetCodeReferenc e>, указывающих код, в котором определен метод. Например, свойство каталогов (объектов System.IO.DirectoryInf o) Mode - свойство кода, определенное в провайдере Windows PowerShell FileSystem. <Type> <Name>System.IO.DirectoryInfo</Name> <Members> <CodeProperty> <Name>Mode</Name> <GetCodeReference> <TypeName>Microsoft.PowerShell.Commands.FileSystemPr ovider</TypeName> <MethodName>Mode</MethodName> </GetCodeReference> </CodeProperty> </Members> </Type> <CodeProperty>: ссылается на статический метод класса .NET Framework. Тег <CodeProperty> должен иметь пару тегов <Name>, определяющих имя нового свойства, и пару тегов <GetCodeReference>, указывающих код, в котором определено свойство. Например, свойство каталогов (объектов System.IO.DirectoryInf o) Mode - свойство кода, определенное в провайдере Windows PowerShell FileSystem. <Type> <Name>System.IO.DirectoryInfo</Name> <Members> <CodeProperty> <Name>Mode</Name> <GetCodeReference> <TypeName>Microsoft.PowerShell.Commands.FileSystemPr ovider</TypeName> <MethodName>Mode</MethodName> </GetCodeReference> </CodeProperty> </Members> </Type> <MemberSet>: определяет коллекцию членов (свойств и методов). Теги <MemberSet> содержатся внутри основных тегов <Members>. Они должны включать пару тегов <Name>, в которых находится имя набора членов, и пару вторичных тегов <Members>, в которых находятся члены (свойства и методы) этого набора. Членами набора могут быть любые теги, создающие свойства (например, <NoteProperty> или <ScriptProperty>), или методы (например, <Method> или <ScriptMethod>). В файлах Types.ps1xml тег <MemberSet> используется, чтобы определить представления объектов .NET Framework в Windows PowerShell по умолчанию. В этом случае именем набора членов (значение в тегах <Name>) всегда является "PsStandardMembers", а имена свойств тега (значение <Name>) могут быть следующими. - DefaultDisplayProperty: одно свойство объекта. - DefaultDisplayPropertySet: одно или несколько свойств объекта. - DefaultKeyPropertySet:одно или несколько ключевых свойств объекта. Ключевое свойство определяет экземпляры значений свойств, такие как идентификационные номера элементов в журнале сеанса. Например, следующий фрагмент XML определяет вывод по умолчанию служб (объектов System.ServiceProcess.ServiceContro ller), которые возвращает командлет Get-Service. Он определяет набор членов "PsStandardMembers", состоящий из следующего набора свойств по умолчанию: Status, Name и DisplayName. <Type> <Name>System.ServiceProcess.ServiceController</Name> <Members> <MemberSet> <Name>PSStandardMembers</Name> <Members> <PropertySet> <Name>DefaultDisplayPropertySet</Name> <ReferencedProperties> <Name>Status</Name> <Name>Name</Name> <Name>DisplayName</Name> </ReferencedProperties> </PropertySet> </Members> </MemberSet> </Members> </Type> <Method>: ссылается на собственный метод основного объекта. <Methods>: коллекция методов объекта. <NoteProperty>: определяет свойство со статическим значением. Тег <NoteProperty> должен иметь пару тегов <Name>, определяющих имя нового свойства и пару тегов <Value>, определяющих значение свойства. Например, следующий фрагмент XML создает для каталогов (объектов System.IO.DirectoryInfo) свойство Status. Свойство Status всегда имеет значение "Success". <Type> <Name>System.IO.DirectoryInfo</Name> <Members> <NoteProperty> <Name>Status</Name> <Value>Success</Value> </NoteProperty> </Members> </Type> <ParameterizedProperty>: свойства, принимающие аргументы и возвращающие значение. <Properties>: коллекция свойств объекта. <Property>: свойство базового объекта. <PropertySet>: определяет коллекцию свойств объекта. Тег <PropertySet> должен иметь пару тегов <Name>, определяющих имя набора свойств, и пару тегов <ReferencedProp erty>, определяющих свойства. Имена свойств заключены в пары тегов <Name>. В файле Types.ps1xml с помощью тегов <PropertySet> определяется набор свойств для отображения объекта по умолчанию. Отображение по умолчанию можно определить значением "PsStandardMembers" в теге <Name> тега <MemberSet>. Например, следующий фрагмент XML создает для каталогов (объектов System.IO.DirectoryInfo) свойство Status. Свойство Status всегда имеет значение "Success". <Type> <Name>System.ServiceProcess.ServiceController</Name> <Members> <MemberSet> <Name>PSStandardMembers</Name> <Members> <PropertySet> <Name>DefaultDisplayPropertySet</Name> <ReferencedProperties> <Name>Status</Name <Name>Name</Name> <Name>DisplayName</Name> </ReferencedProperties> </PropertySet> <Members> <MemberSet> <Members> <Type> <ScriptMethod>: определяет метод, значением которого является результат выполнения скрипта. Тег <ScriptMethod> должен иметь пару тегов <Name>, определяющих имя нового метода и пару тегов <Script>, включающих блок скрипта, который возвращает результат метода. Например, методы ConvertToDateTime и ConvertFromDateTime управляющих объектов (System.System.Management.ManagementObje ct) - это методы- скрипты, использующие статические методы ToDateTime и ToDmtfDateTime класса System.Management.ManagementDateTimeConverter. <Type> <Name>System.Management.ManagementObject</Name> <Members> <ScriptMethod> <Name>ConvertToDateTime</Name> <Script> [System.Management.ManagementDateTimeConverter]::T oDateTime($args[0]) </Script> </ScriptMethod> <ScriptMethod> <Name>ConvertFromDateTime</Name> <Script> [System.Management.ManagementDateTimeConverter]::T oDmtfDateTime($args[0]) </Script> </ScriptMethod> </Members> </Type> <ScriptProperty>: определяет свойство, значением которого является результат выполнения скрипта. Тег <ScriptProperty> должен иметь пару тегов <Name>, определяющих имя нового свойства, и пару тегов <GetScriptBlock>, включающих блок скрипта, возвращающий значение свойства. Например, свойство файлов (объектов System.IO.FileInfo) VersionInfo - это свойство скрипта, которое получается в результате использования свойства FullName статического метода GetVersionInfo объектов System.Diagnostics.FileVersion Info. <Type> <Name>System.IO.FileInfo</Name> <Members> <ScriptProperty> <Name>VersionInfo</Name> <GetScriptBlock> [System.Diagnostics.FileVersionInfo]::GetVersionInfo ($this.FullName) </GetScriptBlock> </ScriptProperty> </Members> </Type> Дополнительные сведения см. в пакете средств разработки программного обеспечения (SDK) Windows PowerShell в библиотеке MSDN (Microsoft Developer Network) по адресу http://go.microsoft.com/fwlink/?LinkId=144538. Update-TypeData Для загрузки файлов Types.ps1xml в консоль Windows PowerShell используется командлет Update-TypeData. Если типы в этом файле должны иметь приоритет перед типами во встроенном файле Types .ps1xml, следует использовать параметр PrependData командлета Update-TypeData. Действие командлета Update-TypeData распространяется только на текущую консоль. Чтобы изменение распространялось на все будущие консоли, экспортируйте консоль или добавьте команду Update-TypeData в профиль Windows PowerShell. Подпись файлов Types.ps1xml Для защиты пользователей файла Types.ps1xml его можно подписать с помощью цифровой подписи. Дополнительные сведения см. в разделе about_Signing. СМ. ТАКЖЕ about_Signing Copy-Item Get-Member Update-TypeData about_Variables РАЗДЕЛ about_Variables КРАТКОЕ ОПИСАНИЕ Описание хранения переменными значений, используемых в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Переменная - это единица памяти, в которой хранятся значения. В Windows PowerShell переменные представлены строками текста с одним словом, которые начинаются со знака доллара ($), например $a, $process и $my_var. В Windows PowerShell несколько разных типов переменных. -- Созданные пользователем переменные: эти переменные создаются и поддерживаются пользователем. По умолчанию переменные, создаваемые в командной строке Windows PowerShell, существуют, только пока открыто окно Windows PowerShell, и теряются после того, как окно закрывается. Для сохранения переменную следует добавить в профиль Windows PowerShell. Переменные можно создавать в скриптах в глобальных или локальных областях или в областях скриптов. -- Автоматические переменные: автоматические переменные хранят состояние Windows PowerShell. Эти переменные создаются Windows PowerShell, и Windows PowerShell изменяет их значения по мере необходимости для поддержания их точности. Пользователи не могут изменять значения этих переменных. Например, переменная $PSHome содержит путь к каталогу установки Windows PowerShell. Дополнительные сведения, список и описание автоматических переменных см. в разделе about_Automatic_Variables. -- Привилегированные переменные: привилегированные переменные хранят настройки пользователя для Windows PowerShell. Эти переменные создаются оболочкой Windows PowerShell и заполняются значениями по умолчанию. Пользователи могут изменять значения этих переменных. Например, переменная MaximumHistoryCount определяет максимальное число записей в журнале сеанса. Дополнительные сведения, список и описание привилегированных переменных см. в разделе about_Preference_Var iables. РАБОТА С ПЕРЕМЕННЫМИ Чтобы просмотреть список всех переменных в сессии Windows PowerShell, наберите команду: get-variable Для отображения значения любой переменной введите имя переменной после знака доллара ($). Windows PowerShell в ответ отобразит ее значение. $<имя_переменной> Пример: PS> $pshome C:\Windows\System32\WindowsPowerShell\v1.0 Для создания новой переменной или для изменения значения переменной используйте инструкцию присваивания в следующем формате: $<переменная> = <значение> Пример: PS> $my-variable = 1, 2, 3 или PS> $VerbosePreference = "Continue" Для получения объекта, представляющего переменную, используйте команду Get-Variable, например: PS> get-variable pid Для использования переменной введите в команде или выражении имя переменной, включая знак доллара ($). Если команда или выражение не заключены в кавычки или заключены в двойные кавычки ("), значение переменной используется в команде или выражении. Если команда заключена в одиночные кавычки ('), в выражении используется имя переменной. Например, первая команда находит значение переменной $profile, то есть путь к файлу профиля пользователя Windows PowerShell. Вторая команда открывает файл в Блокноте. PS> $profile C:\Documents and Settings\User01\My Documents\WindowsPowerShell\Microso ft.PowerShell_profile.ps1 PS> Notepad $profile В переменной можно хранить любые типы объектов, включая целые числа, строки, массивы и хэш-таблицы, объекты, представляющие процессы, службы, журналы событий и компьютеры. СОХРАНЕНИЕ ПЕРЕМЕННЫХ Создаваемые переменные доступны только во время сеанса, в котором были созданы. Они пропадают при завершении сеанса. Для сохранения переменную следует добавить в профиль Windows PowerShell. Переменные в профиле добавляются в каждый открываемый сеанс Windows PowerShell. Например, чтобы изменить значение переменной $VerbosePreference во всех сеансах Windows PowerShell, необходимо добавить в профиль Windows PowerShell следующую команду. $VerbosePreference = "Continue" Эту команду можно добавить в профиль, открыв файл профиля в текстовом редакторе, например в Блокноте, или воспользовавшись командой Add-Content, такой как следующая. Следующая команда добавляет новое значение переменой $VerbosePreference в профиль CurrentUser,AllHosts. add-content -path $profile.CurrentUserAllHosts -value '$VerbosePreference = "Continue"' Дополнительные сведения о профилях Windows PowerShell см в разделе about_profiles. ИМЕНА ПЕРЕМЕННЫХ СО СПЕЦИАЛЬНЫМИ ЗНАКАМИ Чтобы оболочка Windows PowerShell интерпретировала имя переменной буквально, можно использовать фигурные скобки. Это особенно полезно при создании или обращении к имени переменной, содержащему специальные знаки, например дефисы, точки, двоеточия и скобки. Для создания имени переменной, содержащего дефис, заключите его в фигурные скобки. Следующая команда создает переменную "save-items". C:\PS> ${save-items} = "a", "b", "c" C:\PS>${save-items} a b c Для обращения к имени переменной, содержащему скобки, заключите его в фигурные скобки. Например, следующая команда возвращает дочерние элементы в хранилищах каталогов в переменной среды "ProgramFiles(x86)". C:\PS> Get-childitem ${env:ProgramFiles(x86)} Для обращения к имени переменной, содержащему фигурные скобки, заключите его в фигурные скобки и поставьте перед внутренними фигурными скобкам escape-символ в виде обратного апострофа. Например, для создания переменной "this{value}is" со значением 1 введите следующую команду: C:\PS> ${this`{value`}is} = 1 C:\PS> ${this`{value`}is} 1 ДИСК VARIABLE: Windows PowerShell включает диск Variable:, который выглядит и работает как диск файловой системы, но содержит переменные текущего сеанса. Чтобы перейти на диск variable, введите следующую команду: set-location variable: (или "cd variable:") На диске Variable можно с помощью командлета Get-ChildItem вывести список элементов (переменных). Пример: get-childitem (или "dir" или "ls") Чтобы получить дополнительные сведения о диске Variable: и поставщике Windows PowerShell Variable, введите следующую команду: get-help variable СМ. ТАКЖЕ about_Automatic_Variables about_Environment_Variables about_Preference_Variables about_Scopes about_While РАЗДЕЛ about_While КРАТКОЕ ОПИСАНИЕ Описывает инструкцию языка, которую можно использовать для выполнения блока команд на основании результатов проверки условий. ПОЛНОЕ ОПИСАНИЕ Инструкция While (цикл While) - конструкция языка для создания цикла, в котором команды в командном блоке выполняются, пока проверяемое условие принимает значение true. Построить инструкцию While проще, чем инструкцию For, так как ее синтаксис менее сложен. Кроме того, она гибче инструкции Foreach, так как число повторений цикла в инструкции While определяется заданным проверяемым условием. Ниже показан синтаксис инструкции While: while (<условие>){<список_инструкций>} При выполнении инструкции While оболочка Windows PowerShell вычисляет раздел <условие> инструкции, прежде чем перейти к разделу <список_инструкций>. Условие в инструкции принимает значение true или false. Пока условие имеет значение true, Windows PowerShell повторяет выполнение раздела <список_инструкций>. Раздел инструкции <список_инструкций> содержит одну или несколько команд, выполняющихся при каждом входе в цикл или его повторении. Например, следующая инструкция While отображает числа от 1 до 3, если не была создана переменная $val, или она была создана и инициализирована значением 0. while($val -ne 3) { $val++ Write-Host $val } В данном примере условие ($val не равно 3) имеет значение true, если $val = 0, 1, 2. При каждом повторении цикла значение $val увеличивается на 1 с использованием унарного оператора увеличения значения ++ ($val++). При последнем выполнении цикла $val = 3. Если $val равно 3, инструкция условия принимает значение false и цикл завершается. Команду удобно записать в командной строке Windows PowerShell следующим образом: while($val -ne 3){$val++; Write-Host $val} Обратите внимание, что точка с запятой отделяет первую команду, которая добавляет 1 к переменной $val, от второй команды, которая записывает значение $val в консоль. СМ. ТАКЖЕ about_Comparison_Operators about_Foreach about_For about_wildcards РАЗДЕЛ about_Wildcards КРАТКОЕ ОПИСАНИЕ Описывает использование подстановочных знаков в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ Во многих случаях требуется запустить командлет для обработки не отдельных элементов, а их группы. Например, может потребоваться найти все файлы с расширением PPT в каталоге C:\Techdocs. Если запустить следующую команду, будут возвращены все элементы каталога: Get-ChildItem c:\techdocs Проблема с этой командой заключается в том, что придется просмотреть все документы, перечисленные в каталоге, чтобы выяснить, какие файлы имеют расширение PPT. Однако набор возвращаемых элементов можно ограничить с помощью подстановочных знаков в параметрах командлета. Подстановочный знак - это тип заполнителя, который позволяет искать среди неизвестных значений и возвращать конкретные результаты. Процесс использования подстановочных знаков иногда именуется "глобализацией" (globbing). Например, предыдущий пример можно изменить так, чтобы получить только PPT-файлы. Get-ChildItem c:\techdocs\*.ppt В этом случае звездочка (*) используется в качестве подстановочного знака, чтобы указать, что перед расширением PPT могут располагаться любые знаки. Поскольку указано расширение файла, все файлы, возвращаемые командой, должны иметь это расширение, но при этом имена файлов могут быть любыми. В результате возвращаются только нужные файлы. Оболочка Windows PowerShell поддерживает несколько подстановочных знаков наряду с подстановочным знаком звездочки. Описание подстановочного знака Пример Совпадает Не сов падает -------- ------------------ -------- ----------------- -------- * Совпадает с нулем или a* A, ag, Apple banana большим числом знаков ? Совпадает точно с одним ?n an, in, on ran знаком в указанной позиции [ ] Совпадает с диапазоном [a-l]ook book, cook, look took знаков [ ] Совпадает с указанными [bc]ook book, cook hook знаками Большинство командлетов позволяют использовать подстановочные знаки в некоторых параметрах. В разделе справки для каждого командлета описано, в каких параметрах допускаются подстановочные знаки, если они вообще разрешены. В параметрах, в которых допускаются подстановочные знаки, они используются без учета регистра. Например, ?n возвращает An, an, In, in, On и on. Можно сочетать подстановочные знаки в одном параметре. Например, чтобы показать все TXT-файлы в каталоге C:\Techdocs, которые начинаются с букв от "a" до "l", можно использовать следующую команду: Get-ChildItem c:\techdocs\[a-l]*.txt Используемый в команде подстановочный знак диапазона ([a-l]) указывает, что имя файла должно начинаться с букв от "a" до "l". Затем в команде используется подстановочный знак звездочки в качестве заполнителя для любых знаков между первой буквой и расширением файла. СМ. ТАКЖЕ about_Language_Keywords about_Windows_PowerShell_2.0 РАЗДЕЛ about_Windows_PowerShell_2.0 КРАТКОЕ ОПИСАНИЕ Описание новых возможностей Windows PowerShell версии 2.0. ПОЛНОЕ ОПИСАНИЕ Windows PowerShell 2.0 включает несколько важных компонентов, расширяющих возможности этой оболочки, повышающих удобство ее использования и позволяющих без труда управлять и следить за всеми аспектами сред на основе Windows. Программа Windows PowerShell 2.0 совместима с предыдущей версией. Командлеты, поставщики, оснастки, скрипты, функции и профили, предназначенные для Windows PowerShell 1.0, работают в Windows PowerShell 2.0 без изменений. НОВЫЕ ВОЗМОЖНОСТИ Windows PowerShell 2.0 включает следующие новые возможности. Удаленное взаимодействие Windows PowerShell 2.0 позволяет выполнять команды на одном или нескольких удаленных компьютерах с помощью одной команды Windows PowerShell. Можно выполнять отдельные команды или создавать постоянное соединение (сеанс) для выполнения последовательности связанных команд. Можно также запустить сеанс на удаленном компьютере, чтобы вводимые команды выполнялись непосредственно на удаленном компьютере. Функции удаленного взаимодействия Windows PowerShell основаны на удаленном управлении Windows (WinRM). WinRM - это выполненная Майкрософт реализация протокола WS-Management, стандартного протокола связи на основе SOAP, совместимого с брандмауэром. На удаленных компьютерах должны быть установлены Windows PowerShell 2.0, платформа .NET Framework 2.0 и служба WinRM. Удаленные команды поддерживаются всеми операционными системами, в которых работает Windows PowerShell. Текущий пользователь должен располагать разрешениями на выполнение команд на удаленных компьютерах. Дополнительные сведения см. в разделе about_Remote_Requirements. Для поддержки удаленного взаимодействия добавлены командлеты Invoke-Command, Enter-PSSession и Exit-PSSession и другие командлеты, содержащие элемент PSSession. Эти командлеты позволяют создавать постоянные соединения и управлять ими. Некоторые командлеты, в том числе Get-Process, Get-Service и Get-Eventlog, теперь содержат параметр ComputerName. Этот параметр позволяет получать сведения об удаленных компьютерах. Эти командлеты используют для получения данных методы .NET Framework, поэтому они не зависят от удаленного взаимодействия Windows PowerShell. Они не требуют установки новых программ или конфигураций. Дополнительные сведения см. в разделах справки для отдельных командлетов. Дополнительные сведения об удаленных командах см. в разделе about_Remote и about_Remote_FAQ. Дополнительные сведения о сеансах см. в разделе about_PSSessions. Среда Windows PowerShell ISE Windows PowerShell 2.0 включает интегрированную среду скриптов (ISE) Windows PowerShell, ведущее приложение, позволяющее выполнять команды и разрабатывать, писать, тестировать и отлаживать скрипты с использованием графического интерфейса с цветовым кодированием, основанного на Юникоде. Для Windows PowerShell ISE требуется платформа Microsoft .NET Framework 3.0 или более поздней версии. Windows PowerShell ISE включает следующее. - Область команд, позволяющая выполнять интерактивные команды так же, как в консоли Windows PowerShell. Просто введите команду и нажмите клавишу ВВОД. Выходные данные появятся в области вывода. - Область скриптов, позволяющая составлять, редактировать, отлаживать и выполнять функции и скрипты. - Несколько вкладок, на каждой из которых есть собственные области команд и скриптов, позволяют независимо выполнять одну или несколько задач. Среда Windows PowerShell ISE предназначена как для новичков, так и для опытных пользователей. Фоновые задания Фоновые задания - это команды, выполняющиеся асинхронно. При запуске фонового задания командная строка возвращается немедленно, даже если команда продолжает выполняться. Функцию фоновых заданий можно использовать для выполнения сложных команд в фоновом режиме, позволяющем использовать сеанс для другой работы, не дожидаясь выполнения команды. Фоновое задание можно выполнять на локальном или удаленном компьютере, результаты можно сохранить на любом из них. Для выполнения задания в удаленном режиме используйте командлет Invoke-Command. Оболочка Windows PowerShell включает набор командлетов, содержащих элемент Job (командлеты Job). Эти командлеты используются для создания, запуска, управления и удаления фоновых заданий и для получения результатов фонового задания. Чтобы получить список командлетов заданий, введите следующую команду: get-command *-job Дополнительные сведения о фоновых заданиях см. в разделе about_Jobs. Отладчик скриптов Windows PowerShell 2.0 включает отладчик скриптов и функций на основе командлетов. Этот отладчик поддерживается открытым API, имеющим полную документацию, который можно использовать для сборки собственного отладчика или настройки и расширения имеющегося. Командлеты отладчика позволяют устанавливать точки останова на строках, столбцах, переменных и командах. Эти командлеты позволяют управлять точками останова и отображать стек вызова. Можно создавать условные точки останова и определять настраиваемые действия для точек останова, такие как выполнение скриптов диагностики и записи в журнал. При достижении точки останова Windows PowerShell приостанавливае т выполнение и запускает отладчик. Отладчик включает набор пользовательских команд для пошаговой проверки кода. Для отображения значений переменных можно выполнять и стандартные команды Windows PowerShell, а для изучения результатов можно пользоваться командлетами. Дополнительные сведения об отладке см. в разделе about_Debuggers. Раздел данных Скрипты, предназначенные для Windows PowerShell 2.0, могут содержать один или несколько разделов DATA, отделяющих данные от логики скрипта. Данные в новом разделе DATA ограничены определенным поднабором языка скриптов Windows PowerShell. Раздел DATA используется в Windows PowerShell 2.0 для поддержки вывода сообщений скриптов на различных языках. Раздел DATA можно использовать для отделения определенных строк сообщений для пользователей, которые будут переведены на различные языки пользовательского интерфейса. Дополнительные сведения см. в разделе about_Data_Sections. Вывод сообщений скриптов на различных языках Функции вывода сообщений скриптов на различных языках в Windows PowerShell 2.0 позволяют улучшить обслуживание пользователей по всему миру. Вывод сообщений скриптов на различных языках позволяет отображать для пользователей сообщения и текст справки скриптов и функций на нескольких языках. Функции вывода сообщений скриптов на различных языках при выполнении запрашивают язык и региональные параметры пользовательского интерфейса ($PsUICulture) операционной системы и затем импортируют соответствующие переведенные строки текста, которые можно выводить пользователю. Раздел данных позволяет хранить строки текста отдельно от кода, чтобы их было легко найти. Новый командлет ConvertFrom-StringData преобразует текстовые строки в напоминающие словарь хэш-таблицы для упрощения перевода. Дополнительные сведения см. в разделе about_Script_International ization. КОМАНДЛЕТЫ WMI Возможности инструментария управления Windows (WMI) в Windows PowerShell 2.0 расширены за счет добавления следующих командлетов. - Remove-WmiObject - Set-WmiInstance - Invoke-WmiMethod В командлет Get-WmiObject добавлены новые параметры. Все командлеты WMI теперь поддерживают следующие параметры. - EnableAllPrivileges - Impersonation - Authentication - Authority Эти новые параметры позволяют точнее контролировать конфигурацию безопасности операций WMI, не используя непосредственно типы из библиотеки классов платформы .NET Framework. Чтобы получить список командлетов WMI, введите следующую команду: get-help *wmi* Для получения справки по определенному командлету, введите командлет get-help и имя командлета. Командлет Get-WinEvent Командлет Get-WinEvent возвращает события из журналов средства просмотра событий и из файлов журналов событий средства отслеживания событий для Windows (ETW), находящихся на локальном компьютере и на удаленных компьютерах. Он может возвращать события из обычных журналов событий и из журналов событий Windows, реализованных в Windows Vista. Командлет Get-WinEvent используется для получения объектов, представляющих журналы событий, поставщиков журналов событий и события в журналах. Get-WinEvent позволяет объединять события из различных источников в одной команде. Он поддерживает расширенные запросы на языке пути XML (XPath), XML и в формате хэш-таблиц. Для выполнения командлета Get-WinEvent требуется Windows Vista или Windows Server 2008 и платформа Microsoft .NET Framework 3.5. Командлет Out-Gridview Командлет Out-GridView отображает результаты других команд в интерактивной таблице, позволяющей искать, сортировать, группировать и фильтровать результаты. Например, можно отправить результаты команд Get-Process, Get-WmiObject, Get-WinEvent или Get-Eventlog командлету Out-GridView и затем изучать данные с помощью функций таблицы. help out-gridview -full Командлет Add-Type Командлет Add-Type позволяет добавлять в Windows PowerShell типы .NET Framework из исходного кода другого языка .NET Framework. Add-Type компилирует исходный код, создающий типы, и делает сборки, содержащие новые типы .NET Framework. Затем можно использовать в командах Windows PowerShell эти типы .NET Framework вместе со стандартными типами объектов, предоставляемыми .NET Framework. Add-Type можно также использовать для загрузки сборок в текущий сеанс для использования типов в этих сборках в Windows PowerShell. Add-Type позволяет разрабатывать новые типы .NET Framework, использовать типы .NET Framework в библиотеках C# и получать доступ к Win32 API. Дополнительные сведения см. в разделе Add-Type. Оповещение о событиях В Windows PowerShell 2.0 реализовано оповещение о событиях. Пользователи могут регистрироваться и подписываться на события Windows PowerShell, WMI или .NET Framework. Кроме того, пользователи могут ожидать и перенаправлять события и предпринимать действия при системных событиях и событиях управления как в синхронном, так и в асинхронном режиме. Разработчики могут писать приложения, использующие архитектуру событий для получения уведомлений об изменениях состояния. Пользователи могут писать скрипты, подписывающиеся на различные события и реагирующие на содержимое. В Windows PowerShell включены командлеты, создающие новые события, возвращающие события и подписки на события, регистрирующие и отменяющие регистрацию событий, ожидающие событий и удаляющие события. Чтобы получит ь дополнительные сведения об этих командлетах, введите следующую команду: get-command *-event Модули Модули Windows PowerShell позволяют разделять и систематизироват ь скрипты Windows PowerShell в рамках независимых самодостаточных многократно используемых блоков. Код в модуле выполняется в собственном контексте, поэтому он не добавляет, не вступает в конфликт и не перезаписывает переменные, функции, псевдонимы и другие ресурсы сеанса. Для создания простых скриптов и сложных приложений модули можно писать, распространять, комбинировать, публиковать и использовать многократно. В Windows PowerShell 2.0 входят командлеты, добавляющие, возвращающие и удаляющие модули, а также экспортирующие члены модуля. Чтобы получить дополнительные сведения о командлетах, связанных с модулями, введите следующую команду: get-command *-module* Транзакции Windows PowerShell 2.0 поддерживает транзакции. Транзакции позволяют отменить целую последовательность операций. Транзакции доступны только дл я операций, поддерживающих транзакции. Она предназначены для приложений, требующих атомарности, согласованности, изоляции и возможност и восстановления, таких как базы данных и очереди сообщений. Командлеты и поставщики, поддерживающие транзакции, имеют новый параметр UseTransaction. Для запуска операции в рамках транзакции используется командлет Start-Transaction. После этого при использовании командлетов, выполняющих операцию, команды можно сделать частью транзакции с помощью параметра UseTransaction для каждого командлета. Если какая-либо из команд в транзакции выдает в некий момент ошибку, используйте командлет Rollback-Transaction для отмены всех команд транзакции.Если все команды выполняются успешно, используйте командлет Commit-Transaction, чтобы зафиксировать действие команд. В Windows PowerShell 2.0 входят командлеты, запускающие, использующие, фиксирующие и откатывающие транзакции. Для получения сведений об этих командлетах введите следующую команду: get-command *transaction* Критические изменения для Windows PowerShell 1.0 -- Значение записи реестра PowerShellVersion в HKLM\SOFTWARE\Microsoft\PowerShell\1\PowerShellEngine изменено на 2.0. -- Добавлены новые командлеты и переменные. Эти новые элементы могут вступать в конфликт с переменными и функциями в профилях и скриптах. -- Оператор -IEQ выполняет сравнение символов без учета регистра. -- Кроме командлетов, командлет Get-Command по умолчанию возвращает и функции. -- Собственные команды, создающие интерфейс пользователя, нельзя передавать по конвейеру командлету Out-Host. -- Новые ключевые слова языка Begin, Process, End и Dynamic Param могут вступать в конфликт со сходными словами, используемыми в скриптах и функциях. Если эти слова интерпретируются как ключевые слова языка, могут возникать ошибки синтаксического анализа. -- Изменено разрешение имен командлетов. В Windows PowerShell 1.0 при экспорте двумя оснастками Windows PowerShell командлетов с одинаковыми именами возникала ошибка среды выполнения. В Windows PowerShell 2.0 при вводе названия команды выполняется командлет, добавленный в сеанс последним. Для выполнения команды, которая не запускается по умолчанию, используйте имя командлета вместе с именем оснастки или модуля, из которого он добавлен. -- Имя функции с символами '-?' после него возвращает раздел справки для этой функции, если он есть. -- Изменено разрешение параметров для методов Microsoft .Net Framework. В Windows PowerShell 1.0 при вызове перегруженного метода .NET, для которого было несколько подходящих вариантов синтаксиса, не создавалось сообщение об ошибке. В Windows PowerShell 2.0 создается сообщение об ошибке, связанной с неоднозначностью. Кроме того, в Windows PowerShell 2.0 значительно улучшен алгоритм выбора самого подходящего метода, что уменьшает количество неоднозначностей. -- При перечислении коллекции в конвейере и попытке изменить коллекцию в конвейере Windows PowerShell создает исключение. Например, следующие команды будут работать в Windows PowerShell 1.0, но в Windows PowerShell 2.0 выдадут ошибку после первой итерации конвейера. $h = @{Name="Hello"; Value="Test"} $h.keys | foreach-object {$h.remove($_)} Этой ошибки можно избежать, создав для перечислителя вложенное выражение с помощью символов $(). Пример: $($h.keys) | foreach-object {$h.remove($_)} Дополнительные сведения о Windows PowerShell 2.0 см. на следующих веб-сайтах. -- Веб-сайт Windows PowerShell http://go.microsoft.com/fwlink/?LinkID=106031 -- Блог команды Windows PowerShell: http://go.microsoft.com/fwlink/?LinkId=143696 СМ. ТАКЖЕ about_Data_Sections about_Debuggers about_Functions_Advanced about_Jobs about_Join about_PSSessions about_Remote about_Script_Internationalization about_Split about_Windows_PowerShell_ISE РАЗДЕЛ about_Windows_PowerShell_ISE КРАТКОЕ ОПИСАНИЕ Описание функций интегрированной среды скриптов (ISE) Windows PowerShell и ее требований к системе. ПОЛНОЕ ОПИСАНИЕ Windows PowerShell ISE - это ведущее приложение для Windows PowerShell. В среде Windows PowerShell ISE можно выполнять команды, а также создавать, тестировать и отлаживать скрипты с помощью единого графического пользовательского интерфейса на базе Windows. В ней имеются функции многострочного редактирования, автозавершения при помощи клавиши TAB, цветового выделения синтаксических конструкций, выборочного выполнения, контекстной справки и поддержки языков с написанием справа налево. Примечание. Поскольку для этой функции требуется пользовательский интерфейс, она не работает в ОС Windows Server, установленной в варианте Server Core. Среда Windows PowerShell ISE разработана на основе Windows Presentation Foundation (WPF). Если графические элементы Window s PowerShell ISE отображаются некорректно, эту проблему, возможно , удастся устранить повышением или изменением графических настрое к системы. Это может потребоваться в случае, если в системе установлен устаревший видеодрайвер или используется ПО виртуализации. Дополнительные сведения см. в разделе "Настройки реестра графического рендеринга" в библиотеке MSDN по адресу http://go.microsoft.com/fwlink/?LinkId=144711. Выполнение интерактивных команд В среде Windows PowerShell ISE можно выполнять любые выражения и команды Windows PowerShell. Можно использовать командлеты, поставщики, оснастки и модули так же, как и в консоли Windows PowerShell. В области команд можно вводить команды с клавиатуры или вставлять их из буфера обмена. Для выполнения команд можно использовать кнопки, пункты меню и сочетания клавиш. С помощью функции многострочного редактирования в области команд можно вводить (или вставлять из буфера обмена) несколько строк кода одновременно. При повторе предыдущей команды с помощью клавиши СТРЕЛКА ВВЕРХ повторно вводятся все строки этой команды. При вводе команд можно вставить пустую строку после текущей строки с помощью сочетания клавиш SHIFT+ВВОД. Просмотр выходных данных Результаты выполнения команд и скриптов отображаются в области вывода. Результаты можно копировать и перемещать из области вывода с помощью сочетаний клавиш или панели инструментов вывода, и результаты можно вставлять из буфера обмена в другие программы. Также можно очистить область вывода с помощью кнопки "Очистка области вывода" или любой из следующих команд: clear-host cls Разработка скриптов и функций В области скриптов можно отрывать, составлять, редактировать и выполнять скрипты. Область скриптов позволяет редактировать скрипты с помощью кнопок и сочетаний клавиш. В областях скриптов и команд также можно копировать и вырезать текст в буфер обмена и вставлять его. Функция выборочного выполнения позволяет выполнять скрипты полностью или частично. Чтобы выполнить часть скрипта, выберите текст, который требуется выполнить, и нажмите кнопку "Выполнить скрипт" или клавишу F5. Отладка скриптов С помощью отладчика Windows PowerShell ISE можно отлаживать скрипты и функции Windows PowerShell. При отладке скрипта можно с помощью пунктов меню и сочетаний клавиш выполнять многие задания из тех, что обычно выполняются в консоли Windows PowerShell. Например, чтобы вставить точку останова строки в скрипт, щелкните строку в коде правой кнопкой мыши и выберите "Переключить точку останова". Командлеты отладчика Windows PowerShell можно использовать в области команд так же, как и в консоли. Функция автозавершения при помощи клавиши TAB В среде Windows PowerShell ISE предусмотрена функция автозавершения при помощи клавиши TAB для имен командлетов, параметров и статических типов Microsoft .NET Framework. Чтобы воспользоваться этой функцией, введите начало имени команды и нажмите клавишу TAB. Получение справки В Windows PowerShell ISE имеется единый файл справки с возможностью поиска, в котором описываются среда Windows PowerShell ISE и оболочка Windows PowerShell. Этот файл справки содержит всю справочную информацию, которая выводится с помощью командлета Get-Help. Чтобы просмотреть файл справки в среде Windows PowerShell ISE, откройте меню "Справка" или нажмите клавишу F1. Справка является контекстной. Например, если ввести команду Invoke-Item и нажать клавишу F1, откроется раздел о командлете Invoke-Item, содержащийся в файле справки. Кроме того, командлет Get-Help можно использовать в Windows PowerShell ISE так же, как и в консоли Windows PowerShell. Настройка вида В Windows PowerShell ISE предусмотрены функции перемещения и изменения размера областей команд, вывода и скриптов. Можно скрыть или отобразить область скриптов, изменить размер текста во всех областях. Также можно изменять некоторые параметры вида интерфейса Windows PowerShell ISE с помощью переменной $Host, включая тексе заголовка окна и цвета переднего плана и фона области вывода. Кроме того, в Windows PowerShell ISE предусмотрена собственная переменная настройки ведущего приложения $psgHost. С ее помощью можно настраивать Windows PowerShell ISE, в том числе добавлять новые меню и пункты меню. Профиль Windows PowerShell ISE У Windows PowerShell ISE имеется собственный профиль Windows PowerShell с именем Microsoft.PowerShellISE_profile.ps1. В этом профиле можно хранить функции, псевдонимы, переменные и команды, используемые в Windows PowerShell ISE. Элементы в профилях AllHosts для Windows PowerShell (CurrentUser\AllHosts и AllUsers\AllHosts) также доступны в среде Windows PowerShell ISE, как и в любой другой ведущей программе Windows PowerShell. Впрочем, элементы в профилях консоли Windows PowerShell недоступны в среде Windows PowerShell ISE. Инструкции по перемещению и изменению конфигурации профилей имеются в справке по Windows PowerShell ISE и в разделе about_Profiles. Требования к системе -Операционные системы: - Windows 7; - Windows Server 2008; - Windows Server 2003 с пакетом обновления 2; - Windows Vista с пакетом обновления 1; - Windows XP с пакетом обновления 2; - Microsoft .NET Framework 3.0. - Для средств удаленного взаимодействия Windows PowerShell требуется удаленное управление Windows версии 2.0. Примечания - Для выполнения командлета Get-WinEvent требуется Windows Vista (или последующая версия Windows) и Microsoft .NET Framework 3.5. - Командлет Export-Counter выполняется только в Windows 7. Запуск Windows PowerShell ISE - Чтобы запустить Windows PowerShell ISE, нажмите кнопку "Пуск", выберите пункт "Все программы", затем "Windows PowerShell" и "Windows PowerShell ISE". - Или введите "powershell_ise.exe" в консоли Windows PowerShell, в программе Cmd.exe или в окне "Выполнить". СМ. ТАКЖЕ about_Profiles Get-Help about_WMI_Cmdlets РАЗДЕЛ about_WMI_cmdlets КРАТКОЕ ОПИСАНИЕ Содержит общие сведения об инструментарии управления Windows (WMI) и Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В этом разделе содержатся сведения о технологии WMI, командлетах WMI для Windows PowerShell, удаленном взаимодействии с использованием WMI, ускорителях WMI и устранении неполадок WMI. Кроме того, в этом разделе приведены ссылки на более подробные сведения о WMI. Об инструментарии управления Windows (WMI) Инструментарий управления Windows (WMI) представляет собой подготовленную корпорацией Майкрософт реализацию технологий WBEM (Web-Based Enterprise Management) - отраслевой инициативы по разработке стандартной технологии работы с информацией по управлению в корпоративной среде. В WMI для представления систем, приложений, сетей, устройств и других управляемых компонентов используется отраслевой стандарт CIM. Модель CIM разрабатывается и поддерживается организацией Distributed Management Task Force (DMTF). С помощью инструментария WMI можно управлять как локальными, так и удаленными компьютерами. Например, с помощью WMI можно выполнять следующие операции. -- Запуск процесса на удаленном компьютере. -- Удаленный перезапуск компьютера. -- Получение списка установленных на локальном или удаленном компьютере приложений. -- Создание запросов к журналам событий Windows на локальном или удаленном компьютере. Командлеты WMI для Windows PowerShell В Windows PowerShell функциональность WMI реализована с помощью набора командлетов, которые доступны в Windows PowerShell по умолчанию. С помощью этих командлетов можно выполнять полный набор задач, необходимых для управления локальными и удаленными компьютерами. Доступны следующие командлеты WMI. Командлет Описание ------------------ ---------------------------------------------- Get-WmiObject Получает экземпляры классов WMI либо сведения о доступных классах. Invoke-WmiMethod Вызывает методы WMI. Register-WmiEvent Создает подписку на событие WMI. Remove-WmiObject Удаляет классы WMI и экземпляры этих классов. Set-WmiInstance Создает или изменяет экземпляры классов WMI. Примеры команд Следующая команда выводит сведения BIOS для локального компьютера. C:\PS> get-wmiobject win32_bios | format-list * Следующая команда выводит сведения о службе WinRM для трех удаленных компьютеров. C:\PS> get-wmiobject -query "select * from win32_service where name='WinRM'" -computername server01, server01, server03 Следующая более сложная команда закрывает все экземпляры программы. C:\PS> notepad.exe C:\PS> $np = get-wmiobject -query "select * from win32 _process where name='notepad.exe'" C:\PS> $np | remove-wmiobject Удаленное взаимодействие с использованием WMI Хотя возможности управления с помощью WMI локальной системой бывают полезны, именно поддержка удаленного взаимодействия делает инструментарий WMI по-настоящему мощным средством администрировани я. В WMI для подключения к управляемым системам используется модель DCOM корпорации Майкрософт. Чтобы сделать возможными подключения DCOM, может потребоваться настроить некоторые системы. Параметры брандмауэра и заблокированные разреения DCOM могут препятствовать удаленному управлению системами с помощью WMI. Типизированные ускорители WMI Windows PowerShell включает типизированные ускорители WMI. Эти типизирова нные ускорители WMI позволяют быстрее обращаться к объектам WMI по сравнению с нетипизированными ускорителями. В WMI поддерживаются следующие типизированные ускорители. [WMISEARCHER] - ускоритель для поиска объектов WMI. [WMICLASS] - ускоритель для обращения к статическим свойствам и методам класса. [WMI] - ускоритель для получения одного экземпляра класса. [WMISEARCHER] - это типизированный ускоритель для ManagementObjectSearche r. Он принимает строковый конструктор и создает модуль поиска, с помощью которого затем можно применять операцию GET(). Пример: PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 10 00' PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto handlecount __PATH name ----------- ------ ---- 1105 \\SERVER01\root\cimv2:Win32_Process.Handle="3724" powershe ll... 1132 \\SERVER01\root\cimv2:Win32_Process.Handle="1388" winlogon .exe 1495 \\SERVER01\root\cimv2:Win32_Process.Handle="2852" iexplore .exe 1699 \\SERVER01\root\cimv2:Win32_Process.Handle="1204" OUTLOOK. EXE 1719 \\SERVER01\root\cimv2:Win32_Process.Handle="1912" iexplore .exe 2579 \\SERVER01\root\cimv2:Win32_Process.Handle="1768" svchost. exe [WMICLASS] - это типизированный ускоритель для ManagementClass. У него имеется строковый конструктор, который принимает локальный или абсолютный путь WMI к классу WMI и возвращает связанный с этим классом объект. Пример: PS> $c = [WMICLASS]"root\cimv2:WIn32_Process" PS> $c |fl * Name : Win32_Process __GENUS : 1 __CLASS : Win32_Process __SUPERCLASS : CIM_Process __DYNASTY : CIM_ManagedSystemElement __RELPATH : Win32_Process __PROPERTY_COUNT : 45 __DERIVATION : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemEle ment} __SERVER : SERVER01 __NAMESPACE : ROOT\cimv2 __PATH : \\SERVER01\ROOT\cimv2:Win32_Process [WMI] - это типизированный ускоритель для ManagementObject. У него имеется строковый конструктор, который принимает локальный или абсолютный путь WMI к экземпляру WMI и возвращает связанный с этим экземпляром объект. Пример: PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"' PS> $p.Name OUTLOOK.EXE Устранение неполадок WMI Ниже описаны наиболее распространенные неполадки, которые могут возникнуть при попытке подключения к удаленному компьютеру. Неполадка 1. Удаленный компьютер не подключен к сети. Если компьютер находится вне сети, подключиться к нему с помощью WMI невозможно. При этом появляется следующее сообщение об ошибке: "Удаленный сервер не существует или недоступен" При получении этого сообщения об ошибке проверьте, что компьютер подключен к сети. Попробуйте выполнить проверку связи с удаленным компьютером. Неполадка 2. Отсутствуют права администратора на удаленном компьютере. Для удаленного использования WMI требуются права администратора на удаленном компьютере. Если эти права отсутствуют, в доступе к компьютеру будет отказано. Чтобы проверить безопасность пространства имен, выполните следующие действия. a. Нажмите кнопку "Пуск", правой кнопкой мыши щелкните "Мой компьютер" и выберите пункт "Управление". b. В диалоговом окне "Управление компьютером" разверните узел "Службы и приложения", щелкните правой кнопкой мыши узел "Управляющий элемент WMI" и выберите пункт "Свойства". c. В диалоговом окне "Свойства: Управляющий элемент WMI" перейдите на вкладку "Безопасность". Неполадка 3. Брандмауэр блокирует доступ к удаленному компьютеру. Инструментарий WMI использует для сетевого взаимодействия протоколы DCOM и RPC (удаленный вызов процедур). По умолчанию многие брандмауэры блокируют трафик DCOM и RPC. Если используемый брандмауэр блокирует эти протоколы, осуществить удаленное подключение не удастся. Например, "Брандмауэр Windows" в Microsoft Windows XP с пакетом обновления 2 (SP2) автоматически настраивается на блокировку всего нежелательного сетевого трафика, включая трафик DCOM и WMI. В конфигурации по умолчанию "Брандмауэр Windows" отклоняет все входящие запросы WMI; при этом появляется следующее сообщение об ошибке: "Удаленный сервер не существует или недоступен" Дополнительные сведения о WMI Дополнительные сведения об инструментарии WMI см. в следующих разделах библиотеки MSDN (Microsoft Developer Network): "Об инструментарии управления Windows (WMI)" http://go.microsoft.com/fwlink/?LinkId=142212 "Устранение неполадок WMI" http://go.microsoft.com/fwlink/?LinkId=142213 Кроме того, ознакомьтесь с разделом "Секреты WMI - устранение неполадок и советы" в центре скриптов Microsoft TechNet: http://go.microsoft.com/fwlink/?LinkId=142214 CМ. ТАКЖЕ Интернет-версия: http://go.microsoft.com/fwlink/?LinkId=142219 Get-WmiObject Invoke-WmiMethod Register-WmiEvent Remove-WmiObject Set-WmiInstance about_WS-Management_Cmdlets РАЗДЕЛ about_WS-Management_Cmdlets КРАТКОЕ ОПИСАНИЕ Содержит общие сведения о протоколе WS-Management, помогающие использовать командлеты WS-Management в Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ В этом разделе содержатся общие сведения о протоколе WS-Management, помогающие использовать командлеты WS-Management в Windows PowerShell. Кроме того, в этом разделе приведены ссылки на более подробные сведения о WS-Management. Реализация спецификации WS-Management корпорации Майкрософт также известна под именем WinRM (удаленное управление Windows). О WS-Management Удаленное управление Windows представляет собой подготовленную корпорацией Майкрософт реализацию протокола WS-Management - основанного на стандарте SOAP и поддерживающего брандмауэры протокола, позволяющего взаимодействовать между собой оборудованию и операционным системам различных производителей. В спецификации протокола WS-Management определен единый способ получения информации по управлению и обмена ею в рамках ИТ-инфраструктуры . Протокол WS-Management, интерфейс IPMI (Intelligent Platform Management Interface), а также служба сборщика событий, являются компонентами модуля управления оборудованием Windows. В основе протокола WS-Management лежат следующие стандартные спецификации веб-служб: HTTPS, SOAP поверх HTTP (профиль WS-I), SOAP 1.2, WS-Addressing, WS-Transfer, WS-Enumeration и WS-Eventing. WS-Management и WMI С помощью WS-Management можно получать данные, предоставляемые инструментарием управления Windows (WMI). Данные WMI можно получать с помощью скриптов и приложений, использующих интерфейс скриптов API WS-Management, или с помощью программы командной строки WinRM. Протокол WS-Management поддерживает больiинство привычных классов и операций WMI, включая внедренные объекты. WS-Management позволяет с помощью WMI получать данные о ресурсах и управлять ресурсами на компьютерах с ОС Windows. Это означает, что при помощи существующего набора классов WMI можно получать данные о таких объекта предприятия, как диски, сетевые адаптеры, службы или процессы. Кроме того, можно обращаться к данным об оборудовании, доступным через стандартный поставщик WMI IPMI. Поставщик WS-Management Windows PowerShell Поставщик WS-Management позволяет работать с иерархическим предоставлением доступных параметров конфигурации WS-Management. Он дает возможность просматривать и устанавливать различные параметры конфигурации WS-Management. Конфигурация WS-Management Если протокол WS-Management не установлен и не настроен, удаленное взаимодействие Windows PowerShell недоступно, командлеты и скрипты WS-Management выполнять невозможно, а поставщик WS-Management не может выполнять операции с данными. Работа программы командной строки WS-Management (WinRM) и функций перенаправления событий также зависят от конфигурации WS-Management. Командлеты WS-Management Функциональность WS-Management реализована Windows PowerShell с помощью модуля, содержащего набор командлетов и поставщик WS-Management. С помощью этих командлетов можно выполнять полный набор задач, необходимых для управления параметрами WS-Management на локальных и удаленных компьютерах. Доступны следующие командлеты WS-Management. Командлеты для подключения -- Connect-WSMan: подключает локальный компьютер к службе WS-Management (WinRM) на удаленном компьютере. -- Disconnect-WSMan: отключает локальный компьютер от службы WS-Management (WinRM) на удаленном компьютере. Командлеты управления данными -- Get-WSManInstance: отображает сведения об управлении для экземпляра ресурса, заданного кодом URI ресурса. -- Invoke-WSManAction: вызывает действие на целевом объекте, заданном при помощи кода URI ресурса и селекторов. -- New-WSManInstance: создает новый экземпляр ресурса управления. -- Remove-WSManInstance: удаляет экземпляр ресурса управления. -- Set-WSManInstance: вносит изменения в относящиеся к ресурсу сведения об управлении. Командлеты установки и настройки -- Set-WSManQuickConfig: настраивает локальный компьютер для удаленного управления. С помощью командлета Set-WSManQuickConfig можно настроить WS-Management таким образом, чтобы разреить удаленные подключения к службе WS-Management (WinRM). Командлет Set-WSManQuickConfig выполняет следующие операции. - Он определяет, запущена ли служба WS-Management (WinRM). Если служба WinRM не запущена, командлет Set-WSManQuickConfig запускает службу. - Он устанавливает для службы WS-Management (WinRM) тип запуска "Авто". - Он создает прослушиватель, принимающий запросы с любого IP-адреса. Протоколом транспорта по умолчанию является протокол HTTP. - Он устанавливает исключения брандмауэра для трафика WS-Management. Примечание. Чтобы использовать этот командлет в Windows Vista, Windows Server 2008 и более поздних версиях Windows, необходимо запускать Windows PowerShell в режиме "Запуск от имени администратора". -- Test-WSMan: проверяет, что служба WS-Management установлена и настроена. Командлет Test-WSMan проверяет, что служба WS-Management (WinRM) запущена и настроена на локальном и удаленном компьютерах. -- Disable-WSManCredSSP: отключает проверку подлинности CredSSP на клиентском компьютере. -- Enable-WSManCredSSP: включает проверку подлинности CredSSP на клиентском компьютере. -- Get-WSManCredSSP: получает конфигурацию CredSSP для клиентского компьютера. Командлеты, относящиеся только к WS-Management -- New-WSManSessionOption: создает объект WSManSessionOption, используемый в качестве одного или нескольких параметров командлета WS-Management. Дополнительные сведения о WS-Management Дополнительные сведения о протоколе WS-Management см. в следующих разделах библиотеки MSDN (Microsoft Developer Network): "Удаленное управление Windows" http://go.microsoft.com/fwlink/?LinkId=142321 "Об удаленном управлении Windows" http://go.microsoft.com/fwlink/?LinkId=142322 "Установка и настройка удаленного управления Windows" http://go.microsoft.com/fwlink/?LinkId=142323 "Архитектура удаленного управления Windows" http://go.microsoft.com/fwlink/?LinkId=142324 "Протокол WS-Management" http://go.microsoft.com/fwlink/?LinkId=142325 "Удаленное управление Windows и WMI" http://go.microsoft.com/fwlink/?LinkId=142326 "Коды URI ресурсов" http://go.microsoft.com/fwlink/?LinkId=142327 "Удаленное управление оборудованием" http://go.microsoft.com/fwlink/?LinkId=142328 "События" http://go.microsoft.com/fwlink/?LinkId=142329 CМ. ТАКЖЕ Интернет-версия: http://go.microsoft.com/fwlink/?LinkId=142331 Connect-WSMan Disable-WSManCredSSP Disconnect-WSMan Enable-WSManCredSSP Get-WSManCredSSP Get-WSManInstance Invoke-WSManAction New-WSManInstance Remove-WSManInstance Set-WSManInstance Set-WSManQuickConfig Set-WSManSessionOption Test-WSMan КЛЮЧЕВЫЕ СЛОВА about_WSMAN about_WinRM default РАЗДЕЛ Get-Help КРАТКОЕ ОПИСАНИЕ Отображает справочные сведения о командлетах и концепциях Windows PowerShell. ПОЛНОЕ ОПИСАНИЕ СИНТАКСИС get-helphelp {<имя_командлета> | <название_раздела>} help {<имя_командлета> | <название_раздела>} <имя_командлета> -? Команды "Get-help" and "-?" отображают справку на одной странице. Команда "Help" - на нескольких. Примеры get-help get-process :отображает справку о командлете Get-Process. get-help about_signing :отображает справку о подписании скриптов. help where-object :отображает справку о командлете Where-Object. help about_foreach :отображает справку о циклах foreach в PowerShell. set-service -? :отображает справку о командлете Set-Service. В командах справки можно использовать подстановочные знаки (исключая команду "-?"). Если поисковому запросу соответствует несколько разделов справки, оболочка PowerShell отображает список этих разделов. Если запросу соответствует только один раздел, оболочка PowerShell отобразит его сразу. Примеры get-help * :отображает все разделы справки. get-help get-* :отображает разделы, начинающиеся с get-. help *object* :отображает разделы, имя которых содержит слово "object". get-help about* :отображает все концептуальные разделы. Чтобы получить сведения о подстановочных знаках, введите: get-help about_wildcard ПРИМЕЧАНИЕ Дополнительные сведения о Windows PowerShell см. в следующих разделах справки: get-command :получает сведения о командлетах из кода командлета. get-member :получает свойства и методы объекта. where-object :фильтрует свойства объекта. about_object :возвращает сведения об использовании объектов в Windows PowerShell. about_remote :возвращает сведения о выполнении команд на удаленных компьютерах. Концептуальные разделы справки (с именем "about_<раздел>"), например: about_regular_expression. Названия файлов концептуальных разделов нужно вводить на английском языке, даже если используется локализованная версия Windows PowerShell. С помощью команд справки можно также узнать псевдонимы командлетов. Это альтернативные имена, которые обычно проще вводить. Например, командлет Invoke-Command имеет псевдоним remote. Чтобы узнать псевдонимы, введите команду: get-alias