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.
本文中,所有示例,均在客户端完成,没有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的方法。
其中可以看到Target:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -noexit-command ". 'C:\Program Files\Microsoft\ExchangeServer\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto-ClientApplication:ManagementShell
所以我们只需在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账号信息
查询用户账号全部属性
如需要筛选用户账号的单个属性信息通过管道符用Select选择。
如果需要将结构导出到CSV文件,使用Export-csv
PS C:\Lionel> Get-Content .\Checklist.txt | Get-ADUser -Properties * | Export-Csv .\userinfo.csv
重置AD用户账号Lionel的密码为P@ssw0rd
批量重置用户账号密码为P@ssw0rd
将不同的用户账号重置成相对应的密码(用户账号与密码,一对一),借助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文件格式如下
批量修改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文件格式如下:
以上这些,只是简单的实现功能,还未加入错误处理方式,日志等等。也是刚刚入门,还在学习中,期待与大家一起交流,互相学习。
Lionel Zhao @ 2015年12月12日
本文转自 bilinyee博客,原文链接: http://blog.51cto.com/ericfu/1852028 如需转载请自行联系原作者