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:

  • Qual è la differenza tra Approvare o approvare per l'installazione opzionale in WSUS
  • Impostazione pianificata dispiegata tramite GP, che esegue uno script powershell su una condivisione di networking da un account di servizio AD
  • Come funzionano i parametri -RetentionDays e -MaximumSize in Limit-EventLog in PowerShell?
  • Perché le attività settimanali create tramite PowerShell usando un utente diverso falliscono con l'errore 0x41306
  • Il path del mio profilo PowerShell $ non è stato aggiunto a $ HOME
  • Oltre a guardare il dumping di $ PSVersionTable e scaricare la variabile e le "PS-Drives", cosa posso fare per confrontare gli ambienti PowerShell?
  • 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ò?

  • Quali sono i messaggi e codici di errore quando si crea e si installa Account di servizio gestito?
  • Qual è il command PowerShell per aggiungere il server al serverpool di RDS
  • Nuovo registro events non si trova dopo la creazione in PowerShell
  • Modifica / impostazione di tipi di Mime con Powershell?
  • Script di PowerShell per trovare le richieste di riunione nella cassetta postale di Exchange e accettarle
  • Ottieni nome di accesso utilizzando l'indirizzo email con Powershell
  • 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.