PowerShell与活动目录

从发布以来,Windows PowerShell已经成为Windows自动化平台的选择。它的强大和灵活已经在许多环境中被许多Windows技术所证明。不幸的是,在活动目录支持方面,PowerShell 1并没有什么可以炫耀。从基础角度,微软提供了ADSI“类型加速器”作为它的支持。如果你需要去完成多高级任务,就不得不访问提供AD支持的本地.NET类——而这需要更多的超出大部分管理员学习兴趣的高级技能。

但随着Windows 7和Windows Server 2008 R2的发布,PowerShell对AD完全支持的期待告一段落。微软在新的版本中已经发布了一个AD模块和PowerShell驱动提供程序,使得可以通过PowerShell管理单元管理AD。

如何安装

如果你安装一个Windows Server 2008 R2与控制器通过使用服务器管理添加活动目录服务角色,AD PowerShell模块将被默认安装。但是,如果你想在你的Windows 7工作站上安装这个模块(模块是PowerShell cmdlet、提供程序、脚本等的集合),你需要安装服务器远程管理工具(RSAT)。

一旦你安装完毕RSAT,请打开控制面板的程序和功能类别,选择打开或关闭Windows功能的RSAT节点。展开,转到Windows PowerShell活动目录模块节点,如图所示。选择复选框,点击是添加该模块。

 

模块被安装之后,你既可以从开始菜单、程序、管理工具组选择Windows PowerShell活动目录模块,又可以通过键入如下命令很容易的把它添加到你现有的PowerShell会话中:

Import-module ActiveDirectory

在短暂的闪烁之后,提示符将返回,然后你将可以访问PowerShell和AD所提供的所有强大功能。不过,在我们开始使用PowerShell的AD模块之前,让我再来补充一条重要信息。不同于之前任何基于PowerShell的AD自动化实现,这个新的模块要求在你的域中至少有一台域控制器运行新的活动目录Web服务(ADWS)。ADWS默认在R2的域控制器上安装,但你在Windows Server 2003或Windows Server 2008域控制器上需要特殊的附件才能使用这个模块。

如果你在你的域中没有ADWS服务器,当你在PowerShell中试图导入AD模块时会出现错误。一般而言,对ADWS和这些PowerShell cmdlet最有趣的事,是它们都不使用LDAP和AD沟通。具体而言,它们使用基于XML Web服务的协议与AD交互。对以前的AD管理工具集而言,这是一个意义重大的改变,并且观察微软在未来的AD管理工具中是否延续这个趋势是很有趣的。注意如果你在非R2的域控制器中安装了ADWS,你将依然可以使用常规的基于LDAP的工具如‘活动目录用户和计算机’来管理这些服务器。

使用cmdlet

在你安装完成这些cmdlet并有一台运行ADWS的DC之后,你就可以开始探索PowerShell对AD的强大威力。微软为使用PowerShell对AD进行自动化管理提供了两个主要工具。第一个工具是一系列cmdlet,可以让你通过查找AD对象做你想做的一切,如创建计算机账号、更改账号等。第二个工具是一个针对AD的PowerShell驱动提供程序,可以让你像一个文件系统一样导航AD。这个工具交互式使用具有强大的能力,我将为你展示一些你可以对AD进行的很棒的操作。

让我们开始看看一些AD cmdlet。如果你想得到一个活动目录 PowerShell模块中所有AD相关的cmdlet列表,打开PowerShell并键入如下命令:

get-command -module ActiveDirectory

这将返回一个有76个cmdlet名字的清单,它们是AD模块的一部分。正如你从清单中看到的,有一些显眼的cmdlet,如检索组成员的Get-ADGroupMember和为域添加计算机账号的New-ADComputer。让我们看看你如何使用这几个命令。比方说,你想快速检索你域中“Marketing Users”组的成员列表。你可以使用如下cmdlet轻松完成:

get-ADGroupMember -identity "Marketing Users"

参数identity作为引用一个特定对象的方式在整个AD cmdlet中很常见。Identity参数可以采取一个可分辨名称(如,DC=cpand1,DC=com),一个对象GUID或者samAccountName的形式。

PowerShell和这些AD cmdlet的另一个强大特性,是能够通过管道把输出从一个cmdlet传递到另一个。例如,假设你想在AD中查找一个用户对象,然后禁用该用户对象。你知道用户的samAccountName是kmyer,所以你可以使用下面的两个cmdlet完成这个任务:

