首页 > 系统相关 >Powershell 应用之一

Powershell 应用之一

时间:2023-06-11 23:34:02浏览次数:38  
标签:之一 Get NoTypeInformation Object _. Export 应用 OU Powershell

前言:

对于一个Windows server运维的管理员来说,powershell 命令至关重要,它不仅仅能够提高你的工作效率,也是你工作中的好帮手,所以应该静下心来好好学习命令,虽然一开始不太习惯用着用着你就会爱不释手。

一、AD对象日常管理

  1. 用户管理

例子1:统计OU下总共有多少个AD账号

(Get-ADUser -Filter * -SearchBase "OU=cn,OU=employee,dc=contoso,dc=com").count

例子2:统计OU下总共有多少个是为TURE的AD用户,并且导出数据

get-aduser  -searchbase 'OU=cn,OU=employee,DC=CONTOSO,DC=COM'  -filter *|where {$_.enabled -eq "True"}|select name,surname|Export-Csv -Encoding Utf8 -NoTypeInformation :\aduser.txt

例子3:统计某个特定OU下总共有多少个是为TURE的AD用户,并且统计总数

(get-aduser  -searchbase 'OU=IT,OU=cn,OU=employee,DC=CONTOSO,DC=COM'  -filter *|where {$_.enabled -eq "True"}|select  name,surname).count

例子4:统计OU下总共有多少个是为Flase的AD用户

Search-ADAccount -AccountDisabled -Searchbase "OU=cn,OU=employee,dc=contoso,dc=com" |select -property name|Export-Csv -Encoding Utf8 -NoTypeInformation D:\inactive_user.txt

例子5:查询用户AD账号的基本属性

Get-ADUser -Identity "felic" -Properties *  |Select-Object surname,name,department,EmployeeNumber,info,telephoneNumber,departmentNumber

例子6:查询用户最后修改密码的时间

Get-ADUser -Identity "" -Properties * |select name,@{N='pwdLastSet'; E={[DateTime]::FromFileTime($_.pwdLastSet)}}

例子7:从 AD 获取尝试错误密码信息,并且是在最近一天的信息,导出信息以便分析

Get-ADUser -Filter * -Properties * |Select-Object AccountLockoutTime,LastBadPasswordAttemptBadPwdCount,LockedOut | Where {$_.LastBadPasswordAttempt -gt (Get-Date).AddDays(-1)}  |Export-Csv -Encoding Utf8 -NoTypeInformation D:\pwdlast.csv

例子8:查询此AD域内所有用户的创建日期

Get-ADuser  -filter * -Properties * | Select-Object Name,SID, Created,PasswordLastSet,@{n="lastLogonDate";e={[datetime]::FromFileTime($_.lastLogonTimestamp)}}

例子9:查询OU中所有30天内未登录的AD帐号,且排除从未登录的新账号,导出分析


Get-ADUser -SearchBase "ou=employee,DC=contoso,dc=com" -filter * -Properties * |Select-Object Name,sid,Created,passwordLastSet,@{n="lastLogonDate";e={[datetime]::FromFileTime($_.lastlogonTimestamp)}}|where{$_.lastlogondate -lt (get-date).AddDays(-30)} | Export-Csv -Encoding Utf8 -NoTypeInformation D:\inactive-aduser.csv

例子10:最后登录时间以及密码输入错误时间

Get-ADUser -Identity tony.hu -Properties LastLogonDate, LastBadPasswordAttempt

Powershell 应用之一_powershell

  1. 计算机管理

例子1:查询某个OU下的computer操作系统版本,计算机名称,补丁信息,最后登录时间

Get-ADComputer -searchbase 'ou=Computer_Office,ou=Computer,dc=contoso,dc=com' -Filter * -Property * | Select-Object Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion, LastLogonDate  |Export-Csv -Encoding Utf8 -NoTypeInformation D:\ComputerInformation.csv

例子2:查询某个Group下的computer操作系统版本,计算机名称,补丁信息

Get-ADGroupMember -Identity "GPO_USB_Allow" -Recursive |Get-ADComputer -Property * |Select-Object Name,OperatingSystem,OperatingSystemServicePack,OperatingSystemVersion | Export-Csv -Encoding Utf8 -NoTypeInformation D:\GPO_USB_Allow.csv


  1. 用户组管理

例子1:过滤某个group下的用户属性

