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> Import-Module ActiveDirectory
導入Exchange 子產品
我們可以在Exchange Management Shell的屬性中找到将Exchange 子產品加載到ISE的方法。
是以我們隻需在Power Shell中運作如下指令即可加載Exchange 子產品。
PS C:\Lionel> . 'C:\ProgramFiles\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto -ClientApplication:ManagementShell
而SCCM子產品,我們可以直接從Configuration Manager Console的安裝目錄直接導入Power Shell子產品檔案。
PS C:\Lionel> 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> Update-Help
查詢單個指令的幫助資訊,可以使用get-help
PS C:\Lionel> Get-Help Get-ADUser
或者直接線上查詢幫助資訊。
PS C:\Lionel> 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> 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 如需轉載請自行聯系原作者