get-ADUser -identity kmyer | Set-ADUser -enabled $false

在这个例子中,我们使用get-ADUser cmdlet搜索samAccounName为kmyer的用户账号。只要我们找到那个用户,我们使用管道把它传递给Set-ADUser cmdlet,并给他赋予带有$false标记的-enabled参数来禁用账号。

这是一个简单的例子,说明了PowerShell和AD cmdlet的威力和简洁。由于这个模块中有76个cmdlet,你可以想想你能使用这个功能做得更多。让我们来看看另一个功能更多更值得讨论的模块:活动目录PowerShell驱动提供程序。

活动目录PowerShell驱动提供程序

什么是活动目录PowerShell驱动提供程序?PowerShell支持资源管理的概念,这就像驱动器卷一样。正如你可以使用cd进入一个文件夹一样,PowerShell驱动提供程序可以让你以同样的方式浏览其他类型的资源。例如,在PowerShell 1中,微软提供了一个注册表PowerShell驱动,因此你可以像对待文件夹和文件一样对待注册表键。你可以在PowerShell中改变路径到HKEY_LOCAL_MACHINE,然后导航到键,使用类似于你在文件系统中使用的命令添加或删除键和值。微软已经提供了一个AD的PowerShell驱动程序和cmdlet共同使用。这个PowerShell驱动提供程序让你像对待文件系统一样对待你的AD层次结构。要使用这个功能,打开PowerShell并加载AD模块,然后键入:

Cd AD:

你会发现驱动提示发生了改变以反映你新的工作路径。如果从此处键入dir,你会得到你当前AD林所有分区的列表。我们假设你想导航到你的域,并创建一个新的OU。在AD的最高层次:驱动提示上下文中键入(以你AD域的目录名称取代DC=cpandl,DC=com):

cd “DC=cpandl,DC=com”

现在假设我们想在Marketing OU下创建一个新的HR OU。更改到Marketing OU文件夹,键入:

cd “OU=Marketing”

最后,在Marketing OU下创建HR OU,键入:

Md “OU=HR”















本文转自legendfu51CTO博客,原文链接: http://blog.51cto.com/legendfu/1072327,如需转载请自行联系原作者


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/392803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis-Plus入门Demo详解

一.简介: 引用官方文档(本文主要参考官方文档示例): MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 愿景 我们的愿景是成为 MyBatis 最好的搭档,就…

RHEL 5基础篇—常见系统启动类故障

常见系统启动类故障 在linux系统的启动过程中,涉及到MBR主引导记录、GRUB启动菜单、系统初始化配置文件inittab等各方面,其中任何一个环节出现故障都有可能会导致系统启动失败。因此一定要注意做好相关文件的备份工作。 1、MBR扇区故障 MBR引导记录位…

PVS 6.1 Configuring Services Failed

好久没有更新了,嘿嘿,更新一个。 项目中遇到一个问题,PVS安装到最后一步报错,如下图: 环境:PVS 6.1,数据库是SQL Server 2005 SP4 查了一下文档,PVS 6.1支持SQL Server 2005 SP4 排查…

jsp论坛网站模版_网站关键词优化怎么做

说到网站关键词优化,大多企业都很陌生,建站公司说的关键词优化头头是道。跟听天书似的,51商务网小编为大家总结的网站优化方法希望可以帮到大家,首先要说的是做网站优化第一点就是要有耐心,如果很长时间没有收录的话&a…

go 列出已经安装的包_Go 安装教程

一、在 Windows 上安装 Go 环境首先在 Go 官网 下载 Windows 系统下的一键安装包。然后双击打开该文件,一直点 Next 就行。注意这里默认是安装到 C 盘,建议不要修改,因为环境变量会自动设置,如果安装到其他盘,那么可能…

【转】spin_lock、spin_lock_irq、spin_lock_irqsave区别

为什么80%的码农都做不了架构师?>>> 转自:http://blog.csdn.net/luckywang1103/article/details/42083613 void spin_lock(spinlock_t *lock);void spin_lock_irq(spinlock_t *lock);void spin_lock_irqsave(spinlock_t *lock, unsigned lon…

七年级计算机上教学计划,初一教学计划模板锦集5篇

初一教学计划模板锦集5篇时光在流逝,从不停歇,我们又将迎来新的教学工作,我们要好好计划今后的教育教学方法。那么一份同事都拍手称赞的教学计划是什么样的呢?以下是小编为大家整理的初一教学计划5篇,仅供参考&#xf…

