1. 程式人生 > >PowerShell物件的批處理方法

PowerShell物件的批處理方法

一般我們認為欸的批處理是迴圈遍歷物件,一個一個的進行處理,這種思想在PowerShell也是可用的,同時還有更好的批處理方法,下面介紹幾種批處理方法:

1,使用PowerShell Cmdlet進行批處理;

利用管道(Pipeline)將一個Cmdlet產生的結果傳輸給另一個Cmdlet,PowerShell知道如果處理傳入的多個物件;

例如:

PS C:\Users\Administrator> Get-Service -Name BITS,xbgm,Spooler | Set-Service -StartupType Automatic

一次性將三個服務設定為自動啟動型別,這中批處理方式是PowerShell最推薦的方式,也是最理想的,但是有時候沒有相應的Cmdlet來完成我們想要的操作,就需要另找其他方法了。

2,CIM/WMI方式:呼叫方法;

CIM:Common Information Model 是WMI建立的標準

WMI:Windows Management Instrumentation WMI是一項外部技術,僅僅是與PowerShell有建立介面而已。

比如可以使用:Get-WmiObject win32_NetworkAdapterConfiguration獲取網絡卡繫結的配置資訊;

PS C:\Users\Administrator> Get-WmiObject win32_NetworkAdapterConfiguration | ft -wrap

DHCPEnabled IPAddress                                 DefaultIPGateway DNSDomain ServiceName  Description
----------- ---------                                 ---------------- --------- -----------  -----------
       True                                                                      kdnic        Microsoft Kernel Debug Ne
                                                                                              twork Adapter
       True {192.168.2.107, fe80::6d3c:d25e:9bd:c0d0} {192.168.2.1}              RTWlanE      Realtek RTL8188EE Wireles
                                                                                              s LAN 802.11n PCI-E NIC
       True                                                                      vwifimp      Microsoft Wi-Fi Direct Vi
                                                                                              rtual Adapter

使用:

gwmi win32_networkadapterconfiguration | gm -MemberType Method

獲取有哪些方法,使用Invoke-WmiMethod 使用該方法,例如開啟Intel網絡卡的DHCP功能:

PS C:\Users\Administrator> gwmi win32_networkadapterconfiguration `
>> -Filter "description like '%intel%'" |
>> Invoke-WmiMethod -Name EnableDHCP

執行結果中包括大量系統物件,我們只要看ReturnValue是否為0,0表示成功。

若使用CIM方式,可對應使用Invoke-CimMethod呼叫對應的方法:

PS C:\Users\Administrator> Get-CimInstance -ClassName Win32_NetworkAdapterConfiguration `
>> -Filter "description like '%intel%'" |
>> Invoke-CimMethod -MethodName EnableDHCP

WMI使用RPC網路通訊;CIM使用WS-MAN通訊。

3,最後的方法:列舉物件

ForEach-Object

例如:獲取x開頭的服務,將其停止,Get-Service | gm -MemberType Method 獲取所有方法;使用Stop方法,

Get-Service -Name x* | ForEach-Object {$_.Stop()}

下面列舉其他方法停止X開頭的服務:

首選方式-批處理Cmdlet:

Get-Service -Name x* | Stop-Service

WMI方式:

PS C:\Users\Administrator> Get-WmiObject Win32_Service -Filter "Name Like 'x%'" |
>> Invoke-WmiMethod -Name  StopService

WMI和ForEach-Object結合的方式:

PS C:\Users\Administrator> Get-WmiObject Win32_Service -Filter "Name Like 'x%'" |
>> ForEach-Object {$_.StopService()}

Cmdlet方式:

PS C:\Users\Administrator> Stop-Service -Name x*

大概就是使用Get-Something | Get-Member 獲取物件的方法,使用ForEach-Object列舉物件,呼叫方法進行批處理;

如果是WMI/CIM方式 也可使用Invoke-WMIMethod/CIMMethod

----End----

相關推薦

PowerShell物件處理方法

一般我們認為欸的批處理是迴圈遍歷物件,一個一個的進行處理,這種思想在PowerShell也是可用的,同時還有更好的批處理方法,下面介紹幾種批處理方法: 1,使用PowerShell Cmdlet進行批處理; 利用管道(Pipeline)將一個Cmdlet產生的結果傳輸給另

【讀書1】【2017】MATLAB與深度學習——處理方法的實現(2)

這表明,批處理方法需要更多的時間來訓練神經網路,以產生與SGD方法類似的精度水平。 This indicates that the batch methodrequires more time to train the neural network to yie

es5下物件相關的屬性和物件處理方法

1.新建物件: new、自面量、建構函式例項 Object.create(Object.prototype) 2.刪除物件屬性: delete o.x 3.檢測物件屬性是否存在: (1)in “x” in obj       //返回布林值 4.列舉屬性 (1)for in

在Bat處理中調用Powershell腳本

pushd fff 格式 ## popd it資訊 man ext command ##如何在BAT中調用powershell,把下面代碼另存為bat格式 pushd %~dp0 powershell.exe -command ^ "& {set-executi

