PowerShell的使用

来源:互联网 发布:步步惊情39网络完整版 编辑:程序博客网 时间:2024/06/15 22:39

PowerShell的使用

简介:

1.前身:Monad

2.功能:简单的说,Powershellcmd的超集,换句话说,cmd能做的事情,Powershell都能做,但是Powershell还能额外做许多cmd不能做的活。

cmd是和powershell都可以做命令行交互,批处理和powershell脚本功能也相当

Windows PowerShell 是专为系统管理员设计的新 Windows 命令行shellWindows PowerShell包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

与接受和返回文本的大多数 shell不同,Windows PowerShell是在 .NET Framework公共语言运行时 (CLR).NET Framework的基础上构建的,它接受和返回 .NET Framework对象。环境中的这一根本更改带来了管理和配置 Windows的全新工具和方法。

普通使用功能:

1. 数学计算

<1>PS> (39+79-51)*497/28

1189.25

<2>$now=Get-Date

$day=[datetime]'2-14'

if($now -lt $day ){

$day.Subtract($now).TotalMinutes

}

else{

$day.AddYears(1).Subtract($now).TotalMinutes

}

<3>PS C:/> (2+2)*3/7> c:/foo.txt
PS C:/> type c:/foo.txt
1.71428571428571

这里将输入的结果存放在临时文件中,再用type命令将文件结果取出。

<4>PS C:/> $n= (2+2)*3
PS C:/> $n
12
PS C:/> $n / 7
1.71428571428571

    这里将运行的结果赋值给一个变量,在后续的运行中仍可以使用

<5>PS> 3gb-gt 3145726kb

True

2. 打印语句

PS C:/> "hello world!"

hello world!

3. 查看当前运行程序

<1>Get-Service spooler

查看打印机服务有没有启动

(Get-Process iexplore ).count

常用命令:

入门级别

1. 像文件系统那样操作Windows Registry——cd hkcu:
2. 在文件里递回地搜索某个字符串——dir –r | select string "searchforthis"
3. 使用内存找到五个进程——ps | sort –p ws | select –last 5
4. 循环(停止,然后重启)一个服务,如DHCP——Restart-Service DHCP
5. 在文件夹里列出所有条目——Get-ChildItem – Force
6. 递归一系列的目录或文件夹——Get-ChildItem –Force c:\directory –Recurse
7. 在目录里移除所有文件而不需要单个移除——Remove-Item C:\tobedeleted –Recurse
8. 重启当前计算机——(Get-WmiObject -Class Win32_OperatingSystem -ComputerName .).Win32Shutdown(2)

收集信息

 9. 获取计算机组成或模型信息——Get-WmiObject -Class Win32_ComputerSystem
10. 获取当前计算机的BIOS信息——Get-WmiObject -Class Win32_BIOS -ComputerName .
11. 列出所安装的修复程序(如QFEWindows Update文件)——Get-WmiObject -Class Win32_QuickFixEngineering -ComputerName .
12. 获取当前登录计算机的用户的用户名—— Get-WmiObject -Class Win32_ComputerSystem -Property UserName -ComputerName .
13. 获取当前计算机所安装的应用的名字——Get-WmiObject -Class Win32_Product -ComputerName . | Format-Wide -Column 1
14. 获取分配给当前计算机的IP地址——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Format-Table -Property IPAddress
15. 获取当前机器详细的IP配置报道——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property [a-z]* -ExcludeProperty IPX*,WINS*
16. 找到当前计算机上使用DHCP启用的网络卡——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter "DHCPEnabled=true" -ComputerName .
17. 在当前计算机上的所有网络适配器上启用DHCP——Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=true -ComputerName . | ForEach-Object -Process {$_.EnableDHCP()}

软件管理

18. 在远程计算机上安装MSI——(Get-WMIObject -ComputerName TARGETMACHINE -List | Where-Object -FilterScript {$_.Name -eq "Win32_Product"}).Install(\\MACHINEWHEREMSIRESIDES\path\package.msi)
19. 使用基于MSI的应用升级包升级所安装的应用——(Get-WmiObject -Class Win32_Product -ComputerName . -Filter "Name='name_of_app_to_be_upgraded'").Upgrade(\\MACHINEWHEREMSIRESIDES\path\upgrade_package.msi)
20. 从当前计算机移除MSI——(Get-WmiObject -Class Win32_Product -Filter "Name='product_to_remove'" -ComputerName . ).Uninstall()
机器管理
21. 一分钟后远程关闭另一台机器——Start-Sleep 60; Restart-Computer –Force –ComputerName TARGETMACHINE
22. 添加打印机——(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection(\\printerserver\hplaser3)
23. 移除打印机——(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\printerserver\hplaser3 ")
24. 进入PowerShell会话——invoke-command -computername machine1, machine2 -filepath c:\Script\script.ps1

编写脚本:

其他一些用法:

1.查询IP地址,cmd需要用ipconfig/all,在power shell则用Get-NetIPConfiguration -detailed

2.查看网卡信息: Get-NetAdapterGet-NetAdapterStatisticsGet-NetIPAddress

3.配置IP地址。Cmd下可用sconfig或者netsh interface,power shell则用New-NetIPAddress

4.配置DNSSet-DNSClietServerAddressCmd下可以用sconfig或者netsh interface

5.网络查错: 

Cmd下首先是要ping或者tracert或者telnet来判断路由或者端口是否打开。如

ping 10.1.1.1    tracert www.baidu.com   或者telnet 8.8.8.8.53

  而在power shell上面一个命令就可以实现

<1>ping 远程服务器

Test-NetConnectionwww.baidu.com

<2>telnet端口

Test-NetConnection8.8.8.8 -Port 53

<3>跟踪路径

Test-NetConnection8.8.8.8 -TraceRoute

6.重启服务:restart-service

7.获取当前服务:get-service|out-gridvie(所有服务)

也可以在win+R中输入services.msc,但在这里是全部服务都显示,不能筛选

而上面的则可以筛选如显示正在运行的服务(输入Get-Service | Where Status -eq "Running" | Out-GridView也可)或者所有停止的服务(输入Get-Service | Where Status -eq "Stopped" | Out-GridView也可),甚至可以按照关键字筛选

8.停止、开始及配置服务

stop-service  start-service  set-service