1. #//*************************************************************
  2. #//编辑人:
  3. #//编辑单位:
  4. #//编辑作用:移动计算机到对应的OU下
  5. #//编制时间:2016.01.05
  6. #//*************************************************************
  7. #************获取当前脚本执行的目录
  8. $Location = $PSScriptRoot
  9. #**********************创建以yyyy-MM-dd的日志文件夹
  10. $folderName ="Log"
  11. #*********************全路径
  12. $folderPath = $Location + "\" + $folderName
  13. #*********************如果根文件夹不存在。则创建根文件夹
  14. If((Test-Path $folderPath) -eq $False) {
  15. Write-Host "开始创建日志文件夹...---------------" -ForegroundColor Green
  16. New-Item -path $Location -name $folderName -itemType "directory"
  17. Write-Host "创建日志文件夹完毕...---------------" -ForegroundColor Green
  18. }
  19. #**************************创建一个日志文件yyyy-MM-dd.txt
  20. $DateTimeNow = Get-Date -Format 'yyyy-MM-dd'
  21. $logFileName = $DateTimeNow.ToString() +".txt"
  22. #**************************创建日志文件
  23. $logFilePath = $folderPath + "\" + $logFileName;
  24. If((Test-Path $logFilePath) -eq $False) {
  25. Write-Host "开始创建日志文件...---------------" -ForegroundColor Green
  26. New-Item -path $folderPath -name $logFileName -itemType "File"
  27. Write-Host "创建日志文件完毕...---------------" -ForegroundColor Green
  28.  
  29. }
  30. #**************导入AD的PowerShell执行模块
  31. Import-Module ActiveDirectory
  32. #**************读取计算机文件TXT(格式一行一个)
  33. $computerObjects = Get-Content c:\Temp\Test.TXT
  34. #*************要移动的计算机到目标的所在的OU
  35. $TargetOUPath = "OU=test1,DC=contoso,DC=com"
  36. #*************得到服务名称
  37. $serverName = $env:COMPUTERNAME
  38. #*************开始循环读取的计算机文件
  39. Add-Content -Path $logFilePath -Value "******************************************开始执行PowerShell移动操作**************************************************"
  40. #******************循环
  41. ForEach($computerObject in $computerObjects)
  42. {
  43. #****************打印信息
  44. $PrintStart = "正在移动计算机【" + $computerObject +"】操作!"
  45. Write-Host $PrintStart -ForegroundColor Green
  46. #***************开始分析执行
  47. try
  48. {
  49. #********************得到源的OU
  50. $SrcOUPath = Get-ADComputer $computerObject |select DistinguishedName -ExpandProperty DistinguishedName
  51. #********************打印出信息
  52. $PrintOk = "正在把计算机:【" + $computerObject + "】从原有OU:【" + $SrcOUPath + "】移动到目标OU:【" + $TargetOUPath +"】下"
  53. Write-Host $PrintOk -ForegroundColor Green
  54. #**********************得到要移动的计算机GUID,并移动到对应的OU下
  55. Get-ADComputer $computerObject | Move-ADObject -TargetPath $TargetOUPath
  56. #**********************记录移动的正确日志信息】
  57. $logConent = (Get-Date).DateTime.ToString() +"成功:在计算机名为:【" + $serverName +"】电脑上,把AD里的计算机【" + $computerObject+ "】从原有OU:【"+ $SrcOUPath +"】成功移动到目标OU下:【" + $TargetOUPath +"】下"
  58. #*********************写入日志
  59. Add-Content -Path $logFilePath -Value $logConent
  60. }
  61. catch
  62. {
  63. #*************************打印错误信息
  64. $PrintError = "移动的计算机【" + $computerObject +"】在AD不存在,请联系AD管理员核对!"
  65. Write-Host $PrintError -ForegroundColor Red
  66. #************************记录错误日志信息
  67. $FailContent = (Get-Date).DateTime.ToString() +"失败:在计算机名为:【" + $serverName +"】电脑上进行获取操作,在AD中无法获取到计算机【"+ $computerObject +"】的信息,请与AD管理员联系!"
  68. #************************写入失败日志
  69. Add-Content -Path $logFilePath -Value $FailContent
  70. }
  71. }
  72. #****************************************执行完毕
  73. 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. Window7下安装Ubuntu 14.04 64bit

    本文章主要讲解如何在Windows7操作系统中硬盘安装Ubuntu 14.04 64bit: 1.准备文件 1.ubuntu-14.04.4-desktop-amd64.iso 2.EasyBCD.e ...

  2. ASP.NET MVC之Session State性能问题(七)

    前言 这一节翻译一篇有关Session State性能问题的文章,非一字一句翻译. 话题 不知道我们在真实环境中是否用到了Session State特性,它主要用来当在同一浏览器发出多个请求时来存储数 ...

  3. java后台搭建学习计划

    1. 使用maven管理java项目 2.linux安装mysql 3.linux安装redis 4. mybatis使用demo 5. cannal使用demo 6. 用spring4开发rest应 ...

  4. ASP.NET MVC中给所有的cshtml页面引用命名空间

    在web.config文件中加入:这样所有需要以下命名空间的页面就不需要再它页面中单独引用这些命名空间了 <system.web.webPages.razor> <host fact ...

  5. Linux异常表

    一.为什么需要异常表? 处于内核态的程序有下面四种情况会产生缺页异常: 1.内核试图访问属于进程地址空间的页,但是,该页对应的页框不存在或者内核试图去访问一个只读的页,分别对应“请求调页”和“写时复制 ...

  6. 教你如何塑造JavaScript牛逼形象

    如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待别人在看完你的代码之后感叹一句“原来还可以这样写”呢?下面列出一些在JavaScrip ...

  7. swift 的高阶函数的使用代码

    //: Playground - noun: a place where people can play import UIKit var str = "Hello, playground& ...

  8. JavaScript中Promises/A+规范的实现

    Promises是一种异步编程模型,通过一组API来规范化异步操作,这样也能够让异步操作的流程控制更加容易. 下面的代码是假设执行一个异步队列,每一项都会使用上一项返回的数据: function ne ...

  9. WebGIS开源方案中空间数据的入库、编辑、发布的操作流程

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 本开源方案的构架是:geoserver(服务器)+tomca ...

  10. 图片每天换及纯css3手风琴特效

    <a target="_blank" id="a"><img id="img" /></a> <s ...