50个PowerShell常见问题
以下是50个PowerShell常见问题及其解决方案的总结:
如何安装和卸载Windows角色?
- 使用
Install-WindowsFeature和Remove-WindowsFeature命令。
- 使用
如何获取文件属性?
- 使用
Get-Item或其别名gi。
- 使用
如何创建新文件?
- 使用
New-Item或其别名ni。
- 使用
如何创建新目录?
- 使用
mkdir或其别名md。
- 使用
如何移动文件或目录?
- 使用
Move-Item或其别名mi。
- 使用
如何复制文件或目录?
- 使用
Copy-Item或其别名cp。
- 使用
如何重命名文件或目录?
- 使用
Rename或其别名ren。
- 使用
如何删除文件或目录?
- 使用
Remove-Item或其别名del、ri、rm。
- 使用
如何追加内容到文件?
- 使用
Add-Content或其别名ac。
- 使用
如何设置文件内容?
- 使用
Set-Content或其别名sc。
- 使用
如何清除文件内容?
- 使用
Clear-Content或其别名clc。
- 使用
如何获取服务列表?
- 使用
Get-Service或其别名gsv。
- 使用
如何获取进程列表?
- 使用
Get-Process或其别名gps、ps。
- 使用
如何将结果转换为HTML?
- 使用
ConvertTo-Html。
- 使用
如何将结果导出为CSV文件?
- 使用
Export-Csv。
- 使用
如何处理错误和异常?
- 使用
try/catch/finally结构。
- 使用
如何捕获命令执行过程中的错误?
- 使用
-ErrorVariable参数。
- 使用
如何处理.NET Framework方法中的异常?
- 在
try/catch块中直接调用.NET方法。
- 在
如何运行程序、脚本和已有的软件?
- 使用PowerShell直接运行可执行文件、脚本等。
如何查找指定命令以及命令详情?
- 使用
Get-Command和Get-Help命令。
- 使用
如何在外部调用PowerShell脚本?
- 从批处理文件、定时任务或其他非PowerShell程序调用。
如何获知最后执行命令的状态?
- 使用
$lastExitCode和$?变量。
- 使用
如何计算命令执行时间?
- 使用
Measure-Command命令。
- 使用
了解命令的别名有哪些?
- 使用
Get-Help命令查看别名。
- 使用
如何操作使用管理控制台历史命令?
- 使用
Get-History和Invoke-History命令。
- 使用
如何重定向输出?
- 使用
Out-File命令或重定向操作符。
- 使用
如何记录PowerShell会话全文?
- 使用
Start-Transcript和Stop-Transcript命令。
- 使用
如何显示对象属性为列表或表格?
- 使用
Format-List和Format-Table命令。
- 使用
如何操作Windows Registry?
- 使用
cd hkcu:命令。
- 使用
如何在文件里递归搜索字符串?
- 使用
dir –r \| select-string "searchforthis"。
- 使用
如何使用内存找到五个进程?
- 使用
ps \| sort –p ws \| select –last 5。
- 使用
如何循环(停止,然后重启)一个服务?
- 使用
Restart-Service DHCP。
- 使用
如何在文件夹里列出所有条目?
- 使用
Get-ChildItem –Force。
- 使用
如何递归一系列目录或文件夹?
- 使用
Get-ChildItem –Force c:\\directory –Recurse。
- 使用
如何在目录里移除所有文件而不需要单个移除?
- 使用
Remove-Item C:\\tobedeleted –Recurse。
- 使用
如何重启当前计算机?
- 使用
(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)。
- 使用
如何获取计算机组成或模型信息?
- 使用
Get-WmiObject -Class Win32_ComputerSystem。
- 使用
如何获取当前计算机的BIOS信息?
- 使用
Get-WmiObject -Class Win32_BIOS -ComputerName .。
- 使用
如何列出所安装的修复程序?
- 使用
Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .。
- 使用
如何获取当前登录计算机的用户的用户名?
- 使用
Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .。
- 使用
如何获取当前计算机所安装的应用的名字?
- 使用
Get-WmiObject -Class Win32_Product -ComputerName . \| Format-Wide -Column 1。
- 使用
如何获取分配给当前计算机的IP地址?
- 使用
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . \| Format-Table -Property IPAddress。
- 使用
如何找到当前计算机上使用DHCP启用的网络卡?
- 使用
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" -ComputerName .。
- 使用
如何在当前计算机上的所有网络适配器上启用DHCP?
- 使用
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . \| ForEach-Object -Process {$_.EnableDHCP()}。
- 使用
如何在远程计算机上安装MSI包?
- 使用
(Get-WMIObject -ComputerName TARGETMACHINE -List \| Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install(\\\MACHINEWHEREMSIRESIDES\\path\\package.msi)。
- 使用
如何使用基于MSI的应用升级包升级所安装的应用?
- 使用
(Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='name_of_app_to_be_upgraded'").Upgrade(\\\MACHINEWHEREMSIRESIDES\\path\\upgrade_package.msi)。
- 使用
如何从当前计算机移除MSI包?
- 使用
(Get-WmiObject -Class Win32_Product -Filter "Name='product_to_remove'" -ComputerName . ).Uninstall()。
- 使用
如何一分钟后远程关闭另一台机器?
- 使用
Start-Sleep 60; Restart-Computer –Force –ComputerName TARGETMACHINE。
- 使用
如何添加打印机?
- 使用
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection(\\\printerserver\\hplaser3)。
- 使用
如何移除打印机?
- 使用
(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\\printerserver\\hplaser3 ")。
- 使用