文章目录
PowerShell 提供程序和 PowerShell 驱动器
PowerShell 提供程序
提供程序 = 把不同的数据存储抽象成“虚拟驱动器”来统一管理。
提供程序是一种“适配器”,它把不同的数据存储(文件系统、注册表、证书存储等)映射成类似文件系统的导航结构,让你可以用 cd、dir、ls、Get-ChildItem 等命令像操作文件夹一样去操作。
查看当前系统的提供程序
Get-PSProvider
输出如下:(不一定是下面这些,有的机器都有变化)
| Name | Capabilities | Drives |
|---|---|---|
| FileSystem | Filter, ShouldProcess, Credentials | C, D, … |
| Registry | ShouldProcess, Transactions, ExpandWildcards | HKLM, HKCU |
| Certificate | Filter, ShouldProcess, Include, Exclude | Cert |
| Alias | ShouldProcess | Alias |
| Function | ShouldProcess | Function |
| Variable | ShouldProcess | Variable |
| Environment | ShouldProcess | Env |
先看最直观的效果:
| 提供程序 | 路径前缀 | 用途 |
|---|---|---|
| FileSystem | C:\, D:\ |
磁盘目录文件管理 |
| Registry | HKLM:\, HKCU:\ |
操作注册表 |
| Certificate | Cert:\ |
管理证书 |
| Alias | Alias:\ |
查看和修改命令别名 |
| Function | Function:\ |
查看函数 |
| Variable | Variable:\ |
管理变量 |
| Environment | Env:\ |
管理环境变量 |
它统一了操作方式,下面这个才是我们需要记住的,就是Get-ChildItem去查看很多不同的类型
无论是文件、注册表、证书还是变量,你都可以用类似的命令操作:
# 查看文件夹
Get-ChildItem C:\Windows
# 查看注册表键
Get-ChildItem HKLM:\Software
# 查看证书
Get-ChildItem Cert:\LocalMachine\My
# 查看变量
Get-ChildItem Variable:
表中有Capabilities列的,意思是:
- ShouldProcess → 允许
-WhatIf和-Confirm,用于预览和确认更改。 - Filter → 支持快速筛选,而不是在本地循环。
- Include/Exclude → 支持用通配符来包含或排除对象。
- ExpandWildcards → 可以在路径里使用
*、?等通配符。 - Credentials → 支持使用
-Credential来指定不同用户身份访问。 - Transactions → 支持事务操作(例如注册表操作可以回滚)。
例子:
# Registry 提供程序支持 -UseTransaction
Start-Transaction
New-Item -Path "HKCU:\Software\TestKey" -UseTransaction
Complete-Transaction
如果换成 FileSystem 提供程序(比如 New-Item C:\TestFile.txt -UseTransaction),就会报错,因为 文件系统不支持事务/回滚。
查看提供程序的帮助文件
帮助文件使用 about_ProviderName_Provider 命名格式
例如,FileSystem 提供程序的帮助文件为 about_FileSystem_Provider
可通过运行以下命令来查看此帮助文件的内容:
Get-Help about_FileSystem_Provider
再者:获取注册表提供程序的帮助信息
Get-Help about_Registry_Provider
以此类推,把中间的改成你要获取的 “提供程序” 名字即可
Get-Help about_YourName_Provider
使用PowerShell 驱动器
查看 PowerShell 驱动器
Get-PSDrive
| Name | Provider | Root | CurrentLocation |
|---|---|---|---|
| C | FileSystem | C:|Users\Admin | |
| HKCU | Registry | HKEY_CURRENT_USER | |
| HKLM | Registry | HKEY_LOCAL_MACHINE | |
| Env | Environment | ||
| Cert | Certificate | ||
| Alias | Alias | ||
| Variable | Variable |
下表介绍了与常用 PSDrive 关联的谓词:
| 动词 | 描述 |
|---|---|
| New | 创建新的项或项属性。 |
| Set | 设置项或项属性的值。 |
| Get | 显示项或子项的属性,或项属性的值。 |
| Clear | 清除项或项属性的值。 |
| Copy | 将项或项属性从一个位置复制到另一个位置。 |
| Move | 将项或项属性从一个位置移动到另一个位置。 |
| Remove | 删除项或项属性。 |
| Rename | 重命名项或项属性。 |
| Invoke | 执行与项关联的默认操作。 |
驱动器的特点
- 名称唯一
- 可以是一个字母(如
C),也可以是多个字符(如HKCU、Env)。 - 用于路径时要加冒号,比如
C:、HKCU:、Env:。
- 可以是一个字母(如
- 依赖提供程序
- 驱动器继承其底层提供程序的所有功能(筛选、事务、凭据等)。
- 默认驱动器(新会话必有):
- FileSystem 驱动器:如
C: - 注册表驱动器:
HKLM:、HKCU: - 特殊存储驱动器:
Variable:、Function:、Alias: - 环境变量驱动器:
Env: - 证书驱动器:
Cert: - WSMan 驱动器:
WSMan:(管理远程连接配置)
- FileSystem 驱动器:如
处理 PowerShell 驱动器位置
驱动器位置的命令
| 命令 | 描述 |
|---|---|
| Get-Location | 显示当前工作位置。 |
| Set-Location | 设置当前工作位置。 |
| Push-Location | 将位置添加到位置堆栈的顶部。 |
| Pop-Location | 将当前位置更改为位置堆栈顶部的位置。 |
管理文件系统
PowerShell 提供了 文件系统驱动器(PSDrive)和 文件系统提供程序(FileSystem Provider),可以用 cmdlet 来管理文件和文件夹,同时也保留了命令提示符的别名,让 cmd.exe 用户可以快速上手。
别名与 cmdlet 对应关系
| cmd.exe 命令 | PowerShell 别名 | 对应 cmdlet | 说明 |
|---|---|---|---|
| Dir | Dir | Get-ChildItem | 列出目录和文件 |
| Cd | Cd | Set-Location | 切换目录 |
| Md / MkDir | Md | New-Item | 创建新文件夹 |
| Rd / RmDir | Rd | Remove-Item | 删除文件夹 |
| Del | Del | Remove-Item | 删除文件 |
| Copy | Copy | Copy-Item | 复制文件/文件夹 |
| Move | Move | Move-Item | 移动文件/文件夹 |
| Ren | Ren | Rename-Item | 重命名文件/文件夹 |
注意:
- PowerShell 不使用
/s、/q等 cmd.exe 参数。 - 通配符和参数需要使用
-Recurse、-Force、-Filter等 PowerShell 风格。
移动目录
# 使用绝对路径
Set-Location C:\Users
# 使用相对路径
Set-Loc

最低0.47元/天 解锁文章
1973

被折叠的 条评论
为什么被折叠?



