I have two remote machines: 1 we call it the driver, 2 we call it the client. They are in the same domain let's call them "TECH.com".

On the driver machine, I have a PowerShell script that controls the client machine: 1, restore checkpoint on the client. 2, stop the client. 3, start the client. etc. The thing I am trying to do is to make the client machine execute another PowerShell script (which can reside on either/both the client or/and the driver. I can copy the file from the driver to the client if necessary) on the client machine.

So I have done some research, and found two methods: 1, WS Management. 2, WMI I have enabled-psremoting on both machines. I have test WsMan on both machines and they see to work fine I have been able to transfer files between these two machines However, when I tried to run Invoke-command, it gave me errors:

Connecting to remote server XXXXXXtech.com failed with the following error message : WinRM cannot process the request. The following 
error with errorcode 0x80090311 occurred while using Kerberos authentication: There are currently no logon servers available to service the logon request.  
 Possible causes are:
  -The user name or password specified are invalid.
  -Kerberos is used when no authentication method and no user name are specified.
  -Kerberos accepts domain user names, but not local user names.
  -The Service Principal Name (SPN) for the remote computer name and port does not exist.
  -The client and remote computers are in different domains and there is no trust between the two domains.
 After checking for the above issues, try the following:
  -Check the Event Viewer for events related to authentication.
  -Change the authentication method; add the destination computer to the WinRM TrustedHosts configuration setting or use HTTPS transport.
 Note that computers in the TrustedHosts list might not be authenticated.
   -For more information about WinRM configuration, run the following command: winrm help config. For more information, see the about_Remote_Troubleshooting Help topic.
    + CategoryInfo          : OpenError: (XXXXXX.XXXXtech.com:String) [], PSRemotingTransportException
    + FullyQualifiedErrorId : AuthenticationFailed,PSSessionStateBroken

A couple of options:

On the local machine, allow connection to the remote machine without authentication:

Set-Item WSMan:\localhost\Client\TrustedHosts -Value $remoteMachine -Force

If you're on the same domain and you have admin privileges on the remote machine, go ahead and try entering a remote session with your username.

Otherwise, you may need/want to set a credential object and use it to start a session for Invoke-Command.

$script = { Write-Host "Hello, World!" }
$computerName = "Server Name Or Ip Address"
$username = "domain\user"
$pw = "worstpasswordever"

# Create Credentials
$securepw = ConvertTo-SecureString $pw -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential -argument $username, $securepw

# Create and use session
$session = New-PSSession -credential $cred -ComputerName $computerName
Invoke-Command -Session $session -ScriptBlock $script
Remove-PSSession $session
  • I have used set-item command already. I will try creating the credential object then. I was using $clientMachineName\Admin for the credential – FrozenLand Sep 17 '13 at 15:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.