上周豆子参加了微软Teched 2014 Sydney的2天会议。这个会议包括了50多个讲座,包括了开发,架构,移动3个大的方向。其中一个300级别的讲座介绍了一些系统管理常用的命令。这些命令,豆子绝大部分都很熟悉,这里再温故知新一下。作为一个系统管理员,一般都对长篇大论的脚本,各种参数,循环,判断语句,输入输出等等是敬而远之的~但是短小精悍的命令行语句还是可以试试的。
开始之前,先说两个最最基本的命令。Get-Command 和 help。
Get-command 可以搜索相关命令,help可以搜索具体的例子。
比如我想创建新的虚拟机,但是我不知道有哪些命令,那么搜索一下好了
搜索了一堆命令出来,那么怎么用呢,查看一下帮助文档,如果不想看具体的语法,直接输入-examples看看例子好了。然后就可以直接复制粘贴来使用了。
同时呢,工欲善其事,必先利其器。帮助文档需要更新到最新版本。
更新帮助文档很简单,输入help-update,就会更新了。
知道了这两个最基本的命令,我们再来看看正题,系统管理常见的30多个操作都可以用powershell实现。
网络基本配置和查看:
- 系统管理员用来查询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创建还原点了