PowerShell学习笔记

PowerShell学习笔记

PowerShell介绍

  1. 什么是PowerShell
    Windows PowerShell 是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用 .NET Framework的强大功能。
    它引入了许多非常有用的新概念,从而进一步扩展了您在 Windows 命令提示符和 Windows Script Host 环境中获得的知识和创建的脚本。
    Windows PowerShell v3将伴随着Microsoft Hyper-V 3.0和Windows Server 2012发布。PowerShell v3是一个Windows任务自动化的框架,它由一个命令行shell和内置在这个.NET框架上的编程语言组成。
    PowerShell v3采用新的cmdlet让管理员能够更深入到系统进程中,这些进程可以制作成可执行的文件或脚本(script)。一条cmdlet是一条轻量命令,Windows PowerShell运行时间在自动化脚本的环境里调用它。
    Cmdlet包括显示当前目录的Get-Location,访问文件内容的Get-Content和结束运行进程的Stop-Process。
    PowerShell v3在Windows Server 8中装载了Windows Management Framework 3.0。PowerShell运行环境也能嵌入到其它应用。
  2. PowerShell适用人群
    Windows PowerShell 入门主要面向之前没有 Windows PowerShell 背景知识的 IT 专业人员、程序员和高级用户。虽然具备脚本和 WMI 方面的背景知识会有所帮助,但是理解本文档并不假定或要求您具备此方面知识。
    通过解决长期存在的问题并添加一些新的功能,Windows PowerShell 旨在改进命令行和脚本环境。PowerShell以.NET Framework为平台,接收和返回.NET对象,此举为管理和配置微软系统带来了新的方法和工具。

学习PowerShell笔记(一)

1.学习目的

当时是有一个思路,因为有若干服务器需要管理【高级防火墙-远程桌面】策略的【允许/阻止】这个过程,因为服务器密码长度很长,运维管理需要登录平台进行服务器HCI的登录管理,每次都需要频繁的输入账号用户名密码,服务器又满足了密码复杂度长度各种各样的要求,烦不胜烦,索性想研究如何远程控制远端服务器的Firewall策略,这样就可以省去登录HCI等等这些额外的工作量了。

2.设计思路

起初呢,是想通过SNMP来做这个,结果发现不太可行,也是我技术不够。
后来呢,是想通过MMC来做这个,但是发现FIREWALL这里,远程管理的账号和密码审核策略不知道怎么搞(还在继续研究),其他的相关功能还是可以搞的。
最后了解到POWERSHELL这个 比 CMD 命令行更加高级的 管理模块 ,觉得可行,遂实验了一下,果然可行。

3.实现过程

1.首版思路

netsh advfirewall firewall set rule name = 'rdp' new action = allow		//允许连接
netsh advfirewall firewall set rule name = 'rdp' new action = block		//阻止连接	

起初是发现可以直接用NETSH 直接管理防火墙,但是没研究明白 NETSH 是不是可以直接就 远程 远端服务器 (依旧在挣扎)
2.次版思路

$User = "administrator"
$PassWord = ConvertTo-SecureString -String "qwe123!@#" -AsPlainText -Force
$Credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $User, $PassWord
Enter-PSSession 192.168.1.1 -credential $Credential
netsh advfirewall firewall set rule name = 'rdp' new action = allow		//允许连接
netsh advfirewall firewall set rule name = 'rdp' new action = block		//阻止连接	 

中间省略了一些过程,第一次呢,是在Enter-PSSession中登录呢,是需要输入账号和密码呢,后来直接就学习到了上述命令,直接$赋值登录,修改防火墙策略【允许/阻止】
3.继续思路

$Credential =New-Object System.Management.Automation.PSCredential 'administrator',(convertto-securestring $("qwe123!@#") -asplaintext -force) 
Enter-PSSession 192.168.200.128 -credential $Credential 
netsh advfirewall firewall set rule name = 'rdp' new action = allow

继续缩减了命令行,缺少解决问越舒服嘛,强迫症。
4.PowerShell Studio开发

		$Credential = New-Object System.Management.Automation.PSCredential $textbox2.Text, (convertto-securestring $($textbox3.Text) -asplaintext -force)
		Invoke-Command -ComputerName $textbox1.Text -ScriptBlock { netsh advfirewall firewall set rule name = '远程桌面' new action = allow } -credential $Credential
		Invoke-Command -ComputerName $textbox1.Text -ScriptBlock { netsh advfirewall firewall set rule name = 'RDP' new action = allow } -credential $Credential

其实这里是有瑕疵的,我的set rule name = “” 是固定的,一直存在一些问题,正在继续修改。

4.总结

大体完成了我想要的思路,但是代码和脚本还有瑕疵,奈何技术实力的确有限,又是刚刚开始了解【PowerShell】的菜鸟,继续努力吧。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值