|
這個工具可以單獨使用,完全可以取代cmd.exe。例如如下:
但它的功能遠不止于此,例如我們可以很容易地獲取所有的進程名稱:
再來看一個,下面這個例子是獲取當前正在運行的服務列表。(可以用條件很方便地篩選):
除此之外,Powershell還支持定制,例如微軟很多產品都提供了專門的Powershell插件(典型的有:SQL Server,SharePoint Server, Exchange Server等)。通過這些特殊的外殼,可以實現對服務器的管理。功能非常強大。例如下面的SQLPS,可以像查看文件夾那樣查看數據庫:
再例如下圖的EMS(Exchange Managment Shell),可以對一個地址列表進行修改:
看起來還不錯吧,關于Powershell的更多細節,大家有興趣的話,可以參考微軟有關的文檔。接下來談另外一個話題,Powershell這么強大,但終究是手工地操作,能不能在程序中調用它,并且執行有關的操作呢?
答案是:可以的。下面我們來看一個小的例子:
添加一個引用。這個程序集在C:/Program Files (x86)/Reference Assemblies/Microsoft/WindowsPowerShell/v1.0目錄中:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management.Automation;
using System.Management.Automation.Runspaces;
using System.Diagnostics;
namespace PowershellInvoker
{
class Program
{
static void Main(string[] args)
{
var runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
var piple = runspace.CreatePipeline("Get-Process");
var result = piple.Invoke().Select(p => p.BaseObject).Cast<Process>();
foreach (var item in result)
{
Console.WriteLine("{0}/t{1}/t{2}",
item.Id.ToString().PadRight(30),
item.ProcessName.PadRight(30),
item.Threads.Count);
}
Console.Read();
}
}
}
NET技術:Powershell簡介及其編程訪問,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。