Archive

Archives pour la catégorie ‘Windows’

Stop/Start des services à distance.

Arrêter et démarrer un service sur un serveur à distance.
Dans l’exemple, je traite le service « Microsoft Exchange Replication Service ».

Stop:

$Svc = Get-WmiObject -Computer SRV001 win32_service  -Filter "name='MSExchangeRepl'"
$Result = $Svc.StopService()
$Result.ReturnValue

Start:

$Svc = Get-WmiObject -Computer SRV001 win32_service  -Filter "name='MSExchangeRepl'"
$Result = $Svc.StartService()
$Result.ReturnValue

Categories: Windows Tags:

Modifier les droits sur un fichier.


Ce script permet de rapidement configurer la sécurité sur un fichier.

$list = "jacques.martin","Groupe-Ecole_des_Fans"
foreach ($user in $list){
$folder = "\SRV001i$chansons.txt"
$acl = Get-Acl -Path $folder
$ar = New-Object system.security.accesscontrol.filesystemaccessrule($user,"FullControl","Allow")
$acl.SetAccessRule($ar)
Set-Acl -Path $folder $acl
}

Categories: Windows Tags: , ,

Créer un compte administrateur local à distance.

Permet de créer un compte administrateur local sur un serveur distant.

$hostname = Read-Host "Enter the server name" 
$username  = Read-Host "Enter the user name" 
$password  = Read-Host "Enter the user password"
 
		$domain = ([ADSI]"").name
		$computer = [adsi] "WinNT://$domain/$hostname"
		$user =  "WinNT://$domain/$hostname/$username,user"
		$newuser = $computer.Create("user", "$username")
		$newuser.SetPassword("$password")
		$newuser.SetInfo()
		$newuser.UserFlags.value = $newuser.UserFlags.value -bor 0x10000
		$newuser.CommitChanges()
		$addadm = [adsi] "WinNT://$hostname/Administrators,group"
		$addadm.Add("WinNT://$hostname/$username,user")
		$newuser.SetInfo()
 
Write-Host "User $username create as local administrator of $hostname." -ForegroundColor Green

Categories: Windows Tags:

Identifier qui est logué sur machine distante

Ce script permet de savoir qui est logué sur un ordinateur distant.
Le script retourne les login de l’utilisateur.

$computer = Read-Host "Enter the computer Name"
$loginfo = Get-WmiObject -Computer $Computer -Class Win32_ComputerSystem
"Machine Name: " + $loginfo.Name 
"User Name: " + $loginfo.UserName

Categories: Windows Tags:

Enlever à distance un adminstrateur local.

Enlever à distance d’un compte du domaine du groupe « Administrators » d’un ordinateur ou serveur.

 $computer  = Read-Host "Enter computer name" 
 $user = Read-Host "Enter user name" 
 $domain = ([ADSI]"").name 
 ([ADSI]"WinNT://$computer/Administrators,group").Remove("WinNT://$domain/$user")

Ajout à distance d’un administrateur local.

Ajouter à distance d’un compte du domaine dans le groupe « Administrators » d’un ordinateur ou serveur.

 $computer  = Read-Host "Enter computer name" 
 $user = Read-Host "Enter user name" 
 $domain = ([ADSI]"").name 
 ([ADSI]"WinNT://$computer/Administrators,group").Add("WinNT://$domain/$user")

Afficher à distance les administrateurs locaux.

Permet d’afficher à les membres du groupe « Administrators » local d’un serveur distant.

$strComputer = Read-Host "Please enter the computer name"
 
$computer = [ADSI]("WinNT://" + $strComputer + ",computer")
$group = $computer.psbase.children.find("administrators")
 
Write-host ""
Write-host "Computer Name : "$computer.name
Write-Host "_____________________________________"
Write-host ""
Write-host "Group Name : "$Group.name
Write-Host "_____________________________________"
 
$domain = $group.path.split("/")[2]
$string1 = "WinNT://" + $domain + "/" + $strComputer + "/"
$string2 = $strComputer + "/"
$string3 = "WinNT://"
 
$members  = ($group.psbase.invoke(”Members”) | Foreach-Object {$_.GetType().InvokeMember(”Adspath”, ‘GetProperty’, $null, $_, $null)}) -replace ($string1,$string2) -replace ($string3,"") 
 
Write-host ""
Write-host "Members : "
Write-host ""
$members

Si vos serveurs sont en français, il faut remplacer « Administrators » par « Administrateurs » dans le script.

Rechercher un fichier sur tout un disque.

Permet de faire l’équivalent d’un « c:\>dir /s *.iso » avec Powershell.

Get-ChildItem -Recurse -Path "C:\" -Name "*.iso"

Categories: Windows Tags:

Configurer Windows Update sur un serveur.

Voici la méthode que j’utilise pour mettre à jour un serveur Windows depuis WSUS.

Il s’agit de configurer et de forcer le téléchargement des mises à jour depuis le serveur WSUS.

Configuration de la stratégie locale du serveur:

- Exécuter « gpedit.msc ».

– Configurer les options suivantes:

Relancer les services:

– Executer « net stop « Automatic Updates »
– Exécuter « net start « Automatic Updates »

Relancer la détection des mises à jour:

– Exécuter « wuauclt /detectnow »

Lancer les mise à jour:

Après quelques minutes suivant la liaison entre les serveurs et le nombre de mises à jour, un popup de mise à jour va apparaitre sur le serveur à mettre à jour.

Categories: Windows Tags: ,

Pinger un ordinateur avec un script Powershell.

Faire un ping d’un ordinateur.
Permet vérifier que l’ordinateur est en ligne avant de lancer une action sur lui via un script.

$computername = Read-Host "Please enter the computer name"
$ping = new-object System.Net.NetworkInformation.Ping
$reply = $ping.send($computerName)
if ($reply.status –eq “Success”)
{
write-host "$ComputerName is online."
}

Categories: Windows Tags: , ,