Estate atento ya que en este artículo vas a encontrar la contestación que buscas.Esta crónica fue analizado por nuestros especialistas para asegurar la calidad y exactitud de nuestro post.
Solución:
Solución 1:
Esto también se puede hacer a través de un símbolo del sistema elevado usando el sc
dominio. La sintaxis es:
sc config [service name] depend=
Nota: Hay un espacio después el signo igual, y hay no uno antes de eso.
Advertencia: depend=
el parámetro será Sobrescribir lista de dependencias existentes, no anexar. Entonces, por ejemplo, si ServiceA ya depende de ServiceB y ServiceC, si ejecuta depend= ServiceD
ServiceA ahora dependerá solamente en Servicio D. (¡Gracias Matt!)
Ejemplos
Dependencia de otro servicio:
sc config ServiceA depend= ServiceB
Arriba significa que ServiceA no comenzará hasta que ServiceB haya comenzado. Si detiene ServiceB, ServiceA se detendrá automáticamente.
Dependencia de muchos otros servicios:
sc config ServiceA depend= ServiceB/ServiceC/ServiceD/"Service Name With Spaces"
Lo anterior significa que ServiceA no se iniciará hasta que ServiceB, ServiceC y ServiceD se hayan iniciado. Si detiene cualquiera de ServiceB, ServiceC o ServiceD, ServiceA se detendrá automáticamente.
Para eliminar todas las dependencias:
sc config ServiceA depend= /
Para enumerar las dependencias actuales:
sc qc ServiceA
Solución 2:
Puede agregar dependencias de servicio agregando el valor “DependOnService” al servicio en el registro usando el regedit
comando, los servicios se pueden encontrar en HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
. Los detalles se pueden encontrar en el artículo 193888 de MS KB, del cual lo siguiente es un extracto de:
Para crear una nueva dependencia, seleccione la subclave que representa el servicio que desea retrasar, haga clic en Editar y luego haga clic en Agregar valor. Cree un nuevo nombre de valor “DependOnService” (sin las comillas) con un tipo de datos de REG_MULTI_SZ y luego haga clic en Aceptar. Cuando aparezca el cuadro de diálogo Datos, escriba el nombre o los nombres de los servicios que prefiere iniciar antes de este servicio con una entrada para cada línea y luego haga clic en Aceptar.
Solución 3:
Estaba buscando un método puramente PowerShell (sin regedit o sc.exe) que pueda funcionar en 2008R2/Win7 y posteriores, y se me ocurrió esto:
Una fácil es hacer el regedit con PowerShell:
Set-ItemProperty -Path 'HKLM:SYSTEMCurrentControlSetServicesLanmanWorkstation' -Name DependOnService -Value @('Bowser','MRxSmb20','NSI')
O, usando WMI:
$DependsOn = @('Bowser','MRxSmb20','NSI','') #keep the empty array element at end
$svc = Get-WmiObject win32_Service -filter "Name='LanmanWorkstation'"
$svc.Change($null,$null,$null,$null,$null,$null,$null,$null,$null,$null,$DependsOn)
El método Change de la clase Win32_Service ayudó a señalar una solución:
uint32 Change(
[in] string DisplayName,
[in] string PathName,
[in] uint32 ServiceType,
[in] uint32 ErrorControl,
[in] string StartMode,
[in] boolean DesktopInteract,
[in] string StartName,
[in] string StartPassword,
[in] string LoadOrderGroup,
[in] string LoadOrderGroupDependencies[],
[in] string ServiceDependencies[]
);