Get-ADGroupMember -Identity "groupname" -Recursive | Get-ADUser -Properties Mail | Select-Object Name,Mail |Export-Csv -Encoding Utf8 -NoTypeInformation d:\groupdetail.csv

例子2:过滤某个OU下的群组,并且是通讯组

Get-ADGroup -Filter 'groupcategory -eq "distribution"' -SearchScope Subtree -SearchBase "OU=cn_group_it,OU=cn,DC=contoso,DC=com"|Select-Object name |Export-csv -Encoding Utf8 -NoTypeInformation D:\groupinfo.csv

二、计算机管理

  1. 查看磁盘信息:可以直接粘贴运行,当然也可以写成PS1来执行
$DiskCount = ((Get-WmiObject -Class Win32_DiskDrive).Caption).count

   #获取磁盘分区大小

   $DiskInfo = Get-WmiObject -Class Win32_LogicalDisk  
   echo "--------------------统计磁盘分区状况-------------------------"

   echo " 驱动器号       分区空间       可用空间      文件系统    "        

   foreach ($Drivers in $DiskInfo)  
   {

        $PartitionID = $Drivers.DeviceID

        $PartitionSize = "{0:N2}GB" -f ($Drivers.Size/1GB)

        $PartitionFreeSize = "{0:N2}GB" -f ($Drivers.FreeSpace/1GB)

        $PartitionFS = $Drivers.FileSystem

    echo "  $PartitionID            $PartitionSize       $PartitionFreeSize       $PartitionFS    "    

   }

Powershell 应用之一_powershell_02

  1. 查询网络信息

获取网卡信息:

Get-NetAdapter

Powershell 应用之一_windows server_03

关闭网卡:

Disable-NetAdapter -Name "Embedded LOM 1 Port 3"

Powershell 应用之一_powershell_04

开启网卡:

enable-NetAdapter -Name "Embedded LOM 1 Port 4"


  1. 获取计算机开机时间:可以直接粘贴运行,当然也可以写成PS1来执行
$RunTime = (Get-WmiObject -Class Win32_OperatingSystem -Namespace root\CIMV2).lastbootuptime
$Year = $RunTime.Substring(0,4)
$Month = $Runtime.Substring(4,2)
$Day = $Runtime.Substring(6,2)
$Hour = $Runtime.Substring(8,2)
$Min = $Runtime.Substring(10,2)
$Sec = $Runtime.Substring(12,2)
$RunTimeS = $Year + "-" + $Month + "-" + $Day + " " + $Hour + ":" + $Min + ":" + $Sec
$StartTime = [system.Convert]::ToDateTime($RunTimeS)
Write-Host "System start time:"$StartTime

Powershell 应用之一_运维_05

  1. 获取本机的内存
gwmi Win32_PhysicalMemory | %{$sum = 0} { $sum += $_.Capacity } {Write-Host ($sum / 1GB) "GB"}
  1. 远程管理计算机 (需要以管理员身份运行powershell)
Enable-PSRemoting
Set-Item wsman:\localhost\Client\TrustedHosts -value 192.168.0.100
Enter-PSSession 192.168.0.100 -Credential contoso\admincn

扩展一下:写一个脚本自动化去检查192.168.0.100上的硬盘容量,无需登录操作,当然还可以发散思维

Function Get-DomainCredential()
{

 $domain=Get-DomainName

 $username = "$domain\admincn"

 $password = "Pa55w.rd!"

 $cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

 return $cred

}

##################自动打开远程#################################################################

$username = "contoso\admincn"

$password = "Pa55w.rd!"

$cred = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))

Enable-PSRemoting -Force  
Enter-PSSession 192.168.0.100 -Credential $cred

$startFolder = "E:\"

$colItems = (Get-ChildItem $startFolder | Where-Object {$_.PSIsContainer -eq $True} | Sort-Object)

foreach ($i in $colItems)

{

 $subFolderItems = (Get-ChildItem $i.FullName -recurse | Measure-Object -property length -sum)

 $FileSize="{0:N2}" -f ($subFolderItems.sum / 1GB)

 $Unit='GB'

 if($FileSize -lt 1)

 {

 $FileSize="{0:N2}" -f ($subFolderItems.sum / 1MB)

 $Unit='MB'

 }

 write-host $i.FullName ' -- ' $FileSize $Unit -fore green

}

三、管理计算机的日志

  1. 获取本机的安全日志
