Megerősítés kérése parancsmagoktól

A parancsmagok akkor kérik a megerősítést, amikor a környezeten kívüli rendszert Windows PowerShell módosítani. Ha például egy parancsmag felhasználói fiókot szeretne hozzáadni vagy le szeretne állítani egy folyamatot, a parancsmagnak a folytatás előtt meg kell erősítenie a felhasználótól. Ezzel szemben, ha egy parancsmag módosítani fog egy Windows PowerShell változót, a parancsmagnak nem kell megerősítést igényelni.

A megerősítési kérés igényléséhez a parancsmagnak jeleznie kell, hogy támogatja a megerősítési kéréseket, és meg kell hívnia a System.Management.Automation.Cmdlet.ShouldProcess és a System.Management.Automation.Cmdlet.ShouldContinue (nem kötelező) metódusokat a megerősítést kérő üzenet megjelenítéséhez.

Megerősítő kérések támogatása

A megerősítési kérések támogatásához a parancsmagnak a Parancsmag attribútum paraméterét SupportsShouldProcess a következőre kell beállítania: true . Ez engedélyezi a és Confirm WhatIf a parancsmag paramétereit, amelyek a Windows PowerShell. A Confirm paraméterrel a felhasználó szabályozhatja, hogy a megerősítő kérés megjelenik-e. A paraméter lehetővé teszi a felhasználó számára annak megállapítását, hogy a parancsmag megjelenítsen-e WhatIf üzenetet vagy hajtsa végre a műveletet. Ne adja hozzá manuálisan a Confirm és WhatIf a paramétert egy parancsmaghoz.

Az alábbi példa egy parancsmag-attribútumdeklarációt mutat be, amely támogatja a megerősítési kéréseket.

[Cmdlet(VerbsDiagnostic.Test, "RequestConfirmationTemplate1",
        SupportsShouldProcess = true)]

A megerősítési kérés metódusának hívása

A parancsmag kódban hívja meg a System.Management.Automation.Cmdlet.ShouldProcess metódust a rendszert módosító művelet előtt. A parancsmagot úgy kell tervezni, hogy ha a hívás értéket ad vissza, a művelet ne legyen hajtva végre, és a parancsmag feldolgozza a false következő műveletet.

A ShouldContinue metódus hívása

A legtöbb parancsmag csak a System.Management.Automation.Cmdlet.ShouldProcess metódus használatával kér megerősítést. Egyes esetekben azonban további megerősítésre lehet szükség. Ezekben az esetekben egészítse ki a System.Management.Automation.Cmdlet.ShouldProcess hívást a System.Management.Automation.Cmdlet.ShouldContinue metódus hívásával. Ez lehetővé teszi, hogy a parancsmag vagy a szolgáltató pontosabban szabályozni tudja az Igen a megerősítési kérésre adott összes válasz hatókörét.

Ha egy parancsmag a System.Management.Automation.Cmdlet.ShouldContinue metódust hívja meg, a parancsmagnak egy kapcsolóparamétert is meg kell Force adnia. Ha a felhasználó megadja, hogy a felhasználó mikor hívja meg a parancsmagot, a parancsmagnak továbbra is meg kell hívnia a Force System.Management.Automation.Cmdlet.ShouldProcessmetódust, de meg kell kerülnie a System.Management.Automation.Cmdlet.ShouldContinuehívását.

A System.Management.Automation.Cmdlet.ShouldContinue kivételt ad vissza, amikor nem interaktív környezetből hívják meg, ahol a felhasználó nem kérhető. A paraméter hozzáadása biztosítja, hogy a parancs akkor is elvégezhető legyen, ha nem interaktív környezetben Force hívja meg.

Az alábbi példa bemutatja, hogyan hívható meg a System.Management.Automation.Cmdlet.ShouldProcess és a System.Management.Automation.Cmdlet.ShouldContinue.

if (ShouldProcess (...) )
{
  if (Force || ShouldContinue(...))
  {
     // Add code that performs the operation.
  }
}

A System.Management.Automation.Cmdlet.ShouldProcess hívás viselkedése a parancsmag meghívásának környezetétől függően változhat. Az előző irányelvek segítségével biztosíthatja, hogy a parancsmag konzisztensen viselkedjen más parancsmagokkal, a gazdakörnyezettől függetlenül.

A System.Management.Automation.Cmdlet.ShouldProcess metódus hívására vonatkozó példáért lásd: Megerősítés kérése.

A hatásszint megadása

A parancsmag létrehozásakor adja meg a módosítás hatásszintét (súlyosságát). Ehhez állítsa a Parancsmag attribútum paraméterének értékét ConfirmImpact Magas, Közepes vagy Alacsony értékre. A értékét csak akkor adhatja meg, ha a parancsmag paraméterét ConfirmImpact SupportsShouldProcess is megadja.

A legtöbb parancsmaghoz nem kell explicit módon megadnia a ConfirmImpact értéket. Ehelyett használja a paraméter alapértelmezett beállítását, amely Közepes. Ha a Magas értéket adja meg, a rendszer alapértelmezés szerint ConfirmImpact megerősíti a műveletet. Ezt a beállítást nagy mértékben zavaró műveletekhez, például merevlemez-kötet újraformálálása esetén foglalhatja le.

Nem megerősítő metódusok hívása

Ha a parancsmagnak vagy a szolgáltatónak üzenetet kell küldenie, de nem kell megerősítést kérnie, a következő három metódust hívhatja meg. Kerülje a System.Management.Automation.Cmdlet.WriteObject metódust az ilyen típusú üzenetek küldésére, mert a System.Management.Automation.Cmdlet.WriteObject kimenete a parancsmag vagy a szolgáltató normál kimenetével van megszűkülve, ami megnehezíti a szkriptírást.

A parancsmagok és a szolgáltatók először a következő metódusokat hívják meg a megerősítés kéréséhez, mielőtt megkísérelnek végrehajtani egy olyan műveletet, amely a rendszeren kívül Windows PowerShell:

Ezt a System.Management.Automation.Cmdlet.Shouldprocess metódus meghívásával ják meg, amely a művelet megerősítését kéri a felhasználótól a parancs meghívásának módja alapján.

Lásd még:

Windows PowerShell-parancsmag írása