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.

clip_image001

本文中,所有示例,均在客户端完成,没有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的方法。

clip_image002其中可以看到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账号信息

clip_image003 clip_image004

查询用户账号全部属性

clip_image005

如需要筛选用户账号的单个属性信息通过管道符用Select选择。

clip_image006

如果需要将结构导出到CSV文件,使用Export-csv

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

重置AD用户账号Lionel的密码为P@ssw0rd

clip_image007

批量重置用户账号密码为P@ssw0rd

clip_image008

将不同的用户账号重置成相对应的密码(用户账号与密码,一对一),借助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文件格式如下

clip_image009

批量修改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文件格式如下:

clip_image010

以上这些,只是简单的实现功能,还未加入错误处理方式,日志等等。也是刚刚入门,还在学习中,期待与大家一起交流,互相学习。

Lionel Zhao @ 2015年12月12日

本文转自 bilinyee博客,原文链接:    http://blog.51cto.com/ericfu/1852028    如需转载请自行联系原作者



相关文章
|
Web App开发 前端开发 JavaScript
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
vbs学习,书籍,看书笔记(5) 客户端web脚本 .Power shell 使用 脚本文件的类型2
|
Java Shell 程序员
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件
303 0
Power Shell 脚本——基于curl自动批量获取FTP服务器上的日志文件