Closed Zuldan closed 8 years ago
I'm seeing the same behavior.
This is made worse by the fact you cannot use partial configurations with configuration names--the LCM doesn't pull configurations if you try to use partials with configuration name, you have to set ConfigurationID
for partial configs to work.
By the way, I am still seeing compliance reporting to the PSDSCComplianceServer.svc
endpoint but as I understood it, I think the "reporting server" endpoint is new in WMF 5 so I wanted to use that instead.
@Zuldan Looks like you are missing a step in ConfigurationId scenario (in Sample_ConfigurationIDs.ps1 ) that creates configuration document mof (guid.mof) file and its checksum and place it on the pull server, in Configuration repository as documented in https://msdn.microsoft.com/en-us/powershell/dsc/pullserver
@NarineM I assume he's in the same boat as me. I have all the required MOF files and checksums, because configuration pulls fine. But it still can't send status report, same error as above.
@Narine and @kamranayub , thank you so much for your response.
@Narine, I purposely did not create a MOF file for the node. I simply wanted to configure the nodes LCM and then get a status report from the Report Server. The samples are to show that the Report Server does not function when the Pull Server/node are using the ConfigurationID method. As kamranayub has stated, even if you create the MOF files and the node pulls the config, the node still cannot send a report status to the Report Server. 'BadRequest' is received from the Report Server.
I'm now 95% sure this is a bug.
Http Client 1d545e3b-60c3-47a0-bf65-5afc05182fd1 failed for WebReportManager for configuration The attempt to send status report to the server https://LABSERVER01:8080/PSDSCPullServer.svc/Node(ConfigurationId='1d545e3b-60c3-47a0-bf65-5afc05182fd1')/SendStatusReport returned unexpected response code BadRequest
You should easily be able to replicate the issue in a test environment.
@NarineM, could you kindly confirm if this is a bug?
@Zuldan , @kamranayub
If the node is setup to use ConfigurationID , ConfigurationID.mof has to present on the pull/reporting server (in the DSCService\Configuration folder). This ID is used by reporting server to authorize the client for send report operation. If a file with the name
@Zuldan , @kamranayub It is similar to registrationKey scenario where the node has to be setup with a registration key and that key is required to present on the reporting server (in DSCService\RegitrationKey.txt file) . This key is used by the reporting server to authorize the client for sending status report operations.
@NarineM, thank you for your persistence with this. I feel a bit silly I can't get this working.
I updated the Sample https://gist.github.com/Zuldan/c0fd292838b8d35c6383 to include build a config for the Node Server (client) and place the mof file in C:\Program Files\WindowsPowerShell\DscService\Configuration, however the node is still unable to report to the Pull Server
Log Name: Microsoft-Windows-DSC/Operational
Source: Microsoft-Windows-DSC
Date: 4/5/2016 11:39:15 AM
Event ID: 4260
Task Category: None
Level: Error
Keywords:
User: SYSTEM
Computer: LABSERVER01.lab.local
Description:
Job {2AD146A6-FACF-11E5-80CA-005056B6357A} :
Http Client 1d545e3b-60c3-47a0-bf65-5afc05182fd0 failed for WebReportManager for configuration The attempt to send status report to the server https://LABSERVER01:8080/PSDSCPullServer.svc/Node(ConfigurationId='1d545e3b-60c3-47a0-bf65-5afc05182fd0')/SendStatusReport returned unexpected response code BadRequest..
PS C:\Users\labuser01> Test-Path -Path 'C:\Program Files\WindowsPowerShell\DscService\Configuration\ 1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof' True
PS C:\Users\labuser01> test-path -Path 'C:\Program Files\WindowsPowerShell\DscService\Configuration\ 1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof.checksum' True
Question 1: Is there anything else that is required for the reporting server to authorize the client for send report operation?
Question 2: You said "ConfigurationID.mof has to present on the pull/reporting". How would this work in a partial configuration setup where the filename is "MyConfigName.ConfigID.mof"? Which MOF file does it use to authorize the client?
Hi @Zuldan , Let us try the following steps : Make sure the 1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof and its checksum present on the machine that is setup as a pull server under DSCService\Configuration folder. Run iisreset on the machine that is setup as pull endpoint. Since you are looking at ETW logs, can you delete all the existing ETW logs on the pull node ? Then run Update-DSCConfiguration -Wait -Verbose on the node that is setup to pull 1d545e3b-60c3-47a0-bf65-5afc05182fd0 configuration document and tell what is the verbose you see in the console?
@NarineM, as requested.
Make sure the 1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof and its checksum present on the machine that is setup as a pull server under DSCService\Configuration folder.
PS C:> Test-Path 'C:\Program Files\WindowsPowerShell\DscService\Configuration\1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof' True
PS C:> Test-Path 'C:\Program Files\WindowsPowerShell\DscService\Configuration\1d545e3b-60c3-47a0-bf65-5afc05182fd0.mof.checksum' True
Run iisreset on the machine that is setup as pull endpoint.
PS C:> iisreset
Attempting stop...
Internet services successfully stopped
Attempting start...
Internet services successfully restarted
Since you are looking at ETW logs, can you delete all the existing ETW logs on the pull node ?
PS C:> Invoke-Command -Computer LABSERVER02 -ScriptBlock { [System.Diagnostics.Eventing.Reader.EventLogSession]::GlobalSession.ClearLog('Microsoft-Windows-DSC/Operational') }
Then run Update-DSCConfiguration -Wait -Verbose on the node that is setup to pull 1d545e3b-60c3-47a0-bf65-5afc05182fd0 configuration document and tell what is the verbose you see in the console?
PS C:> Update-DSCConfiguration -Wait -Verbose -ComputerName LABSERVER02 VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = PerformRequiredConfigurationChecks,'className' = MSFT_DSCLocalConfigurationManager,'namespaceName' = ro ot/Microsoft/Windows/DesiredStateConfiguration'. VERBOSE: An LCM method call arrived from computer LABSERVER01 with user sid S-1-5-21-2199847848-3872042683-2133798733-1134. VERBOSE: [LABSERVER02]: [] Executing Get-Action with configuration 's checksum: C0D85D590ECB1CC239408F5113BFF760297AEFE901605D9AEEFDE4897BCAD7B1. VERBOSE: [LABSERVER02]: [] Executing Get-Action with configuration 's checksum returned result status: Ok. VERBOSE: [LABSERVER02]: [] Updated configuration not found on pull server so no action taken. Ensure that a configuration with a different checksum exists on the pull server for target node. VERBOSE: Operation 'Invoke CimMethod' complete. VERBOSE: Time taken for configuration job to complete is 16.065 seconds
@NarineM, is there anything else you would like me to do?
Hi @Zuldan What OS and WMF configuration you have on the pull server and the pull node?
@NarineM, for both I'm using a fresh install of Windows 2012 R2 Standard (Update) and latest windows updates and fresh install of WMF 5 (RTMv2), info is below...
PSVersion 5.0.10586.117 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.10586.117 CLRVersion 4.0.30319.34014 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1
@Zuldan Are you using xWebService resource for deploying an endpoint? Which version of xPSDesiredStateconfiguraiton module you have?
@NarineM, yes im using xWebService for deploying an endpoint. See https://gist.github.com/Zuldan/c0fd292838b8d35c6383
xPSDesiredStateConfiguration v3.7.0.0
Sorry, following the thread, but wanted to chime in and mention I am using the exact same configuration as Zuldan as well. Fresh VMs, fresh installs, latest versions of everything.
Narine, are you able to confirm this scenario works with partial configs? Or are you attempting to reproduce this in a lab? Have you run the sample code provided to reproduce? Appreciate the help!
On Tue, Apr 12, 2016, 06:52 Zuldan notifications@github.com wrote:
@NarineM https://github.com/NarineM, yes im using xWebService for deploying an endpoint. See https://gist.github.com/Zuldan/c0fd292838b8d35c6383
xPSDesiredStateConfiguration v3.7.0.0
— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/PowerShell/xPSDesiredStateConfiguration/issues/97#issuecomment-208863017
@kamranayub After I changed the configuration to deploy guid.mof and guid.mof.checksum in pull server configuration repository, I can not repro the issue. I see exact same error only when the guid.mof does not present in the pull server repository.
But does the pull client still pull the partial configuration appropriately then? The documentation makes it seem like in WMF 5 partial MOFs MUST be named Name.Guid.mof, not just Guid.mof.
On Tue, Apr 12, 2016, 14:17 NarineM notifications@github.com wrote:
@kamranayub https://github.com/kamranayub After I fixed Sample_ConfigurationIDs.ps1 to deploy guid.mof and guid.mof.checksum in pull server configuration repository, I can not repro the issue. I see exact same error only when the guid.mof does not present in the pull server repository.
— You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub https://github.com/PowerShell/xPSDesiredStateConfiguration/issues/97#issuecomment-209060903
@NarineM, Sample_ConfigurationIDs.ps1 (https://gist.github.com/Zuldan/c0fd292838b8d35c6383) already has code to deploy guid.mof and guid.mof.checksum (see below). Could you kindly post your version of Sample_ConfigurationIDs.ps1 so we can see what we're doing wrong?
Configuration IisWebServer { Node $ConfigID { WindowsFeature IIS { Ensure="Present" Name="Web-Server" } } }
IisWebServer -OutputPath 'C:\Program Files\WindowsPowerShell\DscService\Configuration' New-DSCChecksum -ConfigurationPath 'C:\Program Files\WindowsPowerShell\DscService\Configuration' -OutPath 'C:\Program Files\WindowsPowerShell\DscService\Configuration' -Verbose -Force Update-DscConfiguration -ComputerName $NodeServer -wait -verbose
Here is the part that needs to be changed:
$requestUri = "$serviceURL/Nodes(ConfigurationId= '$ConfigurationId')/Reports"
$request = Invoke-WebRequest -Uri $requestUri -ContentType "application/json;odata=minimalmetadata;streaming=true;charset=utf-8" -UseBasicParsing -Headers @{Accept = "application/json";ProtocolVersion = "2.0"}
-ErrorAction SilentlyContinue -ErrorVariable ev
Needs to be changed to: $requestUri = "$serviceURL/Node(ConfigurationId= '$ConfigurationId')/StatusReports" $request = Invoke-WebRequest -Uri $requestUri -ContentType "application/json;odata=minimalmetadata;streaming=true;charset=utf-8" ` -UseBasicParsing -Headers @{Accept = "application/json";ProtocolVersion = "2.0"}
@NarineM, we are having a win! I can now report on the node thanks to your code change. I've updated the Sample https://gist.github.com/Zuldan/c0fd292838b8d35c6383
Question 1:How do I tell if the node is consistent/compliant?
JobId : 574ab0d4-0163-11e6-80cb-005056b6357a
OperationType : Consistency
ReportFormatVersion : 2.0
ConfigurationVersion :
StartTime : 04/13/2016 20:34:46
EndTime : 12/30/1899 00:00:00
Errors : {}
StatusData : {{"IPV4Addresses":["192.168.2.91","127.0.0.1"],"CurrentChecksum":"67D79F2FFAAC8814DBD64F2A946D4FAFBBA58BC99F87117024E1F64543BC760A","MACAddresses":["00-50-56-E6-35-7B"
,"00-00-00-00-00-00-00-E0"],"Type":"Consistency","HostName":"S12AUMDC01TST19","Locale":"en-US","StartDate":"2016-04-13T20:34:46.9590000+10:00","JobID":"{574AB0D4-0163-1
1E6-80CB-005056B6357A}","LCMVersion":"2.0","IPV6Addresses":["fe80::3caf:eb8e:790f:28e2%12","::2000:0:0:0","::1","::2000:0:0:0"]}}
IPV4Addresses : {192.168.2.91, 127.0.0.1} CurrentChecksum : 67D79F2FFAAC8814DBD64F2A946D4FAFBBA58BC99F87117024E1F64543BC760A MACAddresses : {00-50-56-E6-35-7B, 00-00-00-00-00-00-00-E0} Type : Consistency HostName : LABSERVER02 Locale : en-US StartDate : 2016-04-13T20:34:46.9590000+10:00 JobID : {574AB0D4-0163-11E6-80CB-005056B6357A} LCMVersion : 2.0 IPV6Addresses : {fe80::3caf:eb8e:790f:28e2%12, ::2000:0:0:0, ::1, ::2000:0:0:0}
Question 2: I've rebuilt the pullserver and node from scratch but I'm still receiving this error on the node and so are other people. Is this a bug?
Job {5253B19B-0161-11E6-80CB-005056B6357A} :
Http Client 1d545e3b-60c3-47a0-bf65-5afc05182fd0 failed for WebReportManager for configuration The attempt to send status report to the server https://LABSERVER01:8080/PSDSCPullServer.svc/Node(ConfigurationId='1d545e3b-60c3-47a0-bf65-5afc05182fd0')/SendStatusReport returned unexpected response code BadRequest..
Question 3: How do you register a node that uses partial configurations if the requirement for partial configuration files is Name.GUID.mof and a Report Server requires GUID.mof?
@Zuldan, If the consistency failed to apply the configuration you will see the errors in Errors field. That will tell that the node is not compliant. Reporting using ConfigurationID in WMF 5 has limited StatusData content which is being fixed in next WMF. When you switch to use registrationKey, reporting data contains additional fields such as the overall status of the operation in "Status" property, also populates detailed information about which resources are in desired state,which onces are not in desired state and the resource level errors if a particular resource instance failed.
@Zuldan For your question #2. I do not think there should be an error about the node not being able to send reports to the reporting server when it actually does. If your question is about a node that is not sending any reports with that error. then these are the possible causes:
Hi @NarineM, As specified here #106, I'm having the same issue reported by @Zuldan regarding node reporting errors. It seems quite clear to me that this is a bug. I can confirm that in my configuration:
Are we sure that the dll installed by the xDscWebService resource in the web service endpoint is the correct one? Where is this dll coming from? What is the version of the dll compatible with WMF5?
@gigi81 In @Zuldan 's scenario he is able to pull the node status records from the reporting server now (after changing the request URLs), but sill continues seeing BadRequest in ETW log. Is it similar to what you are seeing?
Yes, I'm having the same BadRequest error in the log.
@gigi81, I will look into this ETW message to see why it is being logged when the operation is successful and the client is able to get the reports from the server just fine. For now you can ignore it.
Closing the thread since original issue with not being able to send and retrieve reports got addressed. The remaining is the ETW events with BadRequest which is being fixed which is not a dsc resource issue and will be fixed in upcoming WMF.
Hi @NarineM, I tried to retrieve the status report with the powershell script by @Zuldan but the response returned by the server is empty (content.value is empty to be more precise). Here is the ouput from the command:
StatusCode : 200 StatusDescription : OK Content : {"odata.metadata":"http://localhost:8050/PSDSCPullServer.svc/$metadata#StatusReport","value":[]} RawContent : HTTP/1.1 200 OK ProtocolVersion: 2.0 X-Content-Type-Options: nosniff request-id: 860ff380-962d-0002-1eb2-10862d96d101 DataServiceVersion: 3.0; Content-Length: 96 Cache-Control: no-cache Content... Forms : Headers : {[ProtocolVersion, 2.0], [X-Content-Type-Options, nosniff], [request-id, 860ff380-962d-0002-1eb2-10862d96d101], [DataServiceVersion, 3.0;]...} Images : {} InputFields : {} Links : {} ParsedHtml : RawContentLength : 96
And here is the data in the esent database:
Hi, I have almost the same problem.
I'm using ConfigurationID as my nodes are not named at the beginning [DscLocalConfigurationManager()] Configuration PullClientV2 { Param ( [Parameter(Mandatory = $True)] [String]$NodeGUID ) $moduleversion="1.0"
Settings
{
ActionAfterReboot = "ContinueConfiguration"
AllowModuleOverwrite = $true
ConfigurationID = $NodeGUID
ConfigurationMode = "ApplyAndAutoCorrect"
ConfigurationModeFrequencyMins = 15
RebootNodeIfNeeded = $true
RefreshFrequencyMins = 30
RefreshMode = "Pull"
StatusRetentionTimeInDays = 10
}
ConfigurationRepositoryWeb Configurations
{
ServerURL = "https://$($DscPullServer)/psdscpullserver.svc"
#RegistrationKey = "46d089c3-c145-4ebe-8b63-0c021e1ac04b"
}
ResourceRepositoryWeb Resources
{
ServerURL = "https://$($DscPullServer)/psdscpullserver.svc"
#RegistrationKey = "46d089c3-c145-4ebe-8b63-0c021e1ac04b"
}
ReportServerWeb Reports
{
ServerURL = "https://$($DscPullServer)/psdscpullserver.svc"
#RegistrationKey = "46d089c3-c145-4ebe-8b63-0c021e1ac04b"
}
}
PullClientV2 -NodeGUID $Guid -Output 'C:\DSC\PullClientV2' Set-DscLocalConfigurationManager -ComputerName 'Localhost' -Path 'C:\DSC\PullClientV2' -Verbose -Force
When I do a local Get-DscConfigurationStatus, I get "ResourcesInDesiredState"
PS C:\Users\Administrator> Get-DscConfigurationStatus|fl
JobID : {806920BB-06C9-11E6-80C4-00155D013228} HostName : WIN-BABJSO5643U Error : Locale : fr-FR IPV4Addresses : {10.10.11.101, 127.0.0.1} IPV6Addresses : {fe80::e521:4830:be5:c43f%14, ::2000:0:0:0, ::1, ::2000:0:0:0} MACAddresses : {00-15-5D-01-32-28, 00-00-00-00-00-00-00-E0} LCMVersion : 2.0 Mode : Pull NumberOfResources : 2 MetaData : Author: Administrator; Name: myConfiguration01; Version: 2.0.0; 04/20/2016 01:58:28; GenerationHost: WIN-E89T1RDB0VN; MetaConfiguration : MSFT_DSCMetaConfiguration Type : Consistency Status : Success StartDate : 20/04/2016 09:28:42 DurationInSeconds : 0 RebootRequested : False ResourcesInDesiredState : {[File]HelloWorld, [WindowsFeature]TelnetClient} ResourcesNotInDesiredState : PSComputerName :
When I browse the database or use I only have a partial StatusData
function GetReport { param ($AgentId = "$($(glcm).AgentId)", $ConfigurationID = "$($(glcm).ConfigurationID)", $Uri = "https://$($DscPullServer)/psdscpullserver.svc/Node(ConfigurationId='$ConfigurationId')/StatusReports" )
$response = Invoke-WebRequest -Uri $Uri `
-ContentType "application/json;odata=minimalmetadata;streaming=true;charset=utf-8" `
-UseBasicParsing `
-Headers @{ Accept = "application/json"; ProtocolVersion = "1.1" } `
-ErrorAction SilentlyContinue -ErrorVariable ev
$jobs = (ConvertFrom-Json $response.content).value
return $jobs
}
$jobs = GetReport
foreach ($job in $jobs) {
Write-Host "JobID: $($job.JobId) StartTime: $($job.StartTime) Type: $($job.OperationType)" -ForegroundColor Green
[console]::ForegroundColor = 'Red'
$job.Errors | ConvertFrom-Json
[console]::ForegroundColor = 'White'
$job.StatusData | ConvertFrom-Json
}
JobID: 806920bb-06c9-11e6-80c4-00155d013228 StartTime: 04/20/2016 09:28:42 Type: Consistency IPV4Addresses : {10.10.11.101, 127.0.0.1} CurrentChecksum : 8F690215FA9679B4B3A8F4A3C5D7C70E9E368C5126C367A1A5C4687CF477123B MACAddresses : {00-15-5D-01-32-28, 00-00-00-00-00-00-00-E0} Type : Consistency HostName : WIN-BABJSO5643U Locale : fr-FR StartDate : 2016-04-20T09:28:42.7280000+02:00 JobID : {806920BB-06C9-11E6-80C4-00155D013228} LCMVersion : 2.0 IPV6Addresses : {fe80::e521:4830:be5:c43f%14, ::2000:0:0:0, ::1, ::2000:0:0:0}
JobID: fbe11054-06c9-11e6-80c4-00155d013228 StartTime: 12/30/1899 00:00:00 Type: Locale : Unknown ErrorCode : 0 ErrorMessage : Unknown ResourceId : DSCEngine ErrorSource : DSCEngine
DIRECT DATABASE VIEW
WIN-BABJSO5643U 98e16193-06cb-11e6-80c4-00155d013228 Consistency 20/04/2016 09:43:40 30/12/1899 00:00:00 ["{\"IPV4Addresses\":[\"10.10.11.101\",\"127.0.0.1\"],\"CurrentChecksum\":\"8F690215FA9679B4B3A8F4A3C5D7C70E9E368C5126C367A1A5C4687CF477123B\",\"MACAddresses\":[\"00-15-5D-01-32-28\",\"00-00-00-00-00-00-00-E0\"],\"Type\":\"Consistency\",\"HostName\":\"WIN-BABJSO5643U\",\"Locale\":\"fr-FR\",\"StartDate\":\"2016-04-20T09:43:40.4410000+02:00\",\"JobID\":\"{98E16193-06CB-11E6-80C4-00155D013228}\",\"LCMVersion\":\"2.0\",\"IPV6Addresses\":[\"fe80::e521:4830:be5:c43f%14\",\"::2000:0:0:0\",\"::1\",\"::2000:0:0:0\"]}"] [] False 10.10.11.101;127.0.0.1;fe80::e521:4830:be5:c43f%14;::2000:0:0:0;::1;::2000:0:0:0 1135f676-40f7-4cd0-b8e0-00155D013228
WIN-E89T1RDB0VN cc054ecd-06cb-11e6-80bd-00155d013229 Consistency 20/04/2016 09:45:06 30/12/1899 00:00:00 ["{\"IPV4Addresses\":[\"10.10.11.100\",\"127.0.0.1\"],\"CurrentChecksum\":\"384492764C4AB70C4A5979727BBE20B1C929CAB873A6D0E83BE54E6C10C02409\",\"MACAddresses\":[\"00-15-5D-01-32-29\",\"00-00-00-00-00-00-00-E0\"],\"Type\":\"Consistency\",\"HostName\":\"WIN-E89T1RDB0VN\",\"Locale\":\"fr-FR\",\"StartDate\":\"2016-04-20T09:45:06.2560000+02:00\",\"JobID\":\"{CC054ECD-06CB-11E6-80BD-00155D013229}\",\"LCMVersion\":\"2.0\",\"IPV6Addresses\":[\"fe80::e54f:3470:a625:94cf%12\",\"::2000:0:0:0\",\"::1\",\"::2000:0:0:0\"]}"]
WINDOWS\SYSTEM32\CONFIGURATION\CONFIGURATIONSTATUS instance of MSFT_WebDownloadManager as $Alias00000006 { ResourceId = "[ConfigurationRepositoryWeb]Configurations"; SourceInfo = "::21::1::ConfigurationRepositoryWeb"; ServerURL = "https://DscPullServer.mydsc.local/psdscpullserver.svc"; };
instance of MSFT_WebResourceManager as $Alias00000007 { ResourceId = "[ResourceRepositoryWeb]Resources"; SourceInfo = "::26::1::ResourceRepositoryWeb"; ServerURL = "https://DscPullServer.mydsc.local/psdscpullserver.svc"; };
instance of MSFT_WebReportManager as $Alias00000008 { ResourceId = "[ReportServerWeb]Reports"; SourceInfo = "::31::1::ReportServerWeb"; ServerURL = "https://DscPullServer.mydsc.local/psdscpullserver.svc"; RegistrationKey = "46d089c3-c145-4ebe-8b63-0c021e1ac04b"; };
instance of MSFT_DSCMetaConfiguration as $Alias00000009 { ConfigurationModeFrequencyMins = 15; RebootNodeIfNeeded = True; ConfigurationMode = "ApplyAndAutoCorrect"; ActionAfterReboot = "ContinueConfiguration"; RefreshMode = "Pull"; ConfigurationID = "1135f676-40f7-4cd0-b8e0-00155D013229"; RefreshFrequencyMins = 30; AllowModuleOverwrite = True; DebugMode = {"NONE"}; LCMVersion = "2.0"; LCMCompatibleVersions = {"1.0", "2.0"}; LCMState = "Idle"; LCMStateDetail = ""; ConfigurationDownloadManagers = {$Alias00000006}; ResourceModuleManagers = {$Alias00000007}; ReportManagers = {$Alias00000008}; StatusRetentionTimeInDays = 10; AgentId = "AB73D03B-00C9-11E6-80B9-00155D013229"; };
instance of MSFT_ResourceInDesiredState as $Alias0000000A { ResourceId = "[File]HelloWorld"; SourceInfo = "::10::9::File"; ModuleName = "PSDesiredStateConfiguration"; ModuleVersion = "1.1"; ConfigurationName = "myConfiguration01"; ResourceName = "File"; InstanceName = "HelloWorld"; InDesiredState = True; StartDate = "20160420093010.221000+120"; DurationInSeconds = 0.0000000000000000000000000000000000000000000000000000E+000; RebootRequested = False; };
instance of MSFT_ResourceInDesiredState as $Alias0000000B { ResourceId = "[WindowsFeature]TelnetClient"; SourceInfo = "::14::1::WindowsFeature"; ModuleName = "PsDesiredStateConfiguration"; ModuleVersion = "1.1"; ConfigurationName = "myConfiguration01"; ResourceName = "WindowsFeature"; InstanceName = "TelnetClient"; InDesiredState = True; StartDate = "20160420093010.221000+120"; DurationInSeconds = 2.8100000000000003000000000000000000000000000000000000E-001; RebootRequested = False; };
instance of MSFT_DSCConfigurationStatus { Status = "Success"; StartDate = "20160420093010.046000+120"; DurationInSeconds = 0; RebootRequested = False; Type = "Consistency"; JobID = "{B397AFCF-06C9-11E6-80BD-00155D013229}"; MetaData = "Author: Administrator; Name: myConfiguration01; Version: 2.0.0; GenerationDate: 04/20/2016 01:58:28; GenerationHost: WIN-E89T1RDB0VN;"; NumberOfResources = 2; Mode = "Pull"; LCMVersion = "2.0"; HostName = "WIN-E89T1RDB0VN"; IPV4Addresses = {"10.10.11.100", "127.0.0.1"}; IPV6Addresses = {"fe80::e54f:3470:a625:94cf%12", "::2000:0:0:0", "::1", "::2000:0:0:0"}; MACAddresses = {"00-15-5D-01-32-29", "00-00-00-00-00-00-00-E0"}; MetaConfiguration = $Alias00000009; ResourcesInDesiredState = {$Alias0000000A, $Alias0000000B}; Locale = "fr-FR"; };
HOW CAN WE GET ResourcesInDesiredState using CONFIGURATIONID ???
Thxs a lot
Apologies if this should be on UserVoice instead of here. I'm happy to move it if need be.
The ReportServerWeb works perfectly fine when using RegistrationKeys but breaks when using Configuration IDs.
To prove this I created Sample_RegistrationKeys.ps1 which sets up a DSC Pull Server, configures a nodes LCM and then retrieves some report data.
I then cloned Sample_RegistrationKeys.ps1 to Sample_ConfigurationIDs.ps1 and simply commented out the registration key related stuff and added a configuration ID.
Sample_RegistrationKeys.ps1 (https://gist.github.com/Zuldan/c679bae20de0c2dcf1aa) Sample_ConfigurationIDs.ps1 (https://gist.github.com/Zuldan/c0fd292838b8d35c6383)
In Sample_RegistrationKeys.ps1 I'm able to retrieve report data In Sample_ConfigurationIDs.ps1 I cannot retrieve report data because the node cannot submit report data (see event log below)
I think the clue may sit here https://msdn.microsoft.com/en-us/powershell/dsc/pullserver "The lack of the ConfigurationID property in the metaconfiguration file implicitly means that pull server is supporting the V2 version of the pull server protocol so an initial registration is required. Conversely, the presents of a ConfigurationID means that the V1 version of the pull server protocol is used and there is no registration processing."
I'm taking that as when a ConfigurationID is used, the reporting mode is v1 and the new Report Server only works with reporting mode v2? I could be totally wrong.
This error appears in the the DSC WinEvent log on the node when Sample_ConfigurationIDs.ps1 is used.
Log Name: Microsoft-Windows-DSC/Operational Source: Microsoft-Windows-DSC Date: 3/23/2016 4:32:51 PM Event ID: 4260 Task Category: None Level: Error Keywords:
User: SYSTEM Computer: LABSERVER02 Description: Job {AAFECED4-F0B8-11E5-80C7-005056B644A2} : Http Client 1d545e3b-60c3-47a0-bf65-5afc05182fd1 failed for WebReportManager for configuration The attempt to send status report to the server https://LABSERVER01:8080/PSDSCPullServer.svc/Node(ConfigurationId='1d545e3b-60c3-47a0-bf65-5afc05182fd1')/SendStatusReport returned unexpected response code BadRequest..
Notice the "BadRequest" in the event. maybe this is because the reporting server is in report mode V1?