Open navigation

ThinPrint-Lizenz-Reporte generieren

Automatische Meldung des Lizenzverbrauchs

Technische Anforderungen

Feature aktivieren

Reportdatei manuell generieren

Inhalt der Reportdatei

Domäne bleibt anonym

Style-Sheet

XML-Format in gut leserliche Form konvertieren

Zusammenfassung


Hinweis! Als ThinPrint-Service-Provider haben Sie seit Lizenzserver-Version 10.6 die Möglich­keit, die Zuordnung von ThinPrint-Lizenzen zu Nutzern automatisiert vornehmen zu lassen. Nutzer bekommen dann in dem Moment automatisch eine Lizenz zugewie­sen, wenn sie zum ersten Mal drucken.

Das vereinfacht die Administration der Lizen­zen extrem und ermöglicht die Abrechnung von ThinPrint exakt nach tatsächlicher Nutzung. Insbesondere in Umgebungen mit schwankenden Nutzerzahlen ist beides von sehr großem Vorteil.

Zusätzlich können Sie nach wie vor Nutzern und Nutzergruppen ihre Lizenzen manuell zuweisen (beispielsweise durch Import aus dem Microsoft Active Directory) oder auch von der automatischen Lizenzzuweisung ausnehmen.

Die Abrechnung von ThinPrint an Sie als Service-Provider erfolgt anhand eines monatlichen Reports, in dem Ihre Kunden für ThinPrint anonym bleiben. Sie als Ser­vice-Provider können zusätzlich einen zweiten internen Report erstellen, in dem Sie die Zuordnung der Lizenzen zu Ihren einzelnen Kunden ablesen können. Dieser Report ermöglicht Ihnen wiederum, eine genaue Abrechnung nach Nutzung Ihren Kunden gegenüber.

Das vorliegende Dokument erläutert, wie diese Reportdateien zur Ermittlung der aktivierten Anwender automatisiert generiert werden können.


Automatische Meldung des Lizenzverbrauchs

Technische Anforderungen

  • ThinPrint-Lizenzserver 13.1.6
  • Internet-Verbindung via TCP-Port 443 (ausgehende Kommunikation)
    • lsus.thinprint.com/lsus/reports muss erreichbar sein


Feature aktivieren

Die Funktion ist standardmäßig deaktiviert und muss über den Windows Task Scheduler aktiviert werden.

Für die Abrechnung wird der Lizenz-Report mit der maximalen Anzahl der freigeschalteten Benutzer im aktuellen Monat verwendet.


Reportdatei manuell generieren

Seit Version 10.6 des Lizenzservers ist es möglich, per Kommandozeile eine Report­datei generieren zu lassen. Dazu müssen Sie in das entsprechende Verzeichnis auf dem Lizenzserver wechseln. Standardmäßig befindet sich das Kommando in folgen­dem Verzeichnis:

C:\Program Files\Common Files\ThinPrint

  • –  Starten Sie die Kommandozeile mit administrativen Rechten. Das aufzurufende Kommando lautet:
cclucs.exe -report [FILE]

[FILE] steht für Pfad und Dateiname. Beispiel:

cclucs.exe -report c:\temp\ThinPrintLicenseReport.xml

per Kommandozeile eine Report­datei des ThinPrint-Lizenzservers generieren

Die Angabe des Dateisuffixes ist beliebig. Inhaltlich wird aber immer XML erstellt. Insofern empfiehlt es sich, als Format .xml zu wählen.


Inhalt der Reportdatei

Die Datei enthält am Ende eine Signatur, welche die Erstellung gegenüber ThinPrint verifiziert. Für eine Weiterverarbeitung oder den Import in andere Applikationen zu internen Zwecken muss die Signatur gegebenenfalls entfernt werden.

Inhalt der ThinPrint-Reportdatei

Domäne bleibt anonym

Die Domäne ist dabei nur als SID sichtbar und somit für ThinPrint anonymisiert. Für interne Zwecke kann man den Klarnamen der jeweiligen Domäne mit geeigneten Tools – beispielsweise PSGetSID von Sysinternals – ermitteln.

Für interne Zwecke kann man den Klarnamen der jeweiligen Domäne mit geeigneten Tools ermitteln


Style-Sheet

Eine übersichtlichere Darstellung lässt sich beispielsweise unter Verwendung der Transform-Funktion von Excel erreichen. Dazu muss ein entsprechendes Style-sheet – hier: ThinPrintLicenseReport.xsl – erstellt werden:

<?xml version='1.0'?> 
<xsl:stylesheet version="1.0" xmlns:xsl="https://www.w3.org/1999/XSL/Transform"> <xsl:template match="/">  
<html>  
<body>    
<table border="2" bgcolor="yellow">
<tr>        
    <th>Domain</th>
    <th>Date</th>
    <th>UserCount</th>
</tr>       

<xsl:for-each select="LicenseReport/Product/Domain[@DomainSid!='S-1-5-32']">      
<tr>
    <td><xsl:value-of select="@DomainSid"/></td>
    <td><xsl:value-of select="@Date"/></td>
    <td><xsl:value-of select="@UserCount"/></td>
</tr>

</xsl:for-each>
</table>  
</body>  
</html> 
</xsl:template> </xsl:stylesheet>

 

XML-Format in gut leserliche Form konvertieren

Mittels PowerShell-Skript lässt sich die ursprüngliche Reportdatei (im XML-Format) anschließend in eine optische besser lesbare Form konvertieren (hier als ThinPrintLicenseReport.ps1):

param ($xml, $xsl, $output)
if (-not $xml -or -not $xsl -or -not $output)
{
Write-Host "& .\xslt.ps1 [-xml] xml-input [-xsl] xsl-input [-output] transform-output"
exit;
}
trap [Exception]
{
Write-Host $_.Exception;
}
$tempFile = [System.IO.Path]::GetTempFileName();
(Get-Content $xml) -notmatch "[0-9a-f].*" | Out-File $tempFile
Import-Module ActiveDirectory
<# Get Distinguished Name #>
$objDomain = Get-ADDomain
$objDomainDN = (Get-ADDomain).DistinguishedName

<# Get current Domain SID #>
$CurrentDomainSID = (Get-ADDomain).DomainSID

<# Get Forest Domains #>
$objForestDomains = (Get-ADForest).Domains

<# Replace all SIDs in $tempFile that match any of the Forest Domains #>
foreach ($Domain in $objForestDomains) {
try {
$DomainResult = Get-ADDomain -server $Domain -ErrorAction SilentlyContinue | select DNSroot, DomainSID -ErrorAction SilentlyContinue
$xmlContent = (Get-Content $tempFile)
If ($xmlContent -match ($DomainResult | select -ExpandProperty DomainSID)) {
$xmlContent = $xmlContent -replace ($DomainResult | select -ExpandProperty DomainSID), ($DomainResult | select -ExpandProperty DNSroot)
$xmlContent | Out-File $tempFile
}
} catch {
Write-Host ("Exception while contacting Domain " + $Domain + ".")
Write-Host ($Error[0].Exception)
}
}
#>
<# Get Trusted Domains #>
$objTrustedDomains = Get-ADObject -SearchBase "CN=System,$objDomainDN" -SearchScope OneLevel -LDAPFilter "(&(objectClass=trustedDomain)(!trustAttributes=32))" -Property name, securityIdentifier
$TrustedDomainSIDs = $objTrustedDomains | select -ExpandProperty securityIdentifier
$TrustedDomName = Get-ADObject -SearchBase "CN=System,$objDomainDN" -SearchScope OneLevel -LDAPFilter "(&(objectClass=trustedDomain)(!trustAttributes=32))" -Property name, securityIdentifier | select -ExpandProperty Name
<# Replace all SIDs in $tempFile that match any of the Trusted Domains #>
foreach ($TrustedDomain in $objTrustedDomains) {
try {
$xmlContent = (Get-Content $tempFile)
If ($xmlContent -match ($TrustedDomain | select -ExpandProperty securityIdentifier)) {
$xmlContent = $xmlContent -replace ($TrustedDomain | select -ExpandProperty securityIdentifier), ($TrustedDomain | select -ExpandProperty Name)
$xmlContent | Out-File $tempFile
}
} catch {
Write-Host ("Exception while contacting Domain " + $Domain + ".")
Write-Host ($Error[0].Exception)
}
}
$xslt = New-Object System.Xml.Xsl.XslCompiledTransform;
$xslt.Load($xsl);
$xslt.Transform($tempFile, $output);
remove-item -path $tempFile;

Eine entsprechende Namensgebung für die Skripte vorausgesetzt, würde der Aufruf folgendermaßen lau­ten:

  .\ThinPrintLicenseReport.ps1 C:\temp\ThinPrintLicenseReport.xml c:\temp\ThinPrintLicenseReport.xsl c:\temp\ThinPrintLicenseReport.html

Die Browser-Darstellung der erzeugten Datei ThinPrintLicenseReport.html zeigt das folgende Bild:

Browser-Darstellung der erzeugten Datei ThinPrintLicenseReport.html


Zusammenfassung

Für die Anzeige des Lizenzverbrauchs gegenüber der ThinPrint GmbH senden Sie uns die Reportdatei im XML-Format zu – z. B. ThinPrintLicenseReport.xml.

Für die interne Abrechnung – bzw. die Abrechnung gegenüber Ihren Kunden – kön­nen Sie Reports erzeugen, die den Lizenzverbrauch pro Domäne anzeigen. Dazu kön­nen Sie das oben aufgeführte Beispielskript verwenden.

Kann die Domäne nicht aufgelöst werden, erscheint anstelle des Domänennamens die SID der Domäne.

War diese Antwort hilfreich? Ja Nein

Feedback senden
Leider konnten wir nicht helfen. Helfen Sie uns mit Ihrem Feedback, diesen Artikel zu verbessern.