PowerShell
更多请见个人主页https://www.bajins.com
flag
PowerShell
的命令叫做cmdlet
(command-let
), 采用了“动词-名词”的命名方式,动词部分取自于一个制定的动词集合,
名词部分则描述了命令要操作的对象。例如,Get-Command
就是指获取PowerShell
中所有cmdlet
命令。
PowerShell
提供对COM
(组件对象模型)和WMI
(Windows管理规范)的完全访问,具有丰富的控制与自动化的系统管理能力,
能够轻松地做到实时、大规模的管理系统。获取本机所有COM
组件对象脚本 Get-COM-Objects.ps1
- WMIC 已弃用替代品 Get-WmiObject
- WMIC 已弃用替代品 Get-CimInstance
包管理
- https://github.com/microsoft/winget-cli
- https://github.com/oneget/oneget
- https://github.com/chocolatey
- https://github.com/lukesampson/scoop
- https://github.com/cmderdev/cmder
- https://github.com/ohmyzsh/ohmyzsh
在batch中嵌入运行
由于Power Shell默认没有开启运行脚本策略,可以以此方式解决
正则表达式排除以
@
和:
开头的行,并将其他所有内容传递给Power Shell
@findstr /v "^@.* ^:.*" "%~f0"|powershell -&goto:eof
<# 从这里开始是 Power Shell代码 #>
这里巧妙的借用Power Shell的注释把bat脚本命令包裹,把整个脚本内容传入Power Shell并执行
<# ::
@powershell -<%~f0 &goto:eof
#>
# 从这里开始是 Power Shell代码
Windows10自带应用
注意空格和英文标点
- 查看已安装应用
Get-AppxPackage | Select Name,PackageFullName
- 恢复应用程序
# 应用商店
add-appxpackage -register "C:\Program Files\WindowsApps\*Store*\AppxManifest.xml" -disabledevelopmentmode
# 计算器
Get-AppxPackage *calculator* -AllUsers| Foreach {
Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
# 日历、邮件
Get-AppxPackage Microsoft.windowscommunicationsapps -AllUsers| Foreach {
Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
- 卸载应用程序
# 卸载所有账户中的应用
Get-AppxPackage -AllUsers | Remove-AppxPackage
# 从系统账户中卸载应用
Get-AppXProvisionedPackage -online | Remove-AppxProvisionedPackage –online
# 应用商店
get-appxpackage *store* | remove-Appxpackage
# 日历、邮件
Get-AppxPackage Microsoft.windowscommunicationsapps | Remove-AppxPackage
get-appxpackage *communicationsapps* | remove-appxpackage
# 从系统账户中卸载日历、邮件应用
Get-AppXProvisionedPackage –online where-object {
$_.packagename –like "*windowsmunicationsapps*"}