使用windows處理安裝windows系統補丁的方法

windows 批處理 更新補丁代碼如下:“@Echo OffTitle Install Windows Update packEcho 正在安裝Windows系統補丁,請稍等......for %%i in (.exe) do %%i /passive /norestart /nobackupFor %%

處理中判斷延遲環境變量擴展是否已啟用的方法

延遲環境變量擴展研究背景 由於特殊原因,有時我們需要在批處理中判斷延遲環境變量擴展是否已啟用,可以用下面的方法進行判斷。使用腳本@echo off setlocal enabledelayedexpansion set layedexpansion=1&if not "!laye

處理顯示Unicode特殊符號的方法

批處理顯示特殊符號 Unicode特殊符號 批處理獲取特殊符號 特殊符號編碼 UTF-8無BOM編碼 研究背景 有時我們需要在批處理中顯示諸如★、●、?、?、?等特殊符號,但一般的批處理腳本文件使用的都是ANSI編碼,這種編碼是不能保存Unicode字符的,但很多特殊符號偏偏使

C++影象處理:讀取資料夾中全部影象的方法

string file_path = "H:\\image data\\"; string search_path = file_path + "*.jpg"; vector<string> file_list; if (!get_

Neo4j安裝事項報錯:powershell命令提示符出現“不是內部或外部命令,也不是可執行的程式或處理檔案

這些天因為老闆需求,搗鼓下Neo4j,在win7上按照網上的教程安裝,順風順水;但是在伺服器上(winServer2012R2)安裝卻是報錯:powershell命令提示符出現“不是內部或外部命令,也不是可執行的程式或批處理檔案 解決辦法:在環境變數path後新增上powershell的路徑(C

JDBC事務、處理、大物件的基本使用

一、測試事務的概念和用法  package com.chenfu.test; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import

物件(LOB)、處理與元資料

1.大物件LOB LOB,即Large Objects(大物件),是用來儲存大量的二進位制和文字資料的一種資料型別(一個LOB欄位可儲存可多達4GB的資料)。分為BLOB 和CLOB。 大文字CLOB: CLOB(Character Large Object) – 用於儲存大量的文字資料

Dos處理命令bat檔案執行完以後自動關閉dos視窗的方法

Dos 批處理命令 bat Dos 批處理命令 bat 檔案執行完以後自動關閉 dos 視窗的方法:          很多人執行完批處理命令發現 dos 視窗不能自動關閉,那是因為你在 bat 檔案中直接執行了需要執行的某些外部程式, 如果希望 dos 視窗自動關閉,

javasc中字串(String)物件處理字串的方法

字串的屬性 length 的介紹: 在JavaScript 中,對於字串來說,要掌握的屬性就只有一個,那就是 length 屬性.我們可以通過 length屬性來獲取字串的長度. 語法:字串名稱.length 說明:length 屬性很簡單,但是在字串操作中經常要用到,這個大家一定

[Xcode10 實際操作]八、網路與多執行緒-(18)PerformSelector訊息處理方法:由執行時系統,負責去呼叫物件的指定方法

本文將演示PerformSelector訊息處理方法。在專案資料夾上點選滑鼠右鍵彈出檔案選單。【New File】->【Swift File】->【Next】->【Save As】:iOSApp.swift->【Create】現在開始編寫程式碼,建立Swift類【iOSApp.swif

更好的處理指令碼語言 PowerShell

微軟在 2006 年推出首款 PowersShell 1.0 版本,適用於 Windows Server 2008 作業系統,並作為 PowersShell 2.0 被正式預裝在之後的 Windows 7 作業系統中。在 Windows 8 中,內建的 PowerShell 更進一步,升級為

處理延時方法

批處理中經常需要延時等待,下面給出一種延時的方法: 1、 ping 127.1 -w 1000 -n 6 >nul 這條命令的意思是第秒ping一下127.0.0.1這個地址,用來測試網路迴路;命令執行6次,第1 次是立即執行,之後的5次是每隔1秒報告1次;>nul的意思是把回顯

Java時間處理類 SimpleDateFormat物件的parse方法處理12點變成00點

SimpleDateFormat是個用得很高頻率的時間處理類 該物件的倆個主要方法: parse方法:將字串型別(java.lang.String)解析為日期型別(java.util.Date)

LSMW處理使用方法(1)_總述及操作介面說明

  原文出處: http://blog.sina.com.cn/sapinfo http://blog.sina.com.cn/s/blog_4e997c6701000b7p.html   一.總述 在SAP系統中,批處理操作有多種方法。如果是對一個事物碼(T

25.【處理及PreparedStatement物件

批處理 當向資料庫傳送多條不同的SQL語句時,可以使用Statement實現批處理。Statement通過addBatch()方法新增一條SQL語句,通過executeBatch()方法批量執行SQL語句。 public static void main(Str

氣泡排序和字串(String)物件處理字串的方法

氣泡排序 第一種方法 var times=0; var arr=[12,3,6,9,77,37]; for(var i=0;i<arr.length-1;i++){ //控制比較的行數 for (var j=0;j<arr.length-i-1;j+