Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 felhasználó figyelmeztetése és a művelet folytatása érdekében a parancsmag vagy a szolgáltató meghívhatja a System.Management.Automation.Cmdlet.WriteWarning metódust.
A
Verboseparaméterrel lekérhető további információk megadásához a parancsmag vagy a szolgáltató meghívhatja a System.Management.Automation.Cmdlet.WriteVerbose metódust.Ha hibakeresési szintű részleteket szeretne nyújtani más fejlesztőknek vagy terméktámogatásnak, a parancsmag vagy a szolgáltató meghívhatja a System.Management.Automation.Cmdlet.WriteDebug metódust. A felhasználó a
Debugparaméterrel tudja lekérni ezeket az adatokat.
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.