我们有多个单独的许可证管理器服务器(不同的服务器),主要是因为.opt(选项)文件从未像人们希望的那样真正工作。我正在研究两个(DOS .bat)批处理文件,这将允许用户:
我希望在不需要管理员权限的情况下运行这两个工具,但是还没有经过测试。但是,即使需要管理员权限,这些脚本也应该简化这个过程。
我发现了很多current_user具有许可证管理器值的注册表项:
加上一个环境变量:
我可以让我的脚本改变所有这些变量,有些可能是旧的/不相关的,因为我的机器已经经历了许多版本的软件/LM。
然而,这些似乎都没有改变许可证管理器变量在ArcGIS管理员对话框中,这似乎覆盖一切。我似乎找不到这是存储在哪里,因此我是否可以覆盖或覆盖它与一个脚本。我知道您可以在静默安装时设置值(只是想到了这一点),所以我认为这是可能的。有什么建议吗? ?
我将张贴我的脚本样本完成后…but as always, when messing with registry keeps, be very cautious and use at your own risk. If something goes wrong, it can mess up a machine. By the way, I have found and pieced together the pieces of the info needed I needed for the first (and part of the 2nd) script on GeoNet, StackExchange and several MicroSoft related sites.
当前软件:10.2.2 - 10.5.x
当前软件license管理器:10.5.1
操作系统:Windows 7, 64位
然而,这些似乎都没有改变许可证管理器变量在ArcGIS管理员对话框中,这似乎覆盖一切。
可识别的reg键位于HKEY_LOCAL_MACHINE中,而不是HKEY_CURRENT_USER中。这就是为什么需要启动ArcGIS Administrator来修改密钥的原因。带有服务器名的ArcGIS Admin应用框不受env变量的影响。(我似乎记得,如果ARCGIS_LICENSE_FILE已经设置,AA确实会在详细信息列表中报告。)
根据我的经验,当前活动的环境变量确实覆盖了注册表设置。但是,如果您在用户环境变量中设置变量,并且不再次注销和登录,则它们不会“占用”。这是因为如果你这样做,并且从Windows资源管理器启动应用程序,它们将使用资源管理器主shell,该shell在登录时已经启动,并且不知道你的env变量更改。
我使用的方法是像这样设置一个bat文件来启动ArcMap。这种方法的好处是,env变量的调整只适用于ArcMap会话,而用户的默认设置对于“正常”的未来ArcMap启动是不修改的。会话结束后,用户以正常方式打开arcmap,它将使用已连接到桌面的内容。所以你可以设置人们为Viewer,让他们在需要Professional (ArcInfo)的会话中运行脚本,他们不必记得运行脚本或设置变量来设置它。这样,您有限的arcinfo许可证将更容易保持可用。
:: usage: arcz {server} {VIEWER|EDITOR|PROFESSIONAL} {ARCMAP|ARCCATALOG|ARCSCENE|ARCGLOBE} @echo off setlocal set server=%1 set class=%2 set app=%3::设置默认设置,如果没有设置,如果“%server%”==“”set server=27004@your_default_server如果“%server%”==“#”set server=27004@your_default_server如果“%class%”==“”set class=PROFESSIONAL如果“%class%”==“#”set class=PROFESSIONAL如果“%app%”==“”set app= ARCMAP::设置环境并启动应用set ARCGIS_LICENSE_FILE=%server% set ESRI_SOFTWARE_CLASS=%class%::报告值set arcgis set esri echo Starting %app%.exe…start /d "%AGSDESKTOPJAVA%bin" /b %app%.exe暂停
谢谢柯蒂斯。我想知道这是否是当前用户与本地机器的问题。实际上,有趣的是,只有当所选LM上的许可级别不可用(即高级)时,它才真正不起作用,因此在这种情况下,它选择Desktop Administrator中的值。
我之所以选择我的方法v作为启动脚本,是因为有很多组合,但通常一旦设置好,它们在一段时间内不会改变。也就是说,关卡可能会经常改变(从AV到AI再到AV),但许可管理器不会改变……只有when the user needs to borrow a license (limited number of licenses available) or for power users or IT providing tech support/testing.
我会在早上仔细看看你的博客文章和更多的代码。也许我仍然可以灵活地使用它(即,其他提示用户进行选择)。谢谢你的信息!
柯蒂斯,
这很漂亮,谢谢!
我们使用的是单用途桌面基本许可证和共享标准许可证,所以我们唯一需要做的改变就是添加一条线,将单用途“固定”座位类型切换到“浮动”座位类型:
::使用:arcz{服务器}{查看器|编辑器|专业}{ARCMAP|ARCCATALOG|ARCSCENE|ARCGLOBE}@echo off setlocal设置服务器=%1设置类=%2设置应用程序=%3.::设置默认值如果没有提供如果服务器“% %”= =”“设置服务器=27004@yourdefaultserver如果服务器“% %”= =“#”设置服务器=27004@yourdefaultserver如果“% %”类= =”“设置类=编辑器如果“% %”类= =“#”设置类=编辑器如果“%应用%”= =”“设置应用程序=arcmap::设置环境并启动应用程序设置ESRI_SEAT_PREFERENCE=浮点设置ARCGIS_LICENSE_FILE=%服务器%设置ESRI_SOFTWARE_CLASS=%类%::报告值set arcgis set esri echo正在启动%应用程序%.exe...开始/d“% AGSDESKTOPJAVA %本”/b%应用程序%.exe REM暂停
我能够编写一个有效的bat文件。我已经寄出去了//www.gobook3.com/docs/doc - 10751变化——arcgis -桌面-许可证级别和lm -机-我们- adm..。然后关闭这个线程。