移动AD的计算机到对应的OU的powershell脚本

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

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

同时新建AD账号、邮箱、添加通讯组的powershell脚本

根据公司的需要,写了一个同时新建AD账号.邮箱.添加通讯组的powershell脚本,首先需要编辑csv文件,格式如下: 代码如下,加入了重名判断.添加到组延迟6秒运行.失败后重现尝试4次功能: Import-Module ActiveDirectory $erroractionpreference = "SilentlyContinue" #判断是否有重名账号存在 $f = $False Import-Csv -Path D:\newuser\Info.csv | foreach {

域内计算机迁移到其他域,自动脚本运行,继承原用户配置文件、管理员权限不变

因一个公司收购另外一个公司,现需要把被收购公司的计算机迁移到收购公司域内,要求用户配置文件不变,计算机名重新编辑,用户继承本地管理员权限使用了DefProf.exe迁移配置文件使用了netdom.exe迁移域使用了数据库自动计算机名更改,并抓取计算机信息到数据库 脚本如下: @echo off color 0Acls copy CDGAMED.ps1 C:\tmpcopy CDGAMEL.ps1 C:\tmpcopy zhuaqu.ps1 C:\tmpcopy netdom.exe C:\Win

Get AD Object and disable move delete AD account script 查询删除AD账户计算机

Get AD computer account.ps1 下面的脚本实现查询大于90天没有登录的计算机账户,并移动到一个OU中,也可以结合脚本将其disable和删除: # Gets time stamps for all computers in thedomain that have NOT logged in since after specified date Mod by Tilo2013-08-27 import-module activedirectory  $domain = "d

用powershell脚本自动阻止OWA爆破AD账户密码

This artical will also be published in English: http://www.cnblogs.com/LarryAtCNBlog/p/4820327.html 以前所在的公司OWA什么的都不对外开放倒是从来没有经历过利用Exchange OWA的AD账户密码爆破行为,入职了一个新的公司后OWA对公网开放使用,结果引来了不少的攻击.于是乎做了一个powershell的脚本,数据源基于Exchange CAS上的security日志,用计划任务每10分钟检查一

PS AD命令之Remove-adcomputer!

?? Remove-adcomputer 是一个删除计算机的命令,执行比较简单,执行格式如下: Remove-adcomputer-identity raymondpc RerIOUe一ADcomputer一Identit,r已,mDndpc,一刀 _口l> 二人ctiveDirectory用户和计算御 田口保存的查询 曰自pi10t·co. 口万uiltin 口comput"rs 团D.mainController: 口r.rei娜ec二ityFrincir 团工T 口..a'edSer

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

最近在给一个客户部署基于微软TFS的软件生命周期管理平台时,客户要求数据库层实现高可用性,减少因数据库服务器故障影响软件开发进展. 客户现有域是一台搭建在Windows Server 2008上的级别为Windows 2008的企业域.为了符合客户企业域的安全规定,需要在部署数据库高可用性期间使用最低权限,即只赋予操作账户(tfsadmin)在AD目录中用于ALM的组织单元的完全权限.在综合考虑和调用的基础上,我们提出了以下方案,并附上了操作说明. 方案: 1. 在AD域中为ALM创建用于保存计

For语句实现批量创建AD用户

AD中创建用户的方法,主要有以下几种: 1) AD用户和计算机|AD管理中心 2) 利用CSVDE批量创建用户 3) 利用LDIFDE批量创建用户 4) 利用PowerShell脚本批量创建用户 5) 利用For语句结合dsadd命令批量创建用户 分析: 第1种是GUI界面,一目了然,无需多说: 第2.3种无法为用户输入密码,所以建完后是禁用状态: 第4种功能很强大,但有一定门槛,以后为大家分享: 今天我们介绍下第5种,理由:简单实用! 主要步骤: 1. 先用记事本或Excel做一个模板文件,保

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

目录 目录 Active Directory概念 创建第一个AD域控制器 搭建DNS服务器 使用Windows窗口程序创建AD域控制器 AD与LDAP的关系 使用Powershell来创建ADDS域控制器 检查ADDC域控制器是否安装成功 管理工具 创建额外域控制器 使用Windows窗口界面来安装额外域控制器 使用Powershell脚本来安装额外域控制器 Active Directory概念 AD(活动目录):是一种组织资源信息的方法,目录的意义在于我们可以通过标题或者说搜索条件来简单而有效

C#操作AD及Exchange Server总结(一)

转:http://www.cnblogs.com/renzh/p/3178123.html 这篇博客的目的:根据亲身项目经历,总结对AD及Exchange Server的操作,包括新建AD用户,设置密码,为AD用户创建邮箱等. 文档目录: 测试环境及需求简述 对AD操作 引入DLL及方法简述 新增OU或Security Group 新建AD User 添加用户到组或从组中删除用户 用户信息更新 Enable/Disable用户账号 对Exchange Server操作 为AD用户新建邮箱 配置客