Sdílet prostřednictvím


Nastavení serveru vyžádané replikace SMB pro DSC

Platí pro: Windows PowerShell 4.0, Windows PowerShell 5.0

Důležité

Server vyžádané replikace ( Windows Feature DSC-Service) je podporovaná součást Systému Windows Server, ale neplánuje se nabízet nové funkce nebo možnosti. rádi bychom, abyste věděli, že novější verze DSC je nyní obecně dostupná, spravovaná funkcí Azure Policy pojmenovanou host configuration. Služba konfigurace hosta kombinuje funkce rozšíření DSC, Azure Automation State Configuration a nejčastěji požadované funkce podle zpětné vazby od zákazníků. Konfigurace hosta zahrnuje také podporu hybridních počítačů prostřednictvím serverů s podporou Arc.

Server vyžádané replikace SMB DSC je počítač hostující sdílené složky SMB, které zpřístupňuje konfigurační soubory DSC a prostředky DSC cílovým uzlům, když o ně tyto uzly požádají.

Pokud chcete pro DSC použít server vyžádané replikace SMB, musíte:

  • Nastavení sdílené složky SMB na serveru s PowerShellem 4.0 nebo novějším
  • Konfigurace klienta s PowerShellem 4.0 nebo vyšším pro vyžádání z této sdílené složky SMB

Vytvoření sdílené složky SMB pomocí prostředku xSmbShare

Existuje několik způsobů, jak nastavit sdílenou složku SMB, ale pojďme se podívat, jak to můžete udělat pomocí DSC.

Instalace prostředku xSmbShare

Voláním rutiny Install-Module nainstalujte modul xSmbShare .

Poznámka

Install-Module je součástí modulu PowerShellGet , který je součástí PowerShellu 5.0. XSmbShare obsahuje prostředek DSC xSmbShare, který lze použít k vytvoření sdílené složky SMB.

Vytvoření adresáře a sdílené složky

Následující konfigurace používá prostředek File k vytvoření adresáře pro sdílenou složku a prostředek xSmbShare k nastavení sdílené složky SMB:

Configuration SmbShare
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName xSmbShare

    Node localhost
    {

        File CreateFolder
        {
            DestinationPath = 'C:\DscSmbShare'
            Type = 'Directory'
            Ensure = 'Present'
        }

        xSMBShare CreateShare
        {
            Name = 'DscSmbShare'
            Path = 'C:\DscSmbShare'
            FullAccess = 'administrator'
            ReadAccess = 'myDomain\Contoso-Server$'
            FolderEnumerationMode = 'AccessBased'
            Ensure = 'Present'
            DependsOn = '[File]CreateFolder'
        }
    }
}

Konfigurace vytvoří adresář C:\DscSmbShare, pokud ještě neexistuje, a pak ho použije jako sdílenou složku SMB. FullAccess by měl být poskytnut všem účtům, které potřebují zapisovat do sdílené složky nebo je ze sdílené složky odstranit. Přístup ke čtení musí být poskytnut všem klientským uzlům, které získávají konfigurace nebo prostředky DSC ze sdílené složky.

Poznámka

DSC se ve výchozím nastavení spouští jako systémový účet, takže samotný počítač musí mít přístup ke sdílené složce.

Udělení přístupu k systému souborů klientovi vyžádané replikace

Poskytnutí technologie ReadAccess klientskému uzlu umožní tomuto uzlu přístup ke sdílené složce SMB, ale ne k souborům nebo složkám v této sdílené složce. Klientským uzlům musíte explicitně udělit přístup ke sdílené složce a podsložkům SMB. To můžeme provést pomocí DSC přidáním pomocí prostředku cNtfsPermissionEntry , který je součástí modulu CNtfsAccessControl . Následující konfigurace přidá blok cNtfsPermissionEntry , který uděluje přístup ReadAndExecute ke klientovi vyžádané replikace:

Configuration DSCSMB
{
    Import-DscResource -ModuleName PSDesiredStateConfiguration
    Import-DscResource -ModuleName xSmbShare
    Import-DscResource -ModuleName cNtfsAccessControl

    Node localhost
    {

        File CreateFolder
        {
            DestinationPath = 'C:\DscSmbShare'
            Type = 'Directory'
            Ensure = 'Present'
        }

        xSMBShare CreateShare
        {
            Name = 'DscSmbShare'
            Path = 'C:\DscSmbShare'
            FullAccess = 'administrator'
            ReadAccess = 'myDomain\Contoso-Server$'
            FolderEnumerationMode = 'AccessBased'
            Ensure = 'Present'
            DependsOn = '[File]CreateFolder'
        }

        cNtfsPermissionEntry PermissionSet1
        {
            Ensure = 'Present'
            Path = 'C:\DscSmbShare'
            Principal = 'myDomain\Contoso-Server$'
            AccessControlInformation = @(
                cNtfsAccessControlInformation
                {
                    AccessControlType = 'Allow'
                    FileSystemRights = 'ReadAndExecute'
                    Inheritance = 'ThisFolderSubfoldersAndFiles'
                    NoPropagateInherit = $false
                }
            )
            DependsOn = '[File]CreateFolder'
        }
    }
}

Umístění konfigurací a prostředků

Uložte všechny konfigurační soubory MOF nebo prostředky DSC, které mají klientské uzly načíst do sdílené složky SMB.

