系统信息
# 常见系统版本号 Windows Server 2003 or XP Windows Server 2008 or Windows Vista 6.0.6003 Windows Server 2008 R2 or Windows 7 6.1.7601 Windows Server 2012/2012 R2 or Windows 8/8.1 6.3.9600 Windows Server 2016, Windows 10 or later 10.0.14393 Windows Server 2019 10.0.17763 Windows Server 2019 10.0.19041 --- $OperationSystem = Get-WmiObject -Class Win32_OperatingSystem # 版本号 $OSVer = [version]$OperationSystem.version # 版本名称 $WindowsOSVersion = $OperationSystem.Caption # 语言 $OSLanguage = (get-culture).name # 版本架构 $Arch =([Array](Get-WmiObject -Query "select AddressWidth from Win32_Processor"))[0].AddressWidth
磁盘管理
# 系统盘操作 Initialize-Disk -Number 0 -PartitionStyle MBR New-Partition -DiskNumber 0 -UseMaximumSize -DriveLetter C -IsActive Format-Volume -DriveLetter C -FileSystem NTFS -Force # 引导 BIOS+MBR 常用 bcdboot.exe C:\Windows /s C: # 查看磁盘信息 Get-Disk # 初始化磁盘 Initialize-Disk -Number 1 -PartitionStyle MBR # 新建分区 New-Partition -DiskNumber 2 -UseMaximumSize -DriveLetter D # 格式化volume Format-Volume D -FileSystem NTFS -Force --- # cmdlet方式扩容volume $driver = "D" $maxsize = (Get-PartitionSupportedSize -DriveLetter $driver).SizeMax Resize-Partition -DriveLetter $driver -Size $maxsize --- volume和partition # 查看磁盘分区 Get-Partition # 查看卷信息 Get-Volume --- partition是偏设备层面的概念,代表整个硬盘/块设备上的某一部分空间 volume是偏逻辑层的概念,代表操作系统可以用来存储文件/数据的某个存储空间 一个Volume,可以是只有一个分区,也可以跨好几个分区,甚至跨好几个磁盘的分区。 因为常见的是一个volume对应一个分区,所以慢慢的习惯了叫D分区。
文件操作
# 创建文件及目录 New-Item -Type File aaa.txt New-Item -Type Directory aaa # 删除目录 Remove-Item -Path .\aaa -Recurse -Force -Confirm:$false # 查看文件 Get-ChildItem -Path C:\ # 查看所有文件(包含隐藏文件) Get-ChildItem -Path C:\ -Force # 动态输出最后几行, ReadCount是指每次发送给管道的文本行数,0代表全部,效率更高 Get-Content -Path "C:\Users\lixiang\Desktop\vminit.txt" -ReadCount 0 -Tail 5 -Wait
脚本调用
bat中调用powershell命令
@echo off pushd %~dp0 powershell.exe -command ^ "& {Get-WmiObject -Class win32_operatingsystem }" popd
bat中调用powershell脚本
@echo off pushd %~dp0 powershell.exe -ExecutionPolicy Bypass -File "tmp.ps1" popd
字符串匹配
$a = "bing go !" $a.Contains('go') $a.StartsWith('bin') $a.IndexOf('g') --- -like #正则匹配 -match #关键字(可全/部分)匹配
命令检查
PowerShell提供了两个变量可以检测最后执行的命令是否成功:$lastExitCode和$?。 # $lastExitCode返回二进制程序的执行状态,数字型变量 &cmd /c whoami # $?:布尔型变量,返回最后执行命令的成功还是失败 Get-HotFix
文件下载与解压缩
$sshd_url = "https://lx-beijing.oss-cn-beijing.aliyuncs.com/OpenSSH-Win64.zip" Invoke-WebRequest -Uri $sshd_url -OutFile "OpenSSH-Win64.zip" -UseBasicParsing -TimeoutSec 5 # 解压缩 Expand-Archive -Path ./OpenSSH-Win64.zip -DestinationPath ./ Compress-Archive -Path ./OpenSSH-Win64 -DestinationPath ./OpenSSH-Win64.zip