Jump to content

Christoph_A4

Members
  • Gesamte Inhalte

    220
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von Christoph_A4

  1. Hallo, ich bin gerade dabei ein Skript zu basteln, welches zur Automatisierung diverser Livemigration unter Hyper-V dient. Die Thematik HyperV steht aber vorerst hier gar nicht zur Debatte. Wir haben 6 physikalische HyperV-Server in einem Cluster. Ich möchte mit dem Ausführen des Skriptes ein Gleichgewicht der VMs herstellen, gemessen am Arbeitsspeicher der physikalischen Server. D.h. vor jeder VM-Livemigration soll eine Abfrage stattfinden, welcher Server zum gegenwärtigen Zeitpunkt die größten Speicherressourcen hat. Der Server mit der größten verfügbaren RAM-Kapazität soll die nächste VM erhalten. Das Problem im Detail: Ich habe folgendes Skript, welches mir bisher den freien physikalischen Arbeitsspeicher von jedem Server preisgibt und danach den maximalen Wert ausgibt: $Server_gesamt="server1","server2","server3" $free=foreach ($bla in $Server_gesamt) { (( Get-WMIObject Win32_OperatingSystem -ComputerName $bla).FreePhysicalMemory ) /1048576 } $free | measure-object -max Jetzt wird mir zwar der Maximalwert ausgegeben, allerdings ohne Bezug zum entsprechenden Server. Mir müsste das Ergebnis aussagen, welcher der drei Server mit diesem Maximalwert in Verbindung zu setzen ist. Ich hoffe ich konnte es einigermaßen klar darstellen und ihr könnt mir ein paar Ansätze liefern. Vielen Dank im Voraus.
  2. Guten Morgen, ich bin dabei mir das Monitoring ein wenig zu vereinfachen. Dazu will ich remote das security-log einer VM auslesen und nach einer Bedingung filtern, die da heißt: Gib mir die security-logs aus, bei denen im message-Feld folgende Workombination zutrifft: "account name" mehrere Leerzeichen und danach "test1". Ich weiß, dass es über die regular expressions einen Schalter \s gibt, weiß ihn aber nicht richtig einzusetzen. Hiermit komme ich nicht weiter: invoke-command -computername server0815 {Get-EventLog security -newest 500 | where {$_.message -like "*account name\s*"+"*test1*"}}
  3. Hallo, würde mich mal grundsätzlich interessieren: Sichert ihr die physikalischen HyperV-Hosts (vielleicht über Drittanbieter-Backup-Software), die Mitglied in einem Failovercluster sind? Wenn ja, was sind die Gründe dafür, wenn nein, was sind die Gründe dagegen? Wir sichern zur Zeit bare-metal, unser HyperV-Cluster besteht aus aktuell 4 HyperV-Hosts. Gegenwärtig geht es darum, ob wir uns über die Mechanismen über eine Drittanbieter-Backup-Lösung anschauen, oder ein Backup der HyperV-Hosts grundlegend sein lassen. Ich sehe schon bei unserer aktuellen Konstellation keine große Notwendigkeit, denn wie schnell hat man einen HyperV-Host, der mit keinen weiteren Rollen bestückt ist, neuinstalliert und in den Cluster mit aufgenommen. Wie sieht das die Board-Gemeinde?
  4. Vielen Dank euch allen, der Artikel von John Howard hat mir entscheidend geholfen, es funktioniert jetzt. ...fast wie gewünscht. Ich frage jetzt einfach unverschämterweise noch mal nach einer Möglichkeit, die Berechtigung auf einzelne VMs zu richten?
  5. Guten Morgen, vielen Dank für den Tipp. Es ist 2008 R2. Problem bei der Sache ist, dass ich das für VMs eines Clusters realisieren will. Sprich, der VM-Admin weiß nicht, wo sich die VMs befinden. Das hieße, er müsste sich per RDP auf jeden Node schalten, um den lokalen HyperV-Manager zu öffnen. Sofern nicht jeweils in der Node-Admingruppe vorhanden, ist es dem VM-Admin nicht möglich, sich alle Nodes remote in den HyperV-Manager einzubinden. Ich hatte jetzt nämlich den Ansatz verfolgt, remote-Zugriff auf die Nodes zu ermöglichen. OHNE Adminrechte. Ich merke aber, dass das erhebliche Berechtigungsstrukturänderungen an verschiedenen Stellen bedingt.
  6. Hallo, wir haben einen HyperV-Failovercluster mit 4 Nodes ohne den SCVMM. Gibt es eine Möglichkeit den VM-Admins etwas bereitzustellen, heruntergefahrene VMs wieder starten zu können? Das Herunterfahren und Starten der längerer Zeit heruntergefahrenen VMs gehört zu den Aufgaben, welche die VM-Admins zwingend durchführen müssen, auch ohne dass die HyperV-Admins anwesend sind. Builtin-Gruppen gibt es keine, vielleicht über GPO und das "Zuweisen von Benutzerberechtigungen"? Ist da vielleicht ein Ansatz verborgen?
  7. Hallo, ich komme an dieser Stelle einfach nicht weiter. Ich habe eine Abfrage definiert, die mir Pfade ausgibt, diese mit out-file in eine Text-Datei geschrieben wird und deren Inhalt letzten Endes per Mail versendet wird. Das klappt soweit, allerdings hat der Pfad ein Leerzeichen, weshalb der Pfad nicht korrekt als Link erscheint, weil natürlich nur bis zum Leerzeichen verlinkt wird. Sieht dann so aus: \\pc0815\_terminalserverprofile_test\*\Eigene Dateien\BriefkorbTS Der Pfad muss in Anführungszeichen, wie bekomme ich das hin? Die entscheidende Stelle habe ich wie folgt angesetzt: $path="\\server0815\testfreigabe\check.txt" $profilordner="\\pc0815\_terminalserverprofile_test\*\Eigene Dateien\BriefkorbTS" $test=((Get-ChildItem $profilordner) | select Directory -uniq | ft -HideTableHeaders) $test | Out-File $path -Append Vielen Dank schon mal.
  8. Hallo nochmals, mir fehlt eigentlich nur noch der abschließende Befehl, kann mir da jemand unter die Arme greifen? $service=Invoke-Command pc0815 -scriptblock {Get-service | where {$_.name -match "branche"} | select displayname } -hidecomputername | Select DisplayName #-ExcludeProperty RunspaceID $test = $service foreach ($service in $test) { Write-host "[$([array]::IndexOf($test, $service))] $($service)" } $eingabe = Read-Host "Bitte den abzubrechenden Dienst wählen" Wie setze ich jetzt an, dass der ausgewählte Dienst (mittels stop-service | -force ?) gestoppt wird? Danke, hab es endlich hinbekommen. $service=Invoke-Command pc0815 -scriptblock {Get-service | where {$_.name -match "branche"} | select * } -hidecomputername | Select * -ExcludeProperty RunspaceID $test = $service foreach ($service in $test) { Write-host "[$([array]::IndexOf($test, $service))] $($service.displayname)" } $eingabe = Read-Host "Bitte den abzubrechenden Dienst wählen" $test[$eingabe] | Invoke-Command pc0815 -scriptblock {Stop-Service -force}
  9. Hallo Dukel, die Variable xyz ist nun aber das zentrale Problem an der ganzen Sache oder sehe ich das falsch? Welcher content kann denn jetzt in die csv geschrieben werden? Vielleicht ist es besser zu erklären anhand eines konkreten Beispiels: Es existieren die Ordner c:\_terminalserverprofile_test\Testordner1\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner2\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner3\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner4\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner5\Eigene Dateien\BriefkorbTS Im Ordner "BriefkorbTS" des Testordners 2 und 5 liegen mehr als 4 Dateien. Als Ausgabe in dieser csv würde ich mir folgendes wünschen: c:\_terminalserverprofile_test\Testordner2\Eigene Dateien\BriefkorbTS c:\_terminalserverprofile_test\Testordner5\Eigene Dateien\BriefkorbTS
  10. Mein Problem ist, dass ich mit Powershell nach einem Grundkurs quasi erst anfange. ;-) [array]$ordner=Get-ChildItem "\\c:\_terminalserverprofile_test\*\Eigene Dateien\BriefkorbTS" foreach ($profilordner in $ordner) { (Get-ChildItem $profilordner.FullName -Recurse) echo "Anzahl Dateien:" ($anzahl=(Get-ChildItem $profilordner.FullName -Recurse).count) if ($anzahl -gt 4) {$xyz | Set-Content -Path "c:\test.csv"} } Das ist mein Ansatz, wahrscheinlich zu kompliziert. Das Problem an dem Konstrukt ist einfach: Welche Variable kommt an die Stelle "xyz". Es besteht ja keine Verbindung von $anzahl zu $ordner.
  11. Hallo, ich glaube ich mache es mir unnötig schwer, jedenfalls komm ich mit meinem Weg an dieser Stelle nicht mehr weiter. Ich bräuchte mal einen Ansatz, folgende Aufgabe: Ich habe ein Ordnerstruktur, aktuell bestehend aus 120 Ordnern. In diesen befinden sich Dateien, es ist keine weitere Ordnerebenen vorhanden. Ich möchte ganz einfach jeweils die Dateien zählen. Wenn eine bestimmte Dateienanzahl pro Ordner erreicht ist, möchte ich diese in eine txt oder csv-Datei exportieren, allein mit den Informationen, welchen der 120 Ordner es betrifft und deren Dateien
  12. Hallo, Ich bin gerade dabei ein kleines Script zu basteln, um einer Person zu ermöglichen einen Dienst zu beenden. Dabei möchte ich es so weit runterbrechen, dass ich ihm eine Auswahl an Diensten des Servers anbiete. Die Person muss nur noch eine Zahl eingeben, um den entsprechend mit dieser Zahl verknüpften Dienst zu beenden. Idealerweise folgendermaßen: -- Dienste -- 1 BranchCache 2 Anmeldedienst 3 Designs 4 Computerbrowser Welchen Dienst möchten Sie beenden? Im Speziellen geht es mir eigentlich erst einmal nur darum, wie ich es hinbekomme, dass ich dem Inhalt einer Variable (array) einen fortlaufenden Index vergeben kann. In der Ausgabe möchte ich es dann so haben, dass der array-Wert direkt neben dem Inhalt dargestellt wird (wie oben, z.B. 2 Anmeldedienst), damit die Person im darauf folenden Schritt nur noch die Zahl eingeben muss. Ich hoffe ich bin einigermaßen verständlich.
  13. Wie gesagt, es funktioniert auch nicht, wenn KEINE GPOs auf die VM einwirken. Weitere Ideen? :-)
  14. Nein, leider funktioniert es auch nicht mit dem lokalen Admin. Wir haben sehr viel über GPOs geregelt, ich habe den Server jedoch zwischenzeitlich in eine OU gesteckt, auf der, außer der Default Domain Policy, keine GPOs wirkten.
  15. Hallo, wir haben hier einige Terminalserver (Win Server 2008 R1) laufen. Bei einigen davon lässt sich der Punkt "User Accounts" aus der Systemsteuerung einfach nicht aufrufen. Es erscheint keine Fehlermeldung, das Programm öffnet sich einfach nicht. Auch über das CMD (control nusrmgr.cpl) kein Erfolg, man erkennt ganz kurz, dass sich ein Fenster öffnet, es sich jedoch direkt wieder schließt. Zu dem Problem findet sich im Internet zumeist etwas über den gleichen Sachverhalt, jedoch WinXP betreffend. Kennt hier jemand zumindest einen Lösungsansatz? Gruß
  16. GPO- IE-Settings in Kombination mit der Bearbeitung aus verschiedenen OS heraus, sind eine ganz spezielle Geschichte. Ein Beispiel: http://www.grouppolicy.biz/2011/03/how-to-enable-group-policy-preferences-support-for-ie9/ Wir haben es mittlerweile so geregelt, dass wir einen zentralen 2012 Server nutzen, um GPOs zu bearbeiten.
  17. Timsk: Ich habe es jetzt so versucht: invoke-command -computername mustermannpc -scriptblock {Reset-ComputerMachinePassword -credential domain\testuser} Er sagt mir, dass " -credential " kein gültiger Parameter in diesem Zusammenhang ist. Edit: Hab es gerade herausgefunden, " -credential " ist erst mit Powershell 3.0 eingeführt worden.
  18. So, ich habe es via enter-pssession versucht, das gleiche Resultat. :nene:
  19. Danke für die Info. Habe mir das mal angeschaut und werde das mal versuchen. Hast du eine Erklärung dafür, warum die Passwortabfrage in meiner Version ganz oben nicht erscheint? Liegt das grundsätzlich am scriptblock?
  20. Ich habe es schonmal auf diese Weise versucht: $username=Get-Credential Invoke-Command $computername -scriptblock { netdom resetpwd /s:domain.subdomain /ud:$username.username /pd:$username.System.Security.SecureString }
  21. Hallo, ich möchte remote über Invoke-Command eine eigentlich ganz simple Befehlszeile absetzen. Es handelt sich um einen "netdom"-Befehl. Dieser bedingt die Eingabe von Benutzername und -kennwort. Ich habe versucht das wiefolgt zu lösen: Invoke-Command notebook01 -scriptblock { netdom resetpwd /s:domain.subdomain /ud:mustermann /pd:* } Leider übergeht das PS-Skript gnadenlos die zu tätigende Passworteingabe, die normalerweise erscheint, wenn ich den Befehl auf dem Zielrechner direkt ausführe (ohne invoke-command). Wie bekomme ich es hin, dass die Passwortabfrage auch in Kombination mit dem invoke-command-Befehl erscheint? Hat da jemand einen Rat? Grüße
  22. Hallo, wir haben mehrere Win 2008 R1 Terminalserver im Networkloadbalancing-Modus. Ich will vorerst nicht näher in die Netzwerkumgebung eingehen. Aber die Antwortzeit der im NLB definierten virtuellen IP-Adresse, unter der die einzelnen TS eingebunden sind, ist schwach. Leider macht sich das auch für die auf den TS arbeitenden User bemerkbar. Und hier meine grundlegende Frage: Bisher dachte ich immer, dass diese virtuellen IP-Adresse quasi lediglich die Verteilung regelt. Der Netzwerktraffic findet dann wieder über den jeweiligen TS statt, auf dem der User verbunden wurde. Dem ist aber wohl nicht so, ist das richtig? Denn, wie gesagt, sind die Antwortzeiten der NLB-Adresse mies, arbeiten auch die User mit erheblichen Verzögerungen, obwohl die einzelnen TS beste Antwortzeiten aufweisen. Danke im Voraus! Grüße
×
×
  • Neu erstellen...