Anpassad åtgärdssäkerhet
Installationsprogrammet kör anpassade åtgärder med användarbehörigheter som standard för att begränsa åtkomsten för anpassade åtgärder till systemet. Installationsprogrammet kan köra anpassade åtgärder med förhöjd behörighet om ett hanterat program installeras eller om systemprincipen har angetts för utökade privilegier.
Du bör använda egenskapen MsiHiddenProperties och msidbCustomActionTypeHideTarget för att förhindra loggning av känslig information som används av den anpassade åtgärden. Mer information om msidbCustomActionTypeHideTarget se dolt målalternativ för anpassad åtgärd.
Rensa egenskapen CustomActionData när du har angett den för att säkerställa att känsliga data inte längre är tillgängliga. Exempelkoden nedan är ett kodfragment som används av en omedelbar anpassad DLL-åtgärd som konfigurerar data för användning av en uppskjuten anpassad åtgärd med namnet "MyDeferredCA":
#include <windows.h>
#include <Msiquery.h>
#pragma comment(lib, "msi.lib")
UINT __stdcall MyImmediateCA(MSIHANDLE hInstall)
{
// set up information for deferred custom action called MyDeferredCA
const TCHAR szValue[] = TEXT("data");
UINT uiStat = ERROR_INSTALL_FAILURE;
if (ERROR_SUCCESS == MsiSetProperty(hInstall, TEXT("MyDeferredCA"), szValue))
{
uiStat = MsiDoAction(hInstall, TEXT("MyDeferredCA"));
// clear CustomActionData property
if (ERROR_SUCCESS != MsiSetProperty(hInstall, TEXT("MyDeferredCA"), TEXT("")))
return ERROR_INSTALL_FAILURE;
}
return (uiStat == ERROR_SUCCESS) ? uiStat : ERROR_INSTALL_FAILURE;
}
Observera att endast anpassade åtgärder för uppskjuten körning kan använda attributet msidbCustomActionTypeNoImpersonate. Mer information finns i anpassade åtgärder In-Script körningsalternativ.
Om msidbCustomActionTypeNoImpersonate bit inte har angetts för en anpassad åtgärd kör installationsprogrammet den anpassade åtgärden med behörigheter på användarnivå. Mer information finns i anpassade åtgärder In-Script körningsalternativ.
Om msidbCustomActionTypeNoImpersonate bit har angetts och ett hanterat program installeras med administratörsbehörighet kan installationsprogrammet köra den anpassade åtgärden med utökade privilegier. Men om en användare försöker installera det hanterade programmet utan administratörsbehörighet kör installationsprogrammet programmet med behörigheter på användarnivå oavsett om msidbCustomActionTypeNoImpersonate har angetts.
Observera att en anpassad åtgärd kan köras med systembehörigheter även när msidbCustomActionTypeNoImpersonate bit inte har angetts. Detta inträffar om en administratör installerar programmet för alla användare på en server som kör rolltjänsten Terminal Server med Windows 2000 och åtgärden inte har markerats med msidbCustomActionTypeTSAware. En anpassad åtgärd kan också köras med systembehörigheter om installationen anropas när det inte finns någon användarkontext. Om det till exempel inte finns någon inloggad användare under en installation som anropas av Windows 2000 Application Deployment.
När du skapar egna anpassade åtgärder bör du alltid skapa den anpassade åtgärden med hjälp av säkra metoder. Mer information finns i Riktlinjer för att skydda anpassade åtgärder.