偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

PowerShell與.NET框架之間的點連接

系統(tǒng) Windows
Windows PowerShell最好的功能之一就是它對.NET對象模式的直接訪問。但是由于作者不是一個開發(fā)人員,并且大部分編成概念都十分陌生,也就成為了學(xué)習(xí)Powershell時最大的障礙。在本文中就是在實際學(xué)習(xí)中總結(jié)出Powershell與.Net框架之間點連接的學(xué)習(xí)經(jīng)驗。

Windows PowerShell***的功能之一就是它對.NET對象模式的直接訪問。不幸的是,由于我不是開發(fā)人員,且大部分編程概念對我來說也很陌生,這是我在學(xué)習(xí)PowerShell時***的障礙。

在我最初用PowerShell工作時,我不知道類別、端口、構(gòu)造或成員的不同,對對象的概念(來自一個程序員的觀點)也不是真得了解。但我確實認為這些概念對學(xué)習(xí)和使用有Windows PowerShell的.NET很重要。我還發(fā)現(xiàn),了解一些C#(或至少能讀懂它)也非常有幫助。

因此,我將試著通過舉例來簡短地解釋下這些概念并在這個過程中提供一些代碼來幫助你。我還會試著(用我有限的能力)來提供一些C# PowerShell轉(zhuǎn)換的基本指導(dǎo)。

讓我們從定義開始。此外,如果你是一個開發(fā)人員,對于我接下來說的所有事情都請隨意發(fā)表意見。這些定義都是我對于這些概念推導(dǎo)出來的意見。

.NET:它是有黑箱代碼的架構(gòu),這些代碼接受特定的輸入并返回一個值或?qū)ο??;旧希④洖槟阃瓿闪怂芯幋a——你只須要正確調(diào)用它。MSDN是.NET架構(gòu)的無價資源。

類別(Class):我在.NET中提及的幾乎所有事情都是一個類別。我傾向于認為一個類別是一個樣板,示范對象應(yīng)該是什么樣子和它應(yīng)該有什么特性和類函數(shù)。舉例來說,一個Microsoft.Win32.RegistryKey對象應(yīng)該有命名特性和GetValue方法。

成員(Member):每個類別都有成員,它們是連結(jié)起來的特性和類函數(shù)。如果你只想看看一個類別必須提供物的概況,這會是個好地方。

特性(Property):特性是類別兩類成員之一。簡言之,可以認為它們是對象的屬性。舉例來說,Microsoft.Win32.RegistryKey類別有Name、SubKeyCount和Value Count等特性,所以每個Microsoft.Win32.RegistryKey對象都能有這些特性。

類函數(shù)(Method):類函數(shù)是類別兩類成員之一。和特性一樣,類函數(shù)也由類別限制,但是和屬性相反,它們更像類別的功能。Microsoft.Win32.RegistryKey類別有CreateSubKey、DeleteSubkey、SetValue等類函數(shù)。和特性一樣,每個Microsoft.Win32.RegistryKey對象都能有這些類函數(shù)。

構(gòu)造函數(shù)(Constructor):構(gòu)造函數(shù)是類別的一個類函數(shù),它收集創(chuàng)建一個類別實例所需的信息。我更喜歡將構(gòu)造定義為使對象有用所需的信息或?qū)ο?。用System.Data.SqlClient.SqlCommand來舉例,有四個不同方法可以讓你從該類中創(chuàng)建一個對象。每一方法創(chuàng)建出的對象都有些微不同的數(shù)據(jù)。

靜態(tài)域(Static field):它們和特性相似,但無須創(chuàng)建對象實例就可以獲得。在PowerShell中,訪問靜態(tài)成員確實簡單。你所要做的就是運用

[.NET Class]::StaticField。

在接下來的例子中,.NET類別System.Math會返回PI值:

[System.Math]::PI.

