Important
Script pour boucle SDELETE.EXE
- Mati
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 12 ans 10 mois #14898
par Mati
Script pour boucle SDELETE.EXE a été créé par Mati
Bonjour,
Je souhaite créer un script powershell pour faire un sdelete sur plusieurs machines.
Voila mon besoin :
Pour libérer l'espace provisionné par mes baies SAN lors de la libération d'espace coté OS, j'ai besoin de mettre des zeros , et c'est la que le SDELETE rentre en jeu.
Alors ca fonctionne bien si je passe le SDELETE manuellement sur mes machines, mais vu le nombre, je cherche à scripter ceci.
1 . je recupère une liste de machine, par l'AD par exemple :
$compList =Get-QADComputer * -sizelimit 0
2. je parse cette liste pour lister les disques et savoir ceux qui sont attachés SAN :
$compList | % {
$Computer = $_
Write-Host $Computer.Name
get-WmiObject -ComputerName $Computer.Name -class Win32_diskDrive | select Name, DeviceID, Model, Caption, Size, @{label=\"CP\";Expression={\"$($Computer.Name)\"}}
} | ConvertTo-Csv | Set-Content \"SanDrives.txt\"
Déjà j'ai un pb, car je ne récupère par la lettre du disque.
3. ensuite j'aimerai que si le disk contient \"IBM 2810XIV\" dans le model, hop il lance un SDELETE.exe -Z sur ce lecteur.
4. et si en plus ca pouvait générer un rapport alors la... ca serait génial !
Voila, si on pouvait un peu m'aider ca serait top, mes compétences en powershell étant très limitées...
Merci !!!
Je souhaite créer un script powershell pour faire un sdelete sur plusieurs machines.
Voila mon besoin :
Pour libérer l'espace provisionné par mes baies SAN lors de la libération d'espace coté OS, j'ai besoin de mettre des zeros , et c'est la que le SDELETE rentre en jeu.
Alors ca fonctionne bien si je passe le SDELETE manuellement sur mes machines, mais vu le nombre, je cherche à scripter ceci.
1 . je recupère une liste de machine, par l'AD par exemple :
$compList =Get-QADComputer * -sizelimit 0
2. je parse cette liste pour lister les disques et savoir ceux qui sont attachés SAN :
$compList | % {
$Computer = $_
Write-Host $Computer.Name
get-WmiObject -ComputerName $Computer.Name -class Win32_diskDrive | select Name, DeviceID, Model, Caption, Size, @{label=\"CP\";Expression={\"$($Computer.Name)\"}}
} | ConvertTo-Csv | Set-Content \"SanDrives.txt\"
Déjà j'ai un pb, car je ne récupère par la lettre du disque.
3. ensuite j'aimerai que si le disk contient \"IBM 2810XIV\" dans le model, hop il lance un SDELETE.exe -Z sur ce lecteur.
4. et si en plus ca pouvait générer un rapport alors la... ca serait génial !
Voila, si on pouvait un peu m'aider ca serait top, mes compétences en powershell étant très limitées...
Merci !!!
Connexion ou Créer un compte pour participer à la conversation.
- Mati
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 12 ans 10 mois #14899
par Mati
Réponse de Mati sur le sujet Re:Script pour boucle SDELETE.EXE
et si en plus ca pouvait s'arreter à 90% d'espace utilisé comme ce qu'a fait cette personnne :
blog.whatsupduck.net/2012/03/powershell-...tive-to-sdelete.html
ca serait top
blog.whatsupduck.net/2012/03/powershell-...tive-to-sdelete.html
ca serait top
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 12 ans 10 mois #14900
par SiSMik
Réponse de SiSMik sur le sujet Re:Script pour boucle SDELETE.EXE
Bonjour,
Tout d'abord, essayes d'utiliser les balises Code quand tu publies du code ça rend le script plus lisible.
On va déjà prendre le problème sans les 90%...
[code:1]
$Output = @{}
$SdeleteCMD = \"C:\temp\Sdelete.exe\"
Get-QADComputer * -sizelimit 0 | Foreach {
$Computer = $_.Name
get-WmiObject -ComputerName $Computer -class Win32_diskDrive |
$props = @{\"Name\"=$_.Name;
\"DeviceID\"=$_.DeviceID;
\"Model\"=$_.Model;
\"Caption\"=$_.Caption;
\"Size\"=$_.Size;
\"CP\"=$Computer}
$Output += New-Object PSCustomeObject -Property $props
}
$Output | % {
if ($_.Name -like \"*IBM 2810XIV*\"«») {
Start-Process -Path $SdeleteCMD -Argumentlist \"-z\" -wait
}
}
[/code:1]
La façon dont tu exportais le csv était un peu foireuse aussi, là tu as une variable $Output qui contient tous tes pc sur le domaine et les informations du disque. Je te laisses faire l'export du CSV après ton traitement, ça devrait pas être trop dur.
@+
Tout d'abord, essayes d'utiliser les balises Code quand tu publies du code ça rend le script plus lisible.
On va déjà prendre le problème sans les 90%...
[code:1]
$Output = @{}
$SdeleteCMD = \"C:\temp\Sdelete.exe\"
Get-QADComputer * -sizelimit 0 | Foreach {
$Computer = $_.Name
get-WmiObject -ComputerName $Computer -class Win32_diskDrive |
$props = @{\"Name\"=$_.Name;
\"DeviceID\"=$_.DeviceID;
\"Model\"=$_.Model;
\"Caption\"=$_.Caption;
\"Size\"=$_.Size;
\"CP\"=$Computer}
$Output += New-Object PSCustomeObject -Property $props
}
$Output | % {
if ($_.Name -like \"*IBM 2810XIV*\"«») {
Start-Process -Path $SdeleteCMD -Argumentlist \"-z\" -wait
}
}
[/code:1]
La façon dont tu exportais le csv était un peu foireuse aussi, là tu as une variable $Output qui contient tous tes pc sur le domaine et les informations du disque. Je te laisses faire l'export du CSV après ton traitement, ça devrait pas être trop dur.
@+
Connexion ou Créer un compte pour participer à la conversation.
- Mati
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 3
- Remerciements reçus 0
il y a 12 ans 10 mois #14914
par Mati
Réponse de Mati sur le sujet Re:Script pour boucle SDELETE.EXE
Ok merci de l'info,
je vais travailler un peu la dessus et je ferai un retour.
en tout cas, c'est sympa !
A+
je vais travailler un peu la dessus et je ferai un retour.
en tout cas, c'est sympa !
A+
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.045 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Script pour boucle SDELETE.EXE