天天看點

Help Desk Meet Power Shell

Help Desk Meet Power Shell

2015-12-14 16:58 微軟中國TechNet 閱讀 397

跟大家分享桌面技術支援與Power shell一些看法。

桌面技術支援,起初更多的是機械性地重複單一的操作,例如,底層的硬體檢修,中間的系統部署,到後面系統和軟體維護。這個階段重心的是"怎麼做“和"問題是否解決”。經驗不斷的累計之後,更多的應關注問題根源,明白“為什麼”,找到根源,從根本上解決問題,才能真正的提升自己。同時,也隻有你能快速的找出問題的根源,才能及時快速的解決問題。建立在以上基礎之上,在這之後桌面技術支援的提升,應該是批處理,用腳本代替手動的重複操作。Power shell 絕對是最好的選擇。Power shell技術的提升,也是桌面技術支援轉型的捷徑. AD, SCCM, Exchange等等..Power Shell在效率上絕對讓GUI無地自容.. 尤其Exchange 2013之後,更加依賴Power shell.

桌面技術支援在這個問題上比較尴尬。沒有擅長C, Java Python的桌面技術支援工程師。也很少有擅長Power Shell 的桌面技術支援工程師。就算有擅長Power Shell 或者靠寫C吃飯的程式猿,他們一定不能真正的了解一個桌面技術支援的實際需求。因為道不同..

是以請自己動手,從解決自己的重複操作,釋放自己的雙手開始,寫第一個Power Shell 腳本。

------------------------------------------------—分割線---------------------------------------------------

推薦使用Power Shell ISE,你可以把AD, Exchange, SCCM等多個子產品全部內建到一個控制台中,友善快捷,文法高亮以及指令與GUI的結合,也可以讓幫助大家更快的從GUI過渡的Shell.

<a href="http://s3.51cto.com/wyfs02/M01/87/2C/wKiom1fWaSDBRvvQAACiUd_FyuE169.jpg" target="_blank"></a>

本文中,所有示例,均在用戶端完成,沒有Remote伺服器的權限。是以需要預安裝Remote Server Administration Tools;Exchange Management Tools; Configuration Manager Console.

以域管理者身份運作Power Shell ISE

導入AD子產品

PS C:\Lionel&gt; Import-Module ActiveDirectory

導入Exchange 子產品

我們可以在Exchange Management Shell的屬性中找到将Exchange 子產品加載到ISE的方法。

是以我們隻需在Power Shell中運作如下指令即可加載Exchange 子產品。

PS C:\Lionel&gt; . 'C:\ProgramFiles\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto -ClientApplication:ManagementShell

而SCCM子產品,我們可以直接從Configuration Manager Console的安裝目錄直接導入Power Shell子產品檔案。

PS C:\Lionel&gt; Import-Module "C:\ProgramFiles (x86)\Microsoft Configuration Manager\bin\ConfigurationManager.psd1"

導入之後切換到對應的Site即可。

同理,其他伺服器子產品也嘗試用以上三種方法導入。這樣所有的子產品都在一個控制台中,你可以直接調用所有子產品中的指令。

以下主要介紹AD子產品

通過Get-Module确認Active Directory子產品已經成功導入。

問題來了,我們能用它做什麼。

很多事情我們都止步于開始時的無從下手..

相比如何解決問題,更重要的是如何找到解決問題的方法。在大資料時代,網際網路的資訊魚目混雜。我想沒有人比微軟更了解自己的産品。強烈推薦TechNet.

如下是相關子產品的幫助頁面:

Active DirectoryAdministration with Windows PowerShell: https://technet.microsoft.com/en-us/library/dd378937(v=ws.10).aspx

Exchange2013 Power Shell: https://technet.microsoft.com/zh-cn/library/bb123778(v=exchg.150).aspx

Skype forBusiness Server Powershell: https://technet.microsoft.com/zh-cn/library/gg398867.aspx

SCMM Power Shell: https://technet.microsoft.com/zh-cn/library/gg398867.aspx

也可以在微軟虛拟學院,檢視關于Power Shell視訊:

