खोज…


वाक्य - विन्यास

  • $ PSCmdlet.ShouldProcess ( "लक्ष्य")
  • $ PSCmdlet.ShouldProcess ("लक्ष्य", "एक्शन")

पैरामीटर

पैरामीटर विवरण
लक्ष्य संसाधन को बदला जा रहा है।
कार्य ऑपरेशन किया जा रहा है। Cmdlet के नाम से चूक।

टिप्पणियों

$PSCmdlet.ShouldProcess() भी स्वचालित रूप से $PSCmdlet.ShouldProcess() आउटपुट के लिए एक संदेश लिखेंगे।

PS> Invoke-MyCmdlet -Verbose
VERBOSE: Performing the operation "Invoke-MyCmdlet" on target "Target of action"

जोड़ना -WhatIf और अपने cmdlet में समर्थन करें

function Invoke-MyCmdlet {
    [CmdletBinding(SupportsShouldProcess = $true)]
    param()
    # ...
}

एक तर्क के साथ ShouldProcess () का उपयोग करना

if ($PSCmdlet.ShouldProcess("Target of action")) {
    # Do the thing
}

का उपयोग करते समय -WhatIf :

What if: Performing the action "Invoke-MyCmdlet" on target "Target of action"

का उपयोग करते समय -Confirm :

Are you sure you want to perform this action?
Performing operation "Invoke-MyCmdlet" on target "Target of action"
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"):

पूर्ण उपयोग उदाहरण

अन्य उदाहरण स्पष्ट रूप से मुझे नहीं समझा सकते हैं कि सशर्त तर्क को कैसे ट्रिगर किया जाए।

इस उदाहरण से यह भी पता चलता है कि अंतर्निहित कमांड भी -फॉनफ्रेम ध्वज को सुनेंगे!

<#
Restart-Win32Computer
#>

function Restart-Win32Computer 
{
    [CmdletBinding(SupportsShouldProcess=$true,ConfirmImpact="High")]
    param (
    [parameter(Mandatory=$true,ValueFromPipeline=$true,ValueFromPipelineByPropertyName=$true)]
    [string[]]$computerName,
    [parameter(Mandatory=$true)]
    [string][ValidateSet("Restart","LogOff","Shutdown","PowerOff")] $action,
    [boolean]$force = $false
)
BEGIN {
# translate action to numeric value required by the method
switch($action) {
    "Restart"
    {
        $_action = 2
        break
    }
    "LogOff"
    {
        $_action = 0
        break
    }
    "Shutdown"
    {
        $_action = 2
        break
    }
    "PowerOff"
    {
        $_action = 8
        break
    }
}
# to force, add 4 to the value
if($force) 
{
    $_action += 4
}
write-verbose "Action set to $action"
}
PROCESS {
    write-verbose "Attempting to connect to $computername"
    # this is how we support -whatif and -confirm
    # which are enabled by the SupportsShouldProcess
    # parameter in the cmdlet bindnig
    if($pscmdlet.ShouldProcess($computername)) {
        get-wmiobject win32_operatingsystem -computername $computername | invoke-wmimethod -name Win32Shutdown -argumentlist $_action
    }
}
} 
#Usage:
#This will only output a description of the actions that this command would execute if -WhatIf is removed.
'localhost','server1'| Restart-Win32Computer -action LogOff -whatif 

#This will request the permission of the caller to continue with this item.
#Attention: in this example you will get two confirmation request because all cmdlets called by this cmdlet that also support ShouldProcess, will ask for their own confirmations...
'localhost','server1'| Restart-Win32Computer -action LogOff -Confirm


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow