Euer Dienstleister ist nicht zufällig die FI, oder?
In Notes konnte ich bisher auf solche Info's verzichten, aber da wir so ziemlich das gleiche Problem hatten (wir haben die Druckerzuordnung an den Clientnamen gebunden), muss ist auch nach dem Arbeitplatzwechsel wissen, an welchem Client der Anwender sitzt.
Das Login machen wir mit KIX, aber die Info erhalte ich über DOS. Ich habe zwei Varianten im Einsatz, wobei ich jetzt adhoc nichts sagen, was für was ist ...
Ich hoffe, Du kommst mit dem Gedankenanstoß zurecht ....
Markus
Function GetClientnamen
$GetClientnamen = @WKSTA
if $IsTS
$TempDatei = "%TEMP%\ClientIP.ini"
; Citrix-Tool wfcinfo nutzen, um Client-IP-Adresse zu ermitteln
shell 'cmd.exe /c $ToolPfad\wfcinfo >$TempDatei'
; Client-IP-Adresse ermitteln
$ClientIP = ReadProfileString($tempDatei, 'WFClient', 'WFClientAddress')
$rc = ReDirectOutput("$TempDatei")
? 'Ping='
$rc = ReDirectOutput("")
; Und nach Namen "fragen": Ping -a xxx.xxx.xxx.xxx
shell 'cmd.exe /c ping.exe -a $ClientIP -n 1 | find "[$ClientIP]" >>$TempDatei'
; Name ermitteln und zurechtschnibbeln
$ClientName = ReadProfileString($TempDatei, 'WFClient', 'Ping')
; Anfang zurechtschnibbeln
$ClientName = SubStr($ClientName, instr($ClientName, 'Z021'))
; Ende zurechtschnibbeln; da es zwei Endungen gibt (AD - Vollqualifiziert endet mit . / NT endet mit Blank!)
$Ende = instr($ClientName,'.@LDomain')
$Ende = iif($Ende > 0, $Ende, instr($ClientName, ' '))
$ClientName = Left($ClientName, $Ende-1)
;wenn PublishedApplictation ist Clientname = Servername ("Z021ST22 [26")
; $GetClientnamen = iif (instr($GetClientnamen, ' ') > 0, Left($GetClientnamen,
, $GetClientnamen)
$GetClientnamen = $ClientName
endif
EndFunction
Function GetIcaClientInfo($Versionsart)
; ICAClientInfoWFApplicationName
; ICAClientInfoWFClientAddress
; ICAClientInfoWFClientBuildNumber
; ICAClientInfoWFClientCacheDim
; ICAClientInfoWFClientCacheMem
; ICAClientInfoWFClientDirectory
; ICAClientInfoWFClientDisplay
; ICAClientInfoWFClientName
; ICAClientInfoWFClientProductId
; ICAClientInfoWFConnectState
; ICAClientInfoWFDomainName
; ICAClientInfoWFICABufferLength
; ICAClientInfoWFLicenseEnabler
; ICAClientInfoWFSessionId
; ICAClientInfoWFUserName
; ICAClientInfoWFVersion
; ICAClientInfoWFWinStationName
if exist("C:\Programme\Citrix\System32\wfapi.dll")
$tmpFile = "%temp%\icaclientinfo.txt"
$rc = REDIRECTOUTPUT($tmpFile, 1)
? '[@Date]@CRLF'
$rc = REDIRECTOUTPUT("")
shell 'cmd.exe /c $ToolPfad\icaclientinfo.exe >>$tmpFile 2>NUL:'
$GetIcaClientInfo = ReadProfileString($tmpFile, @Date, "Set $Versionsart")
endif
EndFunction