20170818 Citrix外设情景和排错
VDA访问USB设备的两种方式:
1.    VDA本地访问USB设备
    使用通用USB映射
    该方式在VDA的设备管理器里面能够看到USB设备
2.VDA远程访问客户端设备
    使用HDX优化模式
    在Receiver的设备管理器里面能够看到USB设备
    
通常情况下,以下设备支持HDX优化模式,通过HDX虚拟通道实现,只要在客户端安装驱动:
显示器、鼠标、键盘、VOIP电话、头戴式耳机、摄像头、扫描仪、打印机、磁盘、智能卡读卡器、绘图仪、签字版

1.USB大容量存储
    通过CDM(Client Drive Mapping)虚拟通道
    设置USB磁盘只读:
        CDM:DDC策略,Read-only client drive access
        USB:微软策略,可移动磁盘,Deny write access
    排错:
        无法在映射的客户端磁盘上执行可执行文件
            解决方法:在VDA中修改注册表值HKLM\Software\Citrix\GroupPolicy\Defaults\CDMSettings下ExecuteFromMappedDrive,REG_DWORD,1
        映射的客户端磁盘文件超过4G
            解决方法:ICA文件系统是32位的,查看官方KB:https://support.citrix.com/article/CTX134844
        
        更多关于CDM排错:https://support.citrix.com/article/CTX238200
        
2.摄像头
    通过RAVE虚拟通道
    可在例如Skype、Lync、QQ、AMCAP等使用
    排除:
        默认分辨率352*288
            解决方法:在Receiver端修改注册表HKCU\Software\Citrix\HdxRealTime下DefaultWidth,REG_DWORD,value1和Defaultheight,REG_DWORD,value2
        VDA端找不到设备
            解决办法:VDA端查找注册表HKCR\{Wow6432node\}CLSID\{860BB310-5D01-11d0-BD3B-00A0C911CE86}\Instance\Citrix HDX Web Camera;允许windows media重定向;使用AMCAP测试(支持的程序需要基于Directshow API开发);收集CDF Traces日志
        更多信息:https://support.citrix.com/article/CTX132764

3.扫描仪、高拍仪
    通过TWAIN虚拟通道
    DDC策略,客户端TWAIN设备重定向(默认开启)
    排错:
        测试小工具:Twacker
        仅支持Native和Buffer Memory模式,不支持Disk File Transfer模式
    更多信息:https://support.citrix.com/article/CTX1326395    

不支持HDX优化模式的情况下,使用USB重定向模式:
    需要查看VID、PID、Class、SubClass、Prot
    在DDC端设置:开启USB重定向(默认关闭)    检测VDA端注册表:HKLM\Software\Policies\Citrix\\User\VCPolicies下的AllowUSBRedir和USBDeviceRules
    当在DDC上对同一个交付组设置了多个USB重定向的策略,高优先级的策略生效
    ToolBar上的Device会显示提示信息
    设置使用通用USB映射:在Receiver端修改注册表HKLM\Software\(Wow6432node\)Citrix\ICA Client\GenericUSB\DeviceRules
    自动连接USB设备:在ToolBar上连接中勾选;若客户端设备加入域,则可以通过组策略批量修改:导入组策略icaclient_usb.admx/adml到c:\program files(x86)\citrix\ica client\configuration\en,在经典模板-citrix组件-远程客户端设备-通用USB远程中的现有USB设备和新USB设备中修改对应的值即可
    自动将虚拟通道的设备通过通用USB的方式映射:
    注册表:HKLM\Software\(Wow6432Node\)citrix\ica client\generic usb\devices中的autoredirectXXX的值
    
    更多信息:https://support.citrix.com/article/CTX123015
    
    XenApp中支持USB映射的情况:
        VDA操作系统的要求:
            Windows Server 2012 R2
            Windows Server 2016
        限制:
            XA7.6中不支持USB设备、声卡、智能卡读卡器、其他不能完全虚拟化的设备使用优化模式,只能使用USB映射模式
            XA7.9支持USB设备使用优化模式

常见问题:
    1.ToolBar上无设备选项卡
        解决方法:检查是否开启了USB重定向策略
    2.设备上提示策略限制
        解决方法:检查DDC策略:客户端USB设备重定向规则;修改注册表:HKLM\software\(wow6432node\)citrix\ica client\genericusb\devicerules
    3.优化模式无法正常使用
        解决方法:切换到通用USB方式
    4.切换成通用USB方式时报错,显示USB设备正在使用
        解决方法:在Receiver端设置EnableForceRestartForHID值为1;Citrix Receiver4.7+允许强制重定向;停止或卸载设备驱动;收集CDF traces日志
    5.设备管理器的设备显示×××叹号
        解决方法:查看VDA端驱动安装日志%windir%\inf\setupapi.dev.log;VDA端收集usblyzer trace日志;在VDA和终端收集CDF traces日志
    6.MTP设备无法正常使用
        解决方法:更新驱动程序,选择便捷设备-MTP USB设备
    7.USB Key设备被smart card hook影响
        解决方法:删除VDA的注册表项,32位和64位系统:HKLM\software\citrix\ctxhook\appinit_dlls\smart card hook,64位系统:HKLM\software\wow6432node\citrix\ctxhook\appinit_dlls\smart card hook
        
        
USB设备出现问题时,收集CDF trace日志方法:
    Receiver端:安装offlineplugin;修改注册表:HKLM\system\CurrentControlSet\Services\Cdfdrv值设置为0并重启
    Client端:icaclient_genericusb_ctxusbm;icaclient_genericusb_ctxusbr;icaclient_genericusb_vdgusb
    VDA端:Portica_Driver_USB;Portica_Service_USB(Portica_Service_Redirector)
    
COM和LPT设备:
    VDA端修改:
        VDA7.9-:
            COM设备:
                HKLM\software\citrix\GroupPolicy\Defaults\Deprecated添加AllowComPortRedirection,REG_DWORD,1和AutoConnectClientComPorts,REG_DWORD,1
            LPT设备:
                HKLM\software\citrix\GroupPolicy\Defaults\Deprecated添加AllowLptPortRedirection,REG_DWORD,1和AutoConnectClientLptPorts,REG_DWORD,1
                
        VDA7.9+:
            Studio Policy:
                COM设备:客户端COM口重定向、自动连接客户端COM口
                LPT设备:客户端LPT口重定向、自动连接客户端LPT口
    排错:
        使用net use查看映射的设备
        调整buffer size:
            修改Receiver端注册表:HKLM\software\(wow6432node\)citrix\ica client,CommBufferSize 2048(DWORD,decimal)
            HKLM\Software\(wow6432node\)citrix\ica client\engine\configuration\advanced\modules\clientcomm,windowssize 2048(DWORD,decimal)