DSCResources/AzureFileSyncAgent/AzureFileSyncAgent.psm1

function Get-TargetResource
਍笀ഀഀ
    [CmdletBinding()]
    嬀伀甀琀瀀甀琀吀礀瀀攀⠀嬀匀礀猀琀攀洀⸀䌀漀氀氀攀挀琀椀漀渀猀⸀䠀愀猀栀琀愀戀氀攀崀⤀崀ഀഀ
    param
    ⠀ഀഀ
        [parameter(Mandatory = $true)]
        嬀匀礀猀琀攀洀⸀匀琀爀椀渀最崀ഀഀ
        $AzureSubscriptionId,
਍ഀഀ
        [parameter(Mandatory = $true)]
        嬀匀礀猀琀攀洀⸀匀琀爀椀渀最崀ഀഀ
        $AzureFileSyncResourceGroup,
਍ഀഀ
        [parameter(Mandatory = $true)]
        嬀匀礀猀琀攀洀⸀匀琀爀椀渀最崀ഀഀ
        $AzureFileSyncInstanceName,
਍ഀഀ
        [parameter(Mandatory = $true)]
        嬀匀礀猀琀攀洀⸀䴀愀渀愀最攀洀攀渀琀⸀䄀甀琀漀洀愀琀椀漀渀⸀倀匀䌀爀攀搀攀渀琀椀愀氀崀ഀഀ
        $AzureCredential
    ⤀ഀഀ

    ␀渀甀氀氀  䤀洀瀀漀爀琀ⴀ䴀漀搀甀氀攀 ∀䌀㨀尀倀爀漀最爀愀洀 䘀椀氀攀猀尀䄀稀甀爀攀尀匀琀漀爀愀最攀匀礀渀挀䄀最攀渀琀尀匀琀漀爀愀最攀匀礀渀挀⸀䴀愀渀愀最攀洀攀渀琀⸀倀漀眀攀爀匀栀攀氀氀⸀䌀洀搀氀攀琀猀⸀搀氀氀∀ ⴀ圀愀爀渀椀渀最䄀挀琀椀漀渀 匀椀氀攀渀琀氀礀䌀漀渀琀椀渀甀攀ഀഀ

    ␀渀甀氀氀  䰀漀最椀渀ⴀ䄀稀甀爀攀刀洀匀琀漀爀愀最攀匀礀渀挀 ⴀ匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ⴀ䌀爀攀搀攀渀琀椀愀氀 ␀䄀稀甀爀攀䌀爀攀搀攀渀琀椀愀氀ഀഀ

   ഀഀ
    Write-Verbose "ComputerName for verifying if node is already registered with Azure: $($env:COMPUTERNAME)"
    ഀഀ
    $Registered = Get-AzureRmStorageSyncServer -SubscriptionId $AzureSubscriptionId -ResourceGroupName $AzureFileSyncResourceGroup -StorageSyncServiceName $AzureFileSyncInstanceName | Select-Object *,@{n='ComputerName';e={$PSitem.DisplayName.Split('.')[0]}} | Where-Object ComputerName -eq $env:COMPUTERNAME
    ഀഀ
    Write-Verbose "Number of registered instances with ComputerName $($env:COMPUTERNAME) : $(@($Registered).Count)"
਍ഀഀ
     $returnValue = @{
        䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀  ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀ഀഀ
        AzureFileSyncResourceGroup = $AzureFileSyncResourceGroup
        䄀稀甀爀攀䘀椀氀攀匀礀渀挀䤀渀猀琀愀渀挀攀一愀洀攀  ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀䤀渀猀琀愀渀挀攀一愀洀攀ഀഀ
        AzureCredential = $AzureCredential
    紀ഀഀ

    ␀爀攀琀甀爀渀嘀愀氀甀攀ഀഀ
    
਍紀ഀഀ

਍ഀഀ
function Set-TargetResource
਍笀ഀഀ
    [CmdletBinding()]
    瀀愀爀愀洀ഀഀ
    (
        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.String]
        ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀Ⰰഀഀ

        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.String]
        ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀刀攀猀漀甀爀挀攀䜀爀漀甀瀀Ⰰഀഀ

        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.String]
        ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀䤀渀猀琀愀渀挀攀一愀洀攀Ⰰഀഀ

        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.Management.Automation.PSCredential]
        ␀䄀稀甀爀攀䌀爀攀搀攀渀琀椀愀氀ഀഀ
    )