Jakýkoli konfigurační soubor MOF musí mít název <ConfigurationID>.mof, kde <ConfigurationID> je hodnota vlastnosti ConfigurationID cílového uzlu LCM. Další informace o nastavení klientů vyžádané replikace najdete v tématu Nastavení klienta vyžádané replikace pomocí ID konfigurace.

Poznámka

Pokud používáte server vyžádané replikace SMB, musíte použít ID konfigurace. Protokol SMB nepodporuje názvy konfigurací.

Každý modul prostředků musí být zazipovaný a pojmenovaný podle následujícího vzoru {Module Name}_{Module Version}.zip. Například modul s názvem xWebAdminstration s verzí modulu 3.1.2.0 by se jmenoval xWebAdministration_3.2.1.0.zip. Každá verze modulu musí být obsažena v jednom souboru ZIP. Samostatné verze modulu v souboru ZIP nejsou podporovány. Před zabalením modulů prostředků DSC pro použití se serverem vyžádané replikace je potřeba provést malou změnu struktury adresářů.

Výchozí formát modulů obsahujících prostředek DSC ve WMF 5.0 je {Module Folder}\{Module Version}\DscResources\{DSC Resource Folder}\.

Před zabalení pro server vyžádané replikace jednoduše odeberte {Module version} složku, aby se cesta stala {Module Folder}\DscResources\{DSC Resource Folder}\. Při této změně zazipujte složku podle popisu výše a umístěte tyto soubory ZIP do sdílené složky SMB.

Vytvoření kontrolního součtu MOF

Konfigurační soubor MOF musí být spárován se souborem kontrolního součtu, aby LCM na cílovém uzlu mohl konfiguraci ověřit. Pokud chcete vytvořit kontrolní součet, zavolejte rutinu New-DSCCheckSum . Rutina přebírá Path parametr, který určuje složku, ve které se nachází MOF konfigurace. Rutina vytvoří soubor kontrolního součtu s názvem ConfigurationMOFName.mof.checksum, kde ConfigurationMOFName je název konfiguračního souboru mof. Pokud je v zadané složce více konfiguračních souborů MOF, vytvoří se kontrolní součet pro každou konfiguraci ve složce.

Soubor kontrolního součtu musí být ve stejném adresáři jako konfigurační soubor MOF ($env:PROGRAMFILES\WindowsPowerShell\DscService\Configuration ve výchozím nastavení) a musí mít stejný název s připojeným .checksum příponou.

Poznámka

Pokud jakýmkoli způsobem změníte konfigurační soubor MOF, musíte také znovu vytvořit soubor kontrolního součtu.

Nastavení klienta vyžádané replikace pro PROTOKOL SMB

Pokud chcete nastavit klienta, který načítá konfigurace nebo prostředky ze sdílené složky SMB, nakonfigurujte místní Configuration Manager klienta (LCM) s bloky ConfigurationRepositoryShare a ResourceRepositoryShare, které určují sdílenou složku, ze které se mají vyžádat konfigurace a prostředky DSC.

Další informace o konfiguraci LCM najdete v tématu Nastavení klienta vyžádané replikace pomocí ID konfigurace.

Poznámka

Pro zjednodušení tento příklad používá PSDscAllowPlainTextPassword k povolení předávání hesla ve formátu prostého textu do parametru Credential . Informace o bezpečnějším předávání přihlašovacích údajů najdete v tématu Možnosti přihlašovacích údajů v konfiguračních datech. V bloku Nastavení metakonfigurace serveru vyžádané replikace SMB musíte zadat ID konfigurace, a to i v případě, že pouze natahujete prostředky.

$secpasswd = ConvertTo-SecureString "Pass1Word" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential ("TestUser", $secpasswd)

[DSCLocalConfigurationManager()]
configuration SmbCredTest
{
    Node $AllNodes.NodeName
    {
        Settings
        {
            RefreshMode = 'Pull'
            RefreshFrequencyMins = 30
            RebootNodeIfNeeded = $true
            ConfigurationID    = '16db7357-9083-4806-a80c-ebbaf4acd6c1'
        }

         ConfigurationRepositoryShare SmbConfigShare
        {
            SourcePath = '\\WIN-E0TRU6U11B1\DscSmbShare'
            Credential = $mycreds
        }

        ResourceRepositoryShare SmbResourceShare
        {
            SourcePath = '\\WIN-E0TRU6U11B1\DscSmbShare'
            Credential = $mycreds

        }
    }
}

$ConfigurationData = @{
    AllNodes = @(
        @{
            #the "*" means "all nodes named in ConfigData" so we don't have to repeat ourselves
            NodeName="localhost"
            PSDscAllowPlainTextPassword = $true
        })
}

Poděkování

Zvláštní poděkování patří následujícím osobám:

  • Mike F. Robbins, jehož příspěvky o používání PROTOKOLU SMB pro DSC pomohly informovat obsah v tomto tématu. Jeho blog je na Mike F Robbins.
  • Serge Nikalaichyk, autor modulu cNtfsAccessControl . Zdroj pro tento modul je v cNtfsAccessControl.

Viz také

přehled Windows PowerShell Desired State Configuration

Přijetí konfigurace

Použití konfiguračních identifikátorů k nastavení načítacího klienta