When selecting a resource from the Candidate computers for Package Servers resource picker, some of the valid computer resources are not listed.
NS 6.0.5287 and 6074
The sp_PSCandidates stored procedure calls on the sp_PSWin32Candidates for Windows platforms. This SP makes sure that only computers that meet certain operating system levels and that have IsManaged=1 and IsLocal=1 values in the vComputer View will be displayed in the Candidate computers for Package Servers resource picker.
The IsManaged=1 is determined by a resource running the NS Agent that is pointed to that NS. If you run Inventory Solution 6.1 and use the WebPackage to run inventory scans, then that computer will also be classed as being managed.
The IsLocal=1 is determined by the OwnerNSGuid, which has been assigned to the resource. If the OwnerNSGuid does not match the OwnerNSGuid of the NS, then the resource will be classed as IsLocal=0.
The vComputer view contains this query:
[IsLocal] = case when item.[OwnerNSGuid] = (select Value from ServerSettingGuids where [Name] = 'OwnerNSGuid') then 1 else 0 end,
Restoring a database to a different NS and then pointing the original NS to this database will cause a new OwnerNSGuid and possible site code to be entered into the database, as well as when an NS receives data from another NS. Some solutions install Items with the OwnerNSGuid set explicitly. They will not resolve as they don't have the corresponding source NS. These scenarios will cause the associated resources to have an incorrect OwnerNSGuid value.
Please do the following to determine if the base settings are correct for this Notification Server. Run the following scripts and capture the results:
1. This query should only return one result, and will show what the Notification Server OwnerNSGuid is set to. Please write down the Guid associated with the OwnerNSGuid line that is returned: SELECT * FROM ServerSettingGuids
2. This should return two results. The OwnerNSGUID should match the GUID from step 1:
SELECT GUID,OwnerNSGUID,[Name] FROM Item WHERE [Name] = '<servername>'
3. This query will show that the OwnerNSGuid has been set in the Item Table to a specific Resource. Please check the line for the OwnerNSGuid column and verify that the results are the same as what was found in the ServerSettingGuids query: SELECT * FROM Item WHERE ClassGuid = '736EB7DF-1940-4F77-BE1B-CEB8E2DF6F4F'
For example the query will return the following information:
Guid | ClassGuid | OwnerNSGuid | ProductGuid | SecurityGuid | ProductUninstalled | Attributes | Alias | State | Name | Description | CreatedBy | ModifiedBy | CreatedDate | ModifiedDate
The results should contain the following-
Guid = 1C289B9A-04C1-4219-918D-6494702BE5AC (This is your unique Guid – please verify that this is the same as the ServerSettingGuids for the OwnerNSGuid)
ClassGuid = 736EB7DF-1940-4F77-BE1B-CEB8E2DF6F4F
OwnerNSGuid = 1C289B9A-04C1-4219-918D-6494702BE5AC
ProductGuid = DOE33520-C160-11D2-8612-00104B74A9DF
SecurityGuid = 1C289B9A-04C1-4219-918D-6494702BE5AC
ProductUninstalled = 0
Attributes = 0
Alias = <Your Setting or blank>
State = <Your Setting or NULL>
Name = <Your Server Name>
Description = The owner notification server source item for <your server name>
CreatedBy = <Your Administrator>
ModifiedBy = <Your Administrator>
CreatedDate = <Your Install Date>
ModifiedDate = <Your Modified Date>
4. This query should just confirm the ClassGuid script above. There should only be one row returned:
SELECT ClassGuid FROM Item WHERE [Description] LIKE 'The owner notification server source item for%'
5. This query should only return one result. The OwnerNSGuid should match: SELECT DISTINCT OwnerNSGuid FROM Item
6. This query should only return one result. The OwnerNSGuid should match: SELECT * FROM vThisNS
If any of these queries report a different OwnerNSGuid the resource will not show up. The most important query for this process is the " SELECT * FROM Item WHERE ClassGuid = '736EB7DF-1940-4F77-BE1B-CEB8E2DF6F4F' " query. If this value is not set or is wrong in the Item Table the system does not know what should be the primary setting. All of the processes for the views are based off of these findings. To correct this situation, please carry out the following:
A. Open the ".\Notification Server\Config\CoreSettings.config" file, either via Notepad or the NSConfigurator, and check that the OwnerNSGuid is the same one that the SQL displayed in step 1. If it is not, correct the CoreSettings.config file.
B. Run the following SQL to correct the items that do not have the correct OwnerNSGuid:
UPDATE Item SET OwnerNSGuid = '<Guid found in step 1>' WHERE Guid = ‘<Guid from client>'
C. To change multiple items with incorrect OwnerNSGUID run the following query:
UPDATE Item SET OwnerNSGuid = '<Guid found in step 1>'
WHERE OwnerNSGuid NOT LIKE '<Guid found in step 1>'
AND ClassGuid = '539626D8-A35A-47EB-8B4A-64D3DA110D01' --This is the guid assigned to standard computer resource
If you decide to make any changes to the database please verify that you have a current backup of the system before making any changes!
Warning: If this NS is a top tiered server, that has other NSs forwarding to it, clients that have been forwarded up will have an OwnerNSGUID of a lower tiered server. Do not change any forwarded objects.