powershell基础介绍和运维场景
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了powershell基础介绍和运维场景相关的知识,希望对你有一定的参考价值。
powershell语法介绍
powershell相当于Windows cmd的升级版,但是语法更为友好,并且支持tab自动补全,不用记住繁琐的命令。
基础语法规则
powershell最基础的语法结构为:
(动词-名词)/别名+空格+-+参数名称+空格+参数内容
比如:
#获取系统日志
Get-WinEvent -LogName system
#开启服务
Start-Service -Name BITS
#设置服务启动状态为自启动
Set-Service -Name BITS -StartupType Automatic
判断
判断基本语法规则:
if(条件)
符合条件时,执行的命令行
else
不符合条件时,执行的命令行
其中,条件中涉及的比较运算符常见的有
-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含
!($a): 求反
-and :和
-or :或
-xor :异或
-not :逆
如,判断2大于3是否正确
if(2 -gt 3)
Write-Output "right"
else
Write-Output "wrong"
循环
最常用的是for循环,循环的基本语法规则:
for(条件)
每一次循环执行的命令行
如,计算1到100的和
$sum=0
for($i=1;$i -le 100;$i++)
$sum+=$i
$sum
变量
变量以$
开头,调用变量前需提前赋值,变量名称对大小写不敏感。
如下,最终返回的就是Alice这个名字
$name="Alice"
echo $name
powershell在运维中常用场景
powershell直接设置系统参数
比如开启和停止服务,以及设置服务的启动方式
获取服务状态Get-Service
开启服务Start-Service和停止服务Stop-Service
配合条件判断,如果BITS服务是停止状态,就启动它,写一个简单的脚本。
$status=(Get-Service -Name BITS).Status
if($status -eq "Stopped")
Start-Service -Name BITS
else
echo "services already started"
Windows会逐步完善系统对powershell的支持,让更多的系统设置项可以直接用powershell的set命令完成,比如Windows server 2016以前系统的powershell,是不支持Get-LocalUser/Set-LocalUser这种直接对本地用户进行编辑的命令的,2016和之后的版本才支持,当然对于2016以前的版本你也可以直接升级powershell,去获取更多命令的支持。
注册表编辑
注册表是Windows环境设置的一种强大工具,借助powershell可以自动批量对Windows注册表进行编辑,这样就不用打开注册表界面人工编辑了。
以设置关闭自动播放为例,如果要关闭自动播放,则注册表的"Registry::HKLM\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer"路径下,NoDriveTypeAutoRun的键值要设置成255,如下分别为获取值和设置值举例:
获取注册表键值Get-ItemProperty
设置注册表键值Set-ItemProperty
wmi
wmi是Windows管理规范,通过wmi可以从Windows收集大量系统信息,powershell可以利用wmi接口获取本地或者远程的计算机信息。
使用Get-WmiObject命令,指定一个类,可以查询计算机的属性内容。
如查看Windows内核版本和操作系统版本
(Get-WmiObject -Class Win32_OperatingSystem).Version
(Get-WmiObject -Class Win32_OperatingSystem).caption
查看系统序列号,uuid
(Get-WmiObject Win32_Bios).SerialNumber
(get-wmiobject Win32_ComputerSystemProduct).UUID
还可以通过-computername参数查询其他机器的属性
以上是关于powershell基础介绍和运维场景的主要内容,如果未能解决你的问题,请参考以下文章