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

  • ¿Qué inputs de logging deben cambiarse tras una nueva installation de Windows?
  • Registro de búsqueda
  • Actualización de Windows Server de 2012 a 2012 R2 save el logging
  • ¿Qué podría hacer que un progtwig permanezca en "Agregar o quitar progtwigs" incluso después de eliminar del logging
  • Nueva propiedad para el service de indexing en Windows Server 2008 - Donde poner registery input
  • Directiva de grupo: implementación de un espacio como valor de logging
  • Cambiar el nivel de security de IE 11 a través del Registro parece ser implementado, pero cambia a 0 una vez que se abre la pestaña Seguridad de Internet Options
  • ¿Cómo funcionan las templates administrativas (files ADMX)?
  • command de command-line REGEDIT (editar) sin una window emergente
  • Buscando un logging de Windows confiable y confiable Registro de búsqueda y sustitución de herramientas
  • Cómo ejecutar x64 bit versión de logging de cmd.exe ubicado en c: \ windows \ sysWow64
  • El linux y los temas del servidor de Windows, como ubuntu, centos, apache, nginx, debian y consejos de red.