系统管理员常用的Powershell命令

上周豆子参加了微软Teched 2014 Sydney的2天会议。这个会议包括了50多个讲座,包括了开发,架构,移动3个大的方向。其中一个300级别的讲座介绍了一些系统管理常用的命令。这些命令,豆子绝大部分都很熟悉,这里再温故知新一下。作为一个系统管理员,一般都对长篇大论的脚本,各种参数,循环,判断语句,输入输出等等是敬而远之的~但是短小精悍的命令行语句还是可以试试的。


开始之前,先说两个最最基本的命令。Get-Command 和 help。


Get-command 可以搜索相关命令,help可以搜索具体的例子。


比如我想创建新的虚拟机,但是我不知道有哪些命令,那么搜索一下好了


搜索了一堆命令出来,那么怎么用呢,查看一下帮助文档,如果不想看具体的语法,直接输入-examples看看例子好了。然后就可以直接复制粘贴来使用了。



同时呢,工欲善其事,必先利其器。帮助文档需要更新到最新版本。


更新帮助文档很简单,输入help-update,就会更新了。


知道了这两个最基本的命令,我们再来看看正题,系统管理常见的30多个操作都可以用powershell实现。


网络基本配置和查看:


  1. 系统管理员用来查询IP地址一般都习惯用ipconfig /all, 现在可以用Get-NetIPConfiguration -detailed 来替代了。


   2.  查看网卡信息

        Get-NetAdapter

        Get-NetAdapterStatistics

        Get-NetIPAddress

    



3. 配置IP地址 New-NetIPAddress


这个命令一般是Windows 2012 core server下初始化配置的时候可以使用,当然也可以用sconfig或者传统的netsh interface命令


这个命令看起来比较啰嗦,参数比较多,就像上面说的,如果记不清,那么看看帮助的例子就行了。

    


4. 配置DNS


Set-DNSClientServerAddress

类似的,这个在server core下面也是常见的命令,当然省事也可以通过sconfig配置,或者 DOS命令 netsh interface实现。



网络查错


传统的排错第一步都是通过PING,Tracert或者Telnet 判断路由和端口是否打开。比如

ping 10.1.1.1

tracert www.baidu.com

telnet 8.8.8.8 53


Powershell下面一个命令都实现了。


5. PING 远程服务器


Test-NetConnection www.google.com


6. Telnet  端口


7. 跟踪路径


Windows服务的操作


这几个操作很简单直接


8. 重启服务 

restart-service


9.获取当前的服务

get-service| out-gridview


注意那个out-gridview的输出格式,所有的PS命令都是通用的,可以把结果用表格的性格输出来,这样用户还可以手动的排序或者添加标准(criteria),是不是很简单



10.停止,开始,配置服务

stop-service

start-service

set-service



AD和域的操作,这个可能是windows 2012 系统管理员最应该记住的部分吧


11. 计算机的重命名,如果通过图形界面操作,需要右击电脑,然后属性,然后 高级属性设置,然后计算机名里面从能修改,通过命令行直接就修改了,这个在server core下面也是初始化设置必须的,更改名字,重启,然后加入域


Rename-Computer XXX


12. 重启电脑  restart-computer, 当然传统的 shutdown /r /f /t 我也觉得蛮好的


13. 关机 shutdown-computer


14. 加入域  Add-computer -domainname test.com


15. 修复AD的信任关系。这个命令对豆子来说都是很新的命令。传统的如果某台计算机无法验证AD,最简单的解决方法是退出域,重启,然后重新加入域,重启。现在可以在计算机上直接执行以下命令进行修复。

如果直接执行,他会进行判断,True表示OK; False表示无法连接AD,那么需要提供管理员密码进行修复 


例如

test-computersecurechannel -credential domain\admin -repair


16. 配置防火墙profile


set-netfirewallprofile

比如最简单的例子,打开domain,public和private的防火墙


17,配置防火墙策略,很长很长的命令,记不着的话就看看帮助 help -examples

New-netfirewallrule,可以设置出去和进来的请求服务


比如第一个禁止所有出去的80端口,换句话说,上不了网了

第二个禁止所有来自Wins 服务器的请求


18. 添加Roles和Features


Install-windowsfeature


比如说,windows 2012下面默认安装.Net 3.5是安装不了的,必须指定对应的路径, 当然也可以通过GPO指定默认安装路径,然后把对应的文件事先放在那里也是不错的解决方案。


Install-windowFeature net-framework-core -source d:\sources\sxs


19.重置AD 用户的密码


这几个命令很方便,保存下来,就不用进AD Users and Groups里面去修改密码了。

 

首先可以利用Converto-securestring 设置一个加密的密码


然后通过set-ADAccountPassword 重置 密码。 最后那个passthru的目的是显示账号信息

还可以更进一步,要求用户下次登录的时候必须修改密码


关于AD的操作,肯定绕不过FSMO的配置。几乎所有的Windows系统管理面试都会涉及这个问题。传统的配置可以通过GUI,也可以通过ntsutil命令来配置。Powershell提供了更简单的方式。

豆子曾经写过一篇博客具体比较这几种方式 http://beanxyz.blog.51cto.com/5570417/1313693

这里就不赘述了


20. 定位 FSMO


基本格式如下

Get-ADForest test.com | FT SchemaMaster

Get-ADForest test.com | FT RidMaster


21. 迁移FSMO


Move-ADDirectoryserverOperationMasterRole  


配置服务器,还需要打开远程桌面。


22. 打开 RDP桌面,这个其实有好几个地方可以配置。 最直观的是通过sconfig,也可以修改注册表,或者打开防火墙策略(3389端口)


set-itemProperty -path ‘hklm:\system\currentcontrolset\control\terminal server‘ =name "fdenytsconnections" -value 0


enable-netfirewallrule -displaygroup "remote desktop"


23. 查看hotfix

一般企业里面都是通过WSUS来推送Hotfix,不过有的时候计算机并不是100%可以成功获取的。可以通过 get-hotfix 来进行判断


24. 查看密码永不过期的账号


管理员常常把自个的账号设置为不过期,尽管我们要求用户每隔60天就必须reset一次。很多服务的运行账号也是这样。怎么搜索这些账号呢? ADUC是可以直接搜索的,Powershell也可以。



25. 类似上面的方法,我们可以搜索最近没有登录的账号,disable的账号,过期的账号,即将过期账号等等


比如,这个会搜未来6天内会过期的账号




Hyper-V虚拟机


Hyper-V 是2012最重要的新功能,毕竟微软的虚拟化平台和私有云都是以这个为基础的。TechED里面专门有一个讲座来讨论如何更好的在Hper-V下面使用Powershell。


豆子使用的windows 8.1 Powershell下面有167个命令。 meaure 可以返回一共多少行记录


这么多指令就不一一阐述了,大概看看几个最基本的命令


创建虚拟机


26. New-VM



打开Hyper-V Manager, 可以看见已经创建了虚拟机



27. 配置虚拟网络


创建虚拟机之后,还需要分配网络。首先看看目前有哪些虚拟机


Get-VM  


在这个基础上还可以继续获取虚拟网卡的信息  Get-VMNetworkAdapter

可以看见新创建的虚拟机目前没有分配网络

在这个基础上使用 Connect-VMNetworkAdapter 就可以绑定交换机网络了


再验证一下,已经分配好了


28. 创建还原点


get-VM | checkpoint-VM 就可以对指定的VM创建还原点了





本文出自 “麻婆豆腐” 博客,请务必保留此出处http://beanxyz.blog.51cto.com/5570417/1571507

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。