powershell
操作AD常用命令
查询AD中默认的密码策略
Get-ADDefaultDomainPasswordPolicy
查询AD中密码永不过期的用户
Get-ADUser -Filter 'PasswordNeverExpires -eq $true' -Server DCHostname | select name
增加限定条件再查
Get-ADUser -searchbase ' OU=Dongguan,DC=szmaxcent,DC=COM,DC=CN ' -Filter 'PasswordNeverExpires -eq $true' -Server DCHostname | select name
查询AD中,已锁定的用户
get-aduser -filter * -properties * | where {$_.lockedout} | ft name,lockedout
查询某个账号是否锁定
get-aduser johnsonxiang -properties * | ft name,lockedout
如果红色方框显示为False,为正常状态,如果为Ture,即已锁定!
查询AD中,成员为空AD组(针对用户)
Get-ADGroup -Filter * -Properties Members | where { -not $_.Members} | select Name
增加Active Directory域服务(AD DS)模块
Add-Module ActiveDirectory
得到关于一个域的信息
Get-ADDomain 域名
显示一个具体的域的域控制信息
Get-ADDomainController -Discover
要从一张表中找到具体的一个域,并将结果整齐地显示和供浏览,则通过"Cd AD"命令来改变AD中的路径,然后使用下面的命令
PWD
DIR | Format-Table -Auto
CD "DC=domain_name,DC=TLD"
DIR | ft
要为一个新的组织单元设立一个新的域
New-ADOrganizationalUnit Name "International" ?Path "DC=domain_name,DC=TLD"
要删除前面步骤中建立的新单元的域名,则用下面的命令行,其中一个允许将组织单元删除,而其它的仅仅只是将它移走
Set ADorganizationalUnit International ProtectedFromAccidentalDeletion $False Remove ADOrganizationalUnit International Unit
得到Powshell所有命令
Get-Command
获取所有进程
Get-Process
给指定命令重命名
Set-Alias aaa Get-Command
获取对象属性
$var | Get-Memeber
变量赋值方法:Set-Variable var 100
取值方法: Get-Variable var
清空值: Clear-Variable var
删除变量 Remove-Variable var
取多个变量如var1 var2 var3地值: Get-Variable var*
另一种赋值方法 $var1="bbb" \(var2="\)var \(var1" 结果\)var2="aaaaaa bbb"
\(var2='\)var \(var1' 结果\)var2="$var $var1"
$date=Get-Date 获取当前时间
$date.AddDays(3) 当前时间加3天
Get-Process | Sort-Object ws 根据WS值由小到大排序
Get-Process | Sort-Object | fl Get-Process | Sort-Object | Format-List 以列表形式显示数据
导入导出文件
Get-Process > c:/aa.txt
Get-Process | Export-Clixml c:/ddd.xml 将命令执行结果导出到xml文件中
Import-Clixml c:/ddd.xml 将xml文件导出到控件台
注释使用
Get-Proccess | #这里写注释信息
比较运算符
$var="abc"
$var -like "&b&" 返回true
$var -clike "&b&" 返回true
error使用
function one
{
Get-Process -ea stop
Get-ChildItem ada -ErrorAction stop #此句有误
Get-Process -ErrorAction stop
}
one
-ea 定义当错误发生以后该如何继续执行
$?可以测试命令执行成功还是失败,成功则结果为true 反之为false
单步调试
先设置Set-PSDebug -step
for(\(i=1;\)i -le 10;$i++)
{
Write-Host "loop number $i"
}