国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
PowerShell應用之-Get-WmiObject -Class Win32_Service

開始


       引用Windows PowerShell官方的說明,Windows PowerShell 是專為系統(tǒng)管理員設計的新 Windows 命令行 shell。Windows PowerShell 包括交互式提示和腳本環(huán)境,兩者既可以獨立使用也可以組合使用。在我學習PowerShell過程中,發(fā)覺學習PowerShell的門檻不高,學起來不費勁,要是有DOTNET或其它編程語言基礎,那么感覺就更容易了。因為,PowerShell最基本的功能命令就是cmdlet(command-let),cmdlet標準格式是“動詞-名詞”,如.Get-Help ,Get-Host,New-Service等。這讓人感覺很順口,不會花太多的時間去記住復雜的命令。下面,從一個實際的例子來描述PowerShell的應用。下面的例子,你將了解到命令:

  • Get-WmiObject
  • Format-Table
  • Where-Objec

 

       前不久,有寫過一篇《通過批處理腳本啟動/停止SQL Server服務》,今天寫出一篇通過PowerShell腳本實現(xiàn)相同的功能,而且使用比批處理腳本更為方便。通過PowerShell腳本實現(xiàn),最大的優(yōu)點是,針對控制網(wǎng)絡電腦上的SQL Server服務,沒必要通過遠端桌面連線工具,就可以實現(xiàn)。

先製作一個CSV格式文件『SQLSeverList.csv』,描述各個PC的SQL Server服務內容,數(shù)據(jù)項要求包含:PC ,ServerNr ,SQLServer, Agent ,FullTextSearch

     

『SQLSeverList.csv』存儲文件內容如下:

#SQL Server服務列表,本機使用"."來描述

PC,ServerNr,SQLServer,Agent,FullTextSearch

VM162,1,MSSQL$SQL2005DE1,SQLAgent$SQL2005DE1,msftesql$SQL2005DE1

VM162,2,MSSQL$SQL2005DE2,SQLAgent$SQL2005DE2,msftesql$SQL2005DE2

… …

PC20,1,MSSQL$SQL01,SQLAgent$SQL01,msftesql$SQL01

PC20,2,MSSQL$SQL02,SQLAgent$SQL02,msftesql$SQL02

… …

.,2,MSSQL$SQL2005DE2,SQLAgent$SQL2005DE2,msftesql$SQL2005DE2

.,3,MSSQL$SQL2005DE3,SQLAgent$SQL2005DE3,msftesql$SQL2005DE3

.,4,MSSQL$TEST,SQLAgent$TEST,msftesql$TEST

通過這個『SQLSeverList.csv』文件列表就可以找到對應的管理SQL Server服務。接下來通過PowerShell腳本,從文件『SQLSeverList.csv』篩選出要啟動的SQL Server服務。再通過PowerShell中的命令 Get-WmiObject -Class Win32_Service 獲取服務對象,然後調用服務對象Win32_Service中的方法StartService() 、 StopService() 啟動或停止服務。

如果是連接遠程PC,可以採用類似命令:

Get-WmiObject -Class Win32_Service –ComputerName <string[]> – Credential <PSCredential>

完整代碼:

 


#===============配置部份===========================
$User='HQ\Andy';
$CsvFile='E:\Stop&StartSQLServer\SQLSeverList.csv'


#==============可輸入部份(開始)====================

$PC="VM162" #本機使用"."來描述,非本機使用電腦名稱

$ServerNr=4 #SQL Server實例編號,來源于SQLSeverList.csv文件

$ActionType=0 # 1: 開啟服務 ,0: 停止服務

#==============可輸入部份(結束)====================
<#

“===可控制的服務列表: ”
Import-Csv -Path $CsvFile | Format-Table -AutoSize -Wrap

