Jump to content
nv_it

Mit Powershell Datei von mehreren Rechnern kopieren + LastBootUpTime von mehreren Rechner abfragen

Recommended Posts

...oder $PC | Add-Member :-) Wäre halt sinnvoll, das große Endziel zu kennen und nicht nur die kleine Einzelaufgabe...

Share this post


Link to post
Share on other sites

Hi, nochmal vielen lieben Dank für die Hilfe!

 

Skript funktioniert, Thema kann als gelöst markiert werden.

Kann ich das auch selbst, wenn ja wo? :victory:

Share this post


Link to post
Share on other sites

Vielleicht teilst Du das Script mit der Community und markierst das dann entsprechend als die Lösung. Das hilft anderen, die das gleiche oder ein ähnliches Problem haben, die Lösung etwas schneller zu finden.  ;-)

Edited by BOfH_666

Share this post


Link to post
Share on other sites

Gerne,

 

es sind 2 Skripte:

 

Skript zum Kopieren von einer Datei von mehreren bestimmten Rechnern im Active Directory:

#liest Rechner aus dem Active Directory
$Rechner = (Get-ADComputer -Filter "Name -like 'XX*-M'-or Name -like 'YY*-S'").Name
#Kopiert Datei von Rechner zu Share
ForEach ($PC in $Rechner)
{
    Copy-Item -Path "\\Pfad\zur\Quell\Datei\Datei.ini" -Destination "\\Server\Share\$PC.Datei.ini" -ErrorAction Ignore
}

Skript zum Abfragen der letzten Startzeit von mehreren bestimmten Rechnern im AD:

 

#liest Rechner aus dem Active Directory
$Rechner = (Get-ADComputer -Filter "Name -like 'XX*-M'-or Name -like 'YY*-S'").Name
#fragt die letzte Startzeit der Rechner ab
ForEach ($PC in $Rechner)
{
    (Get-CimInstance -ClassName CIM_OperatingSystem -ComputerName $PC -ErrorAction Ignore| Select-Object -Property LastBootUpTime, PSComputerName)
}

Da bei meinem Fall zu jedem Rechner meist ein Computerobjekt existiert was nicht erreichbar ist habe ich noch das -ErrorAction Ignore mitgegeben.

Share this post


Link to post
Share on other sites

Du weißt, dass Du beide Aktionen zusammen in der Schleife laufen lassen kannst? ;-)

 

N' Tipp zu den Kommentaren: Die cmdlets von Powershell sind ziemlich "sprechend". Jeder der Powershell kennt, weiß, was Get-ADComputer oder Copy-Item oder Get-CimInstance macht. Das brauchst Du also nicht umbedingt zu kommentieren. Da wäre dann im Zweifel eher eine Information hilfreich, warum Du eine Aktion machst, wie Du sie machst, wenn das nciht sowieso offensichtlich ist.  ;-)

Share this post


Link to post
Share on other sites

ja ich weiß, könnte man in ein Skript bauen aber für unseren Fall ist es separat besser, da wir nicht jedes mal wenn wir die Startzeiten kontrollieren wollen auch gleich die Dateien kopieren möchten.:-)

Zu den Kommentaren, ist mit Absicht so einfach beschrieben :victory:

Share this post


Link to post
Share on other sites

There's always room for improvement :-)

$Rechner = (Get-ADComputer -Filter "Name -like 'XX*-M'-or Name -like 'YY*-S'").Name
$Rechner = (Get-ADComputer -Filter "Name -match '(XX|YY).*-(M|S)'" -Property Name ).Name
Edited by daabm
....

Share this post


Link to post
Share on other sites

Evtl. erfasst deine Änderung zu viele Rechner. Mit deiner Lösung bekommst du auch XX*-S*.

Ob das ein Problem ist kann nur der TO entscheiden.

 

PS: Je nach Progammiergehirn ist die erste Variante evtl. lesbarer/verständlicher als die zweite.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Werbepartner:



×
×
  • Create New...