You can tell if it's enabled by running launchctl list | grep '^\d.*RemoteDesktop.*'
. That will output a line if there's an active process for the RemoteDesktop
agent, and will output nothing if not. There's an active process for the agent whenever Remote Management is enabled, even if there's no active connection (unlike something like Screen Sharing, where the process is only active when there's a connection made).
I found the following code in a file I didn't open for a long time. It enables Remote Login on a remote device. Save the script somewhere (from now on referred to as /path/to/script/
). Copy the script to the other device.
tell application "System Preferences" to set current pane to pane "com.apple.preferences.sharing"
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of row 6 of table 1 of scroll area 1 of group 1 of window "Sharing"
end tell
This enables remote login. Now, to disable remote management and enable screen sharing, use the same script, but remove the 3rd line and add these 2 lines:
tell application "System Preferences" to set current pane to pane "com.apple.preferences.sharing"
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of row 7 of table 1 of scroll area 1 of group 1 of window "Sharing"
click checkbox 1 of row 2 of table 1 of scroll area 1 of group 1 of window "Sharing"
end tell
To copy this script on the remote device, use scp
(secure copy). To use scp
type
scp /path/to/script username@IP.of.other.device:/some/path
OR
scp username@hostnameOfDevice:/some/path/
The second option (using the device hostname) requires that the devices are on a computer-to-computer network, so it will not work on a normal wifi network. You will see a prompt requesting the password of username
. When you type the password, you will not see any text appear (obviously to prevent people from seeing the password).
Once it is copied, remotely log into the device:
ssh username@IP.of.other.device
OR
ssh username@hostnameOfDevice
Again, the use of the hostname requires computer-to-computer network. Once logged in, run the script using osascript /some/path/theScript.scpt
(remember that using scp
we copied the script to /some/path
, this will be different on your device). This will disable remote management and enable screen sharing.
Good luck!
Best Answer
Modifying remote login and remote management settings is done with two different commands - both executed as root:
To enable remote login for members of the admin group enter:
To restrict access use
dseditgroup
. First check if it exists and add it if necessary:and add a user group:
To enable remote management for admin users enter:
To check other options enter: