以下是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 ")
。
- 使用
评论已关闭