Get-HotFix | Where-Object {$_.Description -eq "Security Update"}|Export-Csv -Encoding Utf8 -NoTypeInformation D:\Securitylog.csv

Powershell 应用之一_windows server_06

  1. 获取Application、Security 事件最近10条信息
Get-EventLog Application -ComputerName 'server01','server02' -newest 10
Get-EventLog Application -ComputerName 'server01','server02' -newest 10

Powershell 应用之一_运维_07

  1. 获取日志:通过文本方式,需要先提前把你需要的计算机名称写入到list.txt文本中
Get-EventLog Application -ComputerName (Get-Content d:\list.txt) -newest 10 |Export-Csv -Encoding Utf8 -NoTypeInformation D:\Applicationlog.csv
  1. 使用帮助来获取例子
help Get-EventLog -Examples

Powershell 应用之一_windows server_08

好了,先就记录到这里,到点了,休息了。





标签:之一,Get,NoTypeInformation,Object,_.,Export,应用,OU,Powershell
From: https://blog.51cto.com/hwg1227/6459311

相关文章

  • postgresml 基于postgres 的ai 应用数据库
    postgresml基于postgres的ai应用数据库,我们可以基于sql使用开源模型进行训练,实际上如果了解pg的化pg实际也有一个开源的madlib也属于机器学习领域的不错选择说明如果测试使用的,注意postgresmldocker镜像很大,同时需要自己构建会比较慢,后边我会介绍下使用参考资料https......
  • 深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类
    深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类方法、注意力机制1.时间偏移模块(TSM)视频流的爆炸性增长为以高精度和低成本执行视频理解任务带来了挑战。传统的2DCNN计算成本低,但无法捕捉视频特有的时间信息;3DCNN可以得到良好的性能,但计算量......
  • 实验6 turtle绘图与python库应用编程体验
    task1-1源代码1fromturtleimport*23defmove(x,y):4'''画笔移动到坐标(x,y)处'''5penup()6goto(x,y)7pendown()89defdraw(n,size=100):10'''绘制边长为size的正n变形'''1......
  • 深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类
    深度学习应用篇-计算机视觉-视频分类[8]:时间偏移模块(TSM)、TimeSformer无卷积视频分类方法、注意力机制1.时间偏移模块(TSM)视频流的爆炸性增长为以高精度和低成本执行视频理解任务带来了挑战。传统的2DCNN计算成本低,但无法捕捉视频特有的时间信息;3DCNN可以得到良好的性能,但计算......
  • phptrace 是一个用于跟踪 PHP 应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调
    phptrace是一个用于跟踪PHP应用程序性能的工具,可以帮助开发者快速发现性能瓶颈和调试PHP应用程序。以下是一个使用phptrace的简单案例:1.安装phptrace可以通过以下命令安装phptrace:sudoapt-getinstallphp7.0-devgitclonehttps://github.com/Qihoo360/phptrace.......
  • 单例模式(static应用场景)
     单例模式(Singleton) 设计-->一个类只能创建一个对象有效减少内存占用空间 设计一个系统--->百度搜索引擎 publicclassBaidu{ publicvoid搜索(Stringkeyword){ } } 创建一个Baidu对象new 调用搜索的方法做事情方法执行一遍 同一时间有很多很多......
  • Segment Routing 典型应用场景
       ......
  • Trie树模板与应用
    文章和代码已经归档至【Github仓库:<https://github.com/timerring/algorithms-notes>】或者公众号【AIShareLab】回复算法笔记也可获取。Trie树(字典树)Trie树是用来快速存储和查找字符串集合的数据结构。某个字符串集合对应的有根树。树的每条边上对应有恰好一个字符,每个顶点代......
  • 实验6 turtle绘图与Python库应用编程体验
    task1-1.py实验源码:fromturtleimport*defmove(x,y):penup()goto(x,y)pendown()defdraw(n,size=100):foriinrange(n):fd(size)left(360/n)defmain():pensize(2)pencolor('red')move(-200,0)......
  • 不停机条件下部署 Django 应用
    当我们上线新的服务应用时,经常不得不重启Web服务器以完成部署。但这会对用户造成一定影响,特别是服务器处于繁忙状态时,问题更严重。本文中,作者将针对这一问题,讲述其如何在不停机条件下部署Django应用。当我的网站healthchecks.io每秒接收的请求次数超过一次之后,我就非常清楚地认识......