我的世界服务器玩家在线时间,将公布上线时间?我的世界中国版网易520前瞻

【17173专稿,转载请注明出处】《我的世界》中国版最近一段时间动作不断。网易CEO丁磊在财报电话会议上公布了《我的世界》手游版会在7月份推出,结合《我的世界》中国版的公告提及:”《我的世界》中国版即将在暑期上线“。如此看来手游版和PC版…

ftpwebrequest 无法加载或初始化请求的服务提供程序_jvm之类加载机制

什么是类加载每个编写的".java"拓展名类文件都存储着需要执行的程序逻辑,这些".java"文件经过Java编译器编译成拓展名为".class"的文件,".class"文件中保存着Java代码经转换后的虚拟机指令,当需要使…

云服务器怎么设置域名,云服务器域名设置在哪里

可能不同的云服务厂商域名设置的方式略有不同,不过,大体来讲,方法应该都差不多的。下面我们以1.打开浏览器,搜索西部数码官网并登陆账号密码,到会员中心。2.进入管理中心后,在左侧的业务管理中找到3.点击服…

RHCE 学习笔记(9) 网络管理

n这一节本来按照教学大纲应该是学习SSH,不过SSH有很多网络相关的知识,因此老师把网络内容提前了一些。网络的基本知识例如IP,DNS,DHCP,路由协议等常识就不在此解释了。 RHEL查看网卡的相关信息很容易,ifcon…

用原生js封装get方法

get方法的封装 首先我们看一下用原生js来发送请求的步骤: 1.创建请求对象 .var xhrnew XMLHttpRequest(); 2.创建open方法确认请求方式和地址 xhr.open(get,url) ps(记住get方法有参数的话在url后面用?符号连接再加上参数如:url?num3,多个参数用&符号连接); 3.监听事件…

10一个应用阻止关机贴吧_手机该不该每天关机一次?看完才知道这么多年白用了...

晚上习惯关机睡觉的朋友们在哪里?举起你们的手让小编看看!那么问题来了,你为啥要关机睡觉?是担心手机“睡眠不足”,还是担心屏亮会让你忍不住的熬夜?然而,有朋友认为手机应该每天关机一次&#…

ajax无刷新评论的思路,ajax学习——ajax版无刷新评论(数据库)

//Comment.htm无刷新评论type"text/javascript">//加载评论$(function() {$.post("GetComment.ashx",function(data, status) {if (status ! "success") {$("#ulComment").append($("加载数据失败"));return;}var lines …

python 找出监听的端口号对号显示

刚好做运维平台,领导也有个要求是实时的查看,任意一台主机的端口开启状态,实际上我已经做了脚本发邮件每天diff的功能,但是为了方便展示还是写了这个脚本: 脚本内容: 123456789101112131415161718192021222…

彩虹系统怎么弄服务器,用云服务器彩虹挂机

用云服务器彩虹挂机 内容精选换一换当云服务器网络异常、防火墙未放行本地远程桌面端口、云服务器CPU负载过高等场景均可能导致云服务器无法正常登录。当您的云服务器无法远程登录时,我们建议您首先检查是否可以通过控制台远程登录。再参考排查思路检查登录异常的原…

欧拉路HDU3018

欧拉路,欧拉回路,讲的实际上就是一笔画的问题。 给定n个点,m条边,如果能一笔把所有边都连上就是欧拉路,如果起点和终点是同一点,就是欧拉回路。 欧拉路的特征:对于无向图,如果所有点…

awt jtable 多线程加载图片_Java项目实战之天天酷跑(三):缓冲加载游戏界面

前文,我们完成了开始游戏界面的搭建。本文将实现缓冲加载界面的搭建。并搭建与前面俩界面间的桥梁。实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能。界面示意图:具体要求&…

本地修改指向服务器,本地修改指向服务器

本地修改指向服务器 内容精选换一换已获取服务器管理员帐号与密码。打开CMD运行窗口,输入gpedit.msc,打开本地组策略编辑器。打开组策略在指定RD会话主机服务器的授权模式下拉列表中选择按用户。设置允许RD最大连接数位999999。设置结束已断开连接的会话…

expect 批量修改服务器用户密码

每个技术人员离职,留下的人 就要修改他的服务器账号密码,很麻烦,故写次脚本偷懒 change.sh 如下 12345678910#!/bin/bashfor i in awk {print $1} account.txt dojawk -v l"$i" {if(l$1)print $2} account.txt aawk -v l"$i&q…