靜態(tài)類函數(shù)(Static method):它們就像類函數(shù),但無須創(chuàng)建對象實例就可獲得。和你訪問靜態(tài)域的方式相似,你只須運用[.NET Class]::StaticMethods。

接下來的例子中,Microsoft.Win32.RegistryKey將為一個叫做MyServer的遠程機返回Microsoft.Win32.RegistryKey對象。

[Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey([Microsoft.Win32.RegistryHive]::LocalMachine,”MyServer”)

現(xiàn)在我們已經(jīng)涵蓋了基本的.NET框架,讓我們詳細檢查下某些PowerShell特性,如創(chuàng)建類別并發(fā)現(xiàn)這些類別可得到哪些特性和類函數(shù)。

新對象(New-Object),創(chuàng)建微軟.NET框架或COM對象的實例。

接下來的例子中我會創(chuàng)建一個System.DirectoryServices.ActiveDirectory.DirectoryContext實例:

$Context = new-object System.DirectoryServices.ActiveDirectory.DirectoryContext("DirectoryServer",$Name)

獲取成員(Get-Member),訪問對象的特性和類函數(shù)。

接下來的例子將返回$Context對象的所有成員:

$Context | Get-Member

收集所有.NET問題

以下是工作中的.NET實例。它運用新對象、構(gòu)造函數(shù)和靜態(tài)類函數(shù)返回活動目錄域控制器對象。

function Get-DC
{
Param($Name,$Domain)
if($Name)
{
$Context = new-object
System.DirectoryServices.
ActiveDirectory.DirectoryContext

("DirectoryServer",$Name)

[System.DirectoryServices.

ActiveDirectory.DomainController]

::GetDomainController($Context)

}

if($Domain)

{

$Context = new-object

System.DirectoryServices.

ActiveDirectory.DirectoryContext

("Domain",$Domain)

[System.DirectoryServices.ActiveDirectory.

DomainController]::FindAll($Context)

}

if(!$Name -and !$Domain)

{

$DCName = ([adsi]"LDAP://rootDSE")

.dnsHostname.ToString()

$Context = new-object

System.DirectoryServices.ActiveDirectory.

DirectoryContext("DirectoryServer",$DCName)

[System.DirectoryServices.ActiveDirectory.

DomainController]::GetDomainController($Context)

}

}

【編輯推薦】

  1. WMI中的Windows PowerShell腳本使用方法
  2. 有關(guān)PowerShell腳本你必須知道的十個基本概念
  3. PowerShell與Unix Shell對比:八大實例
  4. 教你如何個性化PowerShell環(huán)境
責任編輯:張浩 來源: TT中國
相關(guān)推薦

2023-05-23 07:06:05

PythonPowerShell

2024-06-18 13:17:02

數(shù)據(jù)庫框架

2012-09-20 10:30:07

Linuxtty框架uart框架

2009-12-29 14:55:31

ADO.NET Dat

2013-02-21 17:54:12

PowerShell入PowerShell命

2009-12-02 09:07:45

ASP.NET 4.0

2009-08-21 17:16:19

.NET框架與COM

2009-08-21 16:55:10

.NET框架與XML

2009-08-28 15:35:31

C#與VB.net

2013-02-18 08:34:45

powershell

2024-12-04 08:17:49

日志框架NLog

2009-03-13 10:58:48

ASP.NetMVC框架編程

2010-09-17 09:24:30

PowerShellSSH

2011-04-20 10:02:22

PowerShell

2009-11-11 14:34:14

VB.NET動態(tài)連接庫

2010-01-14 14:30:09

VB.NET匿名類型

2009-07-20 15:51:40

FubuMVC核心框架ASP.NET MVC

2013-11-07 15:55:29

PowerShellVDI

2010-06-01 14:42:55

連接MySQL數(shù)據(jù)庫

2009-07-28 14:30:35

ASP.NET JSP
點贊
收藏

51CTO技術(shù)棧公眾號