Hallo,
ich bin dabei ein Scipt zu schreiben welches mir Office 2010 installiert.
Nun würde ich gerne eine Abfrage einbauen...wenn Programm Word,Excel,Powerpoint oder Outlook läuft, dann verlassen die Remotesitzung...wenn nicht geh weiter...und dabei hängt es nun leider bei mir!Ich hoffe ihr könnt mir helfen
Der Code der eingebaut werden muss (funtioniert,hab ich getestet!
Invoke-Command -Session (Get-PSSession) -ScriptBlock{$Officeprozess=Get-Process|Where-Object {$_.processname -like "*word*" -or $_.processname -like "*excel*" -or $_.processname -like "*outlook*" -or $_.processname -like "*powerpnt*"}}
if ($Officeprozess -eq $null) {"Führe die anderen Invoke Befehle aus" } else {"Remove-PSSession (Get-PSSession)" }
Mein Script:
#Computer einlesen $Collection= "PC1","PC2" #Kontakt aufbauen foreach ($item in $collection){ New-PSSession $item #Roaming kopieren Invoke-Command -Session (Get-PSSession) -ScriptBlock{ $UserprofileaufClient=Get-ChildItem -Path $env:SystemDrive\Users} Invoke-Command -Session (Get-PSSession) -ScriptBlock{ New-Item -Path "C:\Temp\Officebackup" -ItemType directory} Invoke-Command -Session (Get-PSSession) -ScriptBlock{ foreach ($item in $UserprofileaufClient){ Copy-Item "C:\Users\$Item\AppData\Roaming\Microsoft\Office" -recurse -Destination "C:\Temp\Officebackup\$Item\" }} #Sichert die ACL Invoke-Command -Session (Get-PSSession) -ScriptBlock{ foreach ($item in $UserprofileaufClient){ Copy-Item "C:\Users\$Item\AppData\Roaming\Microsoft\Templates" -Recurse -Destination "C:\Temp\Officebackup\$Item\" -ErrorAction SilentlyContinue}} # für Office > 2003 ->Sichert die normal.dot im Order Templates und erstellt diese im Backup Invoke-Command -Session (Get-PSSession) -ScriptBlock{ foreach ($item in $UserprofileaufClient){ Copy-Item "C:\Users\$Item\AppData\Roaming\Microsoft\Vorlagen" -Recurse -Destination "C:\Temp\Officebackup\$Item\" -ErrorAction SilentlyContinue}} # für Office 2003 ->Sichert die normal.dot im Order Templates und erstellt diese im Backup #Mitteilung an User, dass Office installiert wird! Invoke-Command -Session (Get-PSSession) -ScriptBlock{msg * /w "Eine Anwendung wird installiert, Sie werden benachrichtig wenn die Installation abgeschlossen ist! IT-Abteilung"} #Office deinstallieren /installieren Invoke-Command -Session (Get-PSSession) -ScriptBlock{& cmd /c msiexec "\\bbg-mdt-01\Office$\Office2010\SETUP.EXE"} copy-item C:\tool\SysinternalsSuite\PsExec.exe \\$item\c$\temp Invoke-Command -Session (Get-PSSession) -ScriptBlock{& cmd /c C:\temp\PsExec.exe \\$env:COMPUTERNAME /accepteula -s \\bbg-mdt-01\Office$\Office2010\Standard\setup.exe} #Normal.dot g zurück kopieren aber Kopie am Ort belassen als Backup Invoke-Command -Session (Get-PSSession) -ScriptBlock{ foreach ($item in $UserprofileaufClient){New-Item -Path "C:\Users\$Item\AppData\Roaming\Microsoft\Templates\" -ItemType directory}} Invoke-Command -Session (Get-PSSession) -ScriptBlock{ foreach ($item in $UserprofileaufClient){ Copy-Item "C:\Temp\Officebackup\$Item\Templates\*" -Destination "C:\Users\$Item\AppData\Roaming\Microsoft\Templates\" -ErrorAction SilentlyContinue}} #2007 und größer Invoke-Command -Session (Get-PSSession) -ScriptBlock{ foreach ($item in $UserprofileaufClient){ Copy-Item "C:\Temp\Officebackup\$Item\Vorlagen\*" -Destination "C:\Users\$Item\AppData\Roaming\Microsoft\Templates\" -ErrorAction SilentlyContinue}} #2003 #Mitteilung an User, dass Office installiert wurde! Invoke-Command -Session (Get-PSSession) -ScriptBlock{msg * "Die Installation ist abgeschlossen!Vielen Dank für Ihre Geduld! IT-Abteilung."} Add-Content -Value $item -Path "e:\Office2010Std_delpoyment.log" #Exit-PSSession Remove-PSSession (Get-PSSession) }
Gruß Toni! Wenn Dir meine Antwort hilft, markiere sie bitte als Antwort! Vielen Dank!