我需要创建工具,以便没有经验/非技术的用户可以使用(意味着连接和启动/停止)Azure上的虚拟机。对于连接,RDP连接做得很好,很容易上手。另一方面,要启动/停止虚拟机,通常需要访问Azure门户(这对非技术用户而言不那么简单)会导致某些访问策略问题。一种选择是只让虚拟机始终处于“打开”状态,但是即使用户每周只需要几个小时,我们仍将收取100%的时间费用。
这就是为什么我调查了创建脚本的可能性,该脚本可以放入可执行文件中,而该脚本只需单击exec即可自动启动虚拟机。我已经看过这个stackoverflow问题: Start azure virtual machine without azure portal
建议创建一个将启动虚拟机的Azure PowerShell脚本。唯一的问题是启动Powershell脚本超出了使用它的人员的技术水平。最重要的是,有必要安装Powershell的Azure加载项(如果我理解正确的话),这取决于计算机和用户对其拥有的权限是不可能的。
所以我的问题是:您是否知道如何制作一个可以启动azure虚拟机的简单程序(例如,可以在任何计算机上运行且没有任何依赖性的可执行文件的形式)?
我考虑过的一种解决方案,但它似乎非常复杂:创建一个“超低成本”虚拟机,该虚拟机将在100%的时间内运行,并仅创建一个exec来指示该VM按需启动其他虚拟机? / p>
感谢您的帮助
答案 0 :(得分:0)
我对Powershell脚本不在可以运行exe文件的用户范围内的想法有疑问。如果构建正确,则ps1只需双击即可,就像exe一样。
除此之外,您还需要考虑几个障碍。
您的用户无法访问他们需要与之交互的资源。 这可以通过以下方式完成:通过脚本传递自定义PScredential对象,然后从文件中提取凭据。您可以使用ConvertFrom-SecureString构建凭证文件,然后使用CovertTo-SecureString将其导入。这样做的最大问题是,如果用户可以看到该文件的存储位置,则他们可能会编写脚本来访问该文件并获得特权访问。
您的用户无权运行执行脚本所需的Powershell资源。为此,您需要在脚本上建立runas权限,并且我认为创建exe可能是实现此目的的最佳途径。尽管您可以让初始脚本调用具有更高权限的另一个Shell并进行处理。
那里有PowerGUI之类的工具,可以将ps1文件编译为exe格式。正确编译并安全的exe文件将隐藏调用这些脚本以保护字符串文件的脚本,并且还允许在程序中内置自定义runas权限。