凭证对象
本文最后更新于288 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com

凭证对象(PSCredential)是一个 PowerShell 类型,用于安全地存储和传递用户名和密码等凭证信息。它在需要身份验证的场景中广泛使用,特别是在脚本自动化和远程操作中。

PSCredential 对象包含两个主要部分:

  1. 用户名:一个字符串,表示用户的名称或账户。
  2. 密码:一个 SecureString 对象,用于安全存储用户的密码。

使用 PSCredential 对象的场景

  1. 远程连接:在使用 PowerShell 远程管理功能(如 Enter-PSSession 或 Invoke-Command)时提供凭证。
  2. 访问安全资源:如访问共享文件、数据库或其他需要认证的服务。
  3. 自动化脚本:在脚本中自动执行需要身份验证的任务,而不需要用户每次输入凭证。

SecureString:PSCredential 对象的密码部分使用 SecureString 类型,避免明文密码 确保密码在内存中是加密的,减少了泄露的风险。

凭证对象与访问令牌的关系?

  • 凭证对象:用于最初的身份验证步骤,例如在脚本中自动登录到某个服务或系统。
  • 访问令牌:通常在身份验证成功后,由身份提供者生成并颁发,随后用于授权访问特定资源。
    通过 PowerShell 的 New-Object System.Management.Automation.PSCredential 创建,使用用户名和密码。

凭证对象:用于需要用户认证的场景,例如连接远程计算机、访问共享资源、执行需要权限的操作。

访问令牌:用于授权用户访问API、Web服务或其他受保护资源。令牌在每次请求时传递给资源服务器以验证用户的访问权限

创建凭证对象

凭证对象,通过 PowerShell 的 New-Object System.Management.Automation.PSCredential 创建,使用用户名和密码。

$pass = ConvertTo-SecureString “W3_4R3_th3_f0rce.” -AsPlainText -Force

$cred = New-Object System.Management.Automation.PSCredential(“ACUTE\imonks”, $pass)

Enter-PSSession -ComputerName ATSSERVER -Credential $cred #连接

使用 PSCredential 对象进行远程连接

1. 使用 Enter-PSSession

Enter-PSSession 命令用于建立与远程计算机的交互式会话,类似于 SSH 的效果。

powershell复制代码Enter-PSSession -ComputerName RemoteServer01 -Credential $credential

执行该命令后,PowerShell 会话将切换到远程计算机,可以在其中交互式地执行命令。要退出远程会话,可以使用 Exit-PSSession

2.使用 Invoke-Command

Invoke-Command 命令用于在一个或多个远程计算机上执行命令或脚本块。

Invoke-Command -ComputerName RemoteServer01 -Credential $credential -ScriptBlock {
# 在远程计算机上执行的命令 Get-Process}

3. 访问远程文件共享

通过凭证对象访问远程文件共享或其他资源。

$remotePath = "\\RemoteServer01\SharedFolder"
New-PSDrive -Name Z -PSProvider FileSystem -Root $remotePath -Credential $credential

# 访问映射的驱动器
Get-ChildItem Z:

一整个流程



# 将明文密码转换为 SecureString
$password = ConvertTo-SecureString "W3_4R3_th3_f0rce." -AsPlainText -Force

# 创建 PSCredential 对象
$credential = New-Object System.Management.Automation.PSCredential("ACUTE\imonks", $password)

# 使用 Enter-PSSession 进行远程连接
Enter-PSSession -ComputerName RemoteServer01 -Credential $credential

# 在远程会话中执行命令
Get-Process

# 退出远程会话
Exit-PSSession

# 使用 Invoke-Command 在远程计算机上执行命令
Invoke-Command -ComputerName RemoteServer01 -Credential $credential -ScriptBlock {
    Get-Service
}
文末附加内容
暂无评论

发送评论 编辑评论

|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