Durante la instalación de cierto software, el usuario final necesitará permisos en la carpeta.
Sin embargo, en un contexto donde el usuario no es administrador, esto plantea un problema.
La solución que utilizo es la siguiente:
- un paquete que instala un módulo de PowerShell (que, por lo tanto, se convierte en una dependencia del software)
- un script para cambiar los permisos.
Se otorgan derechos en una carpeta específica para usuarios autenticados (cualquier otro grupo puede cambiarlos).
El módulo de PowerShell es NTFSSecurity, disponible aquí: https://gallery.technet.microsoft.com/s ... dbb2b84e85
El paquete utilizado para instalarlo contiene este código:
Código: Seleccionar todo
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = []
targetPWSH = makepath(programfiles,'WindowsPowerShell\Modules\NTFSSecurity')
folderPWSH = 'NTFSSecurity'
def install():
#copie du module Powershell
if (isdir(targetPWSH) != True) :
mkdirs(targetPWSH)
copytree2(folderPWSH,targetPWSH)Código: Seleccionar todo
#Autorisation d'accès au dossier pour les utilisateurs loggés
Install-Module NTFSSecurity
$Path = "CHEMIN DU DOSSIER POUR LES DROITS"
#Désactivation de l'héritage
Get-Item $Path | Disable-NTFSAccessInheritance
Add-NTFSAccess –Path $Path -Account "Utilisateurs authentifiés" -AccessRights FullControl- Para convertir su paquete de instalación de NTFSSecurity en una dependencia,
- Coloque un archivo .ps1 con el código de PowerShell en la parte superior,
- Ejecute el script en su función def install() con el comando:
Código: Seleccionar todo
run('powershell.exe -NoProfile -NonInteractive -executionpolicy bypass -File FICHIER.ps1')