PowerCLI脚本,利用哈希表对参数进行转换
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,在使用PowerCLI的编写powershell脚本的过程中,有这样一个需求:例如需要重启一个指定的虚拟机,运行脚本时输入的参数,参数为虚拟机的名字,但是虚拟机的名字在建立的时候可能是千奇百怪,我们想
千家信息网最后更新 2026年11月02日PowerCLI脚本,利用哈希表对参数进行转换
在使用PowerCLI的编写powershell脚本的过程中,有这样一个需求:例如需要重启一个指定的虚拟机,运行脚本时输入的参数,参数为虚拟机的名字,但是虚拟机的名字在建立的时候可能是千奇百怪,我们想把参数与虚拟机名称对应,实现参数能够自动转化转换为想要的虚拟机的名字。
powershell的哈希表可以满足这种需求。
还有这样一个需求:在创建虚拟机的时候,我们不仅要输入主机参数,LUN参数,模板参数。这些参数的名字不好记忆,或者太长,使用时比较麻烦;也可以通过哈希表的转换,将简洁的参数在脚本内部自动转换为对应的参数。
eg:如下是创建虚拟机是哈希表的应用
#定义参数param([string]$VMname,[string]$vmhostname,[string]$datastore,[string]$template)#在命令窗口中添加powercli模块try{add-pssnapin vmware.vimautomation.core -ErrorAction SilentlyContinue}catch{}#定义模板哈希表$TemplateGroup=@{"centos"="centos7.4";"windows"="server2008sp1"}$Template=$TemplateGroup["$template"]#定义主机哈希表$HostName=@{"1.23"="192.168.1.23";"1.24"="192.168.1.24";"1.56"="192.168.1.56";}$VMHost=$HostName["$vmhostname"]#定义存储哈希表$DatastoreGroup=@{"A"="storage1";"B"="storage2";"C"="storage3" "D"="storage4";"E"="storage-7","storage-5","storage-6"}<#假若集群的主机有多个LUN,我们可以随机选取一个值,eg:E对应的有多个LUN,我们使用时可以使用Get-Random来随机获取一个LUN#>if($datastore -eq "E"){ $Datastore=Get-Random $DatastoreGroup["$datastore"]}else{ $Datastore=$DatastoreGroup["$datastore"]}#连接VsphereConnect-VIServer -server serverIP -Protocol https -User username -Password password#根据模板创建VMif($template -eq "windows"){ new-vm -name $VMname -host $VMHost -template $Template -datastore $Datastore -OSCustomizationSpec win2008}else{ new-vm -name $VMname -host $VMHost -template $Template -datastore $Datastore}#断开连接Disconnect-VIServer -server serverIP -Confirm:$false执行命令时,就可以使用简洁易于记忆的参数
.\newvmscript.ps1 vmname 1.23 windows Eor.\newvmscript.ps1 -VMname vmname -vmhostname 1.23 -datastore E -template windowseg:如下为一个重启业务机器的例子
param([string]$Name)try{add-pssnapin vmware.vimautomation.core -ErrorAction SilentlyContinue}catch{}$NameGroup=@{"业务域名1"="虚拟机名称1";"业务域名2"="虚拟机名称2";}$VMName=$NameGroup["$Name"]connect-viserver -server serverip -user username -password password -port 443Restart-VM -VM $VMName -Confirm:$false -RunAsyncDisconnect-VIServer -Confirm:$false运行脚本时:.\restartscript.ps1 业务域名1
参数
哈希
脚本
业务
名字
名称
域名
模板
需求
简洁
主机
命令
时候
记忆
输入
运行
千奇百怪
不好
例子
可以通过
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网黑科技
河南云网互联网络科技有限公司
重生之互联网科技帝国
科技信息互联网
合肥互联网科技公司
互联网科技论文
远拓互联网科技
兼蜜互联网科技
互联网科技网站
左右互联网络科技
西藏七维空间互联网科技有限公司
天津腾达互联网科技有限公司
华夏恒生互联网科技013171
沐思想互联网科技有限公司
怎样加入科技互联网
版纳互联网科技选哪家
上海万顺科技互联网有限公司招聘
马化腾互联网科技教学
数字科技和互联网金融哪个好
前海云享互联网科技
高科技与互联网
鑫亿盛互联网科技
深圳齐家互联网科技
银川新华互联网科技学校地址
小米互联网科技园设置
国大互联网教育科技有限公司工作
威龙国际互联网科技公司
新氧科技和美国互联网有关系吗
第三届互联网大会安防黑科技
东风日产互联网科技公司叫什么