#>
try
{
$ServiceStr=Import-Csv -Path $CsvFile | Where-Object -FilterScript {($_.PC -eq $PC) -And ($_.ServerNr -eq $ServerNr)}

if ($PC -ne ".") #本機
{
$Credential_Login=Get-Credential -Credential $User
$Service_Agent=Get-WmiObject -Class Win32_Service -ComputerName $PC -Credential $Credential_Login | Where-Object -FilterScript {$_.Name -eq $ServiceStr.Agent}
$Service_SQLServer=Get-WmiObject -Class Win32_Service -ComputerName $PC -Credential $Credential_Login | Where-Object -FilterScript {$_.Name -eq $ServiceStr.SQLServer}
$Service_FullTextSearch=Get-WmiObject -Class Win32_Service -ComputerName $PC -Credential $Credential_Login | Where-Object -FilterScript {$_.Name -eq $ServiceStr.FullTextSearch}

}
Else #網(wǎng)絡
{
$Service_Agent=Get-WmiObject -Class Win32_Service | Where-Object -FilterScript {$_.Name -eq $ServiceStr.Agent}
$Service_SQLServer=Get-WmiObject -Class Win32_Service | Where-Object -FilterScript {$_.Name -eq $ServiceStr.SQLServer}
$Service_FullTextSearch=Get-WmiObject -Class Win32_Service | Where-Object -FilterScript {$_.Name -eq $ServiceStr.FullTextSearch}

}


$Running="Running"
$Stopped="Stopped"

If ($ActionType -eq 1) #Start Service
{
if ($Service_SQLServer.State -eq $Running)
{$Service_SQLServer.Name +" 正在運行"}
Else
{$Result=$Service_SQLServer.StartService()}

if ($Service_Agent.State -eq $Running)
{$Service_Agent.Name +" 正在運行"}
Else
{$Result=$Service_Agent.StartService()}

if ($Service_FullTextSearch.State -eq $Running)
{$Service_FullTextSearch.Name +" 正在運行"}
Else
{$Result=$Service_FullTextSearch.StartService()}
}
Else #Stop Service
{
if ($Service_FullTextSearch.State -eq $Stopped)
{$Service_FullTextSearch.Name +" 已停止."}
Else
{$Result=$Service_FullTextSearch.StopService()}

if ($Service_Agent.State -eq $Stopped)
{$Service_Agent.Name +" 已停止."}
Else
{$Result=$Service_Agent.StopService()}

if ($Service_SQLServer.State -eq $Stopped)
{$Service_SQLServer.Name +" 已停止."}
Else
{$Result=$Service_SQLServer.StopService()}
}

"命令處理OK!"

}
Catch
{
Write-Warning "執(zhí)行腳本過程發(fā)生錯誤"
Write-Error $_ #輸出當前錯誤內容
}

演示:


 

現(xiàn)在要啟動遠程PC的SQL Server實例『VM\SQL2005DE4』,包含『VM\SQL2005DE4』的3個服務:

MSSQL$SQL2005DE4

SQLAgent$SQL2005DE4

msftesql$SQL2005DE4

 

$User 這裡使用的是與帳戶”HQ\Andy”,而且這個帳戶具有管理電腦VM162的權限功能。

點擊Powershell_ise介面上的三角形執(zhí)行腳本按鈕。

 

這裡會彈出一個Windows登錄認證窗口,輸入我們的帳號密碼,點擊確認按鈕繼續(xù)。

 

 

從狀態(tài)欄就會看到正在執(zhí)行的信息提示,根據(jù)實際情況運行時間長短的不同,最後我們會收到是否處理完成的提示:

 

 

如果服務已經在運行,我們就看到服務正在運行的信息提示:

 

 

小結


 

       PowerShell腳本代碼,看起來是很容易的,而且功能還不錯,它是建立在 .NET (CLR) 和 .NET Framework 上,而且可接受和傳回 .NET 對象。在安裝SQL Server 2008中就附帶有PowerShell 1.0。目前最新版本是PowerShell 2.0.帶有Powershell_ise工具,使用起來更便捷。如果你經常涉及到管理Windows系統(tǒng)或SQL Server 服務器,那麼學習瞭解PowerShell是不錯的選擇。

本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Powershell 管道原理分析
建立一個安全的MSSQL SERVER的啟動賬號
Windows管理員常用的25個PowerShell命令
Exploring Session in ASP.NET
win10中的PowerShell命令也可以查看硬盤信息,你真的想不到
Skype for Business Server 2015 的服務器要求 | Microsoft Docs
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服