Powershell_1
powershell_1 使用提供程序
接触powershell也是一个因缘巧合,因为我们有个虚拟桌面的项目需要更改用户的配置文件,里边涉及到一些判定和执行,但是bat的语法实在是难以学习(起码是刚上手接触的是完全看不懂那些%和@的符号是干什么),那用powershell就很爽,起码看一会就知道要干啥,写个简单的逻辑就实现了
因为实现了这个功能,就对于脚本实现一些功能很感兴趣,后来又很幸运的有了AI的帮助,在VS Code上弄个免费的AI就能自动不全,慢慢的发现了写脚本也是要做一个多层的循环和判定,感觉从思维上接触到了编程的门槛,后来就干脆买了一本powershell的实战书籍(网上也有免费的PDF下载),起码在windows运维上是可以使用的,至于多循环的判定可以用mindmanager来整理,这里就开一个坑,慢慢记录自己做的powershell练习的内容
练习题
为什么感觉在做题的时候回到了当年做数学课后习题的感觉?哈哈哈兜兜转转还是要这个思路来进行啊。
好了,不扯淡,继续学习
答案
进程列表
进程列表可以用下面两个命令来执行
1 | #第一种 |
其中
1 | #查看想要用的命令的办法 |
可以看到别名这里是有一个ps的命令的,也就是类似快捷方式或者自定义名称
从帮助可以看到
1 | `#获取EDGE浏览器的进程 |
那么还有什么东西是能加进去呢?
我们可以在微软上进行一个搜索:
Get-Process (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn
这里会有关于这个命令的说明。
可以用命令来打开这个页面:
1 | get-help get-process -online |
显示最新的100个应用程序日志
这个可以用AI来替我们回答,可以看到使用get-winevent命令加上参数“-logname ‘application’”来获取应用程序的日志,再通过 “-maxevents 100”来获取最新的100个日志,最后用“|”来将结果输出到屏幕,也可以用“| out-file”来输出到文件,当然也可以用“| format-table”来以表格的形式输出,也可以用“| format-list”来以列表的形式输出,当然也可以用“| format-custom”来以自定义的形式输出,当然也可以用“| format-wide”来以宽格式输出,当然也可以用“| format-xml”来以xml格式输出,当然也可以用“| format-json”来以json格式输出,当然也可以用“| format-csv”来以csv格式输出,当然也可以用“| format-custom”来以自定义格式输出。
1 | Get-WinEvent -LogName 'Application' -MaxEvents 100 | Select-Object -Property TimeCreated, ProviderName, Id, LevelDisplayName, Message |
显示所有类型为”cmdlet”的命令
1 | get-command -type cmdlet |
显示所有的别名
1 | get-alias |
创建一个别名,使用np可以在powershell中执行notepad.exe
1 | new-alias np notepad.exe |
显示所有以M开头的服务,注意要使用*号
1 | get-service -name M* |
显示所有的windows防火墙规则,使用get-command命令来查询找到
1 | get-command get-netfirewallrule |
可以看到要用命令get-command 后要加动作,例如获取,就是get,要拿到应用程序,就是直接输入应用程序的名字,这里就是get-netfirewallrule,然后就可以看到所有的windows防火墙规则了
使用命令查询所有的网络防火墙入站规则
1 | get-netfirewallrule -direction inbound |