PowerShell ASP: Using Invoke-Command with New-PSSession
In order to use the Invoke-Command with the New-PSSession cmdlet you will need to have the proper credentials set.
The credential parameter in Powershell taks a PSCredential object. Normally you would prompt a user to enter the information in a dialog and then save the response as a PSCredential object using the Get-Credential cmdlet. Of course, in PowerShell ASP that’s not an option. We can get around this by just setting the credentials manually in a PowerShell script:
$securePassword = ConvertTo-SecureString "Password" -AsPlainText -force $credential = New-Object System.Management.Automation.PsCredential("domain\username",$securePassword)
After specifiying your credentials, you can then use them in your call to create a New-PSSession Using the PowerShell script below.
$session = New-PSSession -computername hostname -credential $credential
Below is an example of a complete PowerShell ASP page:
<% $securePassword = ConvertTo-SecureString "Password" -AsPlainText -force $credential = New-Object System.Management.Automation.PsCredential("domain\username",$securePassword) $session = New-PSSession -computername hostname -credential $cred $command = {ls} $res = Invoke-Command -session $session -scriptblock $command foreach($item in $res){ Write-Host("Mode: " + $item.Mode) Write-Host("Last Write Time: " + $item.LastWriteTime) Write-Host("Length: " + $item.Length) Write-Host("Name: " + $item.Name) Write-Host("<hr/>") } %>
We appreciate your feedback. If you have any questions, comments, or suggestions about this article please contact our support team at support@nsoftware.com.