pwe*_*ser 10 user-accounts powershell administrator
当我在 PowerShell 中以管理员身份登录 Windows 服务器时,如何在不输入密码的情况下切换到其他用户?sudo su -我正在寻找与Linux完全相同的功能su。
您需要为此编写一个自定义函数。您可以使用以下函数(如下),并将其放入您的PowerShell Profile中。
要使用此功能,您必须使用提升的 PowerShell 控制台。
如您所见,您有一个$user参数,默认设置为adminsystem(此处使用您的默认用户名)。您ValidateSet()可以指定参数允许使用哪些值$user。
然后它会switch()根据您的$user参数并读取正确的用户名和密码。
然后它将创建一个凭证对象和一个作为您所需用户的会话。
我不建议在脚本中使用密码作为纯文本!您应该按照此操作将您的密码安全地存储在脚本中
function switch-psuser {
Param(
[Parameter(Position=0)]
[ValidateSet("adminsystem","administrator")]
$User = "adminsystem"
)
switch($User)
{
'adminsystem' { $username = "domain\adminsystem" ; $pw = "yyy"}
'administrator' { $username = "domain\administrator" ; $pw = "zzz" }
}
$password = $pw | ConvertTo-SecureString -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential -ArgumentList $username,$password
New-PSSession -Credential $cred | Enter-PSSession
}
Run Code Online (Sandbox Code Playgroud)
示例输出:
PS C:\WINDOWS\system32> switch-psuser
[localhost]: PS C:\Users\adminsystem\Documents> whoami
domain\adminsystem
[localhost]: PS C:\Users\adminsystem\Documents> exit
PS C:\WINDOWS\system32> switch-psuser administrator
[localhost]: PS C:\Users\Administrator.DOMAIN\Documents> whoami
DOMAIN\administrator
[localhost]: PS C:\Users\Administrator.DOMAIN\Documents> exit
PS C:\WINDOWS\system32>
Run Code Online (Sandbox Code Playgroud)
在此示例中,您可以看到,当不提供任何值时$user,它将采用您的默认用户。ValidateSet()当提供in 中的用户名时,switch()它将采用该用户名
希望这不是太复杂。否则就问:)
| 归档时间: |
|
| 查看次数: |
84164 次 |
| 最近记录: |