Когда я вошел на сервер Windows как администратор в PowerShell, как я могу переключиться на другого пользователя без ввода пароля? Я ищу точно такую же функцию, как "sudo su -" или "su" в Linux.
Спасибо
Когда я вошел на сервер Windows как администратор в PowerShell, как я могу переключиться на другого пользователя без ввода пароля? Я ищу точно такую же функцию, как "sudo su -" или "su" в Linux.
Спасибо
Вам нужно написать пользовательскую функцию для этого. Вы можете использовать следующую функцию (ниже) и поместить ее в свой профиль PowerShell.
чтобы использовать это, вы должны использовать расширенную консоль PowerShell.
Как видите, у вас есть параметр $user
, для которого по умолчанию установлено значение adminsystem
(здесь используется ваше имя пользователя по умолчанию). В ValidateSet()
вы можете указать, какие значения допустимы для параметра $user
.
Затем он switch()
зависимости от вашего параметра $user
и прочитает правильное имя пользователя и пароль.
Затем он создаст объект учетных данных и pssession как желаемый пользователь.
Я не рекомендую использовать пароли в виде простого текста в скрипте! Вы должны следовать этому, чтобы безопасно хранить ваши пароли в скрипте
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
}
Пример вывода:
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>
В этом примере вы можете видеть, что при указании значения $user
него не будет пользователя по умолчанию. при предоставлении имени пользователя, которое находится в ValidateSet()
и в switch()
это займет
надеюсь, что это не было слишком сложно. в противном случае просто спросите :)