Powershell小技巧之用变量累积记录错误

当你使用GC查询文件时,当你没有足够的权限你可能会错过不少错误。你可以使用“–ErrorAction SilentlyContinue”忽略这些错误。

有一个不错的方法来获取这些错误。

我们在Windows目录中查询所有PS脚本文件,将它的文件保存在$PSScripts,同时将错误日志记录在变量ErrorList中:

代码如下:

$PSScripts = Get-ChildItem -Path c:\windows -Filter *.ps1 -Recurse -ErrorAction SilentlyContinue -ErrorVariable ErrorList

$ErrorList | ForEach-Object {
  Write-Warning ('Access denied: ' + $_.CategoryInfo.TargetName)
}

支持所有版本

(0)

相关推荐

  • PowerShell小技巧之定时记录操作系统行为

    作为系统管理员,有些时候是需要记录系统中的其他用户的一些操作行为的,例如:当系统管理员怀疑系统存在漏洞,且已经有被植入后门或者创建隐藏账户时,就需要对曾经登陆的用户进行监控,保存其打开或者操作过的文件.或者在另外一个场景,当黑客拿下一个普通权限的shell之后,想看看最近有哪些用户登陆过,操作过什么,以便根据用户习惯采取进一步行动获取更高权限,这个时候记录用户行为就显得很重要了. 可能有读者觉得此时安装个监控软件不就行了么,拜托,你入侵别人的系统,你装个监控软件,你把管理员试做无物么?这个时候P

  • shell如何记录用户的IP与命令详解

    记录输入的命令 history命令可以查看用户输入过的命令,一个典型history命令输出如下: 980 2017-05-29 20:17:37 cd - 981 2017-05-29 20:17:41 cat index.html 982 2017-05-29 20:20:11 vim index.html 983 2017-05-29 20:39:18 cd - 984 2017-05-29 20:39:25 cd /var/log/nginx/ 985 2017-05-29 20:39:2

  • PowerShell时间记录脚本

    #initialization $timeInterval = 30 #监测间隔 $record = @{"Coding" = 0; "Outlook Email" = 0; "Gmail" = 0; "Google Reader" = 0; "BBS" = 0; "Other Internet" = 0; "Documents" = 0;} $count = 0 $

  • linux中 shell 历史命令记录功能

    在 Linux 下面可以使用 history 命令查看用户的所有历史操作,同时 shell 命令操作记录默认保存在用户目录的 .bash_history 文件中.通过这个文件可以查询 shell 命令的执行历史,有助于运维人员进行系统审计和问题排查,同时在服务器遭受黑客攻击后,也可以查询黑客登录服务器的历史命令操作.但是黑客在入侵后,为了抹除痕迹,会删除 .bash_history 文件,这个就需要合理备份这个文件了. 默认的 history 命令只能查看用户的历史操作记录,但是不能区分每个用户

  • shell将脚本输出结果记录到日志文件的实现

    使用tee命令: sh portal/main.sh |tee log.txt 获取脚本父类路径 cmddir="`dirname $0`" 以上这篇shell将脚本输出结果记录到日志文件的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • Powershell小技巧之记录脚本的操作

    你可能知道在PS控制台(不是ISE编辑器),你可以打开脚本日志" 复制代码 代码如下: PS> Start-Transcript 你将记录所有输入的命令和所有的结果到这个文件.不幸的是它虽然运行在脚本中,但你不能准确看到脚本命令. 这里有一个在你脚本执行时记录全部命令方法.在你尝试这个方法之前,你可能会意识到这将增大日志文件的大小和降低脚本执行速度,因为在这个循环中,中间的迭代也将被记录. 下面命令将打开全部脚本的日志: 复制代码 代码如下: PS> Set-PSDebug -Tra

  • 用来记录登录后使用命令的shell脚本

    复制代码 代码如下: #/bin/bash# history#把以下代码直接粘贴到/etc/profile后USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`HISTDIR=/var/log/.histif [ -z $USER_IP  ]then  USER_IP=`hostname`fiif [ ! -d $HISTDIR ]then   mkdir -p $HISTDIR   chmod 777 $

  • Powershell小技巧之用变量累积记录错误

    当你使用GC查询文件时,当你没有足够的权限你可能会错过不少错误.你可以使用"–ErrorAction SilentlyContinue"忽略这些错误. 有一个不错的方法来获取这些错误. 我们在Windows目录中查询所有PS脚本文件,将它的文件保存在$PSScripts,同时将错误日志记录在变量ErrorList中: 复制代码 代码如下: $PSScripts = Get-ChildItem -Path c:\windows -Filter *.ps1 -Recurse -ErrorA

  • Powershell小技巧之获取变量列表

    我们的需求是当想要列出脚本中所有变量. 这里定义了一个函数 Get-Variable: 复制代码 代码如下: function Get-Variable {     $token = $null   $errors = $null     $ast = [System.Management.Automation.Language.Parser]::ParseInput($psise.CurrentFile.Editor.Text, [ref] $token, [ref] $errors)    

  • Powershell小技巧之使用-F方法带入数据

    封闭在双引号中的字符串能够直接使用变量,这是常用的手法,如代码: $name = $host.Name "Your host is called $name." 可是这个技巧也有限制.如果你想要显示对象的属性而不是这个变量的本身,例如这样将会失败: PS> "Your host is called $host.Name." Your host is called System.Management.Automation.Internal.Host.Intern

  • PowerShell小技巧之获取域名whois信息

    Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人.域名注册商.域名注册日期和过期日期等).通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间.通常情况下,whois信息均为真实信息,通过whois信息可以找到域名注册人的很多真实信息,像电话,邮箱,NS记录,是对网站进行社工非常好的信息来源,对于安全从业人员来说,快速获取whois信息,能够帮助自己掌握目标网站的很多有用信息. 而whois信息通常是保存在各级域名注册

  • Powershell小技巧之获取MAC地址

    在Powershell中获取MAC地址不是很难.这里就有一种方法: 复制代码 代码如下: PS> getmac /FO CSV | ConvertFrom-Csv Physical Address                        Transport Name                         ----------------                        --------------                         5C-51-4F-6

  • Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数

    这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行. 执行Javascript函数 .Net版的Javascript解释器 可以从Git上获取Jint的代码,也可以从nuget上下载Jint的程序集. Jint是一个面向.Net的Javascript解释器.Jint不会把Javascript编译成.Net字节码,所以它非常适用于脚本小且运行起来速度快的工程,或者运行在不同平台上的脚本. PowerShell调用 拿到Dll根据-Path参数直接使用Ad

  • PowerShell小技巧之发送TCP请求

    很多时候我们需要通过Socket发送特定的TCP请求给服务器的特定端口来实现探测服务器的指定端口所开启的服务.很多语言都有相应的方法实现上述需求,当然,PowerShell也不例外,比如我们要发送一个简单的http请求到指定的web服务器: GET / HTTP/1.1 Host:cn.bing.com 这里我们想请求微软必应的中文首页,如果需要通过PowerShell向cn.bing.com服务器发送get请求,就需要创建一个System.Net.Sockets.TcpClient对象,向指定

  • Powershell小技巧之获取当前的时间并转换为时辰

    午时三刻已到,行刑,刀下留人,现在到底是不是午时,能否让PowerShell告诉我呢? 好的, 没问题.从晚上23点到凌晨2点之间属于子时,每两个小时一个时辰,依次为"子丑寅卯辰巳午未申酉戌亥". 函数获取当前时辰 用PowerShell脚本实现: function Get-ChinaTimeAlias { param( [ValidateRange(0,23)] [int]$Hour = (get-date).Hour ) $timeAliasArray='子丑寅卯辰巳午未申酉戌亥'

随机推荐