none
VAMT 3.0 on SBS2011

    Question

  • Hi there,

    I'm attempting to get VAMT 3.0 to work properly in my particular network setup. I've installed VAMT 3.0 on my Windows SBS 2011 server. I can add computers to the Products list (using the Discover Products dialog/Search for computers in the Active Directory => VAMT successfully detected x computers and added it to the products list), but attempting to update license status will have the following behaviours:

    • The local computer (SBS server) will work correctly.
    • All other clients will disappear from the Collecting Product Information dialog (leaving only my server.) Even with client computers online, the dialog will state "Completed 1 of 7", "Succeeded 1 of 1", "Failed 0 of 1". I do not know why this is inconsistent.
    • Clicking Close to dismiss the Collecting Product Information dialog will bring me back to the product window. The number of clients I have now fall to 2: the server which successfully verified; and one other client (seems to be the first in the list before). Online computers also disappear from the list.

    Adding product keys would give me an error dialog indicating that "String or binary data would be truncated. The statement has been terminated." Hitting OK gives me the "x product keys were successfully verified and added to VAMT" but after dismissing the dialog the Product Keys pane is still empty. This seems like a database issue, and I've tried modifying the database to increase the length of the product key columns to no effect (I then just reset the database again before testing again to prevent other unforeseen effects).

    So, as it stands, VAMT 3.0 is a no-op (albeit a big one!) for me. I've tried reinstalling VAMT, reinstalling the database instance (2008 R2 SP2 Express), deleting and re-creating the database, all to no avail. The computers which are online are reachable across TCP port 135.

    Any pointers please? If this is the wrong forum, please redirect me to the appropriate place.

    Thanks!
    Joel

    Monday, August 20, 2012 4:27 AM

