Rundeck - Move Hyper-V VM throught Powershell - rundeck

I'm new to Rundeck.
I succeed to launch SSH commands on my linux servers, CMD and Powershell on my Windows VM or Host.
But !
But, I can't launch this kind of commands to move my MV from one host to another :
Command : Move-VM "SRV12-XXX" srv-hypervisor2 -IncludeStorage -DestinationStoragePath D:\Hyper-V\SRV12-XXX
I get this kind of error :
The remote commection fail with the following error message :
An error has occurred which Windows PowerShell cannot handle. A remote session might have ended.
Do you know how I can make it works ?
When I run the below command to know if I'm looged "as admin" an answer is true :
(New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
Thanks in advance for you help.
Cédric

Related

How do I run cygwin ssh properly on powershell?

My OS is Windows 10 (x64) and I installed both Powershell 7 and cygwin.
Then, I installed "sshpass" using cygwin.
And, here are the cases I am experiencing right now.
From cmd, if I enter "C:\cygwin64\bin\mintty.exe -", cygwin pops up with initial directory "~". Then, if I type "sshpass -p<password> ssh <username>#<host>", it perfectly works smoothly!
From cmd, if I enter "C:\cygwin64\bin\mintty.exe", cygwin pops up with directory "/cygdrive/c/Users/myname". Then, if I type "sshpass -p<password> ssh <username>#<host>", it asks me to type the password. This means that sshpass is not working correctly here.
From powershell, if I type "C:\cygwin64\bin\sshpass.exe -p<password> C:\cygwin64\bin\ssh <username>#<host>", nothing happens.
My questions are the following:
How do I properly run sshpass command in Powershell?
Let's say my ip address is 1.1.1.1 and I am connecting to a server whose ip is 2.2.2.2, and both computers OS systems are Windows. When I connect to the server through ssh, it shows the "cmd" terminal of the server. How can I change it to show "cygwin" terminal when I connect to the server?
I am having very hard time fixing this out.. Thank you very much in advance..
I am not sure i am getting this, anyway, if i understand correctly you have a hard time launching sshpass from powershell.
Try using Start-Process commandlet: (maybe add the full path to ssh in arguments (?))
start-process -filepath C:\cygwin64\bin\sshpass.exe -ArgumentList '-p<password> ssh <username>#<host>' -Wait -NoNewWindow
Anyway instead of reaching linux commands to windows and run it from powershell, why don't you check powershell modules?
ssh using powerShell script by passing the password along with the Commnad
Also, Powershell Remoting towards linux is a thing nowadays, and it runs over ssh (not bash afaik)

How to execute ssh connect by script?

I have local Windows 10 and remote Ubuntu server.
I want to automate connection to server and write executable script witch connects by ssh to server and open new terminal from another server.
What it's supposed to look like
I double click on bat
And then script
inits ssh connect
writes password
gives the user a terminal with a ready ssh connection.
That is, it mimics the following
Problems
How to wait ssh password request? All commands executes immediately.
(additional) can I write it in .sh script, run script, execute all in "start" terminal (from which I run .sh script) and then pass ssh control to invoked terminal?
It's best if someone writes a ready-made script
Automatically enter SSH password with script
Answers:
Direct answer - use expects. But sshpass is better. Also RSA-key can be used.
Can`t tell anything.
Can be done without any 3rd party tools like this:
$env:TMPPW=Get-Content -Path 'secure_file.txt' ; $un='MyUserName'
$j=Start-Job -ScriptBlock{Start-Sleep -Seconds 1
(New-Object -ComObject wscript.shell).SendKeys("$env:TMPPW{ENTER}")}
& ssh.exe -q -4 -l $un 127.0.0.1 'whoami'
$env:TMPPW=([guid]::NewGuid()).Guid ; $env:TMPPW=$null

Run X11 Server (VcXsrv) from Windows Powershell

I would like to set up an X11 Server so that I can run graphical Linux applications using the Windows Subsystem for Linux (WSL 2). I have tried following the instructions on this site.
The command
choco install vcxsrv
completed successfully. But I cannot see how to start XLaunch (VcXsrv).
I already have Cygwin/X X Server installed on my machine and I am still able to launch that successfully. But when I try the following command,
PS C:\WINDOWS\system32> vcxsrv
I get the following error message,
vcxsrv : The term 'vcxsrv' is not recognized as the name of a cmdlet, function, script file, or operable program.
I have spent quite a bit of time trying to figure out how to start XLaunch (VcXsrv) without any success.
Try to look on default folder installation:
"C:\Program Files\VcXsrv\xlaunch.exe"
Try this command to run VcXsrv
xfsettingsd --sm-client-disable; xfce4-panel --sm-client-disable --disable-wm-check &
or
C:\Program Files\VcXsrv\xlaunch.exe
Refer the following link to understand VcXsrv installation and it's usage,
Running WSL GUI Apps on Windows 10

Noninteractive Remote Commands with Powershell

I am developing a script which uses ssh to connect to a windows host, run a powershell command, and parse the output. While I can connect to the host and run the command, powershell will not exit and return control back to the local script until I press the enter key.
At the moment, the specific command being run is ssh HOSTNAME 'echo $(hostname)' and the ssh server is configured to pass remote execution requests to powershell -noninteractive -command CMD, where HOSTNAME is the name of the windows host and CMD is the remote command to be run (in this case echo $(hostname)).
The end goal is to have the script which is calling remote powershell commands to run completely noninteractively, but this is currently impossible as the powershell command will not run noninteractively.
How do I get powershell to run remote commands noninteractively?
I've resolved the issue. While I haven't determined what was causing the issue, I can at least overcome the issue at hand by redirecting stdin to /dev/null on the side that initiates the ssh connection.
$ ssh HOSTNAME "CMD" </dev/null
This solution doesn't involve powershell at all, but rather treats the symptoms from the other side of the connection.

Cannot run TopShelf install remotely using psexec

I am trying to install a windows service on a remote machine. The service is implemented using TopShelf. I am running the following psexec command:
psexec \\remoteServerName "C:\PathToExe\TopShelfServiceName.exe" "install"
The error I am receiving is:
ERROR - The service terminated abnormally
Topshelf.HostConfigurationException: The service was not properly configured:
[Failure] Command Line An unknown command-line option was found: ARGUMENT: "install"
It appears that I am not running the TopShelf installer, rather executing my exe and passing "install" which is not a valid argument.
Any help is appreciated!
I don't think you need quotes around "install":
psexec \\remoteServerName "C:\PathToExe\TopShelfServiceName.exe" install