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:

  • Ricevi gli invii e le email ricevuti totali Exchange 2010
  • Modifica della row di Remap Powershell
  • Installare .NET 4 tramite la row di command o PowerShell?
  • IIS Administration PowerShell Cmdlet su Windows 2008 R1
  • Modificare la directory del profilo Powershell $
  • Sintassi DSC per la chiave del Registro di sistema binario
  • 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ò?

  • Windows 2012R2 Come disabilitare "Utilizzare i suggerimenti di root se non sono disponibili gli spedizionieri" utilizzando un command powershell
  • Sui volumi dedupti, come posso determinare lo spazio utilizzato in una cartella con Measure-DedupFileMetadata
  • Qual è il command PowerShell per aggiungere il server al serverpool di RDS
  • Map Network Drive a un server WebDAV tramite PowerShell
  • Perché powershell esegue eseguibili in una window separata?
  • Script di Powershell per submit e-mail, perdendo il text nell'allegato di posta elettronica
  • 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.