在 Azure Service Fabric VMSS 群集上启用长文件路径

Enabling long file paths on Azure Service Fabric VMSS cluster

我的 Azure Service Fabric 应用程序有时需要比 MAX_PATH 更长的路径,特别是考虑到工作目录的长度。因此,我想启用长文件路径(通过注册表的 LongPathsEnabled 值、通过组策略或通过一些其他机制,请参阅 https://superuser.com/questions/1119883/windows-10-enable-ntfs-long-paths-policy-option-missing)。但我不知道该怎么做。

集群在 Azure VMSS 上运行,因此我可以远程访问各个实例并手动设置它,但这当然不能很好地扩展。

更新:

@4c74356b41 的回答让我得到了大部分我需要去的地方。我的 VMSS 已经安装了 customScript 扩展,所以我实际上必须修改它以包含 PS 命令,这是我的最终命令:

# Get the existing VMSS configuration
$vmss = Get-AzVmss -ResourceGroupName <resourceGroup> -Name <vmss>

# inspect $vmss to determine which extension is the customScript, in ours it's at index 3. Note the existing commandToExecute blob, you'll need to modify it to add the additional PS command

# modify the existing Settings.commandToExecute blob to add the reg set command
$vmss.VirtualMachineProfile.ExtensionProfile.Extensions[3].Settings.commandToExecute = 'powershell -ExecutionPolicy Unrestricted -File AzureQualysCloudAgentPowerShell_v2.ps1 && powershell -c "Set-ItemProperty -Path HKLM:\System\ControlSet001\Control\FileSystem -Name LongPathsEnabled -Value 1"'

# update the VMSS with the new config
Update-AzVmss -ResourceGroupName $vmss.ResourceGroupName -Name $vmss.Name -VirtualMachineScaleSet $vmss

我建议使用脚本扩展和一个简单的 powershell 脚本来设置这个值。这将自动应用于所有实例(包括缩放时)。

{
    "apiVersion": "2018-06-01",
    "type": "Microsoft.Compute/virtualMachineScaleSet/extensions",
    "name": "config-app",
    "location": "[resourceGroup().location]",
    "properties": {
        "publisher": "Microsoft.Compute",
        "type": "CustomScriptExtension",
        "typeHandlerVersion": "1.9",
        "autoUpgradeMinorVersion": true,
        "settings": {
            "fileUris": []
        },
        "protectedSettings": {
            "commandToExecute": "powershell -c 'Set-Item HKLM:\System\CurrentControlSet\Policies\LongPathsEnabled -Value 1'"
        }
    }
}

这个命令本身可能有点不对,但是你可以在你的本地试验一下,把它弄好,然后把它放到脚本扩展中

https://docs.microsoft.com/en-us/azure/virtual-machines/extensions/custom-script-windows