Sintaxis DSC para la key de logging binary

Lo que debería ser un logging simple DSC configuration se ha convertido en un poco frustrante pieza de conjetura. Estoy intentando fijar una llave binaria del logging. Estoy encontrando que es imposible encontrar el formatting correcto para los datos de valor para get la key establecida correctamente. Estoy tratando de transformar este file de logging en DSC:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\DefaultSecurity] "SrvsvcShareAdminConnect"=hex:01,00,04,80,64,00,00,00,70,00,00,00,00,00,00,00,\ 14,00,00,00,02,00,50,00,03,00,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,\ 00,00,05,20,00,00,00,20,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00,\ 00,05,20,00,00,00,25,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00,00,\ 05,20,00,00,00,27,02,00,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00,\ 00,00,00,05,12,00,00,00 

He intentado esto con el logging y el recurso de xregistry y golpeé el mismo error del formatting (no me importa realmente cuál uso). He tratado de proporcionar los datos como una sola cadena, una matriz de cadenas, una serie de cadenas adjuntas con 0x para mostrar que es hexágono, etc He intentado la sugerencia aquí también.

El más cercano que tengo es con la siguiente configuration, que parecía funcionar:

  Registry disableAdminShare { Ensure = "Present" Key = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\DefaultSecurity" Force = $true ValueName = "SrvsvcShareAdminConnect" ValueData = @("010004806400000070000000000000001400000002005000030000000000180003000f00010200000000000520000000200200000000180003000f00010200000000000520000000250200000000180003000f0001020000000000052000000027020000010100000000000512000000010100000000000512000000") ValueType = "Binary" } 

Pero mirando el logging cuando se aplica, parece convertir el valor en decimal, dando por resultado una input no válida:

 'HKLM:\SYSTEM\CurrentControlSet\Services\lanmanserver\DefaultSecurity\SrvsvcSha reAdminConnect' to '(1, 0, 4, 128, 100, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 2, 0, 80, 0, 3, 0, 0, 0, 0, 0, 24, 0, 3, 0, 15, 0, 1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 32, 2, 0, 0, 0, 0, 24, 0, 3, 0, 15, 0, 1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 37, 2, 0, 0, 0, 0, 24, 0, 3, 0, 15, 0, 1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 39, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 5, 18, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 5, 18, 0, 0, 0)' of type 'Binary' VERBOSE: [SCDEV-RD-02]: LCM: [ End Set ] 

Estoy seguro de que hay una respuesta simple a esto, pero no puedo encontrar nada en la documentation.

One Solution collect form web for “Sintaxis DSC para la key de logging binary”

El formatting del DSC MSFT_Registry Tipo binary ValueData es una cadena con pares contiguos de valores de byte, con una opción opcional "0x"

El truco es este bit de código del recurso en $ env: windir \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ Módulos \ PSDesinetworkingStateConfiguration \ DSCResources \ MSFT_Registry.psm1.

Analiza el valor con:

  $binaryVal = $null $val = $Data[0].TrimStart("0x") if ($val.Length % 2 -ne 0) { $val = $val.PadLeft($val.Length+1, "0") } try { $byteArray = [Byte[]]@() for ($i = 0 ; $i -lt ($val.Length-1) ; $i = $i+2) { $byteArray += [Byte]::Parse($val.Substring($i, 2), "HexNumber") } $ReturnValue.Value = [Byte[]]$byteArray } 

Ejemplo

Utilizando una ligera variación en sus datos de input:

 $reg = "01,00,04,80,64,00,00,00,70,00,00,00,00,00,00,00, 14,00,00,00,02,00,50,00,03,00,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00, 00,00,05,20,00,00,00,20,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00, 00,05,20,00,00,00,25,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00,00, 05,20,00,00,00,27,02,00,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00, 00,00,00,05,12,00,00,00" 

Puede crear una cadena correctamente formateada con esto:

 $val = [String]::Join("",$reg.Split(",").Trim()) 

En el MOF, verá esto:

  ValueData = { "010004806400000070000000000000001400000002005000030000000000180003000f00010200000000000520000000200200000000180003000f00010200000000000520000000250200000000180003000f0001020000000000052000000027020000010100000000000512000000010100000000000512000000" }; 

Aquí hay una muestra de testing completa para probar el punto:

  $reg = "01,00,04,80,64,00,00,00,70,00,00,00,00,00,00,00, 14,00,00,00,02,00,50,00,03,00,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00, 00,00,05,20,00,00,00,20,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00, 00,05,20,00,00,00,25,02,00,00,00,00,18,00,03,00,0f,00,01,02,00,00,00,00,00, 05,20,00,00,00,27,02,00,00,01,01,00,00,00,00,00,05,12,00,00,00,01,01,00,00, 00,00,00,05,12,00,00,00" $val = [String]::Join("",$reg.Split(",").Trim()) Configuration RegistryTest { param([string] $Path, [string] $Name, [string] $BinaryValue) Import-DscResource -ModuleName PSDesinetworkingStateConfiguration Registry test { Key = $Path ValueName = $Name ValueData = $val ValueType = "Binary" } } $args = @{ Path = "HKLM:\SOFTWARE\StackOverflow" Name = "BinaryTest" } Remove-ItemProperty @args Get-ItemProperty @args -ErrorAction Continue # Nothing up my sleeve! $o = RegistryTest @args -BinaryValue $val -outputpath $env:temp Start-DscConfiguration ($o | split-path) -Wait -Verbose -force Get-ItemProperty @args 

El resultado es el siguiente:

 Get-ItemProperty : Property BinaryTest does not exist at path HKEY_LOCAL_MACHINE\SOFTWARE\StackOverflow. At C:\scratch\test.ps1:30 char:1 + Get-ItemProperty @args -ErrorAction Continue # Nothing up my sleeve! + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidArgument: (BinaryTest:String) [Get-ItemProperty], PSArgu mentException + FullyQualifiedErrorId : System.Management.Automation.PSArgumentException,Microsoft.Powe rShell.Commands.GetItemPropertyCommand VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendCo nfigurationApply,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microso ft/Windows/DesinetworkingStateConfiguration'. VERBOSE: An LCM method call arrived from computer STACKOVERFLOW with user sid S-... VERBOSE: [STACKOVERFLOW]: LCM: [ Start Set ] VERBOSE: [STACKOVERFLOW]: LCM: [ Start Resource ] [[Registry]test] VERBOSE: [STACKOVERFLOW]: LCM: [ Start Test ] [[Registry]test] VERBOSE: [STACKOVERFLOW]: [[Registry]test] Registry key value 'HKLM:\SOFTW ARE\StackOverflow\BinaryTest' does not exist VERBOSE: [STACKOVERFLOW]: LCM: [ End Test ] [[Registry]test] in 0.2130 seconds. VERBOSE: [STACKOVERFLOW]: LCM: [ Start Set ] [[Registry]test] VERBOSE: [STACKOVERFLOW]: [[Registry]test] (SET) Set registry key value 'H KLM:\SOFTWARE\StackOverflow\BinaryTest' to '(1, 0, 4, 128, 100, 0, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 2, 0, 80, 0, 3, 0, 0, 0, 0, 0, 24, 0, 3, 0, 15, 0, 1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 32, 2, 0, 0, 0, 0, 24, 0, 3, 0, 15, 0, 1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 37, 2, 0, 0, 0, 0, 24, 0, 3, 0, 15, 0, 1, 2, 0, 0, 0, 0, 0, 5, 32, 0, 0, 0, 39, 2, 0, 0, 1, 1, 0, 0, 0, 0, 0, 5, 18, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 5, 18, 0, 0, 0)' of type 'Binary' VERBOSE: [STACKOVERFLOW]: LCM: [ End Set ] [[Registry]test] in 0.1390 seconds. VERBOSE: [STACKOVERFLOW]: LCM: [ End Resource ] [[Registry]test] VERBOSE: [STACKOVERFLOW]: LCM: [ End Set ] VERBOSE: [STACKOVERFLOW]: LCM: [ End Set ] in 0.7010 seconds. VERBOSE: Operation 'Invoke CimMethod' complete. VERBOSE: Time taken for configuration job to complete is 0.799 seconds BinaryTest : {1, 0, 4, 128...} PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\StackOverflow PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE PSChildName : StackOverflow PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry 

Mirando tanto un server 2016 como una máquina con Windows 10 donde ejecuté esto, el logging parece correcto.

Valor binario del registro de la demostración

  • ¿Habilitar la configuration de security mejorada de Internet Explorer a través del logging?
  • No se puede instalar Tortoise SVN 1.7.3 en Windows Server 2008 R2
  • Editor de fotos de Microsoft - No se puede encontrar información de formatting de file en el logging (política de logging)
  • Cambiar fuente pnetworkingeterminada de Word sin utilizar normal.dotm
  • Registro de Windows creando usuarios
  • ¿Necesito deshabilitar TIWorker.exe y la tarea TaskSheduler respectiva en Windows Server 2016
  • ¿Cómo puedo crear una key REG_MULTI_SZ a través de la directiva de grupo?
  • Registro de odbcad32 en Windows Server 2003 de 64 bits
  • Directiva de grupo: implementación de un espacio como valor de logging
  • command de command-line REGEDIT (editar) sin una window emergente
  • ¿Alguna sugerencia de un buen limpiador del logging?
  • Directiva de grupo o reg hack para ocultar los dialogs de inicio en XP
  • ¿Cómo encontrar una ruta donde se ha creado una aplicación?
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.