All replies

  • Oh - I see in my network report that there are event log entries, but I can't seem to find them in the Event Log Viewer. Anyone knows where VAMT event entries are kept?
    Monday, August 20, 2012 11:11 PM
  • Hi,

    Have you enabled Windows Firewall to allow VAMT access?

    Enable the VAMT to access client computers using the Windows Firewall Control Panel:

    1. Open Control Panel and double-click System and Security.

    2. Click Windows Firewall.

    3. Click Allow a program or feature through Windows Firewall.

    4. Click the Change settings option.

    5. Select the Windows Management Instrumentation (WMI) checkbox.

    6. Click OK.

    By the way, could you let me know whether th VAMT server and the clients are in a domain environment/the same domain or in a workgroup evnironment?

    Regards,


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Thursday, August 23, 2012 8:01 AM
  • Hello Peterson,

    Thanks for your response.

    For one of the clients that vanished, I've check that both Windows Firewall and Symantec Endpoint Protection are disabled, and the behaviour still persists.

    The VAMT Server is the domain controller (SBS2011); the clients are all joined to the server's domain.

    Thanks!
    Joel

    Thursday, August 23, 2012 10:21 PM
  • I found the VAMT log. While running the above operation on that one client, this came out in the log:

    Encountered error while updating product on machine

     System.Data.SqlClient.SqlException: String or binary data would be truncated.
    The statement has been terminated.
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
       at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
       at System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
       at System.Data.SqlClient.SqlDataReader.get_MetaData()
       at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
       at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
       at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
       at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
       at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
       at System.Data.Common.DbCommand.ExecuteReader()
       at System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult)
       at System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries)
       at System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query)
       at System.Data.Linq.ChangeDirector.StandardChangeDirector.DynamicInsert(TrackedObject item)
       at System.Data.Linq.ChangeDirector.StandardChangeDirector.Insert(TrackedObject item)
       at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
       at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
       at System.Data.Linq.DataContext.SubmitChanges()
       at Microsoft.Licensing.VolumeActivation.VamtDataStore.AddDiscoveredProductsInternal(IList`1 availableProducts, IList`1 activeProducts, SoftwareProtectionService provider, Boolean doNotDeleteProducts)
       at Microsoft.Licensing.VolumeActivation.VamtDataStore.AddDiscoveredProducts(IList`1 availableProducts, IList`1 activeProducts, SoftwareProtectionService provider, Boolean doNotDeleteProducts)
       at Microsoft.Licensing.VolumeActivation.UpdateProductsProvider.DiscoverProducts()

    Thursday, August 23, 2012 10:26 PM
  • Hi,

    As the best practices, we recommand you install the VAMT3.0 on Windows 7, Windows 8, Windows Server 2008 R2, or Windows Server 2012.

    If it's convenient for you, could you please install it on above server/client to have a try?

    http://technet.microsoft.com/en-us/library/hh824945

    Regards,


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Friday, August 24, 2012 2:46 AM
  • Hi Joel.

    This appears to be a difference between the database schema and used by VAMT 3.0.

    The scheme is declared in C: \ Program Files (x86) \ Windows Kits \ 8.0 \ Assessment and Deployment Kit \ VAMT 3.0 \ VamtSchema.sql.

    I have Windows 2008 R2 with all patches. PowerShell 3.0. Firewall low.

    Create the following registry manually.

    INSERT INTO [VAMT30].[base].[ProductKey] ([KeyValue] ,[KeyId] ,[KeyType] ,[KeyDescription] ,[SupportedEditions] ,[SupportedSKU] ,[UserRemarks] ,[RemainingActivations] ,[LastUpdate] ,[LastErrorCode]) VALUES ('xxxxx-xxxxx-xxxxx-xxxxx-xxxxx' ,'12345-00034-001-000047-03-1033-8191.0000-0872012' ,6 ,'Windows 8' ,'Professional' ,'a4383e6b-dada-423d-a43d-f25678429676' ,null ,-1 ,GETDATE() ,0)

    It does not work. I can only suspect the installation language. Mixed English/Spanish

    
    
    
    Friday, August 24, 2012 4:51 PM
  • Ruete: In my situation, I tried executing that SQL statement and it was accepted. Is there a way to debug with SQL query logging or something that you are aware of?

    Peterson: Windows SBS 2011 is just Windows Server 2008R2 + some other stuff put above that to form a software stack. Surely that should not cause these kinds of problems, would it? It's not as if VAMT relies on IIS or some other Windows component, AFAICS it is very much standalone, so I don't understand your logic. Well, best practices are best practices, but I don't think people place SBS as the "requirements" list since almost everything with 2008R2 (and historically, Windows Server 2008) runs just fine on it.

    I don't have a server on hand running (it is a small business, after all) but I'll see what I can do about that. Even if VAMT does work in that scenario, it would pretty much be useless to us.

    Side note: VAMT 2 works just fine on the same server and can manage all clients up to Windows 7 with it.


    • Edited by joel_lwo Friday, August 24, 2012 11:22 PM
    Friday, August 24, 2012 11:22 PM
  • Hi Joel,

    Yes, you are right, Windows SBS 2011 is Windows Server 2008 R2 + some additional components.

    I understand the VAMT2.0 is installed on your domain controller server, if it's convenient for you, could you please do a clean boot to have a try? The below KB has the detail steps how to do a clean boot.

    http://support.microsoft.com/kb/929135

    Regards,


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Saturday, August 25, 2012 2:59 AM
  • That is very drastic. I'll have to do this when the server is not under use.
    Saturday, August 25, 2012 9:46 AM
  • I have scheduled to do this test this weekend. I will get back to you hopefully by next Monday (3 Sept)
    Monday, August 27, 2012 8:27 AM
  • Joel

    I tried using ODBC tracing and sql.log not formed.

    Then enable auditing on the database and not found something.

    USE [master] GO

    CREATE SERVER AUDIT [Audit-VAMT] TO FILE ( FILEPATH = N'C:\netManager\netManagerDat\' ,MAXSIZE = 0 MB ,MAX_ROLLOVER_FILES = 2147483647 ,RESERVE_DISK_SPACE = OFF ) WITH ( QUEUE_DELAY = 1000 ,ON_FAILURE = CONTINUE ,AUDIT_GUID = '000aab0b-455a-4ee0-b885-2046ea156093' ) GO

    USE [VAMT30] GO

    CREATE DATABASE AUDIT SPECIFICATION [DatabaseAuditSpecification-VAMT] FOR SERVER AUDIT [Audit-VAMT] ADD (EXECUTE ON SCHEMA::[api] BY [public]), ADD (DELETE, INSERT, SELECT, UPDATE ON SCHEMA::[base] BY [public]) WITH (STATE = ON) GO

    Monday, August 27, 2012 5:01 PM
  • unfortunately this patch does not fix this problem.

    http://support.microsoft.com/kb/2691586

    described in: http://social.technet.microsoft.com/Forums/en-US/w8itproinstall/thread/d9bc109a-a32f-4992-ab17-227c10a8ee49

    I will try to install a 2012 kms server. I still think the problem is in the language.

    Thursday, August 30, 2012 1:16 PM
  • Joel,

    I am sorry to see that you are running into this issue trying to use VAMT 3 in your environment. I would like to try and help troubleshoot.

    If you discover and then attempt to refresh the licensing status of just 1 machine instead of all 7, do you still see the same behavior? 

    When VAMT goes to store the results of product discovery, it will write the entire batch to the database in a single transaction, so it could be the case that one machine returned data that was unexpectedly long (hence the error you found in the log) causing the entire transaction to fail to commit in SQL.  This would explain why you don’t see any of the machines in your list at the end.

    Also, when VAMT 3 discovers a machine via Active Directory, it uses DNS to fully qualify the domain name before storing the product information. Does the full name of any of the machines discovered (machine name + domain name, ex: mymachine.subdomain.contoso.com) exceed 255 characters?

    Thank you


    Eric Bluestein [MSFT]. Software Development Engineer II - Microsoft Windows Team. This posting is provided AS IS with no warranties, and confers no rights.

    Tuesday, September 04, 2012 9:45 PM
  • Eric: None do, but I do note that the computer names in the Products list are not fully qualified, i.e. ComputerName instead of ComputerName.domainname.local. Running the Update License Status on the computers without the FQDN will cause the entry to disappear. Manually entering a full name will create an entry with a full name, but Update License Status still does not discover the products installed.

    Wednesday, September 05, 2012 9:50 PM
  • I still want to try Peterson's clean boot suggestion, but I don't think I'm getting an opportunity to do it. I'll reply here if I manage to go on that path. Meanwhile I'll be willing to try other suggestions.

    Wednesday, September 05, 2012 10:19 PM
  • Dear joel,

    Can you please tell me version of VAMT 3.0 you are using?

    Regards,
    prathaprabhu

    Thursday, September 06, 2012 2:43 AM
  • 6.2.9200. Is there a newer build?
    Thursday, September 06, 2012 3:53 AM
  • No it is the latest - but we can expect a new build when Windows 8 comes out.

    Regards,
    prathaprabhu

    Thursday, September 06, 2012 4:24 AM
  • 6.2.9200 is the final build that was released with Windows 8 RTM; this is the newest version of VAMT. It should run fine on Windows SBS 2011.  Unfortunately I do not believe that rebooting your server (clean or otherwise) will have any affect on this issue.

    Based on the exception from your log that is posted above, it would appear that one or more of the products being discovered has data that exceeds the field width for one of the SQL columns.  This is certainly not expected.  I have been trying to reproduce the behavior you are describing but so far have been unsuccessful. Even when forcing the data to be far larger than anticipated, I have not seen products disappearing from the "Collecting product information..." dialog like described above.

    You can try increasing the logging verbosity from VAMT, if you then repeat the steps you took before, I am hoping this will result in some event(s) preceding the "String or binary data would be truncated." error that might shed some light on which machine or product is failing to store.


    Standard editing-the-registry disclaimer:

    IMPORTANT: This contains information about editing the registry. Before you edit the registry, make sure you understand how to restore it if a problem occurs. For information about how to do this, view the "Restoring the Registry" Help topic in Regedit.exe or the "Restoring a Registry Key" Help topic in Regedt32.exe.



    To increase the VAMT logging output:

      • Open regedit.exe
      • Navigate to HKEY_CURRENT_USER\Software\Microsoft
      • Create a new key at this location named "VAMT3" (if it doesn't already exist)
      • Under the VAMT3 key, create a new DWORD value named "VerboseLogLevel"
      • Set the DWORD's value to 2
      • Start/Restart VAMT.

     

    The log entries can be viewed in Event Viewer under "Application and Services Logs" -> "Volume Activation Management Tool".


    Eric Bluestein [MSFT]. Software Development Engineer II - Microsoft Windows Team. This posting is provided AS IS with no warranties, and confers no rights.

    Friday, September 07, 2012 7:31 PM
  • Thanks Eric.

    The only errors in the log is still the one above I've pasted (with the stack trace).

    Before the error above, I do notice however is that after the Establishing WMI connection log message, which does establish, I do see 8 separate Discovered Product messages. After the error above, I get a warning

    Software provider for application: 59a52881-a989-479d-af46-f275c6370663 was unavailable on machine:
        Machine Name: SERVER.lowfamily.local
        OS Version  : 6.1.7601
        OS Edition  : Microsoft Windows® Small Business Server 2011 Standard
        Network Type: Domain
        Network Name: lowfamily.local
        Is KMS Host? False

    Am I missing something? I do note that while installing VAMT 3 I did try to find all the required dependencies, but download links were broken and such so it was rather nebulous.


    • Edited by joel_lwo Friday, September 07, 2012 11:21 PM
    Friday, September 07, 2012 11:20 PM
  • Oh, also, WMI seems to be making quite a few Error entries in the Event Log, something I noticed after installing VAMT 3. One such error, in the Applications and Services Logs\Microsoft\Windows WMI-Activity log is event ID 5858:

    Id = {01EC4A50-F800-0002-99E7-7124C88CCD01}; ClientMachine = SERVER-1270V2; User = [User with domain admin rights]; ClientProcessId = 17820; Component = Unknown; Operation = Start IWbemServices::ExecQuery - root\cimv2 : SELECT Version, ClientMachineID FROM OfficeSoftwareProtectionService; ResultCode = 0x80041010; PossibleCause = Unknown

    Friday, September 07, 2012 11:25 PM
  • The warnings about the Software Provider 59a52881-a989-479d-af46-f275c6370663  not being available on the client machine can safely be ignored.

    This is the provider for Microsoft Office 2010. If Office is not installed on the client machine, this log entry is expected.

    Thanks


    Eric Bluestein [MSFT]. Software Development Engineer II - Microsoft Windows Team. This posting is provided AS IS with no warranties, and confers no rights.

    Friday, September 07, 2012 11:52 PM
  • Any other things to look out for, then?
    Friday, September 07, 2012 11:54 PM
  • Hi,

    It seems this is a very complicated issue, so I think it doesn't suit be supported via Forum, I advise you submit a Professional support case to our corresponding team so that you can receive professional support.

    Thanks for your understanding.

    Regards,


    Please remember to click “Mark as Answer” on the post that helps you, and to click “Unmark as Answer” if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.

    Tuesday, September 11, 2012 9:29 AM
  • VAMT isn't very high on my priority list. So if it doesn't work, it isn't any loss to me (even if it was, it is definitely less than the trouble of opening a support case). I've posted here in case someone else may run into the same problem.

    Since it's a problem that no one else seems to be experiencing, I'm more than happy to leave it as it is. I've not solved it, but as you can see there's no resolution here.


    • Edited by joel_lwo Wednesday, September 12, 2012 8:11 AM
    Wednesday, September 12, 2012 8:10 AM
  • Hi Joel, I am experiencing some of the same symptoms as you are with VAMT 3.0.

    I can discover machines from AD, but when I try to run "Update license status" the machines disappears.

    Out of appx. 100 machines appx. 10 is queried allright.

    Any solution to this yet ?

    BR. Thomas Hillerup, DK

    Monday, September 17, 2012 11:39 AM
  • Sorry, I've elected not to do anything about this, since VAMT is not very important to us. However, if you do open a case with Microsoft, I think we would all be grateful.

    Thursday, September 20, 2012 1:44 PM
  • Found and fixed the same problem on my network.

    The error stems from an attempted insert into a table, and performing a trace on the connection showed the app trying to do this:

    exec sp_executesql N'INSERT INTO [api].[VolumeClient]([FullyQualifiedDomainName], [DomainWorkgroupName], [IsKmsHost], [NetworkType], [OSEdition], [OSVersion])
    VALUES (@p0, @p1, @p2, @p3, @p4, @p5)
    
    SELECT [t0].[RowVer]
    FROM [api].[VolumeClient] AS [t0]
    WHERE [t0].[FullyQualifiedDomainName] = @p6',N'@p0 nvarchar(4000),@p1 nvarchar(4000),@p2 bit,@p3 int,@p4 nvarchar(4000),@p5 nvarchar(4000),@p6 nvarchar(4000)',@p0=N'pv-nas01',@p1=N'mhopc.local',@p2=0,@p3=1,@p4=NULL,@p5=N'Samba for GuardianOS v4.4.049.200706181812',@p6=N'pv-nas01'

    Check out @p5 in there - @p5=N'Samba for GuardianOS v4.4.049.200706181812' - and it's trying to insert it into OSVersion in table VolumeClient.

    The main problem is that OSVersion is a nvarchar(30). Something in the directory is being scanned and responding with a value longer than the application was designed to handle.

    In the C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\VAMT 3.0 directory, there are two SQL scripts used to create the database and populate the KMS keys - I was able to modify the script to increase that datatype to a nvarchar(50), drop and recreate the database - and now VAMT scans my entire AD error free.

    Hope this helps anyone else who Googles this.

    Friday, November 09, 2012 9:56 PM
  • Found and fixed the same problem on my network.

    The error stems from an attempted insert into a table, and performing a trace on the connection showed the app trying to do this:

    exec sp_executesql N'INSERT INTO [api].[VolumeClient]([FullyQualifiedDomainName], [DomainWorkgroupName], [IsKmsHost], [NetworkType], [OSEdition], [OSVersion])
    VALUES (@p0, @p1, @p2, @p3, @p4, @p5)
    
    SELECT [t0].[RowVer]
    FROM [api].[VolumeClient] AS [t0]
    WHERE [t0].[FullyQualifiedDomainName] = @p6',N'@p0 nvarchar(4000),@p1 nvarchar(4000),@p2 bit,@p3 int,@p4 nvarchar(4000),@p5 nvarchar(4000),@p6 nvarchar(4000)',@p0=N'pv-nas01',@p1=N'mhopc.local',@p2=0,@p3=1,@p4=NULL,@p5=N'Samba for GuardianOS v4.4.049.200706181812',@p6=N'pv-nas01'

    Check out @p5 in there - @p5=N'Samba for GuardianOS v4.4.049.200706181812' - and it's trying to insert it into OSVersion in table VolumeClient.

    The main problem is that OSVersion is a nvarchar(30). Something in the directory is being scanned and responding with a value longer than the application was designed to handle.

    In the C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\VAMT 3.0 directory, there are two SQL scripts used to create the database and populate the KMS keys - I was able to modify the script to increase that datatype to a nvarchar(50), drop and recreate the database - and now VAMT scans my entire AD error free.

    Hope this helps anyone else who Googles this.

    Can you please tell me how you did that I am also having the same problem neither I am able to load Product keys it gives an error "String or binary data would be trucated." 
    Thursday, February 07, 2013 6:17 PM
  • Found and fixed the same problem on my network.

    The error stems from an attempted insert into a table, and performing a trace on the connection showed the app trying to do this:

    exec sp_executesql N'INSERT INTO [api].[VolumeClient]([FullyQualifiedDomainName], [DomainWorkgroupName], [IsKmsHost], [NetworkType], [OSEdition], [OSVersion])
    VALUES (@p0, @p1, @p2, @p3, @p4, @p5)
    
    SELECT [t0].[RowVer]
    FROM [api].[VolumeClient] AS [t0]
    WHERE [t0].[FullyQualifiedDomainName] = @p6',N'@p0 nvarchar(4000),@p1 nvarchar(4000),@p2 bit,@p3 int,@p4 nvarchar(4000),@p5 nvarchar(4000),@p6 nvarchar(4000)',@p0=N'pv-nas01',@p1=N'mhopc.local',@p2=0,@p3=1,@p4=NULL,@p5=N'Samba for GuardianOS v4.4.049.200706181812',@p6=N'pv-nas01'

    Check out @p5 in there - @p5=N'Samba for GuardianOS v4.4.049.200706181812' - and it's trying to insert it into OSVersion in table VolumeClient.

    The main problem is that OSVersion is a nvarchar(30). Something in the directory is being scanned and responding with a value longer than the application was designed to handle.

    In the C:\Program Files (x86)\Windows Kits\8.0\Assessment and Deployment Kit\VAMT 3.0 directory, there are two SQL scripts used to create the database and populate the KMS keys - I was able to modify the script to increase that datatype to a nvarchar(50), drop and recreate the database - and now VAMT scans my entire AD error free.

    Hope this helps anyone else who Googles this.

    Can you please tell me how you did that I am also having the same problem neither I am able to load Product keys it gives an error "String or binary data would be trucated." 

    Well, 9 months on and i could really do with either the explanation to this problem.  I have exactly the same issue with VAMT 3.0.  I can discover computers but as soon as i check for current credential, the computer disappears.  And whilst the above post seem to hold a resolution, it is not clear enough instruction for me to resolve this.  Aaaarrrggh.  Tried ringing Microsoft and got a requirement for a credit card number.  This is your software and it does not work so someone, please help.  Microsoft employee or anyone with any advice.

    Kind regards

    Stev!e


    Kind regards Steven Welsh Lost in Space

    Friday, November 22, 2013 10:14 AM