Informations
Le sujet que vous avez demandé est indiqué ci-dessous. Toutefois, ce sujet ne figure pas dans la bibliothèque.

PackageUserInformation Class

Fournit des informations concernant les utilisateurs d'un package installé.

Important  Vous ne pouvez pas utiliser cette classe dans une application Windows Store.

Syntaxe


public ref class PackageUserInformation sealed 

Attributs

[MarshalingBehavior(Agile)]
[Version(0x06020000)]

Membres

PackageUserInformationClasse possède ces types de membres :

Méthodes

The PackageUserInformation Classe hérite des méthodes de Object Classe.

Propriétés

Le PackageUserInformationClasse a les propriétés suivantes.

PropriétéType d'accèsDescription

InstallState

En lecture seuleGets the install state of the package for the user.

UserSecurityId

En lecture seuleGets the security identifier (SID) of the package user.

 

Remarques

Pour énumérer les utilisateurs qui ont installé un package, utilisez la méthode PackageManager.FindUsers.

Exemples

Appelez la méthode PackageManager.FindUsers pour énumérer les utilisateurs qui ont installé un package. Cet exemple affiche les informations contenues dans la propriété PackageUserInformation.UserSecurityId.


void DisplayPackageUsers(
    Windows::Management::Deployment::PackageManager^ packageManager, 
    Windows::ApplicationModel::Package^ package)
{
    IIterable<Windows::Management::Deployment::PackageUserInformation^>^ packageUsers = 
        packageManager->FindUsers(package->Id->FullName);

    wcout << L"Users: ";

    std::for_each(begin(packageUsers), end(packageUsers), 
        [&](Windows::Management::Deployment::PackageUserInformation^ packageUser)
    {
        wstring stringSid;

        SidToAccountName(packageUser->UserSecurityId->Data(), stringSid);

        wcout << stringSid << L" ";
    });
    wcout << endl;
}

void SidToAccountName(wstring sidString, wstring& stringSid)
{
    PSID sid = NULL;

    if ( ConvertStringSidToSid(sidString.c_str(), &sid) )
    {
        DWORD nameCharCount = 0;
        DWORD domainNameCharCount = 0;
        SID_NAME_USE sidType;

        // determine how much space is required to store the name and domainName
        LookupAccountSid(NULL, sid, NULL, &nameCharCount, NULL, &domainNameCharCount, &sidType);

        wchar_t *name = new wchar_t[nameCharCount + 1]; // leave space for terminating null
        wchar_t *domainName = new wchar_t[domainNameCharCount + 1];

        ZeroMemory(name, (nameCharCount + 1) * sizeof(wchar_t));
        ZeroMemory(domainName, (domainNameCharCount + 1) * sizeof(wchar_t));

        try
        {
            if ( LookupAccountSid(NULL, sid, name, &nameCharCount, 
                    domainName, &domainNameCharCount, &sidType) )
            {
                stringSid = domainName;
                stringSid = stringSid + L"\\" + name;
            }
        }
        catch ( ... )
        {
            // do nothing, original SID will be used.
        }

        delete [] domainName;
        delete [] name;
    }

    if ( stringSid.length() == 0 )
        stringSid = sidString;

    if ( sid != NULL )
        LocalFree(sid);
}

Conditions requises

Client minimal pris en charge

Windows 8 [applications de bureau uniquement]

Serveur minimal pris en charge

Windows Server 2012 [applications de bureau uniquement]

Espace de noms

Windows.Management.Deployment
Windows::Management::Deployment [C++]

Métadonnées

Windows.winmd

Voir aussi

Exemples
Exemple d'énumération de packages d'applications
Exemple d'énumération de packages d'applications par nom et éditeur
Concepts
Packages et déploiement d'applications
Référence
PackageManager

 

 

Afficher:
© 2014 Microsoft