਍ഀഀ
    
    ␀渀甀氀氀  䤀洀瀀漀爀琀ⴀ䴀漀搀甀氀攀 ∀䌀㨀尀倀爀漀最爀愀洀 䘀椀氀攀猀尀䄀稀甀爀攀尀匀琀漀爀愀最攀匀礀渀挀䄀最攀渀琀尀匀琀漀爀愀最攀匀礀渀挀⸀䴀愀渀愀最攀洀攀渀琀⸀倀漀眀攀爀匀栀攀氀氀⸀䌀洀搀氀攀琀猀⸀搀氀氀∀ ⴀ圀愀爀渀椀渀最䄀挀琀椀漀渀 匀椀氀攀渀琀氀礀䌀漀渀琀椀渀甀攀ഀഀ

    ␀渀甀氀氀  䰀漀最椀渀ⴀ䄀稀甀爀攀刀洀匀琀漀爀愀最攀匀礀渀挀 ⴀ匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ⴀ䌀爀攀搀攀渀琀椀愀氀 ␀䄀稀甀爀攀䌀爀攀搀攀渀琀椀愀氀ഀഀ

    ␀渀甀氀氀  刀攀最椀猀琀攀爀ⴀ䄀稀甀爀攀刀洀匀琀漀爀愀最攀匀礀渀挀匀攀爀瘀攀爀 ⴀ匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ⴀ刀攀猀漀甀爀挀攀䜀爀漀甀瀀一愀洀攀 ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀刀攀猀漀甀爀挀攀䜀爀漀甀瀀 ⴀ匀琀漀爀愀最攀匀礀渀挀匀攀爀瘀椀挀攀一愀洀攀 ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀䤀渀猀琀愀渀挀攀一愀洀攀ഀഀ

਍ഀഀ
}
਍ഀഀ

਍昀甀渀挀琀椀漀渀 吀攀猀琀ⴀ吀愀爀最攀琀刀攀猀漀甀爀挀攀ഀഀ
{
    嬀䌀洀搀氀攀琀䈀椀渀搀椀渀最⠀⤀崀ഀഀ
    [OutputType([System.Boolean])]
    瀀愀爀愀洀ഀഀ
    (
        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.String]
        ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀Ⰰഀഀ

        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.String]
        ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀刀攀猀漀甀爀挀攀䜀爀漀甀瀀Ⰰഀഀ

        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.String]
        ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀䤀渀猀琀愀渀挀攀一愀洀攀Ⰰഀഀ

        嬀瀀愀爀愀洀攀琀攀爀⠀䴀愀渀搀愀琀漀爀礀  ␀琀爀甀攀⤀崀ഀഀ
        [System.Management.Automation.PSCredential]
        ␀䄀稀甀爀攀䌀爀攀搀攀渀琀椀愀氀ഀഀ
    )
