随笔分类 -  Powershell

摘要:上周客户提出了一个要求,将Computers里面的计算机账号移动到相应的OU下,由于数量比较大,采用脚本。在客户环境中计算机账号名和用户名一致。这样问题处理就比较简单了,先获取此OU下面的用户名,然后和Computers计算机账号名一一匹配,如果一致,则移动此计算机账号到对应OU下。自定义powershell命令SearchMove-ADComputer使用方法:将与“ou=test,dc=contoso,dc=com”下用户名一致的计算机账号移动到“ou=computers,ou=test,dc=contoso,dc=com” 下SearchMove-ADComputer –SearchBa 阅读全文
posted @ 2013-12-24 08:43 motools 阅读(771) 评论(0) 推荐(0)
摘要:function Get-OSInfo ([string]$Server) { $object = Get-WmiObject win32_computersystem -ComputerName $Server $status = $object.Status $domain = $object.Domain $osversion = (Get-WmiObject Win32_OperatingSystem -ComputerName $Server).version $ip = (get-wmiobject win32_networkadapte... 阅读全文
posted @ 2013-11-03 21:22 motools 阅读(794) 评论(0) 推荐(0)
摘要:function Set-RemoteDesktop { while($InNumber -ne 6) { Write-Host " ##########################################################" -ForegroundColor Green Write-Host " # 1、自定义远程桌面端口; #" Write-Host " # 2、开启远程桌面; #" Write-Host " # 3、开启防火墙远程桌面出入端口; #" Write-Host " 阅读全文
posted @ 2013-10-24 22:29 motools 阅读(2857) 评论(0) 推荐(0)
摘要:1: 7: function Get-FilewithExtension 8: ([array] $Path, #指定要查询的路径 9: [array] $Extension, #指定文件类型 10: [string]$CsvFilePath) #指定导出结果文件 11: { 12: $result = @() 13: $file = Get-ChildItem -Path $Path -Recurse |Where-Object... 阅读全文
posted @ 2013-09-29 15:14 motools 阅读(289) 评论(0) 推荐(0)
摘要:学习Powershell的时候,基本的语法也了解了一些,但是就是不知道要写些什么?作为一个过来者,和大家一起分享下常见的几个管理任务脚本。1.更改本地Administrator账号密码[ADSI]$Admin = "WinNT://计算机名/用户名" $Admin.SetPassword(P@ssw0rd) 2.重启或关闭计算机为了能实现对多台计算机操作,将所有要操作计算机名保存在文本文件中。Get-Content c:\works\server.txt |Where-Object {Test-Connection $_ -Quiet -Count 2} | foreach 阅读全文
posted @ 2013-09-12 22:30 motools 阅读(701) 评论(0) 推荐(0)
摘要:当显示多条结果时,存储在变量中非常智能,变量类型会自动转换为一个数组。在下面的例子中,使用GetType()可以看到$a变量已经不是我们常见的string或int类型,而是Object类型,使用-is操作符来判断是否是个数组,返回True则是数组,返回False则不是。如果要统计数组的行数,用我们前面学到的一个方法count即可。例如要看一下$a变量值的行数:数组都有一个下标索引,用于访问其中的值,从0开始。例如我要访问$a第六行结果,在Powershell Console中输入$a[5]打印出结果。创建数组变量数组变量是一种特殊而且十分有用的变量,是有N个普通的变量组成。一个数组包含多个值得 阅读全文
posted @ 2013-09-09 22:57 motools 阅读(3211) 评论(0) 推荐(1)
摘要:有一张Excel表格收集了计算机名和IP地址,另外一张表有计算机名,需要找出这张表中计算机名对应的IP地址。#定义函数Get-LikeContentInfofunction Get-LikeContentInfo { param( [ValidateNotNullOrEmpty()] [string]$CSVPath, #参数非空,输入CSV文件路径 [ValidateNotNullOrEmpty()] [string]$InputPath, #参数非空,输入TXT文件路径 [ValidateNotNullOrEmpty()] [string]$OutCSVPa... 阅读全文
posted @ 2013-09-07 16:06 motools 阅读(949) 评论(0) 推荐(0)
摘要:在指令执行过程中,会有一些数据产生,这些数据被用于以后的语句,需要一个存储单元暂时的存放这些数据,这个时候定义一个变量来存储数据。例如$string = “Hello Powershell!”Powershell中无需declare声明,定义变量前缀有”$”符号常见变量类型数值型(int)字符型(char)布尔型(bool)定义变量$a = 100 #变量$a值赋予100Set-Variable -Name a -Value 100 为变量$a赋值100 或者New-Varibale –Name a –Value 100 创建变量$a并赋值100 (有关New-Variable还有更多的参数, 阅读全文
posted @ 2013-09-03 22:38 motools 阅读(1325) 评论(0) 推荐(0)
摘要:Powershell提供两种接口:交互式和自动化脚本先学下如何与Powershell Console和平共处,通过Powershell Console和机器学会对话。通过以上一个简单测试,知道Powershell原来是可以当计算器来使用哦!那么有人要问了Powershell里面能不能运行cmd命令呢?这是完全可以的,我们把非Powershell指令称为外部指令,Powershell提供了对外部CMD指令完全兼容。空格在这个事例中,如果出现空格可用””或’’,保证完整性。命名参数(Named Parameters)在指令中会有一些参数值要输入,在输入之前要先指定命名参数,例如:以下指令表式获取服 阅读全文
posted @ 2013-08-30 08:48 motools 阅读(1299) 评论(0) 推荐(0)
摘要:工欲善其事,必先利其器。有个得心应手的工具会使你的学习事半功倍。使用什么工具来编辑Powershell指令比较方便呢?笔者前后使用过几个编辑器,有几个比较不错推荐给大家试用。Powershell ISEPowershell PowerGUIPowershellPlus 阅读全文
posted @ 2013-08-30 08:46 motools 阅读(1039) 评论(0) 推荐(0)
摘要:前面对Powershell有了一定认识之后,接下来我们就看一个直接面对我们的接口Powershell Console,通过这个界面可以执行指令,进行人机交互,对这个界面熟悉才能使我们后面的操作得心应手。Powershell Console具备如下特性:Ø Tab键指令补全Ø 支持窗口属性自定义Ø 具备相应快捷键Ø 回显多样化(Page by Page或输出到文件)先看一下如何打开Powershell Console?按Windows键+R输入powershell即可打开Powershell Console。有时候执行一些指令需要以管理员方式运行,为了打开 阅读全文
posted @ 2013-08-30 08:43 motools 阅读(988) 评论(0) 推荐(0)
摘要:在现场中,有时候客户会要求做一下AD压力测试,需要批量创建很多AD用户。奉献此代码供各位参考。 1: 7: 8: $Text = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' 9: $PasswordText = ConvertTo-SecureString "Password01!" -AsPlainText -Force 10: for ($index = 0; $index -le 10000; $index++) { 11: $user = ($Text.T... 阅读全文
posted @ 2013-08-28 09:43 motools 阅读(638) 评论(0) 推荐(0)
摘要:Windows PowerShell 是一种命令行外壳程序和脚本环境,自Windows Server 2008开始就有内置于系统当中,有取代CMD之势。管理员使用Powershell完成一些日常重复的操作,实现自动化管理和批量管理。Powershell相对其他脚本语言的异同1. 自动化管理2. 设计的初衷以系统管理任务为目的,基于对象的操作3. 模块增强,例如AD、Exchange、Lync4. 自动补全5. 断点调试Powershell语法Powershell指令有(动词-名词)组成,让我们有种一看就知其意的感觉,例如Get-Help一般常包括的动词:GetNewSetRestartResu 阅读全文
posted @ 2013-08-26 19:52 motools 阅读(370) 评论(0) 推荐(0)
摘要:今天有个群友在问批量移动计算机账号,由于是个别案例,如果要适用您的环境需要手动改相关参数,如果有兴趣的同学可以把他改为函数,演示代码如下: #获取10A6开头字符的计算机账号DN名 $ComputersDN = (get-adcomputer -filter {name -like "10A6*"} -SearchBase "CN=Computers,DC=contoso,DC=com").Distinguishednameif (($ComputersDN | Measure-Object -Sum).count -eq 0) { Write-Host 阅读全文
posted @ 2013-08-26 19:35 motools 阅读(345) 评论(0) 推荐(0)
摘要:有时为了计算服务器运行时长,需要获取系统开机时间。 1: $RunTime = (Get-WmiObject -Class Win32_OperatingSystem -Namespace root\CIMV2).lastbootuptime 2: $Year = $RunTime.Substring(0,4) 3: $Month = $Runtime.Substring(4,2) 4: $Day = $Runtime.Substring(6,2) 5: $Hour = $Runtime.Substring(8,2) 6: $Min = $Runtime.S... 阅读全文
posted @ 2013-08-26 09:33 motools 阅读(691) 评论(0) 推荐(0)
摘要:使用Powershell完成系统管理实在是太方便了,磁盘信息获取只需几行代码即可。 1: $DiskCount = ((Get-WmiObject -Class Win32_DiskDrive).Caption).count 2: #获取磁盘分区大小 3: $DiskInfo = Get-WmiObject -Class Win32_LogicalDisk 4: echo "--------------------统计磁盘分区状况-------------------------" 5: echo " 驱动器号 卷标 分区空间 可用空间 ... 阅读全文
posted @ 2013-08-25 16:46 motools 阅读(4050) 评论(0) 推荐(0)
摘要:熟悉微软产品的朋友,对Powershell一定不会陌生,在2008中就自带了相关组件,发展到现在已经到了V3版本,内置了更多的cmdlet。接下来就让我们熟悉熟悉powershell吧!在您以后的管理维护中一定会少不了。1.首先我们先来看一下powershell命令的构成。例如get-command,从这个命令上我们不难看出是获得命令的意思,再例如get-service是获得服务的意思,powershell的命令构成我们可以总结一下是(动词-名词)的方式,简单明了。2.powershell的语法是怎样的呢?还是先让我们看一下例子Get-Command -Name Get-Date这句话是获得名 阅读全文
posted @ 2013-03-07 11:16 motools 阅读(264) 评论(0) 推荐(0)