Jump to content

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


Direkt zur Lösung Gelöst von nv_it,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

  • Beste Lösung
Geschrieben

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.

Geschrieben

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

Geschrieben

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:

Geschrieben (bearbeitet)

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
....
Geschrieben

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.

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...