35 lines
1.1 KiB
PowerShell
35 lines
1.1 KiB
PowerShell
#-------------------------------------------------------------------------
|
|
# Copyright (c) Microsoft Open Technologies, Inc.
|
|
# All Rights Reserved. Licensed under the MIT License.
|
|
#--------------------------------------------------------------------------
|
|
|
|
function Get-Remote-Session($guest_ip, $username, $password) {
|
|
$secstr = convertto-securestring -AsPlainText -Force -String $password
|
|
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr
|
|
New-PSSession -ComputerName $guest_ip -Credential $cred -ErrorAction "stop"
|
|
}
|
|
|
|
function Create-Remote-Session($guest_ip, $username, $password) {
|
|
$count = 0
|
|
$session_error = ""
|
|
$session = ""
|
|
do {
|
|
$count++
|
|
try {
|
|
$session = Get-Remote-Session $guest_ip $username $password
|
|
$session_error = ""
|
|
}
|
|
catch {
|
|
Start-Sleep -s 1
|
|
$session_error = $_
|
|
$session = ""
|
|
}
|
|
}
|
|
while (!$session -and $count -lt 20)
|
|
|
|
return @{
|
|
session = $session
|
|
error = $session_error
|
|
}
|
|
}
|