਍ഀഀ
    Write-Verbose "Variable AzureFileSyncSubscriptionId is $AzureSubscriptionId"
    圀爀椀琀攀ⴀ嘀攀爀戀漀猀攀 ∀嘀愀爀椀愀戀氀攀 䄀稀甀爀攀䘀椀氀攀匀礀渀挀刀攀猀漀甀爀挀攀䜀爀漀甀瀀 椀猀 ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀刀攀猀漀甀爀挀攀䜀爀漀甀瀀∀ഀഀ
    Write-Verbose "Variable AzureFileSyncInstanceName is $AzureFileSyncInstanceName"
    圀爀椀琀攀ⴀ嘀攀爀戀漀猀攀 ∀唀猀攀爀渀愀洀攀 昀漀爀 挀爀攀搀攀渀琀椀愀氀 漀戀樀攀挀琀 䄀稀甀爀攀䌀爀攀搀攀渀琀椀愀氀 椀猀 ␀⠀␀䄀稀甀爀攀䌀爀攀搀攀渀琀椀愀氀⸀唀猀攀爀一愀洀攀⤀∀ഀഀ

    ␀渀甀氀氀  䤀洀瀀漀爀琀ⴀ䴀漀搀甀氀攀 ∀䌀㨀尀倀爀漀最爀愀洀 䘀椀氀攀猀尀䄀稀甀爀攀尀匀琀漀爀愀最攀匀礀渀挀䄀最攀渀琀尀匀琀漀爀愀最攀匀礀渀挀⸀䴀愀渀愀最攀洀攀渀琀⸀倀漀眀攀爀匀栀攀氀氀⸀䌀洀搀氀攀琀猀⸀搀氀氀∀ ⴀ圀愀爀渀椀渀最䄀挀琀椀漀渀 匀椀氀攀渀琀氀礀䌀漀渀琀椀渀甀攀ഀഀ

    ␀渀甀氀氀  䰀漀最椀渀ⴀ䄀稀甀爀攀刀洀匀琀漀爀愀最攀匀礀渀挀 ⴀ匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ⴀ䌀爀攀搀攀渀琀椀愀氀 ␀䄀稀甀爀攀䌀爀攀搀攀渀琀椀愀氀ഀഀ
   
    圀爀椀琀攀ⴀ嘀攀爀戀漀猀攀 ∀䌀漀洀瀀甀琀攀爀一愀洀攀 昀漀爀 瘀攀爀椀昀礀椀渀最 椀昀 渀漀搀攀 椀猀 愀氀爀攀愀搀礀 爀攀最椀猀琀攀爀攀搀 眀椀琀栀 䄀稀甀爀攀㨀 ␀⠀␀攀渀瘀㨀䌀伀䴀倀唀吀䔀刀一䄀䴀䔀⤀∀ഀഀ
    
    ␀刀攀最椀猀琀攀爀攀搀  䜀攀琀ⴀ䄀稀甀爀攀刀洀匀琀漀爀愀最攀匀礀渀挀匀攀爀瘀攀爀 ⴀ匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ␀䄀稀甀爀攀匀甀戀猀挀爀椀瀀琀椀漀渀䤀搀 ⴀ刀攀猀漀甀爀挀攀䜀爀漀甀瀀一愀洀攀 ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀刀攀猀漀甀爀挀攀䜀爀漀甀瀀 ⴀ匀琀漀爀愀最攀匀礀渀挀匀攀爀瘀椀挀攀一愀洀攀 ␀䄀稀甀爀攀䘀椀氀攀匀礀渀挀䤀渀猀琀愀渀挀攀一愀洀攀  匀攀氀攀挀琀ⴀ伀戀樀攀挀琀 ⨀Ⰰ䀀笀渀㴀✀䌀漀洀瀀甀琀攀爀一愀洀攀✀㬀攀㴀笀␀倀匀椀琀攀洀⸀䐀椀猀瀀氀愀礀一愀洀攀⸀匀瀀氀椀琀⠀✀⸀✀⤀嬀 崀紀紀  圀栀攀爀攀ⴀ伀戀樀攀挀琀 䌀漀洀瀀甀琀攀爀一愀洀攀 ⴀ攀焀 ␀攀渀瘀㨀䌀伀䴀倀唀吀䔀刀一䄀䴀䔀ഀഀ
    
    圀爀椀琀攀ⴀ嘀攀爀戀漀猀攀 ∀一甀洀戀攀爀 漀昀 爀攀最椀猀琀攀爀攀搀 椀渀猀琀愀渀挀攀猀 眀椀琀栀 䌀漀洀瀀甀琀攀爀一愀洀攀 ␀⠀␀攀渀瘀㨀䌀伀䴀倀唀吀䔀刀一䄀䴀䔀⤀  ␀⠀䀀⠀␀刀攀最椀猀琀攀爀攀搀⤀⸀䌀漀甀渀琀⤀∀ഀഀ
    
    椀昀 ⠀䀀⠀␀刀攀最椀猀琀攀爀攀搀⤀⸀䌀漀甀渀琀 ⴀ攀焀 ㄀⤀ 笀ഀഀ
    
        圀爀椀琀攀ⴀ嘀攀爀戀漀猀攀 ∀刀攀最椀猀琀攀爀攀搀 䐀椀猀瀀氀愀礀一愀洀攀 ␀䐀椀猀瀀氀愀礀一愀洀攀  ␀⠀␀刀攀最椀猀琀攀爀攀搀⸀䐀椀猀瀀氀愀礀一愀洀攀⤀∀ഀഀ

        ␀琀爀甀攀 ഀഀ
    
     攀氀猀攀 笀ഀഀ
    
        ␀昀愀氀猀攀ഀഀ
    
    紀ഀഀ

਍紀ഀഀ

਍ഀഀ
Export-ModuleMember -Function *-TargetResource