powershell的学习(一)

powershell(1)-基础的学习:


Get-Host:获取当前powershell的版本信息

在这里插入图片描述


变量

变量都是以$开头, 是强类型语言, 语言是大小写不敏感的

提一提变量保护与常量的声明:New-Variable num -Value 100 -Force -Option readonly这样就得到一个受保护的变量$num,如果要销毁它只能通过del $num删除。如果要声明常量则用New-Variable num -Value 100 -Force -Option readonlyNew-Variable num -Value 100 -Force -Option constant
在这里插入图片描述


数组

数组的创建:
数组的创建可以通过下面五种方式来创建,在适当的条件下选择适当的方式创建即可

$array = 1,2,3,4
$array = 1..4
$array=1,"2017",([System.Guid]::NewGuid()),(get-date)
$a=@()  # 空数组
$a=,"1" # 一个元素的数组

在这里插入图片描述


数组的访问:
在这里插入图片描述


**数组的访问**
数组的访问和C类似,第一位元素实用下标0来访问即$array[0],我们来看看ipconfig获取到的数据

$ip = ipconfig
$ip[1] # 获取ipconfig第二行的数据

数组的判断

$a -is [array]

在这里插入图片描述


数组的追加:

$a += "5"

在这里插入图片描述


哈希表:

哈希表的创建:

$stu=@{Name="test";Age="12";sex="man"}

在这里插入图片描述


哈希表里存数组:

$stu=@{ Name = "hei";Age="12";sex="man";Books="kali","sqlmap","powershell" }

在这里插入图片描述


哈希表的插入与删除:

插入
$Student=@{}
$Student.Name="hahaha"
-----
删除:
$stu.Remove("Name")

在这里插入图片描述


对象

在powershell中一切都可以视为对象,包罗万象New-Object可以创建一个对象Add-Member可以添加属性和方法。

foreach-object函数用法:

获取所有的服务,并获取对呀进程ID是否大于100:

Get-WmiObject Win32_Service | ForEach-Object {"Name:"+ $_.DisplayName, ", Is ProcessId more than 100:" + ($_.ProcessId -gt 100)}

函数的定义:

function Invoke-PortScan {
<#
.SYNOPSIS 
简介
​
.DESCRIPTION
描述
    
.PARAMETER StartAddress
参数
​
.PARAMETER EndAddress
参数
​
.EXAMPLE
PS > Invoke-PortScan -StartAddress 192.168.0.1 -EndAddress 192.168.0.254
用例
#>
code
}

异常处理:

Try{
    $connection.open()
    $success = $true
}Catch{
    $success = $false
}

Powershell(2)-脚本执行基础的学习:

windows平台中常用到的几种脚本:

Bat

这就是我们常用的Bat脚本,全名为批处理文件,脚本中就是我们在CMD中使用到的命令。

这里提一个小问题:CMD的命令行执行命令的优先级是.bat > .exe,那么假如我放一个cmd.bat在system32目录下,那么优先执行的是cmd.bat,这里面的内容就变得不可描述起来了


VBscript:
执行vbs就是常说的vbscript,是微软为了方便自动化管理windows而推出的脚本语言,这里了解一下即可,不是文章重点。

一个小例子通过vbs操作WMI

Set wmi = GetObject("winmgmts:")
Set collection = wmi.ExecQuery("select * from Win32_Process")
For Each process in collection
WScript.Echo process.getObjectText_
Next

Powershell:

这就是我们的主角,在现在和未来一定是powershell占据主要地位(对于这一点搞Win多一点的朋友一定不会怀疑),首先我们来看一个简单的例子

script.ps1:

脚本内容

function test-conn { 
	Test-Connection  -Count 2 -ComputerName $args
}


载入脚本文件:

.script.ps1


调用函数:

test-conn localhost

在这里插入图片描述
在这里插入图片描述
那么我们就知道了 -count 2 连接次数为2 然后后面的-computername www.baidu.com 为域名的参数

那么上面的代码就是单纯的把这个又封装了一次 …

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值