How do you effect a gameobject in anyway conneted to the multiplayer?

What I want is for me to be able to get a GameObject and do simple stuff with it and distribute it over the server so all clients can see it like:

public GameObject object;
object.setActive (true);
object.GetComponent().material.color = Color.red;
object.gameObject.name = “random_Name”;

This is what I have gotten done so far, but it still doesn’t work

using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class FinalPageAndTeamGathering : NetworkBehaviour {

    [SyncVar] public GameObject cube;

    [ClientRpc]
    public void RpcmakeVisable() {
        cube.GetComponent<CanvasRenderer> ().SetColor (Color.red);

    }

}

However it still doesn’t show up in other clients and I also don’t understand why so other than just sending me to the unity page can someone please explain this and how to make this send to other clients (I don’t want to do the instantiate and spawn method.)

For anyone that sees this I believe the fix is to make sure that the object you are trying to script on is the server (hosting player), the way to check is if (isServer),
and the way to change the server to another object if you need to is doing this command https://docs.unity3d.com/ScriptReference/Networking.NetworkServer.ReplacePlayerForConnection.html