Powershell小技巧之记录脚本的操作
你可能知道在PS控制台(不是ISE编辑器),你可以打开脚本日志“
PS> Start-Transcript
你将记录所有输入的命令和所有的结果到这个文件。不幸的是它虽然运行在脚本中,但你不能准确看到脚本命令。
这里有一个在你脚本执行时记录全部命令方法。在你尝试这个方法之前,你可能会意识到这将增大日志文件的大小和降低脚本执行速度,因为在这个循环中,中间的迭代也将被记录。
下面命令将打开全部脚本的日志:
PS> Set-PSDebug -Trace 1
支持所有PS版本
相关推荐
-
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时间记录脚本
#initialization $timeInterval = 30 #监测间隔 $record = @{"Coding" = 0; "Outlook Email" = 0; "Gmail" = 0; "Google Reader" = 0; "BBS" = 0; "Other Internet" = 0; "Documents" = 0;} $count = 0 $
-
Powershell小技巧之用变量累积记录错误
当你使用GC查询文件时,当你没有足够的权限你可能会错过不少错误.你可以使用"–ErrorAction SilentlyContinue"忽略这些错误. 有一个不错的方法来获取这些错误. 我们在Windows目录中查询所有PS脚本文件,将它的文件保存在$PSScripts,同时将错误日志记录在变量ErrorList中: 复制代码 代码如下: $PSScripts = Get-ChildItem -Path c:\windows -Filter *.ps1 -Recurse -ErrorA
-
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
-
用来记录登录后使用命令的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小技巧之记录脚本的操作
你可能知道在PS控制台(不是ISE编辑器),你可以打开脚本日志" 复制代码 代码如下: PS> Start-Transcript 你将记录所有输入的命令和所有的结果到这个文件.不幸的是它虽然运行在脚本中,但你不能准确看到脚本命令. 这里有一个在你脚本执行时记录全部命令方法.在你尝试这个方法之前,你可能会意识到这将增大日志文件的大小和降低脚本执行速度,因为在这个循环中,中间的迭代也将被记录. 下面命令将打开全部脚本的日志: 复制代码 代码如下: PS> Set-PSDebug -Tra
-
Powershell小技巧之查找脚本中的函数
要快速获取你PS脚本库中所有文件的函数名,你可以这样做: 复制代码 代码如下: filter Find-Function { $path = $_.FullName $lastwrite = $_.LastWriteTime $text = Get-Content -Path $path if ($text.Length -gt 0) { $token = $null $errors = $null $ast
-
Powershell小技巧之捕获脚本内部的异常
先看一个脚本文件:3.three.test.ps1 复制代码 代码如下: Get-FanBingbing #命令不存在 然后这样捕获: 复制代码 代码如下: trap [exception] { '在trap中捕获到脚本异常' $_.Exception.Message continue } .\3.three.test.ps1 异常捕获成功,输出: 复制代码 代码如下: 在trap中捕获到脚本异常 The term 'Get-FanBingbing' is not recognized a
-
Powershell小技巧之非相同域或信任域也能远程
默认通过Enable-PSRemoting打开PS远程,启动了Kerberos认证.这个方法只适合两台电脑在相同域或信任域内的指定电脑(名字可以带后缀).但它不支持跨域.域外或IP地址. 要让它能正常工作,你需要改变计算机的远程方式.请用管理员权限执行下面命令: 复制代码 代码如下: PS> Set-Item WSMan:\localhost\Client\TrustedHosts -Value * -Force 如果这个路径非法,你可能首先需要在电脑上打开PS远程(使用"Enable-P
-
Powershell小技巧之找出脚本中的错误
找出脚本之中的语法错误从来就不是轻松的事情,但是可以这样去筛选: filter Test-SyntaxError { $text = Get-Content -Path $_.FullName if ($text.Length -gt 0) { $err = $null $null = [System.Management.Automation.PSParser]::Tokenize($text, [ref] $err) if ($err) { $_ } } } 这个脚本中,你可以快速扫描一个目
-
PowerShell小技巧之获取域名whois信息
Whois 简单来说,就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人.域名注册商.域名注册日期和过期日期等).通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间.通常情况下,whois信息均为真实信息,通过whois信息可以找到域名注册人的很多真实信息,像电话,邮箱,NS记录,是对网站进行社工非常好的信息来源,对于安全从业人员来说,快速获取whois信息,能够帮助自己掌握目标网站的很多有用信息. 而whois信息通常是保存在各级域名注册
-
PowerShell小技巧之定时抓取屏幕图像
昨天的博文写了定时记录操作系统行为,其实说白了就是抓取了击键的记录和对应窗口的标题栏,而很多应用程序标题栏又包含当时记录的文件路径和文件名,用这种方式可以大致记录操作了哪些程序,打开了哪些文件,以及敲击了哪些按键.事实上这样记录操作系统的行为显得相对单薄一点,因为记录的内容不太形象,对于新手来说太过于隐晦了,对于人类来说,图像会比文字更加有利于用户理解.当操作系统不方便装屏幕记录软件,但又需要看已经登录用户在干什么的时候,用PowerShell的脚本来实现定时抓取图像的方式记录操作,查看图像就知
-
Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数
这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行. 执行Javascript函数 .Net版的Javascript解释器 可以从Git上获取Jint的代码,也可以从nuget上下载Jint的程序集. Jint是一个面向.Net的Javascript解释器.Jint不会把Javascript编译成.Net字节码,所以它非常适用于脚本小且运行起来速度快的工程,或者运行在不同平台上的脚本. PowerShell调用 拿到Dll根据-Path参数直接使用Ad
随机推荐
- iOS实现封装一个获取通讯录的工具类详解
- Ruby实现的3种快速排序算法
- SQL Server 2008 R2 超详细安装图文教程
- AngularJS入门教程之XHR和依赖注入详解
- 滚动条代码生成器
- python创建关联数组(字典)的方法
- SQL中IS NOT NULL与!=NULL的区别
- CentOS 7.2 Yum编译安装MySQL 5.6
- 整理Javascript基础入门学习笔记
- JavaScript弹窗基础篇
- JS option location 页面跳转实现代码
- Android学习教程之下拉刷新实现代码(11)
- android图片文件的路径地址与Uri的相互转换方法
- 虚函数与纯虚函数(C++与Java虚函数的区别)的深入分析
- UIImage初始化的区别两种方法介绍(面试常见)
- ES6 javascript中Class类继承用法实例详解
- IP地址与MAC地址的区别
- python链接oracle数据库以及数据库的增删改查实例
- python 重命名轴索引的方法
- 深入理解vue中的slot与slot-scope