使用。bat文件设置许可证管理器,没有管理员权限(ArcGIS 10.x)

7634
4
2017-08-30 06:12
RebeccaStrauch__GISP
MVP尊敬贡献者

我们有多个单独的许可证管理器服务器(不同的服务器),主要是因为.opt(选项)文件从未像人们希望的那样真正工作。我正在研究两个(DOS .bat)批处理文件,这将允许用户:

  1. 在license级别之间切换(基本和高级…)我们没有标准)。我有这个工作,虽然还没有在没有管理权限的机器上进行测试
  2. 在license管理器服务器之间切换。对于这第二个任务,我有一个问题。(同样,没有管理员权限还没有测试)

我希望在不需要管理员权限的情况下运行这两个工具,但是还没有经过测试。但是,即使需要管理员权限,这些脚本也应该简化这个过程。

我发现了很多current_user具有许可证管理器值的注册表项:

  • ARCGIS_LICENSE_FILE
  • ESRI_LICENSE_HOST
  • ESRI_LICENSE_SERVER

加上一个环境变量:

  • ARCGIS_LICENSE_FILE
  • ESRI_LICENSE_HOST

我可以让我的脚本改变所有这些变量,有些可能是旧的/不相关的,因为我的机器已经经历了许多版本的软件/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.

标签vsfootecurtvprice

当前软件:10.2.2 - 10.5.x

当前软件license管理器:10.5.1

操作系统:Windows 7, 64位

4回复
curtvprice
通过 MVP尊敬贡献者
MVP尊敬贡献者

然而,这些似乎都没有改变许可证管理器变量在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暂停

如何:在Citrix或受限权限环境下更改ArcGIS桌面座类型

RebeccaStrauch__GISP
MVP尊敬贡献者

谢谢柯蒂斯。我想知道这是否是当前用户与本地机器的问题。实际上,有趣的是,只有当所选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.

我会在早上仔细看看你的博客文章和更多的代码。也许我仍然可以灵活地使用它(即,其他提示用户进行选择)。谢谢你的信息!

0荣誉
JeremiahPoling
新贡献者II

柯蒂斯,

这很漂亮,谢谢!

我们使用的是单用途桌面基本许可证和共享标准许可证,所以我们唯一需要做的改变就是添加一条线,将单用途“固定”座位类型切换到“浮动”座位类型:

使用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暂停
RebeccaStrauch__GISP
MVP尊敬贡献者

我能够编写一个有效的bat文件。我已经寄出去了//www.gobook3.com/docs/doc - 10751变化——arcgis -桌面-许可证级别和lm -机-我们- adm..。然后关闭这个线程。