#//*************************************************************
#//编辑人:
#//编辑单位:
#//编辑作用:移动计算机到对应的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移动操作完毕**************************************************"

移动AD的计算机到对应的OU的powershell脚本的更多相关文章

  1. POWERSHELL将域中的计算机移动到指定OU

    POWERSHELL处理域中计算机的过程 由于集团公司规模较大,存在几个分公司并处在不同地理位置.采用域集中管理,各分公司都有自己的域控制器,分别负责各分公司的DNS解析,DHCP地址分配,及客户端登 ...

  2. AD新建用户、组、OU

    #新建用户 import-csv d:\AD\Users.csv | Foreach {New-ADUser -Name $_.Name -Path $_.Path -samAccountName $ ...

  3. AD用户登录验证,遍历OU(LDAP)

    先安装python-ldap模块 1.验证AD用户登录是否成功 import sqlite3,ldap domainname='cmr\\' username='zhangsan' ldapuser ...

  4. 加入域的计算机重定向到指定的OU

    在我曾经呆过一个企业里,我们使用的是AD环境,计算机加入域时,我们需要使用一个单独的加域工具,里面有需要将计算机加入到指定OU的选项.所以每次加域我们都需要找个这个工具,实现加域过程.最后我发现其实最 ...

  5. AD命令获取计算机、用户相关信息

    1. 获取AD用户相关信息(用户名.创建日期.最后修改密码日期.最后登录日期) Get AD users, Name/Created Date/Last change passwd Date/Last ...

  6. 在权限受限制的AD域环境中部署SQL Server AlwaysOn高可用性

    最近在给一个客户部署基于微软TFS的软件生命周期管理平台时,客户要求数据库层实现高可用性,减少因数据库服务器故障影响软件开发进展. 客户现有域是一台搭建在Windows Server 2008上的级别 ...

  7. Windows 08 R2_创建AD DS域服务(图文详解)

    目录 目录 Active Directory概念 创建第一个AD域控制器 搭建DNS服务器 使用Windows窗口程序创建AD域控制器 AD与LDAP的关系 使用Powershell来创建ADDS域控 ...

  8. 在Windows客户端自动设置AD用户头像

    Windows现在可以设置用户头像,并在开始菜单显示.如果你安装了Exchange或者Lync,那么可以在Outlook或者Skype里看到用户的头像.这个图片是存储在AD用户属性里的.对于桌面电脑的 ...

  9. C#操作AD及Exchange Server总结

    C#操作AD及Exchange Server总结 这篇博客的目的:根据亲身项目经历,总结对AD及Exchange Server的操作,包括新建AD用户,设置密码,为AD用户创建邮箱等. 本文完全原创, ...

随机推荐

  1. 原生JS下拉加载插件分享。

    无聊写了一个JS下拉加载插件,有需要的可以下载. // 使用 // new ManDownLoad("#ul","json/load.json",functio ...

  2. Cordova+Asp.net Mvc+GIS跨平台移动应用开发实战1-系统初步搭建(附演示,apk,全部源码)

    1.前言 身处在移动互联网的今天,移动应用开发炙手可热,身为程序猿的我们怎么能错过开发一款我们自己的APP.本人算是一个基于.net的GIS开发入门者(马上就大四啦), 暑假在学校参加GIS比赛有大把 ...

  3. 【转】如何让你的Android SDK下载或者升级快如闪电

    准备学习Android开发,但是Android SDK Manager界面都刷不出来,今天看到了一篇文章,顿时就解决了,原文地址http://qichaochen.github.io/2014/12/ ...

  4. MVC5 网站开发实践 1、建立项目

    目录 MVC5 网站开发实践 概述   一.建立项目 1.建立团队项目 在办公室和家里使用不同的电脑,为了方便代码的共享将项目建立为团队项目.   如图打开vs2013→新建→团队项目(图1),会自动 ...

  5. TSQL语句练习题

    1. 查询Student表中的所有记录的Sname.Ssex和Class列. select Sname,Ssex,Class from Student 2. 查询教师所有的单位即不重复的Depart列 ...

  6. Neutron Vlan Network 原理- 每天5分钟玩转 OpenStack(92)

    前面我们陆续学习了 Neutron local network,flat network 和 DHCP 服务,从本节将开始讨论 vlan network. vlan network 是带 tag 的网 ...

  7. andriod 手机按键检测事件 onKeyDown() 简述

    函数原型: public boolean onKeyDown(int keyCode, KeyEvent event); 第一个参数是用户按下键时,当前所接收到的按键代号: 第二个参数是按键事件的对象 ...

  8. IOS 开发中要注意的事项

    1.关于拍摄 TGCameraViewController – 基于 AVFoundation 的自定义相机.样式漂亮,轻量并且可以很容易地集成到 iOS 项目中.不会内存吃紧 2.block 中对控 ...

  9. QTableWidget行选中/删除/添加行

    1  均分各列 tableWidget->horizontalHeader()->setStretchLastSection(true); //就是这个地方 tableWidget-> ...

  10. CSS3透明属性opacity

    例子: <div id="fixhovertree" style="position:fixed;left:100px;width:120px;top:100px; ...