# Send Ctrl-Alt-Del to a VM
Or, in other words, how to send arbitrary key strokes to a Virtual Machine running on OpenShift Virtualization.
Once upon a time I found myself needing to [send Shift-F10 to a Windows 11 VM](https://learn.microsoft.com/en-us/answers/questions/2350856/set-up-windows-11-without-internet-oobebypassnro?forum=insider-all&referrer=answers) running on OpenShift Virtualization (because I was using a `virtio` NIC which is faster than `e1000e`, but needs a driver)
I used the `oc exec` / `kubectl exec` command below to send the keystroke.
Here are the commands I used to authenticate `oc` / `kubectl`, switch to my `project` / `namespace`, identify the VM's `Pod` and finally send the key strokes.
:::info
The "1" in the command below identifes VM/domain #1
virt-launcher pods only have 1 VM/domain in them
`virsh send-key 1 KEY_LEFTCTRL KEY_LEFTALT KEY_DELETE`
You can safely ignore the warning about polkit authorization not being available
:::
```bash
oc login --username john https://api.my-openshift.example.com:6443
oc project john
Now using project "john" on server "api.my-openshift.example.com:6443".
oc get virtualmachines,pods
NAME STATUS
virtualmachine.kubevirt.io/rhel9-with-gpu Stopped
virtualmachine.kubevirt.io/windows11-test Running
NAME READY STATUS RESTARTS AGE
pod/virt-launcher-windows11-test-czgmq 1/1 Running 0 9m17s
oc exec -it virt-launcher-windows11-test-czgmq -- virsh send-key 1 KEY_LEFTCTRL KEY_LEFTALT KEY_DELETE
Authorization not available. Check if polkit service is running or see debug message for more information.
```
You can use `man virsh` and `man virkeyname-linux` to see all of the names of the keys.
For example, SHIFT+F10 would be: `KEY_LEFTSHIFT KEY_F10`
Please note, from `man virsh`
> If multiple keycodes are specified, they are all sent simultaneously to the guest, and they may be received in random order.
> If you need distinct keypresses, you must use multiple send-key invocations.