I’m back!
再不更新
blog
就要捱罵了。今天給你們帶來點新知識
,Microsoft windows powershell!(
後面的都簡稱
Ps)
什麼是
ps
?它能給咱們帶來什麼?
Windows PowerShell
是專爲系統管理員設計的新
Windows
命令行外殼程序。該外殼程序包括交互式提示和腳本環境
,
二者既能夠獨立使用也能夠組合使用。
與接受和返回文本的大多數外殼程序不一樣
,
Windows PowerShell
是在
。
NET
公共語言運行時
(CLR)
和
。
NET Framework
的基礎上構建的
,
它接受和返回
。
NET
對象。環境中的這一根本更改帶來了管理和配置
Windows
的全新工具和方法。
Windows PowerShell
引入了
cmdlet
(
讀做
「
command-let
」)
的概念
,
這是內置到外殼程序中的一個簡單的單一功能命令行工具。能夠分別使用每一個
cmdlet
,可是組合使用這些簡單的工具執行復雜任務時才發揮其做用。
Windows PowerShell
包括一百多個基本的核心
cmdlet
,您能夠編寫本身的
cmdlet
並與其餘用戶共享它們。(原創做品首發51CTO博客,轉載請註明出處:[url]http://babyxc.blog.51cto.com/[/url])
與許多外殼程序同樣
,
Windows PowerShell
爲您提供了對計算機上文件系統的訪問。此外
,
使用
Windows PowerShell
提供程序
,
還能夠訪問其餘數據存儲區
,
如註冊表和數字簽名證書存儲區
,
與訪問文件系統同樣容易。
Windows PowerShell
有很大不一樣
·
Windows PowerShell
不處理文本。相反
,
它基於
。
NET
平臺處理對象。
·
Windows PowerShell
附帶了具備一致界面的大量內置命令。
·
全部的外殼程序命令都使用同一命令分析程序,而不是每一個工具使用不一樣的分析程序。這樣即可更輕鬆地學習如何使用每一個命令。
其最好的優勢在於,您沒必要忍痛捨棄本身慣用的工具。仍能夠在
Windows PowerShell
中使用傳統的
Windows
工具,如
Net
、
SC
和
Reg
。
exe
。
cmdlet
(
讀做
「
command-let
」)
是
Windows PowerShell
中用於操做對象的單功能命令。能夠經過其名稱格式識別
cmdlet --
由短劃線
(-)
分隔的動詞和名詞,如
Get-Help
、
Get-Process
和
Start-Service
。
在
Windows PowerShell
中
,
大多數
cmdlet
都很是簡單
,
它們設計爲與其餘
cmdlet
組合使用。例如
,「
get
」
cmdlet
僅檢索數據
,「
set
」
cmdlet
僅創建或更改數據
,「
format
」
cmdlet
僅設置數據格式
,「
out
」
cmdlet
僅將輸出定向到指定的目標。看了一些最基本的概念性問題,咱們如今開始動動手。ps:
PowerShell is designed to run on all recent versions of Windows including those based on x64 processors
。
The only prerequisite for installing PowerShell is that you must first install v2
。
0 of the Microsoft
。
NET Framework
。
Note that PowerShell will preinstall in certain situations
。
For example, PowerShell is part of the Exchange Server 2007 administrative tools
。這是運行
ps
的需求
!(原創做品首發51CTO博客,轉載請註明出處:[url]http://babyxc.blog.51cto.com/[/url])
Ps
的啓動有
3
種方式。
若要從
「
開始
」
菜單啓動
Windows PowerShell
,
請依次單擊
「
開始
」
、
「
全部程序
」
、
Windows PowerShell 1
。
0
和
Windows PowerShell
。
若要從「運行」框啓動
Windows PowerShell
,請單擊「開始」,再單擊「運行」,而後鍵入:
若要從命令提示符
(cmd
。
exe)
窗口啓動
Windows PowerShell
,
請在命令提示符下鍵入
:
若要查看用於啓動
Windows PowerShell
的選項
,
請在命令提示符窗口中鍵入
:
在
Windows PowerShell
打開時
,
可使用
Get-Help cmdlet
查找幫助。在
Windows PowerShell
命令提示符下,鍵入:
get-help
我用的是第一種方式:
這就是
ps
的工做界面
…
看起來如何
…
。貌似跟
cmd
。
exe
的界面差很少
…
首先咱們看看
ps
裏面有多少
cmdlet!
很簡單。
get-command
。
看的眼睛都花了。下面咱們將介紹如何用
ps
執行管理任務。先從進程提及吧。
核心進程
cmdlet
只有兩個
:
Get-Process
和
Stop-Process
。因爲有可能使用參數或對象
cmdlet
來檢查和篩選進程,所以能夠只使用這兩個
cmdlet
來執行一些複雜的任務。
也是平時用的最多的。
get-process
是管理進程的
cmdlet
。以下圖:
經過無參數運行
Get-Process
,能夠得到正在本地系統中運行的全部進程的列表。
經過使用
Id
或者
name
參數,還能夠返回單個進程。看圖
:
這是本機運行的
qq
程序。若是要中止的話
,
就須要用到
Stop-Process
cmdlet
採用
Name
或
ID
來指定但願中止的進程。是否可以中止進程取決於您的權限。某些進程不能中止。看圖!
能夠用
Confirm
參數強制進行提示。
是否是很簡單啊
…
以爲用ps管理進程真的很簡單
…
我以爲比我之前用的wmic都簡單些。這只是些最多見的操做。。看複雜一點的——
經過使用某些對象篩選
cmdlet
,
能夠進行復雜的進程操做。因爲進程對象有
Responding
屬性,當進程再也不響應時該屬性將爲
True
,所以能夠用如下命令中止全部無響應的應用程序:
Get-Process | Where-Object -FilterScript {$_
。
Responding -eq $false} | Stop-Process
|
您能夠在其餘狀況下使用相同的方法。例如
,
假設用戶啓動一個應用程序時另外一個輔助的系統任務欄應用程序自動運行。您可能發現這在終端服務會話中沒法正確工做,但仍然須要使它在物理計算機控制檯上的會話中持續運行。鏈接到物理計算機桌面的會話的會話
ID
始終是
0
,所以經過使用
Where-Object
和進程的
SessionId
,能夠中止在其餘會話中的全部進程實例:
Get-Process -Name BadApp | Where-Object -FilterScript {$_
。
SessionId -neq 0} | Stop-Process
|
|
可能偶爾須要可以中止除了當前會話之外全部正在運行的
Windows PowerShell
會話。若是會話正在使用太多資源,或者不可訪問(它可能正在遠程運行,或者在另外一個桌面會話中),則可能沒法直接中止它。可是,若是試圖中止全部正在運行的會話,則可能終止當前會話。
每一個
Windows PowerShell
會話都有環境變量
PID
,
其中包含
Windows PowerShell
進程的
ID
。能夠對照每一個會話的
ID
檢查該
$PID
,
並只終止有不一樣
ID
的
Windows PowerShell
會話。如下管道命令執行此操做,並返回被終止會話的列表(因爲使用了
PassThru
參數):
PS> Get-Process -Name powershell | Where-Object -FilterScript {$_
。
Id -ne $PID} | Stop-Process -
PassThru
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
334 9 23348 29136 143 1
。
03 388 powershell
304 9 23152 29040 143 1
。
03 632 powershell
302 9 20916 26804 143 1
。
03 1116 powershell
335 9 25656 31412 143 1
。
09 3452 powershell
303 9 23156 29044 143 1
。
05 3608 powershell
287 9 21044 26928 143 1
。
02 3672 powershell
|
上面這些是
ps
自帶的文檔裏面的說明
,
有興趣的能夠試試。下次咱們繼續
ps
之旅。。菜菜水平很低
,
寫這些呢
,
目的也是爲和你們交流
,
在平時用電腦用的一些技巧。還望高人多多指點。。
QQ:182188803
。
See you!