快速入門 : PowerShell 3.0: https://mva.microsoft.com/zh-cn/training-courses/-powershell-3-0-14443?l=Phq2m1PkB_3500115888

Using PowerShell for Active Directory: https://mva.microsoft.com/en-US/training-courses/using-powershell-for-active-directory-8397?l=1btnFKJz_5104984382

當然還有Channel 9: https://channel9.msdn.com/Search?term=Power%20shell#ch9Search

最後還有一個國内做的不錯的部落格,Power Shell 中文部落格:http://www.pstips.net/powershell-online-tutorials/

以上這些是指針對子產品的。

也可直接在Power shell 中檢視幫助。建議在使用之前先更新Powershell 的幫助。以便可以查詢更全面的幫助資訊。

PS C:\Lionel&gt; Update-Help

查詢單個指令的幫助資訊,可以使用get-help

PS C:\Lionel&gt; Get-Help Get-ADUser

或者直接線上查詢幫助資訊。

PS C:\Lionel&gt; Get-Help Get-ADUser-Online

如何建立賬号,更新賬号屬性,删除賬号,以及Computer, Group的管理,請參考直接參考上面TechNet頁面吧。裡面很詳細。不再說了。

下面介紹批處理。

我們可以使用Get-Content導入一個txt檔案。進而對TXT檔案中的使用者賬号或者計算機賬号做批處理。

例如,批量查詢AD賬号資訊

查詢使用者賬号全部屬性

<a href="http://s3.51cto.com/wyfs02/M01/87/2A/wKioL1fWaSODYcbmAAEhTBJRM7g321.jpg" target="_blank"></a>

如需要篩選使用者賬号的單個屬性資訊通過管道符用Select選擇。

<a href="http://s3.51cto.com/wyfs02/M02/87/2C/wKiom1fWaSTiWvIlAABW0WTh5lw695.jpg" target="_blank"></a>

如果需要将結構導出到CSV檔案,使用Export-csv

PS C:\Lionel&gt; Get-Content .\Checklist.txt | Get-ADUser -Properties * | Export-Csv .\userinfo.csv

<a href="http://s3.51cto.com/wyfs02/M00/87/2C/wKiom1fWaSWCLrMAAAArJaJRgqM254.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/87/2A/wKioL1fWaSbh7l5SAAAb8n-sHYg453.jpg" target="_blank"></a>

将不同的使用者賬号重置成相對應的密碼(使用者賬号與密碼,一對一),借助forech完成。

腳本内容如下:

$importFile=Import-Csv .\UpdateAD.csv

foreach ($z in $importFile)

{3

Get-ADUser -Identity $z.alias | Set-ADAccountPassword-Reset -NewPassword(ConvertTo-SecureString -AsPlainText $z.Password -Force)

}

CSV檔案格式如下

<a href="http://s3.51cto.com/wyfs02/M01/87/2C/wKiom1fWaSag26HfAAAhaq2xCvA837.jpg" target="_blank"></a>

批量修改AD使用者賬号屬性,Set-ADuser隻能修改部分AD使用者賬号屬性,部分屬性不在Set-ADuser中。類似的需求,或者,由于私有的擴充屬性,可以使用下面的腳本更新,以電話号碼為例。

$importFile=Import-Csv .\SetTelephonenumber.csv

foreach ($i in $importFile)

{

$User = Get-ADUser -Identity $i.alias -Properties Telephonenumber

$User.'Telephonenumber' =$I.Telephonenumber

Set-ADUser -Instance $User

CSV檔案格式如下:

<a href="http://s3.51cto.com/wyfs02/M01/87/2C/wKiom1fWaSejISQdAAAj9DoI_rU045.jpg" target="_blank"></a>

以上這些,隻是簡單的實作功能,還未加入錯誤處理方式,日志等等。也是剛剛入門,還在學習中,期待與大家一起交流,互相學習。

Lionel Zhao @ 2015年12月12日

本文轉自 bilinyee部落格,原文連結:    http://blog.51cto.com/ericfu/1852028    如需轉載請自行聯系原作者