Question
Set-service (Résolu)
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 17 ans 3 mois #3475
par michault
Set-service (Résolu) a été créé par michault
Bonjour,
je viens de me créer une fonction pour modifier le type de démarrage d'un service
[code:1]function StartupService {
param ($servicename, $startup)
Set-Service $servicename -Startuptype $startup
}[/code:1]
En local, pas de problème mais peu d'intérêt
A distance j'ai un souci: je modifie mon service en local.
voilà mon script:
[code:1]#ChangeRemoteServices.ps1
# Paramètres: $ouparm :L'Unité d'Organisation dont on veut récupérer les ordinateurs.
# $who : Quels PC exemple PCOPR12 ou PC*
# $service : service \"Thèmes\" ou \"*Th*\"
# $startup : type de démarrage automatic, manual, disabled
Param($ouparm, $who, $service, $startup)
#Définition des constantes
$domain = \",DC=xxxxx,DC=xxx\"
$OU= $ouparm + $domain
get-QADComputer -searchRoot $OU -ErrorAction SilentlyContinue | where {$_.Name -like $who} | ForEach-Object {
Ping.exe $_.Name -n 1 > $null
if ($Lastexitcode -eq 0)
{
$service = Get-WmiObject -Class Win32_Service -ComputerName $_.Name | where {$_.Displayname -like \"$service\"} | `
StartupService $service.name $startup
}
else
{
Write-Host $_.Name\"`t\", \" : PC injoignable \"
}
}
[/code:1]
Je vois bien que je ne fait pas le lien avec le PC voulu, mais comment faire?<br><br>Message édité par: Arnaud, à: 16/12/08 21:09
je viens de me créer une fonction pour modifier le type de démarrage d'un service
[code:1]function StartupService {
param ($servicename, $startup)
Set-Service $servicename -Startuptype $startup
}[/code:1]
En local, pas de problème mais peu d'intérêt
A distance j'ai un souci: je modifie mon service en local.
voilà mon script:
[code:1]#ChangeRemoteServices.ps1
# Paramètres: $ouparm :L'Unité d'Organisation dont on veut récupérer les ordinateurs.
# $who : Quels PC exemple PCOPR12 ou PC*
# $service : service \"Thèmes\" ou \"*Th*\"
# $startup : type de démarrage automatic, manual, disabled
Param($ouparm, $who, $service, $startup)
#Définition des constantes
$domain = \",DC=xxxxx,DC=xxx\"
$OU= $ouparm + $domain
get-QADComputer -searchRoot $OU -ErrorAction SilentlyContinue | where {$_.Name -like $who} | ForEach-Object {
Ping.exe $_.Name -n 1 > $null
if ($Lastexitcode -eq 0)
{
$service = Get-WmiObject -Class Win32_Service -ComputerName $_.Name | where {$_.Displayname -like \"$service\"} | `
StartupService $service.name $startup
}
else
{
Write-Host $_.Name\"`t\", \" : PC injoignable \"
}
}
[/code:1]
Je vois bien que je ne fait pas le lien avec le PC voulu, mais comment faire?<br><br>Message édité par: Arnaud, à: 16/12/08 21:09
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 3 mois #3477
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Set-service
Peut être que \"-ComputerName $_.Name\" deviens \"-ComputerName .\" ?
Là faut tracer je pense.
Là faut tracer je pense.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 17 ans 3 mois #3480
par michault
Réponse de michault sur le sujet Re:Set-service
Voilà ma nouvelle fonction
[code:1]
function StartupService {
param ($computer, $displayname, $startup)
$service = Get-WmiObject -Class Win32_Service -ComputerName $computer | where {$_.DisplayName -eq \"$displayname\"}
$service.ChangeStartMode($startup)
}[/code:1]
et voilà le script:
[code:1]
#ChangeRemoteServices.ps1
# Paramètres: $ouparm :L'Unité d'Organisation dont on veut récupérer les ordinateurs.
# $who : Quels PC exemple PCOPR12 ou PC*
# $service : service \"Thèmes\"
# $startup : type de démarrage (automatic, manual, disabled)
Param($ouparm, $who, $service, $startup)
#Définition des constantes
$domain = \",DC=xxxxxxx,DC=xxx\"
$OU= $ouparm + $domain
get-QADComputer -searchRoot $OU -ErrorAction SilentlyContinue | where {$_.Name -like $who} | ForEach-Object {
Ping.exe $_.Name -n 1 > $null
if ($Lastexitcode -eq 0)
{
StartupService $_.Name $service $startup
}
else
{
Write-Host $_.Name\"`t\", \" : PC injoignable \"
}
} [/code:1]
Cà roule et merci;)
Message édité par: chm69, à: 16/12/08 18:38<br><br>Message édité par: Arnaud, à: 17/12/08 22:29
[code:1]
function StartupService {
param ($computer, $displayname, $startup)
$service = Get-WmiObject -Class Win32_Service -ComputerName $computer | where {$_.DisplayName -eq \"$displayname\"}
$service.ChangeStartMode($startup)
}[/code:1]
et voilà le script:
[code:1]
#ChangeRemoteServices.ps1
# Paramètres: $ouparm :L'Unité d'Organisation dont on veut récupérer les ordinateurs.
# $who : Quels PC exemple PCOPR12 ou PC*
# $service : service \"Thèmes\"
# $startup : type de démarrage (automatic, manual, disabled)
Param($ouparm, $who, $service, $startup)
#Définition des constantes
$domain = \",DC=xxxxxxx,DC=xxx\"
$OU= $ouparm + $domain
get-QADComputer -searchRoot $OU -ErrorAction SilentlyContinue | where {$_.Name -like $who} | ForEach-Object {
Ping.exe $_.Name -n 1 > $null
if ($Lastexitcode -eq 0)
{
StartupService $_.Name $service $startup
}
else
{
Write-Host $_.Name\"`t\", \" : PC injoignable \"
}
} [/code:1]
Cà roule et merci;)
Message édité par: chm69, à: 16/12/08 18:38<br><br>Message édité par: Arnaud, à: 17/12/08 22:29
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 17 ans 3 mois #3481
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Set-service
Salut Chm69,
Merci pour ton script. Pourrais tu donner quelques exemples d'utilisation ? Ca me faciliterait la tâche pour l'intégrer à notre bibliothèque de scripts.
Merci !
Arnaud
Merci pour ton script. Pourrais tu donner quelques exemples d'utilisation ? Ca me faciliterait la tâche pour l'intégrer à notre bibliothèque de scripts.
Merci !
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- michault
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 128
- Remerciements reçus 0
il y a 17 ans 3 mois #3482
par michault
Réponse de michault sur le sujet Re:Set-service
Salut Arnaud,
Un exemple, je veux interdire les mises à jour automatiques sur les PC que je gère.
j'appelle ce script avec comme paramètres:
[code:1]
-ouparm(\"CN=Computers\"«») -who(\"PC*\"«») -service(\"Mises à jour automatiques\"«») -startup(\"disabled\"«»)[/code:1]
Attention il y a un prérequis dans le script pour utiliser l'applet get-QADComputer.
(ActiveRoles management shell for active directory de Quest)
Voilà également pour arrêter et redémarrer un service, 2 fonctions à appeler de la même façon que StartupService :
[code:1]#####################################################
# Arrêt d'un service
#####################################################
function StopService {
param ($computer, $displayname)
$service = Get-WmiObject -Class Win32_Service -ComputerName $computer | where {$_.DisplayName -eq \"$displayname\"}
$service.Stopservice()
}
#####################################################
# Démarrage d'un service
#####################################################
function StartService {
param ($computer, $displayname)
$service = Get-WmiObject -Class Win32_Service -ComputerName $computer | where {$_.DisplayName -eq \"$displayname\"}
$service.Startservice()
}[/code:1]
Voilà, j'espère que cela te va:)
Message édité par: chm69, à: 17/12/08 10:35<br><br>Message édité par: Arnaud, à: 17/12/08 22:12
Un exemple, je veux interdire les mises à jour automatiques sur les PC que je gère.
j'appelle ce script avec comme paramètres:
[code:1]
-ouparm(\"CN=Computers\"«») -who(\"PC*\"«») -service(\"Mises à jour automatiques\"«») -startup(\"disabled\"«»)[/code:1]
Attention il y a un prérequis dans le script pour utiliser l'applet get-QADComputer.
(ActiveRoles management shell for active directory de Quest)
Voilà également pour arrêter et redémarrer un service, 2 fonctions à appeler de la même façon que StartupService :
[code:1]#####################################################
# Arrêt d'un service
#####################################################
function StopService {
param ($computer, $displayname)
$service = Get-WmiObject -Class Win32_Service -ComputerName $computer | where {$_.DisplayName -eq \"$displayname\"}
$service.Stopservice()
}
#####################################################
# Démarrage d'un service
#####################################################
function StartService {
param ($computer, $displayname)
$service = Get-WmiObject -Class Win32_Service -ComputerName $computer | where {$_.DisplayName -eq \"$displayname\"}
$service.Startservice()
}[/code:1]
Voilà, j'espère que cela te va:)
Message édité par: chm69, à: 17/12/08 10:35<br><br>Message édité par: Arnaud, à: 17/12/08 22:12
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 17 ans 3 mois #3489
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Set-service
Salut Chm69,
Merci pour tes précisions. Je voudrais juste ajouter 3 choses :
1. Lorsque tu donnes la valeur à tes paramètres, sache que les parenthèses ne sont pas utiles. Par exemple :
[code:1]-ouparm(\"CN=Computers\"«») -who(\"PC*\"«») -service(\"Mises à jour automatiques\"«») -startup(\"disabled\"«»)
[/code:1]
Peut s'écrire :
[code:1]-ouparm \"CN=Computers\" -who \"PC*\" -service \"Mises à jour automatiques\" -startup \"disabled\"
[/code:1]
On peut même se passer des guillemets, sauf dans le cas où la valeur contient des espaces.
2. Bien que ton script soit très utile dans certains cas, sais tu qu'il est possible de faire la même chose par GPO ? L'avantage c'est que la GPO s'applique dès lors que tu places un ordinateur dans une OU (ou dans ton domaine si tu as mis la GPO à la racine de ton domaine). Tu n'aurais donc pas à lancer le script régulièrement pour s'assurer de la bonne configuration de tes machines.
3. Il est facilement faisable de se passer des commandelettes de Quest. Je regarderais ça lorsque je ferais l'intégration de ton script dans la bibliothèque.
Merci pour ton script !
Arnaud
Merci pour tes précisions. Je voudrais juste ajouter 3 choses :
1. Lorsque tu donnes la valeur à tes paramètres, sache que les parenthèses ne sont pas utiles. Par exemple :
[code:1]-ouparm(\"CN=Computers\"«») -who(\"PC*\"«») -service(\"Mises à jour automatiques\"«») -startup(\"disabled\"«»)
[/code:1]
Peut s'écrire :
[code:1]-ouparm \"CN=Computers\" -who \"PC*\" -service \"Mises à jour automatiques\" -startup \"disabled\"
[/code:1]
On peut même se passer des guillemets, sauf dans le cas où la valeur contient des espaces.
2. Bien que ton script soit très utile dans certains cas, sais tu qu'il est possible de faire la même chose par GPO ? L'avantage c'est que la GPO s'applique dès lors que tu places un ordinateur dans une OU (ou dans ton domaine si tu as mis la GPO à la racine de ton domaine). Tu n'aurais donc pas à lancer le script régulièrement pour s'assurer de la bonne configuration de tes machines.
3. Il est facilement faisable de se passer des commandelettes de Quest. Je regarderais ça lorsque je ferais l'intégration de ton script dans la bibliothèque.
Merci pour ton script !
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.076 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Set-service (Résolu)