Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0
РАЗДЕЛ
Переменные настройки
КРАТКОЕ ОПИСАНИЕ
Переменные, которые задают поведение Windows PowerShell
ПОДРОБНОЕ ОПИСАНИЕ
В оболочке командной строки Windows PowerShell доступен ряд переменных, которые позволяют настраивать ее поведение. Эти переменные настройки аналогичны параметрам в системах с графическим пользовательским интерфейсом.
Переменные настройки влияют на рабочую среду Windows PowerShell и все команды, запускаемые в ней. У многих командлетов есть параметры, позволяющие переопределить предпочитаемое поведение для определенной команды.
В таблице ниже перечислены переменные настройки и их значения по умолчанию.
Variable Default Value
-------- -------------
$ConfirmPreference High
$DebugPreference SilentlyContinue
$ErrorActionPreference Continue
$ErrorView NormalView
$FormatEnumerationLimit 4
$LogCommandHealthEvent False (not logged)
$LogCommandLifecycleEvent False (not logged)
$LogEngineHealthEvent True (logged)
$LogEngineLifecycleEvent True (logged)
$LogProviderLifecycleEvent True (logged)
$LogProviderHealthEvent True (logged)
$MaximumAliasCount 4096
$MaximumDriveCount 4096
$MaximumErrorCount 256
$MaximumFunctionCount 4096
$MaximumHistoryCount 4096
$MaximumVariableCount 4096
$OFS (Space character (" "))
$OutputEncoding ASCIIEncoding object
$ProgressPreference Continue
$PSDefaultParameterValues (None - empty hash table)
$PSEmailServer (None)
$PSModuleAutoLoadingPreference All
$PSSessionApplicationName WSMAN
$PSSessionConfigurationName https://schemas.microsoft.com/PowerShell/microsoft.PowerShell
$PSSessionOption (See below)
$VerbosePreference SilentlyContinue
$WarningPreference Continue
$WhatIfPreference 0
Windows PowerShell также включает указанные ниже переменные среды, в которых хранятся пользовательские настройки. Дополнительные сведения об этих переменных среды см. в статье "about_Environment_Variables".
Variable
--------
PSExecutionPolicyPreference
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
------------------
Определяет, будет ли Windows PowerShell автоматически запрашивать ваше подтверждение перед запуском командлета или функции.
Если значение переменной $ConfirmPreference (High, Medium, Low) не превышает уровень риска, назначенного для командлета или функции (High, Medium, Low), Windows PowerShell автоматически запрашивает подтверждение, прежде чем запускать командлет или функцию.
Если переменная $ConfirmPreference имеет значение None, Windows PowerShell никогда не будет автоматически запрашивать подтверждение перед запуском командлета или функции.
Чтобы изменить параметры подтверждения для всех командлетов и функций в сеансе, измените значение переменной $ConfirmPreference.
Чтобы переопределить переменную $ConfirmPreference для одной команды, используйте параметр Confirm командлета или функции. Чтобы запрашивать подтверждение, используйте параметр -Confirm. Чтобы отключить запрос подтверждения, используйте параметр -Confirm:$false.
Допустимые значения переменной $ConfirmPreference:
None: Windows PowerShell не запрашивает подтверждение автоматически. Чтобы требовать подтверждения определенной команды, используйте параметр Confirm командлета или функции.
Low: Windows PowerShell запрашивает подтверждение перед выполнением командлетов или функций с низким, средним или высоким уровнем риска.
Medium: Windows PowerShell запрашивает подтверждение перед выполнением командлетов или функций со средним или высоким уровнем риска.
High: Windows PowerShell запрашивает подтверждение перед выполнением командлетов или функций с высоким уровнем риска.
ПОДРОБНОЕ ОПИСАНИЕ
Если действия командлета или функции оказывают значительное влияние на систему, например удаляют данные или используют значительное количество системных ресурсов, Windows PowerShell может автоматически запрашивать подтверждение перед выполнением действия.
Например,
PS> remove-item file.txt
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\file.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
Примерный уровень риска является атрибутом ConfirmImpact командлета или функции. Пользователи не могут менять его.
У командлетов и функций, которые могут представлять опасность для системы, есть параметр Confirm, с помощью которого можно запрашивать подтверждение для одной команды или отключать этот запрос.
Так как большинство командлетов и функций использует значение уровня риска (ConfirmImpact), заданное по умолчанию (Medium), а переменная $ConfirmPreference по умолчанию имеет значение High, автоматическое подтверждение случается редко. Тем не менее, вы можете включить автоматическое подтверждение, изменив значение переменной $ConfirmPreference на Medium или Low.
ПРИМЕРЫ
В этом примере показано влияние стандартного значения переменной $ConfirmPreference. При значении High подтверждаются только командлеты и функции с высоким уровнем риска. Так как большинство командлетов и функций представляют средний уровень опасности, они не подтверждаются автоматически.
PS> $confirmpreference #Get the current value of the
High variable
PS> remove-item temp1.txt #Delete a file
PS> #Deleted without confirmation
PS> remove-item temp2.txt -confirm #Use the Confirm parameter to
request confirmation
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
В следующем примере показан результат изменения значения переменной $ConfirmPreference на Medium. Так как большинство командлетов и функций представляют средний уровень опасности, они подтверждаются автоматически. Чтобы отключить запрос подтверждения для одной команды, используйте параметр Confirm со значением $false
PS> $confirmpreference = "Medium" #Change the value of $ConfirmPreference
PS> remove-item temp2.txt #Deleting a file triggers confirmation
Confirm
Are you sure you want to perform this action?
Performing operation "Remove File" on Target "C:\temp2.txt".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):
PS> remove-item temp3.txt -confirm:$false #Use Confirm parameter
to suppress confirmation
PS>
$DebugPreference
------------------
Определяет, как Windows PowerShell реагирует на сообщения отладки, созданные сценарием, командлетом, поставщиком или командой Write-Debug в командной строке.
Некоторые командлеты выводят сообщения отладки, которые обычно содержит технические сведения, предназначенные для программистов и специалистов по технической поддержке. По умолчанию сообщения отладки не выводятся, но вы можете включить их, изменив значение переменной $DebugPreference.
Вы также можете использовать общий параметр Debug командлета, чтобы выводить или скрывать сообщения отладки для определенной команды. Чтобы получить дополнительные сведения, введите следующую команду: "get-help about_commonparameters".
Допустимые значения:
Stop: выводит сообщение отладки и останавливает выполнение. Записывает ошибку в консоль.
Inquire: выводит сообщение отладки и спрашивает, хотите ли вы продолжить. Обратите внимание, что добавление общего параметра Debug к команде, если для команды включен вывод сообщения отладки, приводит к изменению значения переменной $DebugPreference на Inquire.
Continue: выводит сообщение отладки и продолжает выполнение.
SilentlyContinue: значение по умолчанию, не оказывает никакого действия. Сообщение отладки не отображается, а выполнение продолжается без перерыва.
ПРИМЕРЫ
В следующих примерах показан результат изменения значения переменной $DebugPreference при вводе команды Write-Debug в командной строке. Изменение влияет на все сообщения отладки, в том числе созданные командлетами и сценариями. Эти примеры также иллюстрируют использование общего параметра Debug, которые выводит или скрывает сообщения отладки для одной команды.
В этом примере показано влияние стандартного значения, SilentlyContinue. Сообщение отладки не отображается, а обработка продолжается. В последней команде с помощью параметр Debug переопределяется предпочтение для одной команды.
PS> $debugpreference # Get the current value of
SilentlyContinue $DebugPreference
PS> write-debug "Hello, World"
PS> # The debug message is not
displayed.
PS> write-debug "Hello, World" -Debug # Use the Debug parameter
DEBUG: Hello, World # The debug message is
is requested. displayed and confirmation
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"):
В этом примере показано влияние значения Continue. В последней команде с помощью параметра Debug со значением $false отключается сообщение для одной команды.
PS> $debugpreference = "Continue" # Change the value to "Continue"
PS> write-debug "Hello, World"
DEBUG: Hello, World # The debug message is displayed
PS> and processing continues.
PS> write-debug "Hello, World" -Debug:$false
# Use the Debug parameter with
false.
PS> # The debug message is not
displayed.
В этом примере показано влияние значения Stop. В последней команде с помощью параметра Debug со значением $false отключается сообщение для одной команды.
PS> $debugpreference = "Stop" #Change the value to "Stop"
PS> write-debug "Hello, World"
DEBUG: Hello, World
Write-Debug : Command execution stopped because the shell variable "DebugPreference" is
set to Stop.
At line:1 char:12
+ write-debug <<<< "Hello, World"
PS> write-debug "Hello, World" -Debug:$false
# Use the Debug parameter with
$false
PS> # The debug message is not
displayed and processing is
not stopped.
В этом примере показано влияние значения Inquire. В последней команде с помощью параметра Debug со значением $false отключается сообщение для одной команды.
PS> $debugpreference = "Inquire"
PS> write-debug "Hello, World"
DEBUG: Hello, World
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"):
PS> write-debug "Hello, World" -Debug:$false
# Use the Debug parameter with
$false
PS> # The debug message is not
displayed and processing
continues without interruption.
$ErrorActionPreference
----------------------
Определяет, как Windows PowerShell реагирует на не прерывающие ошибки (ошибки, которые не останавливают обработку командлета) в командной строке, сценарии, командлете или поставщике, например ошибки командлета Write-Error.
Вы также можете использовать общий параметр ErrorAction командлета, чтобы переопределить параметр для определенной команды.
Допустимые значения:
Stop: выводит сообщение об ошибке и останавливает выполнение.
Inquire: выводит сообщение об ошибке и спрашивает, хотите ли вы продолжить.
Continue (по умолчанию): выводит сообщение об ошибке и продолжает выполнение.
Suspend: Выполнение задания рабочего процесса автоматически приостанавливается для изучения причины ошибки. После исследования рабочий процесс можно возобновить.
SilentlyContinue: не оказывает действия. Сообщение об ошибке не отображается, а выполнение продолжается без перерыва.
ПРИМЕЧАНИЕ.
Значение Ignore общего параметра ErrorAction не является допустимым значением переменной $ErrorActionPreference. Значение Ignore предназначено для отдельных команд, а не как сохраненное предпочтение.
Ни переменная $ErrorActionPreference, ни общий параметр ErrorAction не влияют на то, как Windows PowerShell реагирует на прерывающие ошибки (те, которые останавливают обработку командлета).
Дополнительные сведения об общем параметре ErrorAction см. в статье "about_CommonParameters" (https://go.microsoft.com/fwlink/?LinkID=113216).
ПРИМЕРЫ
Эти примеры демонстрируют влияние разных значений переменной $ErrorActionPreference и использования общего параметра ErrorAction для переопределения параметра для одной команды. Параметр ErrorAction имеет такие же допустимые значения, что и переменная $ErrorActionPreference.
В этом примере показан результат использования значения Continue, заданного по умолчанию.
PS> $erroractionpreference
Continue# Display the value of the preference.
PS> write-error "Hello, World"
# Generate a non-terminating error.
write-error "Hello, World" : Hello, World
# The error message is displayed and
execution continues.
PS> write-error "Hello, World" -ErrorAction:SilentlyContinue
# Use the ErrorAction parameter with a
value of "SilentlyContinue".
PS>
# The error message is not displayed and
execution continues.
В этом примере показано влияние значения SilentlyContinue.
PS> $ErrorActionPreference = "SilentlyContinue"
# Change the value of the preference.
PS> write-error "Hello, World"
# Generate an error message.
PS>
# Error message is suppressed.
PS> write-error "Hello, World" -erroraction:continue
# Use the ErrorAction parameter with a
value of "Continue".
write-error "Hello, World" -erroraction:continue : Hello, World
# The error message is displayed and
execution continues.
В этом примере показаны последствия настоящей ошибки. В этом случае команда получает несуществующий файл nofile.txt. В этом примере также переопределяется предпочтение с помощью общего параметра ErrorAction.
PS> $erroractionpreference
SilentlyContinue # Display the value of the preference.
PS> get-childitem -path nofile.txt
PS> # Error message is suppressed.
PS> $ErrorActionPreference = "Continue"
# Change the value to Continue.
PS> get-childitem -path nofile.txt
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:4
+ get-childitem <<<< nofile.txt
PS> get-childitem -path nofile.txt -erroraction SilentlyContinue
# Use the ErrorAction parameter
PS>
# Error message is suppressed.
PS> $ErrorActionPreference = "Inquire"
# Change the value to Inquire.
PS> get-childitem -path nofile.txt
Confirm
Cannot find path 'C:\nofile.txt' because it does not exist.
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"): y
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:4
+ get-childitem <<<< nofile.txt
PS> $ErrorActionPreference = "Continue"
# Change the value to Continue.
PS> Get-Childitem nofile.txt -erroraction "Inquire"
# Use the ErrorAction parameter to override
the preference value.
Confirm
Cannot find path 'C:\nofile.txt' because it does not exist.
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"):
$ErrorView
----------
Определяет формат отображения сообщений об ошибках в Windows PowerShell.
Допустимые значения
NormalView (по умолчанию): подробное представление, подходящее для большинства пользователей. Включает описание ошибки, имя объекта, с которым связана ошибка, и стрелки (<<<<), указывающие на слова в команде, которые вызвали ошибку.
CategoryView: лаконичное, структурированное представление, предназначенное для рабочих сред. Оно имеет следующий формат: {Category}: ({TargetName}:{TargetType}):[{Activity}], {Reason}
Дополнительные сведения о полях CategoryView см. в разделе "Класс ErrorCategoryInfo" пакета SDK Windows PowerShell.
ПРИМЕРЫ
В этих примерах показано влияние значений ErrorView.
В этом примере показано, как отображается ошибка, если переменная $ErrorView имеет значение NormalView. В этом случае команда Get-ChildItem используется для поиска несуществующего файла.
PS> $ErrorView # Verify the value.
NormalView
PS> get-childitem nofile.txt # Find a non-existent file.
Get-ChildItem : Cannot find path 'C:\nofile.txt' because it does not exist.
At line:1 char:14
+ get-childitem <<<< nofile.txt
В этом примере показано, как отображается та же ошибка, если переменная $ErrorView имеет значение CategoryView.
PS> $ErrorView = "CategoryView" # Change the value to
CategoryView
PS> get-childitem nofile.txt
ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem], ItemNotFoundException
Этот пример демонстрирует, что значение ErrorView влияет только на представление ошибки. Оно не меняет структуру объекта ошибки, который хранится в автоматической переменной $error. Дополнительные сведения об автоматической переменной $error см. в статье "about_automatic_variables".
Эта команда считывает объект ErrorRecord, связанный с последней ошибкой в массиве (элемент 0), и форматирует все свойства этого объекта в виде списка.
PS> $error[0] | format-list -property * -force
Exception : System.Management.Automation.ItemNotFoundException: Cannot find path
'C:\nofile.txt' because it does not exist.
at System.Management.Automation.SessionStateInternal.GetChildItems(String path,
Boolean recurse, CmdletProviderContext context)
at System.Management.Automation.ChildItemCmdletProviderIntrinsics.Get(String path,
Boolean recurse, CmdletProviderContext context)
at Microsoft.PowerShell.Commands.GetChildItemCommand.ProcessRecord()
TargetObject : C:\nofile.txt
CategoryInfo : ObjectNotFound: (C:\nofile.txt:String) [Get-ChildItem],
ItemNotFoundException
FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
ErrorDetails :
InvocationInfo : System.Management.Automation.InvocationInfo
$FormatEnumerationLimit
-----------------------
Определяет, сколько перечисляемых элементов включено в представление. Эта переменная не влияет на базовые объекты, только на представление. Если значение переменной $FormatEnumerationLimit меньше количества перечисляемых элементов, Windows PowerShell добавляет многоточие (...) для обозначения не показанных элементов.
Valid values: Integers (Int32)
Default value: 4
ПРИМЕРЫ
В этом примере показано, как улучшить представление перечисляемых элементов с помощью переменной $FormatEnumerationLimit.
Команда в этом примере создает таблицу, в которой перечислены все запущенные на компьютере службы, разделенные на две группы: одну для выполняемых служб и одну для остановленных. Команда Get-Service возвращает список служб, а затем отправляет результаты по конвейеру в командлет Group-Object, который группирует результаты по состоянию службы.
В результате получается таблица, где состояния перечислены в столбце Name, а процессы с этим состоянием — в столбце Group. (Чтобы изменить метки столбцов, используйте хэш-таблицу. Дополнительные сведения см. в примерах, введя команду "get-help format-table -examples".)
В столбце Group для каждого состояния может отображаться до 4 служб. Чтобы увеличить число отображаемых элементов, повысьте значение переменной $FormatEnumerationLimit до 1000.
Теперь список в столбце Group ограничен длиной строки. В последней команде из этого примера используется параметр Wrap командлета Format-Table, чтобы вывести на экран все процессы в каждой группе Status.
PS> $formatenumerationlimit # Find the current value
4
PS> get-service | group-object -property status
# List all services grouped by
status
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv...}
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart...}
# The list is truncated after
4 items.
PS> $formatenumerationlimit = 1000
# Increase the limit to 1000.
PS> get-service | group-object -property status
# Repeat the command.
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec...
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc...
PS> get-service | group-object -property status | format-table -wrap
# Add the Wrap parameter.
Count Name Group
----- ---- -----
60 Running {AdtAgent, ALG, Ati HotKey Poller, AudioSrv, BITS, CcmExec, Client
for NFS, CryptSvc, DcomLaunch, Dhcp, dmserver, Dnscache, ERSvc,
Eventlog, EventSystem, FwcAgent, helpsvc, HidServ, IISADMIN,
InoRPC, InoRT, InoTask, lanmanserver, lanmanworkstation, LmHosts,
MDM, Netlogon, Netman, Nla, NtLmSsp, PlugPlay, PolicyAgent,
ProtectedStorage, RasMan, RemoteRegistry, RpcSs, SamSs, Schedule,
seclogon, SENS, SharedAccess, ShellHWDetection, SMT PSVC, Spooler,
srservice, SSDPSRV, stisvc, TapiSrv, TermService, Themes, TrkWks,
UMWdf, W32Time, W3SVC, WebClient, winmgmt, wscsvc, wuauserv,
WZCSVC, zzInterix}
41 Stopped {Alerter, AppMgmt, aspnet_state, ATI Smart, Browser, CiSvc,
ClipSrv, clr_optimization_v2.0.50727_32, COMSysApp, CronService,
dmadmin, FastUserSwitchingCompatibility, HTTPFilter, ImapiService,
Mapsvc, Messenger, mnmsrvc, MSDTC, MSIServer, msvsmon80, NetDDE,
NetDDEdsdm, NtmsSvc, NVSvc, ose, RasAuto, RDSessMgr, RemoteAccess,
RpcLocator, SCardSvr, SwPrv, SysmonLog, TlntSvr, upnphost, UPS,
VSS, WmdmPmSN, Wmi, WmiApSrv, xmlprov}
$Log*Event
----------
Переменные настройки Log*Event определяют, какие типы событий записываются в журнал Windows PowerShell в окне просмотра событий. По умолчанию записываются только события подсистемы и поставщиков, но вы можете использовать переменные настройки Log*Event, чтобы настроить журнал, например для записи событий команд.
Ниже перечислены переменные настройки Log*Event.
$LogCommandHealthEvent: Logs errors and exceptions in command initialization
and processing. Default = $false (not logged).
$LogCommandLifecycleEvent:
Logs the starting and stopping of commands and command pipelines
and security exceptions in command discovery. Default = $false (not logged).
$LogEngineHealthEvent: Logs errors and failures of sessions. Default = $true (logged).
$LogEngineLifecycleEvent: Logs the opening and closing of sessions.
Default = $true (logged).
$LogProviderHealthEvent: Logs provider errors, such as read and write errors,
lookup errors, and invocation errors. Default = $true (logged).
$LogProviderLifecycleEvent: Logs adding and removing of Windows PowerShell providers.
Default = $true (logged). (For information about Windows PowerShell providers, type:
"get-help about_provider".
Чтобы включить Log*Event, введите имя переменной со значением $true, например:
$LogCommandLifeCycleEvent
- or -
$LogCommandLifeCycleEvent = $true
Чтобы отключить тип события, введите имя переменной со значением $false, например:
$LogCommandLifeCycleEvent = $false
Включенные события действительны только для текущего сеанса Windows PowerShell. Чтобы применить конфигурацию ко всем сеансам, сохраните значения переменных в своем профиле Windows PowerShell.
$MaximumAliasCount
------------------
Определяет, сколько псевдонимов разрешается использовать в сеансе Windows PowerShell. Значения по умолчанию, 4096, должно быть достаточно для большинства пользователей, но вы можете настроить его в соответствии со своими потребностями.
Valid values: 1024 - 32768 (Int32)
Default: 4096
To count the aliases on your system, type:
(get-alias).count
$MaximumDriveCount
------------------
Определяет, сколько дисков Windows PowerShell разрешается использовать в определенном сеансе. В их число входят диски файловой системы и хранилища данных, которые предоставлены поставщиками Windows PowerShell и отображаются как диски, например Alias и HKLM .
Valid values: 1024 - 32768 (Int32)
Default: 4096
To count the aliases on your system, type:
(get-psdrive).count
$MaximumErrorCount
------------------
Определяет, сколько ошибок сохраняется в журнале событий сеанса.
Valid values: 256 - 32768 (Int32)
Default: 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 этот командлет выводит свойства и методы объектов в коллекции. При использовании параметра InputObject командлета Get-Member, этот командлет выводит свойства и методы коллекции.
$MaximumFunctionCount
------------------
Определяет, сколько функций разрешается использовать в определенном сеансе.
Valid values: 1024 - 32768 (Int32)
Default: 4096
Чтобы просмотреть функции сеанса, используйте диск Windows PowerShell Function:, предоставленный поставщиком Windows PowerShell Function. (Чтобы получить дополнительные сведения о поставщике Function, введите команду "get-help function").
Чтобы получить список функций текущего сеанса, введите:
get-childitem function:
Чтобы сосчитать функции в текущем сеансе, введите:
(get-childitem function:).count
$MaximumHistoryCount
------------------
Определяет, сколько команд сохраняется в журнале команд текущего сеанса.
Valid values: 1 - 32768 (Int32)
Default: 4096
Чтобы определить количество команд, сохраненных в журнале на данный момент, введите следующую команду:
(get-history).count
Чтобы просмотреть команду, сохраненную в журнале сеанса, используйте командлет Get-History. Дополнительные сведения см. в статье "about_History" (https://go.microsoft.com/fwlink/?LinkID=113233).
ПРИМЕЧАНИЕ. В Windows PowerShell 2.0 значение переменной $MaximumHistoryCount по умолчанию равно 64.
$MaximumVariableCount
------------------
Определяет, сколько переменных разрешается использовать в определенном сеансе, включая автоматические переменные, переменные настройки и переменные, создаваемые в командах и сценариях.
Valid values: 1024 - 32768 (Int32)
Default: 4096
Чтобы просмотреть переменные в сеансе, используйте командлет Get-Variable с функциями диска Windows PowerShell Variable: и поставщика Windows PowerShell Variable. Чтобы получить дополнительные сведения о поставщике Variable, введите команду "get-help variable".
Чтобы определить текущее количество переменных в системе, введите следующую команду:
(get-variable).count
$OFS
----
Разделитель выходных полей. Указывает символ, разделяющий элементы массива при его преобразовании в строку.
Valid values: Any string.
Default: Space
По умолчанию переменной $OFS не существует, а разделителем выходных файлов является пробел, но вы можете добавить эту переменную и настроить ее для любой строки.
ПРИМЕРЫ
В этом примере показано, что для разделения значений при преобразовании массива в строку используется пробел. В этом случае в переменной хранится массив целых чисел, а затем переменная преобразуется в строку.
PS> $array = 1,2,3 # Store an array of integers.
PS> [string]$array # Cast the array to a string.
1 2 3 # Spaces separate the elements
Чтобы изменить разделитель, добавьте переменную $OFS, присвоив ей значение. Для правильной работы переменная должна иметь имя $OFS.
PS> $OFS = "+" # Create $OFS and assign a "+"
PS> [string]$array # Repeat the command
1+2+3 # Plus signs separate the elements
Чтобы восстановить поведение по умолчанию, вы можете присвоить переменной $OFS значение пробела (" ") или удалить переменную. Эта команда удаляет переменную, а затем проверяет, используется ли пробел в качестве разделителя.
PS> Remove-Variable OFS # Delete $OFS
PS>
PS> [string]$array # Repeat the command
1 2 3 # Spaces separate the elements
$OutputEncoding
---------------
Определяет метод кодирования символов, который Windows PowerShell использует при отправке текста в другие приложения.
Например, если приложение возвращает строки с кодировкой Юникод в Windows PowerShell, вам может потребоваться изменить значение на UnicodeEncoding для правильной отправки символов.
Valid values: Objects derived from an Encoding class, such as
ASCIIEncoding, SBCSCodePageEncoding, UTF7Encoding,
UTF8Encoding, UTF32Encoding, and UnicodeEncoding.
Default: ASCIIEncoding object (System.Text.ASCIIEncoding)
ПРИМЕРЫ
В этом примере показано, как обеспечить правильную работу команды Windows FINDSTR в Windows PowerShell на компьютере, локализованном на языке, использующем символы Юникод, например китайском. Первая команда определяет значение переменной $OutputEncoding. Так как значение является объектом кодировки, выводится только его свойство EncodingName.
PS> $OutputEncoding.EncodingName # Find the current value
US-ASCII
В этом примере команда FINDSTR используется для поиска двух китайских символов, присутствующих в файле Test.txt. При запуске команды FINDSTR в командной строке Windows (Cmd.exe) эта команда находит символы в текстовом файле. Тем не менее, при выполнении такой же команды FINDSTR в Windows PowerShell найти символы не удается, так как Windows PowerShell отправляет их в команду FINDSTR в виде текста с кодировкой ASCII, а не Юникод.
PS> findstr <Unicode-characters> # Use findstr to search.
PS> # None found.
Чтобы команда работала в Windows PowerShell, присвойте переменной $OutputEncoding значение свойства OutputEncoding консоли, которое основано на языковом стандарте, выбранном в Windows. Так как OutputEncoding — это статическое свойство консоли, используйте в команде два двоеточия (::).
PS> $OutputEncoding = [console]::outputencoding
PS> # Set the value equal to the
OutputEncoding property of the
console.
PS> $OutputEncoding.EncodingName
OEM United States
# Find the resulting value.
После этого изменения команда FINDSTR находит символы.
PS> findstr <Unicode-characters>
test.txt: <Unicode-characters>
# Use findstr to search. It find the
characters in the text file.
$ProgressPreference
-------------------
Определяет, как Windows PowerShell реагирует на обновления хода выполнения, вызванные сценарием, командлетом или поставщиком, например индикаторы выполнения, созданные командлетом Write-Progress. Командлет Write-Progress создает индикаторы выполнения, которые показывают состояние команды.
Допустимые значения:
Stop: индикатор выполнения не отображается. Вместо этого отображается сообщение об ошибке и выполнение останавливается.
Inquire: индикатор выполнения не отображается. Запрашивается подтверждение. Если ввести Y или A, появится индикатор выполнения.
Continue (по умолчанию): показывает индикатор и продолжает выполнение.
SilentlyContinue: выполняет команду, но не отображает индикатор выполнения.
$PSEmailServer
--------------
Указывает почтовый сервер, который используется по умолчанию для отправки сообщений электронной почты. Эту переменную настройки использует командлеты, которые отправляют электронные сообщения, например Send-MailMessage.
$PSDefaultParameterValues
-------------------------
Указывает значения параметров по умолчанию для командлетов и расширенных функций. Значение переменной $PSDefaultParameterValues — это хэш-таблица, ключ которой состоит из имени командлета и имени параметра, разделенных двоеточием (:), а значение представляет пользовательское значение параметра по умолчанию.
Эта переменная появилась в Windows PowerShell 3.0.
Дополнительные сведения об этой переменной настройки см. в статье "about_Parameters_Default_Values".
$PSModuleAutoloadingPreference
------------------------------
Включает и отключает автоматическое импортирование модулей в сеансе. По умолчанию используется значение All. Независимо от значения этой переменной вы можете использовать командлет Import-Module, чтобы импортировать модуль.
Допустимые значения:
All. Модули импортируются автоматически при первом использовании. Чтобы импортировать модуль, достаточно получить (Get-Command) или использовать любую команду модуля.
ModuleQualified
Модули импортируются автоматически, только если пользователь указывает имя команды с именем модуля. Например, если пользователь введет "MyModule\MyCommand", Windows PowerShell импортирует модуль MyModule.
None. Автоматический импорт модулей отключен для этого сеанса. Чтобы импортировать модуль, используйте командлет Import-Module.
Дополнительные сведения об автоматическом импорте модулей см в статье "about_Modules" (https://go.microsoft.com/fwlink/?LinkID=144311).
$PSSessionApplicationName
---------------------------
Указывает имя приложения по умолчанию для удаленной команды, использующей технологию WS-Management.
Системное имя приложения по умолчанию — WSMAN, но вы можете использовать эту переменную, чтобы изменить значение по умолчанию.
Имя приложения — это последний узел в URI подключения. Например, именем приложения в следующем примере URI является WSMAN.
http://Server01:8080/WSMAN
Имя приложения по умолчанию используется, если в удаленной команде не указан URI подключения или имя приложения.
Служба удаленного управления Windows (WinRM) использует имя приложения для выбора прослушивателя для обслуживания запроса на подключение. Значение этого параметра должно совпадать со значением свойства URLPrefix прослушивателя на удаленном компьютере.
Чтобы переопределить системное значение по умолчанию и значение этой переменной, а также выбрать другое имя приложения для определенного сеанса, используйте параметр ConnectionURI или ApplicationName командлета New-PSSession, Enter-PSSession или Invoke-Command.
Эта переменная настройки задается на локальном компьютере, но указывает прослушиватель на удаленном компьютере. Если указанное имя приложения не существует на удаленном компьютере, команда для создания сеанса завершается ошибкой.
$PSSessionConfigurationName
---------------------------
Указывает конфигурацию сеанса по умолчанию, которая используется для сеансов PSSessions, созданных во время текущего сеанса.
Эта переменная настройки задается на локальном компьютере, но указывает конфигурацию сеанса на удаленном компьютере.
Значением переменной $PSSessionConfigurationName является полный URI ресурса.
Значение по умолчанию:
https://schemas.microsoft.com/PowerShell/microsoft.PowerShell
указывает конфигурацию сеанса Microsoft.PowerShell на удаленном компьютере.
Если указать только имя конфигурации, добавляется следующий URI схемы:
https://schemas.microsoft.com/PowerShell/
Вы можете переопределить значение по умолчанию и выбрать другую конфигурацию для определенного сеанса с помощью параметра ConfigurationName командлета New-PSSession, Enter-PSSession или Invoke-Command.
Вы можете изменить значение этой переменной в любой момент. При этом помните, что выбранная конфигурация сеанса должна существовать на удаленном компьютере. Если это не так, команда для создания сеанса с использованием этой конфигурации не будет выполнена.
Эта переменная настройки не определяет, какие конфигурации локальных сеансов используются, когда удаленные пользователи создают сеанс с подключением к этому компьютеру. Тем не менее, вы можете использовать разрешения для локальных конфигураций сеансов, чтобы определить, какие пользователи могут использовать их.
$PSSessionOption
----------------
Задает значения по умолчанию для расширенных параметров пользователя в удаленном сеансе. Эти параметры заменяют системные значения по умолчанию.
Переменная $PSSessionOption содержит объект PSSessionOption (System.Management.Automation.Remoting.PSSessionObject). Каждое свойство объекта представляет параметр сеанса. Например, свойство NoCompression отключает сжатие данных во время сеанса.
По умолчанию переменная $PSSessionOption содержит объект PSSessionOption со значениями по умолчанию для всех параметров, как показано ниже.
MaximumConnectionRedirectionCo For descriptions of these options, see the help topic for the unt : 5
NoCompression : False
NoMachineProfile : False
ProxyAccessType : None
ProxyAuthentication : Negotiate
ProxyCredential :
SkipCACheck : False
SkipCNCheck : False
SkipRevocationCheck : False
OperationTimeout : 00:03:00
NoEncryption : False
UseUTF16 : False
IncludePortInSPN : False
OutputBufferingMode : None
Culture :
UICulture :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize : 209715200
ApplicationArguments :
OpenTimeout : 00:03:00
CancelTimeout : 00:01:00
IdleTimeout : -00:00:00.0010000
Описания этих параметров см. в справочной статье, посвященной командлету New-PSSessionOption.
Чтобы изменить значение переменной настройки $PSSessionOption, используйте командлет New-PSSessionOption для создания объекта PSSessionOption с предпочитаемыми значениями параметров. Сохраните выходные данные в переменной под названием $PSSessionOption.
Например,
$PSSessionOption = New-PSSessionOption -NoCompression
Чтобы использовать переменную настройки $PSSessionOption в каждом сеансе Windows PowerShell, добавьте команду New-PSSessionOption, которая создает переменную $PSSessionOption, в свой профиль Windows PowerShell.
Вы также можете задать настраиваемые параметры для определенного удаленного сеанса. Заданные параметры имеют приоритет над системными значениями по умолчанию и значением переменной настройки $PSSessionOption.
Чтобы задать пользовательские параметры сеанса, используйте командлет New-PSSessionOption для создания объекта PSSessionOption. Затем используйте объект PSSessionOption в качестве значения параметра SessionOption в командлетах, создающих сеанс, например New-PSSession, Enter-PSSession и Invoke-Command.
Дополнительные сведения о командлете 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 # Find the current value.
SilentlyContinue
PS> Write-Verbose "Verbose message test."
PS> # Write a verbose message.
# Message is not displayed.
PS> Write-Verbose "Verbose message test." -verbose
VERBOSE: Verbose message test.
# Use the Verbose parameter.
В этом примере показано влияние значения Continue.
PS> $VerbosePreference = "Continue"
# Change the value to Continue.
PS> Write-Verbose "Verbose message test."
# Write a verbose message.
VERBOSE: Verbose message test.
# Message is displayed.
PS> Write-Verbose "Verbose message test." -verbose:$false
# Use the Verbose parameter with
a value of $false.
PS>
# Message is not displayed.
В этом примере показано влияние значения Stop.
PS> $VerbosePreference = "Stop"
# Change the value to Stop.
PS> Write-Verbose "Verbose message test."
# Write a verbose message.
VERBOSE: Verbose message test.
Write-Verbose : Command execution stopped because the shell variable "VerbosePreference"
is set to Stop.
At line:1 char:14
+ Write-Verbose <<<< "Verbose message test."
PS> Write-Verbose "Verbose message test." -verbose:$false
# Use the Verbose parameter with
a value of $false
PS>
# Message is not displayed.
В этом примере показано влияние значения Inquire.
PS> $VerbosePreference = "Inquire"
# Change the value to Inquire.
PS> Write-Verbose "Verbose message test."
VERBOSE: Verbose message test.
# Write a verbose message.
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"): y
PS>
PS> Write-Verbose "Verbose message test." -verbose:$false
# Use the Verbose parameter.
PS>
# Message is not displayed.
$WarningPreference
------------------
Определяет, как Windows PowerShell реагирует на предупреждения, созданные сценарием, командлетом или поставщиком, например сообщения, созданные командлетом Write-Warning.
По умолчанию предупреждения выводятся, а затем выполнение продолжается, но вы можете изменить это, изменив значение переменной $WarningPreference.
Вы также можете использовать общий параметр WarningAction командлета, чтобы определить, как Windows PowerShell реагирует на предупреждения от определенной команды. Чтобы получить дополнительные сведения, введите следующую команду: "get-help about_commonparameters".
Допустимые значения:
Stop: выводит предупреждение и сообщение об ошибке, а затем останавливает выполнение.
Inquire: выводит предупреждение, а затем показывает запрос на продолжение.
Continue (по умолчанию): выводит предупреждение и продолжает выполнение.
SilentlyContinue: не выводит предупреждение. Продолжает выполнение.
ПРИМЕРЫ
Эти примеры демонстрируют влияние разных значений переменной $WarningPreference и использования общего параметра WarningAction для переопределения параметра.
В этом примере показан результат использования значения Continue, заданного по умолчанию.
PS> $WarningPreference # Find the current value.
Continue
# Write a warning message.
PS> Write-Warning "This action can delete data."
WARNING: This action can delete data.
# Use the WarningAction parameter to
# suppress the warning for this command
PS> Write-Warning "This action can delete data." -warningaction silentlycontinue
В этом примере показано влияние значения SilentlyContinue.
PS> $WarningPreference = "SilentlyContinue"
# Change the value to SilentlyContinue.
PS> Write-Warning "This action can delete data."
PS> # Write a warning message.
PS> Write-Warning "This action can delete data." -warningaction stop
# Use the WarningAction parameter to stop
# processing when this command generates a
# warning.
WARNING: This action can delete data.
Write-Warning : Command execution stopped because the shell variable
"WarningPreference" is set to Stop.
At line:1 char:14
+ Write-Warning <<<< "This action can delete data." -warningaction stop
В этом примере показано влияние значения Inquire.
PS> $WarningPreference = "Inquire"
# Change the value to Inquire.
PS> Write-Warning "This action can delete data."
# Write a warning message.
WARNING: This action can delete data.
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"): y
PS>
PS> Write-Warning "This action can delete data." -warningaction silentlycontinue
PS> # Use the WarningAction parameter to change the
# response to a warning for the current command.
В этом примере показано влияние значения Stop.
PS> $WarningPreference = "Stop"
# Change the value to Stop.
PS> Write-Warning "This action can delete data."
# Write a warning message.
WARNING: This action can delete data.
Write-Warning : Command execution stopped because the shell variable
"WarningPreference" is set to Stop.
At line:1 char:14
+ Write-Warning <<<< "This action can delete data."
PS> Write-Warning "This action can delete data." -warningaction inquire
WARNING: This action can delete data.
Confirm
Continue with this operation?
[Y] Yes [A] Yes to All [H] Halt Command [S] Suspend [?] Help (default is "Y"):
# Use the WarningAction parameter to change the
# response to a warning for the current command.
$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: Performing operation "Remove-Item" on Target "Item:
C:\test.txt
PS> get-childitem test.txt
Directory: 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 # Check the current value.
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Verify that the file exists.
PS> remove-item test.txt
PS> # Delete the file.
PS> get-childitem test.txt | format-list -property FullName
# Verify that the file is deleted.
Get-ChildItem : Cannot find path 'C:\test.txt' because it does not exist.
At line:1 char:14
+ get-childitem <<<< test.txt | format-list fullname
В этом примере показан результат использования параметра WhatIf, если значение $WhatIfPreference равно 0.
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Verify that the file exists.
PS> remove-item test2.txt -whatif
What if: Performing operation "Remove File" on Target "C:\test2.txt".
# Use the WhatIf parameter
PS> get-childitem test2.txt | format-list -property FullName
FullName : C:\test2.txt
# Verify that the file was not deleted
В этом примере показан результат использования значения 1 (режим WhatIf включен). При использовании командлета Remove-Item для удаления файла выводит путь к файлу, который был бы удален, но не удаляет файл.
PS> $whatifpreference = 1
PS> $whatifpreference
1 # Change the value.
PS> remove-item test.txt
What if: Performing operation "Remove File" on Target "C:\test.txt".
# Try to delete a file.
PS> get-childitem test.txt | format-list FullName
FullName : C:\test.txt
# Verify that the file exists.
В этом примере показано, как удалить файл, если значение переменной $WhatIfPreference равно 1. Используется параметр WhatIf со значением $false.
PS> remove-item test.txt -whatif:$false
# Use the WhatIf parameter with $false.
В этом примере показано, что одни командлеты поддерживают режим WhatIf, а другие нет. В этом примере, в котором значение $WhatIfPreference равно 1 (включено), команда Get-Process, которая не поддерживает режим WhatIf, выполняется, но команда Stop-Process работает в режиме WhatIf. Вы можете переопределить поведение команды Stop-Process с помощью параметра WhatIf со значением $false.
PS> $whatifpreference = 1
# Change the value to 1.
PS> get-process winword
# A Get-Process command completes.
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
234 8 6324 15060 154 0.36 2312 WINWORD
PS> stop-process -name winword
What if: Performing operation "Stop-Process" on Target "WINWORD (2312)".
# A Stop-Process command uses WhatIf.
PS> stop-process -name winword -whatif:$false
PS> # WhatIf:$false overrides the preference.
PS> get-process winword
Get-Process : Cannot find a process with the name 'winword'. Verify the process name
and call the cmdlet again.
At line:1 char:12
+ get-process <<<< winword
# Verify that the process is stopped.
СМ. ТАКЖЕ
about_Automatic_Variables
about_CommonParameters
about_Environment_Variables
about_Profiles
about_Remote about_Scopes