Поделиться через


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          https://schemas.microsoft.com/powershell/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.       Никакие действия командлета не требуют подтверждения 
                    автоматически. Пользователям следует использовать параметр Confirm, 
                    чтобы запрос подтверждения выполнялся для конкретных команд.

        Low.        Действия командлета с низким, средним или высоким риском 
                    автоматически требуют подтверждения. Чтобы отменить подтверждение 
                    конкретной команды, используйте параметр -Confirm:$false.

        Medium.     Действия командлета со средним или высоким риском автоматически 
                    требуют подтверждения. Чтобы включить подтверждение для конкретной 
                            команды, используйте параметр -confirm. Чтобы отменить подтверждение 
                            конкретной команды, используйте значение confirm:$false.

        High.       Действия командлета с высоким риском автоматически 
       (по умолчанию)   требуют подтверждения. Чтобы включить подтверждение для конкретной 
                            команды, используйте параметр -confirm. Чтобы отменить подтверждение 
                            для конкретной команды, используйте значение -confirm:$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  #Используется параметр Confirm для 
                              отключения запроса подтверждения 
          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>                                             
                                # Сообщение об ошибке не отображается, выполнение продолжается.

    Этот пример показывает, что произойдет, если задано значение "SilentlyContinue".

        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], ItemNotFoundException

 
   Этот пример показывает, что значение переменой $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(Stringpath, 
             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  
        добавляет многоточие (...) для обозначения неотображенных элементов.

        Допустимые значения: целые числа (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, AudioSrv...}   
           41 Stopped                   {Alerter, AppMgmt, aspnet_state, ATI Smart...}

                                           # Список усекается после 
                                             4-го элемента.


        PS> $formatenumerationlimit = 1000
                                           # Предел увеличивается до 1000.
        
        PS> get-service | group-object -property status           
                                           # Команда повторяется.

        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
                                           # Добавляется параметр Wrap.

        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, 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 ресурса. 

       Значение по умолчанию: 

         https://schemas.microsoft.com/powershell/microsoft.powershell 

       задает конфигурацию сеансов Microsoft.PowerShell на удаленном 
       компьютере. 

       Если задать только имя конфигурации, в начало будет добавлен 
       следующий URI схемы:

           https://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   



   Этот пример показывает, что произойдет, если задано значение "SilentlyContinue".

            PS> $WarningPreference = "SilentlyContinue"           
                                      # Значение изменяется на \\"SilentlyContinue\\".
 
            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 ProcessName
            -------  ------    -----      ----- -----   ------     -- -----------
                234       8     6324      15060   154     0.36   2312 WINWORD


           PS> stop-process -name winword
           What if: Выполнение операции "Stop-Process" над целевым объектом "WINWORD (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