Easiest Way to Get Mute Status

There is a new StreamDeck plugin that is for OSX only right now. I don’t have a mac, but it looks like it uses AppleScript to get the mute status.

Is there a way to do this using PowerShell or something similar on Windows? This could be a good way to get the mute (as well as video and screen sharing status) without joining as a separate user to the room).

json getZoomStatus() {
   // get Zoom Mute status
  // ESDDebug("APPLESCRIPT_GET_STATUS: %s", APPLESCRIPT_GET_STATUS);
  char* zoomStatus = execAndReturn(
"osascript -e 'set zoomStatus to \"closed\"\nset muteStatus to "
"\"muted\"\nset videoStatus to \"stopped\"\nset shareStatus to "
"\"stopped\"\ntell application \"System Events\"\nif exists (window 1 of "
"process \"zoom.us\") then\nset zoomStatus to \"open\"\nend if\nend "
"tell\nif (zoomStatus contains \"open\") then\ntell application \"System "
"Events\" to tell application process \"zoom.us\"\nif exists (menu item "
"\"Mute audio\" of menu 1 of menu bar item \"Meeting\" of menu bar 1) "
"then\nset muteStatus to \"unmuted\"\nelse\nset muteStatus to "
"\"muted\"\nend if\nif exists (menu item \"Start Video\" of menu 1 of menu "
"bar item \"Meeting\" of menu bar 1) then\nset videoStatus to "
"\"stopped\"\nelse\nset videoStatus to \"started\"\nend if\nif exists "
"(menu item \"Start Share\" of menu 1 of menu bar item \"Meeting\" of menu "
"bar 1) then\nset shareStatus to \"stopped\"\nelse\nset shareStatus to "
"\"started\"\nend if\nend tell\nend if\ndo shell script \"echo mute:\" & "
"(muteStatus as text) & \",video:\" & (videoStatus as text) & \",zoom:\" & "
"(zoomStatus as text) & \",share:\" & (shareStatus as text)'");
  std::string status = std::string(zoomStatus);