Jump to content
nv_it

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

Empfohlene Beiträge

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:

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.  ;-)

bearbeitet von BOfH_666

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.  ;-)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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:

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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
bearbeitet von daabm
....

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

Werbepartner:



×