@Mono
gut danke ich hab aber dann noch ein anderes Problem, und zwar soll ja wenn nur B rauskommt die letzten 5 chars ausgewertet werden dort hab ich auch eine Stelle wo ich nicht weiter kommen tue.
bei der Zeile:
kommen immer Fehlermeldungen, mein Kollege sagt das es dann hier einen Fehler gibt:
Du musst also schauen, wie du WshShell.RegRead(key & "DigitalProductId") in VB.NET umsetzt. Suche also nach Registry Schlüssel auslesen VB.NET.
LG
gut danke ich hab aber dann noch ein anderes Problem, und zwar soll ja wenn nur B rauskommt die letzten 5 chars ausgewertet werden dort hab ich auch eine Stelle wo ich nicht weiter kommen tue.
VB.NET-Quellcode
- Function GetIsPrimaryWindowsSKU(objProduct)
- Dim iPrimarySku As Integer
- Dim bIsAddOn As Boolean
- 'Assume this is not the primary SKU
- iPrimarySku = 0
- 'Verify the license is for Windows, that it has a partial key, and that
- If (LCase(objProduct.ApplicationId) = WindowsAppId And objProduct.PartialProductKey <> "") Then
- 'If we can get verify the AddOn property then we can be certain
- On Error Resume Next
- bIsAddOn = objProduct.LicenseIsAddon
- If Err.Number = 0 Then
- If bIsAddOn = True Then
- iPrimarySku = 0
- Else
- iPrimarySku = 1
- End If
- Else
- 'If we can not get the AddOn property then we assume this is a previous version
- 'and we return a value of Uncertain, unless we can prove otherwise
- If (IsKmsClient(objProduct.Description) Or IsKmsServer(objProduct.Description)) Then
- 'If the description is KMS related, we can be certain that this is a primary SKU
- iPrimarySku = 1
- Else
- 'Indeterminate since the property was missing and we can't verify KMS
- iPrimarySku = 2
- End If
- End If
- End If
- GetIsPrimaryWindowsSKU = iPrimarySku
- End Function
bei der Zeile:
kommen immer Fehlermeldungen, mein Kollege sagt das es dann hier einen Fehler gibt:
VB.NET-Quellcode
- Function GetLast5CharWin(ProductKey) 'Funktion zum getten der letzten 5 chars von ProductKey
- Dim objProduct As Object
- Dim strServiceSelectClause As String
- Dim objProductIter As Object
- Dim strIterSelectClause As String
- Dim strProductSelectClause As String
- Dim strDescription As String = ""
- Dim bShowSkuInformation As Boolean
- Dim iIsPrimaryWindowsSku As Integer
- Dim bUseDefault As Boolean
- Dim productKeyFound As Boolean
- Dim g_objWMIService As Object
- Dim g_objRegistry As Object
- Dim objService As Object
- g_objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 'WMI eigenschaften auslesen
- g_objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv") 'WMI eigenschaften auslesen in der Registry
- productKeyFound = False 'der Boolean wurde auf False gesetzt
- strServiceSelectClause =
- "KeyManagementServiceListeningPort, KeyManagementServiceDnsPublishing, " &
- "KeyManagementServiceLowPriority, ClientMachineId, KeyManagementServiceHostCaching, " &
- "Version"
- strProductSelectClause =
- ProductIsPrimarySkuSelectClause & ", " &
- "ProductKeyID, ProductKeyChannel, OfflineInstallationId, " &
- "ProcessorURL, MachineURL, UseLicenseURL, ProductKeyURL, ValidationURL, " &
- "GracePeriodRemaining, LicenseStatus, LicenseStatusReason, EvaluationEndDate, " &
- "VLRenewalInterval, VLActivationInterval, KeyManagementServiceLookupDomain, KeyManagementServiceMachine, " &
- "KeyManagementServicePort, DiscoveredKeyManagementServiceMachineName, " &
- "DiscoveredKeyManagementServiceMachinePort, DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceProductKeyID," &
- "TokenActivationILID, TokenActivationILVID, TokenActivationGrantNumber," &
- "TokenActivationCertificateThumbprint, TokenActivationAdditionalInfo, TrustedTime," &
- "ADActivationObjectName, ADActivationObjectDN, ADActivationCsvlkPid, ADActivationCsvlkSkuId, VLActivationTypeEnabled, VLActivationType," &
- "IAID, AutomaticVMActivationHostMachineName, AutomaticVMActivationLastActivationTime, AutomaticVMActivationHostDigitalPid2"
- objService = GetServiceObject(strServiceSelectClause)
- strIterSelectClause = ProductIsPrimarySkuSelectClause
- For Each objProductIter In GetProductCollection(strIterSelectClause, EmptyWhereClause)
- ' Display information if:
- ' parm = "all" or
- ' ActID = parm or
- ' default to current ActID (parm = "" and IsPrimaryWindowsSKU is 1 or 2)
- iIsPrimaryWindowsSku = GetIsPrimaryWindowsSKU(objProductIter)
- bUseDefault = False
- bShowSkuInformation = False
- If ((iIsPrimaryWindowsSku = 1) Or (iIsPrimaryWindowsSku = 2)) Then
- bUseDefault = True
- bShowSkuInformation = True
- End If
- If (bShowSkuInformation) Then
- objProduct = GetProductObject(strProductSelectClause, "id = '" & objProductIter.ID & "'")
- productKeyFound = True
- If objProduct.PartialProductKey <> "" Then
- GetLast5CharWin = "XXXXX-XXXXX-XXXXX-XXXXX-" & objProduct.PartialProductKey
- Exit For
- End If
- End If
- Next
- End Function