移动AD的计算机到对应的OU的powershell脚本
2016-01-07 14:33
337 查看
#//************************************************************* #//编辑人: #//编辑单位: #//编辑作用:移动计算机到对应的OU下 #//编制时间:2016.01.05 #//************************************************************* #************获取当前脚本执行的目录 $Location = $PSScriptRoot #**********************创建以yyyy-MM-dd的日志文件夹 $folderName ="Log" #*********************全路径 $folderPath = $Location + "\" + $folderName #*********************如果根文件夹不存在。则创建根文件夹 If((Test-Path $folderPath) -eq $False) { Write-Host "开始创建日志文件夹...---------------" -ForegroundColor Green New-Item -path $Location -name $folderName -itemType "directory" Write-Host "创建日志文件夹完毕...---------------" -ForegroundColor Green } #**************************创建一个日志文件yyyy-MM-dd.txt $DateTimeNow = Get-Date -Format 'yyyy-MM-dd' $logFileName = $DateTimeNow.ToString() +".txt" #**************************创建日志文件 $logFilePath = $folderPath + "\" + $logFileName; If((Test-Path $logFilePath) -eq $False) { Write-Host "开始创建日志文件...---------------" -ForegroundColor Green New-Item -path $folderPath -name $logFileName -itemType "File" Write-Host "创建日志文件完毕...---------------" -ForegroundColor Green } #**************导入AD的PowerShell执行模块 Import-Module ActiveDirectory #**************读取计算机文件TXT(格式一行一个) $computerObjects = Get-Content c:\Temp\Test.TXT #*************要移动的计算机到目标的所在的OU $TargetOUPath = "OU=test1,DC=contoso,DC=com" #*************得到服务名称 $serverName = $env:COMPUTERNAME #*************开始循环读取的计算机文件 Add-Content -Path $logFilePath -Value "******************************************开始执行PowerShell移动操作**************************************************" #******************循环 ForEach($computerObject in $computerObjects) { #****************打印信息 $PrintStart = "正在移动计算机【" + $computerObject +"】操作!" Write-Host $PrintStart -ForegroundColor Green #***************开始分析执行 try { #********************得到源的OU $SrcOUPath = Get-ADComputer $computerObject |select DistinguishedName -ExpandProperty DistinguishedName #********************打印出信息 $PrintOk = "正在把计算机:【" + $computerObject + "】从原有OU:【" + $SrcOUPath + "】移动到目标OU:【" + $TargetOUPath +"】下" Write-Host $PrintOk -ForegroundColor Green #**********************得到要移动的计算机GUID,并移动到对应的OU下 Get-ADComputer $computerObject | Move-ADObject -TargetPath $TargetOUPath #**********************记录移动的正确日志信息】 $logConent = (Get-Date).DateTime.ToString() +"成功:在计算机名为:【" + $serverName +"】电脑上,把AD里的计算机【" + $computerObject+ "】从原有OU:【"+ $SrcOUPath +"】成功移动到目标OU下:【" + $TargetOUPath +"】下" #*********************写入日志 Add-Content -Path $logFilePath -Value $logConent } catch { #*************************打印错误信息 $PrintError = "移动的计算机【" + $computerObject +"】在AD不存在,请联系AD管理员核对!" Write-Host $PrintError -ForegroundColor Red #************************记录错误日志信息 $FailContent = (Get-Date).DateTime.ToString() +"失败:在计算机名为:【" + $serverName +"】电脑上进行获取操作,在AD中无法获取到计算机【"+ $computerObject +"】的信息,请与AD管理员联系!" #************************写入失败日志 Add-Content -Path $logFilePath -Value $FailContent } } #****************************************执行完毕 Add-Content -Path $logFilePath -Value "******************************************执行PowerShell移动操作完毕**************************************************"
相关文章推荐
- SSL 网络安全协议 HTTPS
- HttpUploader6-queue版本更新说明
- 判断计算机是大端还是小端
- 【TCP/IP】C语言实现Ping小程序
- 新线程网络请求,回调方法在主线程中进行
- 网络通信协议笔记
- 深度学习与计算机视觉系列(1)_基础介绍
- 西安鹏程张建宁老师主讲网络安全
- 基于C#的socket编程的TCP异步实现
- COMODO反间谍软件BOClean在线下载
- 页面自动跳转与http302、html refresh以及js跳转之间的关系
- iOS状态栏获取网络类型,运营商,电池电量,显示的系统时间等信息
- Java web开发(3)——Http
- StringHttpMessageConverter 乱码问题
- Spring Http Basic(基本)和Digest(摘要)验证
- 使用HttpFileServer自建下载服务器
- 3-4-迷宫寻路-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版
- 令牌桶算法和漏桶算法
- 对TCP连接被重置解决方案的探究
- get,post 区别,HTTP通信