PowerShell中实现混淆密码示例

 更新时间:2015年03月25日 09:45:51   投稿:junjie  
这篇文章主要介绍了PowerShell中实现混淆密码示例,本文给出了混淆密码的例子和使用混淆后的密码例子,需要的朋友可以参考下

适用于PowerShell 3.0或者更高版本,
尽管我们并不推荐将密码硬编码在脚本文件中,但是仍旧有一些场景非如此不可。与将密码以一种纯文本的方式硬编码相比,我们还可以稍微花点心思,把密码混淆一下。虽然混淆密码是一种非常低级的保护方式,但是对于不懂PowerShell的人来讲,还是比较神秘的。

接下来的脚本会向用户询问用户名和密码,然后删除通过混淆脚本进行处理,产生用户凭据对象。

当你运行了下面的脚本以后,用户凭据已经被保存在$cred。接下来你几乎可以在任何带有–Credential参数的命令中使用它了。

复制代码 代码如下:

$cred = Get-Credential -Message 'Enter Domain\Username and Password'
$pwd = $cred.Password
$user = $cred.UserName
$key = 1..32 | ForEach-Object { Get-Random -Maximum 256 }
$pwdencrypted = $pwd | ConvertFrom-SecureString -Key $key
 
$private:ofs = ' '
 
$generatedScript = @()
$generatedScript += '$password = ''{0}''' -f $pwdencrypted
$generatedScript += '$key = ''{0}''' -f "$key "
 
$generatedScript += '$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split('' ''))'
$generatedScript += '$cred = New-Object system.Management.Automation.PSCredential(''{0}'', $passwordSecure)' -f $user
$generatedScript += '$cred'
 
$file = $psise.CurrentPowerShellTab.Files.Add()
$file.Editor.Text = $generatedScript | Out-String
$file.Editor.SetCaretPosition(1,1)

产生的密码可能像这样:

复制代码 代码如下:

$password = '76492d1116743f0423413b16050a5345MgB8AHMAUQA3AFAAVwB0AGkAUQBUAC8AdwBqADYAUABVAFYAUwB4AEYAYgB4AFEAPQA9AHwAZgA0ADgAOQA4AGYANwA0AGEAMAA0ADUANwA5ADkAMwA5ADkAMwA1ADUANQA0AGYANwA5AGQANwBkAGYAOQBmAGEAYQA3ADMAYgBkADIAOQA3AGMAYQBmADUAMgA3ADEANwA3AGEAYgBmADAAYgA1AGYAYwAyADYAYgAzADkAOAA='
$key = '187 98 34 82 148 52 13 86 246 2 130 197 217 97 147 98 75 197 149 246 74 35 27 7 211 15 131 93 182 231 171 3'
$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split(' '))
$cred = New-Object system.Management.Automation.PSCredential('mickey\mouse', $passwordSecure)
$cred

相关文章

  • 脚本实现SSL证书到期监控示例

    脚本实现SSL证书到期监控示例

    这篇文章主要介绍了脚本实现SSL证书到期监控示例,感兴趣的朋友可以试着实现,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • Powershell小技巧之从文件获取系统日志

    Powershell小技巧之从文件获取系统日志

    事件日志对于系统管理员的重要性自不待言,而基于图形界面的事件查看器毫无疑问是我们进行日志管理的首选工具,但绝不是最快捷的工具。其实,PowerShell提供了一种更简单的方式,利用它我们不仅可访问当前系统的事件日志,而且还可对数据进行排序、格式化等等。
    2014-10-10
  • Windows Powershell调用静态方法

    Windows Powershell调用静态方法

    Powershell将信息存储在对象中,每个对象都会有一个具体的类型,简单的文本会以System.String类型存储,日期会以System.DateTime类型存储。任何.NET对象都可以通过GetType()方法返回它的类型,该类型中有一个FullName属性,可以查看类型的完整名称。
    2014-09-09
  • PowerShell函数中使用必选参数实例

    PowerShell函数中使用必选参数实例

    这篇文章主要介绍了PowerShell函数中使用必选参数实例,即把一个参数设置为必选参数的方法,需要的朋友可以参考下
    2014-07-07
  • 使用 powershell 创建虚拟机

    使用 powershell 创建虚拟机

    Azure PowerShell 模块用于从 PowerShell 命令行或脚本创建和管理 Azure 资源。 本指南详细介绍了如何使用 Azure PowerShell 模块创建虚拟机。
    2017-10-10
  • PowerShell获取Windows用户列表、用户信息的方法

    PowerShell获取Windows用户列表、用户信息的方法

    这篇文章主要介绍了PowerShell获取Windows用户列表、用户信息的方法,一个简单的入门例子,需要的朋友可以参考下
    2014-08-08
  • Powershell小技巧之使用Jint引擎在PowerShell中执行Javascript函数

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

    这里演示如何利用PowerShell将一段Javascript函数字符串交给Jint引擎去执行。方法很简单,希望对大家有所帮助
    2014-09-09
  • PowerShell设置文件只读、隐藏属性的方法

    PowerShell设置文件只读、隐藏属性的方法

    这篇文章主要介绍了PowerShell设置文件只读、隐藏属性的方法,包括系统、存档和无内容索引属性都有介绍,需要的朋友可以参考下
    2014-08-08
  • Powershell 查询 Windows 日志的方法

    Powershell 查询 Windows 日志的方法

    这篇文章主要介绍了Powershell 查询 Windows 日志的方法,需要的朋友可以参考下
    2015-10-10
  • Windows Powershell强类型数组

    Windows Powershell强类型数组

    强类型数组可以理解为强制数据类型的数组,也就是一个数组里只包含一种数据类型,强制转换数组语法的优势就是如果使用分号代替逗号分隔值,PowerShell将每个值看作命令文本,PowerShell会执行它并且存储结果。
    2014-09-09

最新评论