PowerShell to get bulk IP addesses’ DNS name

$HOSTS = @(‘192.168.185.234′,’192.168.162.13′,’192.168.36.23′,’192.168.128.7′,’192.168.128.19′,’192.168.128.18′,’192.168.36.135′,’192.168.163.7′,’192.168.163.13′,’192.168.36.39′,’192.168.162.13′,’192.168.128.19′,’192.168.128.18′,’192.168.163.14′,’192.168.163.13′,’192.168.161.18’)foreach ($HOSTName in $HOSTS){ try{ [System.Net.Dns]::GetHostbyAddress($HOSTName) } catch { $HOSTName + ‘ cannot be resolved by DNS’ } }

如何用PowerShell创建一个共享并且给Everyone全部访问的权限

本篇将介绍如何用PowerShell创建一个共享并且给Everyone全部访问(Full Access)的权限。 这里应用到以下Windows Class,如果有需要可以查看微软官方的开发文档。 Win32_trustee官方文档: https://msdn.microsoft.com/en-us/library/aa394501%28v=vs.85%29.aspx Win32_ACE官方文档: https://msdn.microsoft.com/en-us/library/aa394063%28v=vs.85%29.aspx Win32_SecurityDescriptor官方文档: https://msdn.microsoft.com/en-us/library/aa394402%28v=vs.85%29.aspx 因为每一个Class都需要声明相应的元素,因此不能错过每一个元素的声明,要不然就会找不到相应的Property。 全部脚本: $trustee.Name = “EVERYONE”$trustee.Domain = $Null#Username/Group to give permissions to$trustee = ([wmiclass]’Win32_trustee’).psbase.CreateInstance()$trustee.Domain = $null$trustee.Name…

用PowerShell查看文件上次更改时间然后发送email

本篇将介绍如何使用PowerShell来实现查看多个文件夹下的特定文件, 从而检测文件的上次的更改时间,如果更改时间超多X天,自动发送email到指定的地址 这个功能可以使用在运维工程师手动核实文件上次更改时间或类似的工作当中。 利用自动化,来减少维护成本。 以下代码适用于PowerShell 2.0以上版本 $Now = Get-Date$Days = “1”$LastWrite = $Now.AddDays(-$Days)$Contents = “”$FilePaths = @(“Filepath1″,”Filepath2″,”Filepath3″,”Filepath4″,”Filepath5″,”Filepath6″,”Filepath7”)foreach ($FilePath in $FilePaths){ $AEXFiles = Get-ChildItem -Recurse $FilePath…

如何使用Powershell来查找路径下文档中的内容

本篇将介绍如何使用Powershell来查找路径下文档中的内容。 找到内容后,返回相关文档的名称。 假设我需要遍历D:_Powershelltes的目录下的所有文档,并且找到含有”if”的文件名。 可以通过Select-String来实现: $path = “D:_PowerShelltes*.txt”$pattern = “if”$file = Select-String -Path $path -Pattern $pattern$filename = $file.filename | select -Unique$filename 如果是希望找到相关的文件,并且删除,可以使用以下脚本: $path = “D:_PowerShelltes”$pattern =…

如何使用Powershell来查看SNMP服务的设置

本篇将介绍如何使用Powershell来查看SNMP服务中的设置。 本脚本会通过调取注册表中的信息和服务的运行状态来实现功能。 本脚本会测试,服务是否运行,SNMP Agent的contact, Location, Trap Infomation, Accepted IP Addresses以及SNMP Service $snmp = get-service snmpif($snmp.Status -eq “Running”){ “SNMP Service is running.” $sysContact = (get-itemproperty HKLM:SYSTEMCurrentControlSetServicesSNMPParametersRFC1156Agent…

用Powershell来检测当前SQL Server的版本

本篇将介绍如何使用Powershell来检测当前SQL Server的版本。 检测SQL Server版本主要是利用注册表中获取的值来判定。 然后通过之前设置好的SQL Server想对应的版本,来输出当前SQL Server的版本。 本篇仅仅用SQL Server 2012来做例子,之前的版本号,可以再微软的官网查询。 if(Test-Path ‘HKLM:SOFTWAREMicrosoftMicrosoft SQL Server’){ “This server has SQL Server installed, The following are the service…

用Powershell来测试域验证以及本地账户验证

本篇将介绍如何使用Powershell来测试域验证以及本地账户验证。 如果你想运行一段代码来实现域的验证,你可以通过Powershell来实现。 其运行的原理就是通过Get-Credential得到用户输入的账号和密码,然后通过获取的账号和密码来做验证。 此脚本还会应用到.net的Libarary System.DirectoryServices.DirectoryEntry $dCred = Get-Credential$dUsername = $dCred.username$dPassword = $dCred.GetNetworkCredential().password$currentDomain = “LDAP://” + ([ADSI]””).distinguishedName$auth = New-Object System.DirectoryServices.DirectoryEntry($CurrentDomain,$dUserName,$dPassword) if ($auth.name -eq $null) { “Authentication failed…