Come concedo le autorizzazioni per avviare / interrompere in modo remoto un servizio utilizzando Powershell?

Abbiamo uno script PowerShell che riavvia un servizio su un altro computer. Quando utilizziamo i cmdlet di controllo di servizio PowerShell, come segue:

$svc = Get-Service -Name MyService -ComputerName myservicehostname Stop-Service -InputObject $svc Start-Service -InputObject $svc 

Riconosciamo questo errore:

  • Cartelle DIRing in PowerShell
  • Errore Powershell durante l'aggiunta di filepath
  • Stripping linee dal file di text con Powershell
  • Script di PowerShell per trovare le richieste di riunione nella cassetta postale di Exchange e accettarle
  • Come posso eseguire il backup della mia raccomandazione di NON distriggersre il servizio Windows Firewall?
  • Esegui powershell remoto come amministratore
  • Stop-Service: Imansible aprire il servizio MyService sul computer 'myservicehostname'.

    Tuttavia, quando si utilizza sc.exe, così:

     C:\Windows\System32\sc \\myservicehostname stop MyService C:\Windows\System32\sc \\myservicehostname start MyService 

    l'inizio e la sosta avranno successo.

    L'utente che esegue il riavvio non è un amministratore. Utilizziamo il subinacl per concedere le autorizzazioni utente per avviare / arrestare e interrogare il servizio:

     subinacl.exe /service MyService /GRANT=MyServiceControlUser=STO 

    Come mai PowerShell non riesce a fermare il mio servizio, ma sc.exe può?

  • PowerShell? Lo usi? Puoi mostrarmi alcune cose di amministrazione del sistema che posso fare con esso?
  • Come colbind gli script powershell alla barra delle applicazioni?
  • Esegui automaticamente lo script PowerShell al primo avvio
  • I cmdlet di vSphere PowerCLI possono essere eseguiti da un file PS1?
  • L'inoltro della port di Azure RM NSG non funziona
  • Modulo Powershell 'servermanager' non trovato in Windows 10
  • 2 Solutions collect form web for “Come concedo le autorizzazioni per avviare / interrompere in modo remoto un servizio utilizzando Powershell?”

    Risulta che non ho dato abbastanza autorizzazioni con il subinacl . I possibili valori di accesso per l'azione di sovvenzione sono:

      F : Full Control R : Generic Read W : Generic Write X : Generic eXecute or any following values L : Read controL Q : Query Service Configuration S : Query Service Status E : Enumerate Dependent Services C : Service Change Configuration T : Start Service O : Stop Service P : Pause/Continue Service I : Interrogate Service U : Service User-Defined Control Commands 

    Stavo usando S (Stato servizio di query), T (Start Service) e O (Stop Service). Ho anche bisogno di E (Enumerate Dependent Services). Sembra che i cmdlet PowerShell debbano esaminare i servizi dipendenti quando si avvia / si arresta.

    Ecco il mio command aggiornato subinacl :

     subinacl.exe /service MyService /GRANT=MyServiceControlUser=STOE 

    Se non si desidera scaricare / utilizzare subinacl.exe , è ansible utilizzare PowerShell tramite le funzioni Grant-ServiceControlPermission o Grant-ServicePermission del module Carbon . (DISCLAIMER: sono il proprietario / gestore del progetto Carbon.)

    Il seguente command funziona come previsto nella mia macchina Windows Server 2008 R2.

     Start-Service -InputObject $(Get-Service -Computer [ComputerName] -Name spooler) 

    Puoi anche provare questo command a una sola volta per determinare se funziona e si è verificato che l'utente è un membro di un gruppo che è membro del gruppo Utenti nei server di destinazione?

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.