首页 > 系统相关 >通过脚本学习PowerShell

通过脚本学习PowerShell

时间:2023-11-12 14:32:28浏览次数:37  
标签:脚本 domain group ## server 学习 user ou PowerShell

今天依旧通过PowerShellPlus的示例脚本来学习PowerShell。

## =====================================================================
## Title       : Add-ADUserToGroup
## Description : Add Active Directory User to a Group
## Author      : Idera
## Date        : 9/22/2008
## Input       : -server 
##               -domain
##               -ou
##               -group
##               -user
##               -verbose 
##               -debug   
## Output      : 
## Usage       : PS> .\Add-ADUserToGroup -server localhost:389 -domain Idera -ou sales -group Management -user Joe Smith -verbose -debug
## Notes       : Adapted from Windows PowerShell Cookbook, Lee Holmes
## Tag         : PowerShell, AD
## Change log  :
##  4/1/2009 - Added Read-Host input prompts and Write-Verbose and Write-Debug statements
## =====================================================================

param
(
   [string]$server = "$(Read-Host 'Server [e.g. localhost:389]')", 
   [string]$domain = "$(Read-Host 'Domain [e.g. Idera]')", 
   [string]$ou = "$(Read-Host 'Organizational Unit [e.g. Sales]')",
   [string]$group = "$(Read-Host 'Group [e.g. Outside Sales]')", 
   [string]$user = "$(Read-Host 'User [e.g. Joe Smith]')", 
   [switch]$verbose = $true,
   [switch]$debug = $false
)

function main()
{
	if ($verbose) {$VerbosePreference = "Continue"}
	if ($debug) {$DebugPreference = "Continue"}
	Write-Verbose "Add Active Directory User to a Group..."
	Add-ADUserToGroup $server $domain $ou $group $user
}

function Add-ADUserToGroup($server,$domain,$ou,$group,$user)
{
	trap [Exception] 
	{
		write-error $("TRAPPED: " + $_.Exception.Message);
		continue;
	}

	# The group must be pre-existing for the specified OU and domain
	$groupObj = [adsi]"LDAP://$server/cn=$group,ou=$ou,dc=$domain,dc=COM"
	Write-Debug "Group object is LDAP://$server/ou=$ou,dc=$domain,dc=COM"
	
	# The user must be pre-existing for the specified OU and domain
	$userObj = "LDAP://$server/cn=$user,ou=$ou,dc=$domain,dc=COM"
	Write-Debug "User object is LDAP://$server/cn=$user,ou=$ou,dc=$domain,dc=COM"
	
	Write-Debug "Creating user ($user) in group ($group)"
  	$groupObj.Add($userObj)
}

main

这个脚本的功能是添加AD用户到AD组。

通过参数传递服务器,域,组织单元,用户,组等信息。

49行是骑过ADSI命令连接到LDAP服务器获取组对象。53行是通过ADSI命令获取用户对象。57行就是调用组对象的ADD方法添加用户。

其它的Write-Debug相当对编程语言中的输出Debug日志。只是Cmdlets的输出全部在控制台了。

标签:脚本,domain,group,##,server,学习,user,ou,PowerShell
From: https://blog.51cto.com/u_3353175/8329302

相关文章

  • 学习之路
    2023.8.30   解答:1.将倒数第二杯的水倒入第二杯中,再将杯子放回原位。2.将管子首尾相连,让末端黑球滚动到前端解题思想:首先将目标结果实现,根据结果倒推。 2023.8.31   解答:1.将四棵树种到一个等边三角锥的四个顶点上2.首先点燃一根香的两端和第二根香的一端......
  • 学习笔记9
    第六章信号和信号处理信号和中断“中断”是从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理。与发送给CPU的中断请求一样,“信号”是发送给进程的请求,将进程从正常执行转移到中断处理。进程:一个“进程”就是一系列活动广义的“进程”包括:从事日常......
  • 机器学习——循环神经网络的实现
    独热编码回想一下,在train_iter中,每个词元都表示为一个数字索引,将这些索引直接输入神经网络可能会使学习变得困难。我们通常将每个词元表示为更具表现力的特征向量。最简单的表示称为独热编码(one-hotencoding),它在 3.4.1节中介绍过。简言之,将每个索引映射为相互不同的单位向......
  • 第六章学习笔记
    第六章信号和信号处理知识点总结信号是指随时间或空间变化的信息载体,可以是各种形式的数据,比如声音、图像、视频、电压等。信号处理涉及对这些信号进行获取、处理、分析和解释的一系列技术和方法。1.信号类型:-连续信号:在连续时间内定义的信号,如声音波形。-离散信号:只在离散......
  • 信息安全系统设计与实现学习笔记9
    学习笔记9一、知识点归纳以及自己最有收获的内容1.信号和信号处理进程的概念一个“进程”是一系列活动,包括从事日常事物的人、在用户模式或内核模式下运行的Unix/Linux进程以及执行机器指令的CPU。中断中断可分为三类:来自硬件的中断、来自其他人的中断、自己造成的中断......
  • 2023-2024-1 20211319《计算机基础与程序设计》第七周学习总结
    2023-2024-120211319《计算机基础与程序设计》第七周学习总结作业信息这个作业属于哪个课程<班级的链接>(如2023-2024-1-计算机基础与程序设计)这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07这个作业的目标<写上具体方面>作业正文......
  • 2023-2024-1 20231417 《计算机基础与程序设计》第七周学习总结
    2023-2024-120231417《计算机基础与程序设计》第七周学习总结 作业信息这个作业属于哪个课程<班级的链接>(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里<作业要求的链接>(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07)......
  • 数学微积分,学习笔记,等价无穷小的证明:(1+x)^a-1 ~ ax
    \(\lim_{x\to0}\frac{\sqrt[n]{1+x}-1}{\frac{x}{n}}=1\)的证明\[\lim_{x\to0}\frac{\sqrt[n]{1+x}-1}{\frac{x}{n}}=\lim_{x\to0}\frac{\left(1+x\right)^{\frac{1}{n}}-1}{\frac{x}{n}}=\lim_{x\to0}\frac{e^{x\frac{1}......
  • linux的学习2
    用户管理:id:显示用户以及所属群组的实际与有效ID1.useradd-m用户名(描述:-m自动创建这个用户的主目录/home/用户名)2.useradd-g组名用户名(描述:添加新用户到某个组)3.userdel-r用户名(描述:-r删除用户的时候将他的目录也一并删掉)4.usermod-g用户组用户名(描述:修改用......
  • 学习笔记9 第六章的自学归纳
    第六章信号和信号处理信号和中断信号:发送给进程的请求,将进程从正常执行转移到中断处理中断:从I/O设备或协处理器发送到CPU的外部请求,它将CPU从正常执行转移到中断处理Unix/Linux信号示例Ctrl+C:当前运行的进程终止。生成一个键盘硬件中断。键盘中断处理程序将"Ctrl+C......