C++ 如何在安装期间设置MSI中当前登录用户(或任何其他本地用户)的文件夹共享访问权限?

C++ 如何在安装期间设置MSI中当前登录用户(或任何其他本地用户)的文件夹共享访问权限?,c++,directory,wix,windows-installer,custom-action,C++,Directory,Wix,Windows Installer,Custom Action,使用的打包工具:WIX 自定义操作是用C++编写的。 安装过程中,MSI在程序数据中创建一个文件夹“X”,在安装结束时,我需要给当前登录用户(或PC中的任何本地用户)提供文件夹共享访问权,用户在安装过程中将提供该输入,我无法找到任何Wix元素或C++ API来帮助我解决这个问题。 我发现在wix中使用元素可以提供对文件夹的权限(文件夹属性的安全选项卡),但我找不到wix元素/C++API来提供共享权限。(文件属性的共享选项卡) 现在,如果你看到“每个人”都有读权限,通过我的MSI,我应该能够在共

使用的打包工具:WIX

自定义操作是用C++编写的。 安装过程中,MSI在程序数据中创建一个文件夹“X”,在安装结束时,我需要给当前登录用户(或PC中的任何本地用户)提供文件夹共享访问权,用户在安装过程中将提供该输入,我无法找到任何Wix元素或C++ API来帮助我解决这个问题。 我发现在wix中使用元素可以提供对文件夹的权限(文件夹属性的安全选项卡),但我找不到wix元素/C++API来提供共享权限。(文件属性的共享选项卡) 现在,如果你看到“每个人”都有读权限,通过我的MSI,我应该能够在共享中提供任何用户的完全访问(完全控制)


WiX在其Util扩展中具有这方面的功能:

文件:

Util dll中还有许多其他WiX特殊功能:

一个具体的实体模型示例:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Product Id="*" Name="WixFolderShare" Language="1033" Version="1.0.0.0" Manufacturer="Someone" UpgradeCode="b3d89acb-71d9-48ab-a3df-886d49965ea3">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"  />
    <MediaTemplate EmbedCab="yes" />
        
    <!--<UIRef Id="WixUI_Mondo" />--> <!-- Diabled main GUI -->
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

    <Feature Id="ProductFeature" Title="WixFolderShare" Level="1" />
    
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="Test Folder">

          <Component Feature="ProductFeature">

            <File Source="$(env.SystemRoot)\notepad.exe" />

            <util:User Id="Everyone" Name="Everyone" />

            <!-- Create Share with share permissions -->
            <util:FileShare Id="TestShare" Name="TestShareName" Description="This is a test share.">
              <util:FileSharePermission User="Everyone" GenericAll="yes"/>
            </util:FileShare>

            <!-- NTFS ACL permissions -->
            <CreateFolder>
              <util:PermissionEx User="Everyone" GenericAll="yes" />
            </CreateFolder>

          </Component>

      </Directory>
      </Directory>
    </Directory>

</Product>
</Wix>

WiX在其Util扩展中具有这方面的功能:

文件:

Util dll中还有许多其他WiX特殊功能:

一个具体的实体模型示例:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Product Id="*" Name="WixFolderShare" Language="1033" Version="1.0.0.0" Manufacturer="Someone" UpgradeCode="b3d89acb-71d9-48ab-a3df-886d49965ea3">
    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"  />
    <MediaTemplate EmbedCab="yes" />
        
    <!--<UIRef Id="WixUI_Mondo" />--> <!-- Diabled main GUI -->
    <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

    <Feature Id="ProductFeature" Title="WixFolderShare" Level="1" />
    
    <Directory Id="TARGETDIR" Name="SourceDir">
      <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLFOLDER" Name="Test Folder">

          <Component Feature="ProductFeature">

            <File Source="$(env.SystemRoot)\notepad.exe" />

            <util:User Id="Everyone" Name="Everyone" />

            <!-- Create Share with share permissions -->
            <util:FileShare Id="TestShare" Name="TestShareName" Description="This is a test share.">
              <util:FileSharePermission User="Everyone" GenericAll="yes"/>
            </util:FileShare>

            <!-- NTFS ACL permissions -->
            <CreateFolder>
              <util:PermissionEx User="Everyone" GenericAll="yes" />
            </CreateFolder>

          </Component>

      </Directory>
      </Directory>
    </Directory>

</Product>
</Wix>


添加了一个基于WiX-util组件的示例。添加了一个基于WiX-util组件的示例。我看到文章和代码讨论了文件共享。。有没有类似的文件夹共享方法?标签是什么?尝试安装该示例并检查所涉及的文件夹是否共享。您可以通过点击
Windows按钮
+点击
R
来执行此操作。现在键入
“fsmgmt.msc”
并按Enter键。选中“共享文件夹”。我看到文章和代码都在谈论文件共享。。有没有类似的文件夹共享方法?标签是什么?尝试安装该示例并检查所涉及的文件夹是否共享。您可以通过点击
Windows按钮
+点击
R
来执行此操作。现在键入
“fsmgmt.msc”
并按Enter键。选中“共享文件夹”。