Megosztás a következőn keresztül:


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

A parancsmagoknak megerősítést kell kérniük, amikor a Windows PowerShell-környezeten kívüli rendszer módosítására készülnek. Ha például egy parancsmag felhasználói fiók hozzáadására vagy egy folyamat leállítására készül, a parancsmagnak megerősítést kell kérnie a felhasználótól a folytatás előtt. Ezzel szemben, ha egy parancsmag egy Windows PowerShell-változó módosítására készül, a parancsmagnak nem kell megerősítést kérnie.

A megerősítési kérés létrehozásához 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 System.Management.Automation.Cmdlet.ShouldContinue (nem kötelező) metódusokat a megerősítési kérés üzenetének megjelenítéséhez.

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

A megerősítést kérő kérések támogatásához a parancsmagnak a parancsmag attribútum SupportsShouldProcess paraméterét trueértékre kell állítania. Ez lehetővé teszi a Windows PowerShell által biztosított Confirm és WhatIf parancsmagparamétereket. A Confirm paraméterrel a felhasználó szabályozhatja, hogy megjelenik-e a megerősítési kérelem. A WhatIf paraméter lehetővé teszi a felhasználó számára annak megállapítását, hogy a parancsmagnak meg kell-e jelennie egy üzenetnek, vagy végre kell hajtania a műveletét. Ne adja hozzá manuálisan a Confirm és WhatIf paramétereket egy parancsmaghoz.

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

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

A megerősítő kérés metódusainak meghívása

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

A ShouldContinue metódus meghívása

A legtöbb parancsmag csak a System.Management.Automation.Cmdlet.ShouldProcess metódussal 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ályozza az igen hatókörét az összes válaszra a megerősítést kérő üzenetre.

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

System.Management.Automation.Cmdlet.ShouldContinue kivételt eredményez, ha a rendszer nem interaktív környezetből hívja meg, ahol a felhasználó nem kérhető. Egy Force paraméter hozzáadása biztosítja, hogy a parancs továbbra is végrehajtható legyen, amikor nem interaktív környezetben hívja meg.

Az alábbi példa bemutatja, hogyan hívhatja meg System.Management.Automation.Cmdlet.ShouldProcess és 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 attól függően változhat, hogy milyen környezetben hívja meg a parancsmagot. Az előző irányelvek segítségével biztosítható, hogy a parancsmag a gazdakörnyezettől függetlenül következetesen viselkedjen más parancsmagokkal.

A System.Management.Automation.Cmdlet.ShouldProcess metódus meghívására példa: Visszaigazolások kérése.

Az érintettségi szint 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 ConfirmImpact paraméterének értékét Magas, Közepes vagy Alacsony értékre. Csak akkor adhat meg értéket ConfirmImpact, ha a parancsmag SupportsShouldProcess paraméterét is megadja.

A legtöbb parancsmag esetében nem kell explicit módon megadnia ConfirmImpact. Ehelyett használja a paraméter alapértelmezett beállítását, amely közepes. Ha a ConfirmImpact magas értékre állítja, a művelet alapértelmezés szerint megerősítést kap. Tartsa fenn ezt a beállítást rendkívül zavaró műveletekhez, például egy merevlemez-kötet újraformázásához.

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

Ha a parancsmagnak vagy a szolgáltatónak üzenetet kell küldenie, de nem kell megerősítést kérnie, az alábbi 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 System.Management.Automation.Cmdlet.WriteObject kimenete a parancsmag vagy a szolgáltató normál kimenetével van meghatározva, ami megnehezíti a szkriptek írását.

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

Ehhez hívja meg a System.Management.Automation.Cmdlet.ShouldProcess metódust, amely arra kéri a felhasználót, hogy erősítse meg a műveletet a parancs meghívása alapján.

Lásd még:

Windows PowerShell-parancsmag írása