Jump to content

MichaTo

Members
  • Gesamte Inhalte

    61
  • Registriert seit

  • Letzter Besuch

Alle erstellten Inhalte von MichaTo

  1. Oder aber du machst von der Datei $profile gebrauch. Ob die Datei schon existiert prüft man mit Test-Path $profile Wenn die Datei existiert bekommst du ein True zurück, sonst ein False. Falls du ein False zurückbekommst, kannst du über den Befehl New-Item -Type File -Path $profile -Force die Profildatei anlegen, und via notepad $profile die Datei öffnen. Die Einträge (CmdLets) in dieser Datei werden beim Start einer PowerShell Sitzung ausgeführt, wie zum Beispiel das Import-Module CmdLet. Quelle: "Windows PowerShell Cookbook 2nd Edition; Chapter 1.6 - Customize Your Shell, Profile, and Prompt" Gruß Micha
  2. Das funktioniert so leider nicht. Der Drucker kann das nicht. Schade, dachte es gäb irgendwie die Möglichkeit. Trotzdem Danke!
  3. Hallo zusammen, ich habe an meinem Rechner lokal einen HP LJ 1320 angeschlossen. Eine Funktion liefert mir eine Auflistung von Rechnern in Tabellenform. Darin enthalten sind Informationen über FQDN, IP Adresse, Hersteller, Modell, etc... Diese Daten würde ich gerne über eine Pipe an Out-Print direkt ausdrucken. Das funktioniert auch, allerdings ist der Ausdruck im Hochformat. Dadurch werden viele Spalten 'abgeschnitten'. Ist es möglich einen Ausdruck auch im Querformat zu machen?! MfG Micha
  4. Hallo, du könntest in Excel über die Funktion "Text in Spalten" die *.csv ordentlich darstellen. Mit einem Auto-Filter kannst du dann komfortable nach bestimmten Kriterien suchen. MfG Micha
  5. Wir haben vor Kurzem Office 2010 Lizenzen bekommen. Habe es aber noch nicht installiert, weil ich mit dem 2003er besser zurechtkomme :rolleyes: Aber mit der Info... Ich werde es morgen sofort ausprobieren! (LogParser wird selbstverständlich nicht in Vergessenheit geraten) Gruß Micha
  6. So viele Daten im RAM verarbeiten wird zwangsläufig zu einer Memory Exception kommen. LogParser ist eine gute Idee, werde mich mit der SQL-Syntax bzgl. doppelten Datensätzen mal auseinander setzen und hier berichten. Gruß Micha
  7. @blub: Beispiel 2 habe ich schon gefunden. Ergebnis: Allein *.pdf (Spitzenreiter) ergaben ca. 136.000 Dateien :shock: @Dukel: Ich habe das ein oder andere Tool schon ausprobiert; das ein oder andere Tool hat sich aber auch schon gnadenlos aufgehangen. Es ist der Reiz des Selber-Machens. Und es würde mich interessieren, wie es für mich möglich wäre, solche Datenmengen 'selber' zu verarbeiten. Wie gesagt, das Skript ist quasi fertig, aber mit einem so hohen Datenaufkommen wird es leider (mit Excel zumindest) nicht fertig. Gruß Micha
  8. Hallo Community, ich habe ein PS Skript entwickelt, um doppelte Dateien zu finden. Als Basis hierfür wird von jeder Datei ein MD5-Hash errechnet. Das ganze wird in Excel exportiert. Im nächsten Step wird in einer Hilfsspalte eine ZÄHLENWENN-Funktion eingebaut, um die Hashwerte zu zählen. Dies funktioniert auch mit ein paar Tausend Dateien. Allerdings sind bei 65.536 Zeilen Schluss. Auf unserem Fileserver befinden sich aber weit mehr als 500.000 Dateien. Die Zeit und die Rechenleistung sind eher Sekundär von Bedeutung. Hat jemand eine Idee, wie ich das Skript weiterentwickeln bzw. Umfunktionieren kann? Ich bin da für alle Ideen offen! PS: Hier ist das Skript 'einsehbar' Gruß Micha
  9. Wie wärs denn mit: Wie Finden von Windows-Betriebszeit? Gruß Micha
  10. Ist der Domain-Admin in der lokalen Gruppe der Administratoren auf dem Client eingetragen? Das Umbenennen benötigt Admin-Rechte, wenn der Domain-Admin nicht lokal eingetragen ist, hat er nicht das Recht, den PC umzubenennen (korrigiert mich, falls ich falsch liege). Gruß Micha
  11. Hi, ich weiß ja nicht, in wiefern du auf VB angewiesen bist, aber mit der Powershell könnte das was du suchst folgendermaßen aussehen: Get-Eventlog -LogName System | Where-Object {$_.InstanceID -eq 300} | Format-List Diese Zeile gibt dir alle Informationen (Format-List *) aus, die vorhanden sind. Hiermit kannst du dir die Eigenschaften zum jeweiligen Objekt anschauen: Get-Eventlog -LogName System | Where-Object {$_.InstanceID -eq 300} | Get-Member -MemberType Property Beim Ersten Beispiel kannst du statt * bei Format-List die Einzelnen Eigenschaften (die du mit Get-Member) abgerufen hast per Komma getrennt eintragen. Gruß Micha
  12. Ooops, falsche Rubrik. @Mod: Nach "Scripting" verschieben?! :wink2:
  13. Hallo zusammen, ich habe mit der Powershell ein Programm geschrieben um doppelte Dateien zu finden. Das Programm gibt mir in einer Tabelle (Access) den Pfad zur Datei und den MD5-Hash aus. Vorher habe ich das ganze in Excel realisiert und per ZählenWenn-Funktion die Anzahl der jeweiligen Hashwerte ausgegeben. Im Anschluss jede Zeile, in der unter Anzahl eine 1 steht, gelöscht. Auf Grund der Datenmenge (1,2TB / ca. 200.000 Dateien) ist es mit Excel nicht möglich (Maximal 65.536 Zeilen). Der Import in Access funktioniert reibungslos, das Zählen bzw. Aussortieren der Daten jedoch nicht. Hat jemand vielleicht einen Denkanstoß für mich? Gruß Micha
  14. Wäre es dann theoretisch denn nicht möglich das Skript so zu 'übersetzen', dass es ohne Powershell lauffähig wird? Ich weiß, dass es einfacher wäre die PS zu installieren, es geht mit aber nur um das 'theoretische Modell'. Gruß Micha
  15. Hallo Dukel, greifen denn nicht alle CmdLets auf Klassen des .Net Frameworks zu? Get-Childitem greift zum Beispiel auf [system.IO.DirectoryInfo] bzw. [system.IO.FileInfo] zu Get-Childitem | Get-Member ;) By the Way: Es wäre kein Problem die Powershell auf den Systemen zu verteilen, würde mich aber trotzdem interessieren. Gruß Micha
  16. Hallo zusammen, ist es möglich ein Powershell Skript so zu verarbeiten, dass es auf einem Client mit nicht installierter MS Powershell lauffähig ist? AFAIK ist es ja so, dass die Powershell (fast) vollständig über die Klassen des .NET Framework arbeitet, dementsprechend müsste es ja irgendwie machbar sein, wenn auf der Maschine ein vollwertiges .NET Framework installiert ist. Gruß Micha
  17. Bin vor einigen Tagen mal auf diesen Artikel gestoßen, was haltet Ihr denn davon? The Machine SID Duplication Myth Gruß Micha
  18. Wir haben bei einigen Rechnern (Image für Windows 7) mit SysPrep bereits gearbeitet. Den Sinn dahinter habe ich aber nicht ganz verstanden. Soweit ich das mitbekommen habe, haben wir das SysPrep dafür benutzt, um die SID zu ändern, was ich in diesem Fall bereits mit NewSID per Skript mache. (Korrigiert mich, wenn ich falsch liege) Brauche ich dann wirklich noch SysPrep?! Gruß und frohes neues Jahr Micha
  19. Hat sich erledigt, hab mir die Frage quasi selbst beantwortet :o @echo off :start netdom join %computername% /domain:xyz.local /userd:admin /passwordd:* if errorlevel 1 goto fehler echo ERFOLGREICH!!! shutdown -r -f -t 5 pause exit :fehler echo FEHLER!!! goto start So sieht das fertigt Script aus ;) Frohe Feiertage und Guten Rutsch noch...
  20. Hallo zusammen, ich habe mit CloneZilla ein Abbild eines Rechners erstellt. Ich habe einige Scripts geschrieben die mir etwas arbeit abnehmen sollen. Das erste wird über RunOnce in der Registry aufgerufen und schreibt direkt den einen Eintrag für das nächste Script. Ein Script befasst sich damit den Rechner in der Domäne aufzunehmen. ... netdom join %computername% /domain:xyz.local /userd:admin /passwordd:* shutdown -r -f -t 5 ... Das funktioniert auch, wenn man das richtige Passwort eingibt. Wird allerdings das falsche eingegeben, meckert er und fährt mit der Abarbeitung des Scripts fort (Neustart). Gibt es eine Möglichkeit eine Art 'goto' Umleitung einzufügen, wenn das falsche Passwort eingegeben wurde? Frohe Weihnachten... Micha
  21. Hallo zusammen, nachdem ich mich jetzt angefangen habe mich mit Begeisterung mit der Powershell zu beschäftigen, habe ich nun auch schon einige Skritps geschrieben. Zuletzt habe ich mich (unter Anleitung) damit beschäftigt PC's anzupingen: $ping = new-object System.Net.NetworkInformation.Ping $Reply = $ping.send($strComputer) Nun habe ich mir die Klassen beim MSDN mal angeschaut und folgende gefunden: System.net.dns (Dns-Klasse) Versuche ich nun diese Klasse in einem Objekt zu erstellen, bekomme ich folgende Fehlermeldung: PS C:\> $dnsobj = new-object system.net.dns New-Object : Der Konstruktor wurde nicht gefunden. Es kann kein geeigneter Konstruktor für den Typ system.net.dns gefun den werden. Bei Zeile:1 Zeichen:21 + $dnsobj = new-object <<<< system.net.dns + CategoryInfo : ObjectNotFound: (:) [New-Object], PSArgumentException + FullyQualifiedErrorId : CannotFindAppropriateCtor,Microsoft.PowerShell.Commands.NewObjectCommand Kann mit jemand sagen, was ich falsch mache, bzw. wie ich es 'richtiger' machen könnte? Mein Ziel ist es eine Namensauflösung in einem Powershell Skript zu bearbeiten. MfG Micha
  22. Ein Beispiel wäre Get-WMIObject -win32_xyz Hiermit lässt sich ja bekanntlich eine WMI Abfrage durchführen. Ich weiß allerdings nicht, in wiefern der Nutzer damit an Informationen gelangen kann, die für ihn nicht bestimmt sind. Die WMI Abfrage ist auch nur ein Beispiel. Mein Gedanke ist: Wenn der Nutzer WMI Abfragen durchführen kann, wer weiß was er sonst noch mit der Powershell anstellen kann (an den GPO's vorbei) Gruß Micha
  23. Hallo zusammen, nachdem ich jetzt mein erstest 'richtiges' Powershell-Skript fertiggestellt habe und es so funktioniert wie es soll, hab ich mich riesig gefreut! Nun meine Frage: Ist es bedenklich, dass auf einem Client PC die Windows Powershell installiert ist?! Der Standardnutzer kann die Powershell von seinem Arbeitsplatz ja starten. Jetzt ist die Frage ob jemand mit genug Kentnissen Abfragen bzw. Cmdlets starten und auswerten kann, die nicht im Sinne des Admins wären. Zum Netzwerk: - Wir haben eine Domäne, die die Nutzer via GPO in ihrem Handeln einschränkt - 95% der Rechner arbeiten mit Windows XP; die restlichen sind mit Win7 Prof ausgestattet. - Jeder Nutzer ist mit seinem Domänenkonto in der lokalen Gruppe der Hauptbenutzer aufgenommen.
  24. Danke, ich habs jetzt. Der Trick ist den Benutzer in der Form User@Domain anzugeben. Ich habe es mit Domain\User versucht, was nicht funktioniert... Thx ;) Gruß Micha
  25. Hallo zusammen, habe folgendes Problem: Möchte per Batch bestimmte Benutzer der lokalen Administratoren-Gruppe hinzufügen. Hierzu hilft mir bekannterweise folgender Befehl net localgroup administratoren USER /add Folgendes Problem: Der Benutzername, der hinzugefügt werden soll enthält eine Leerstelle; z.B. "Max Mustermann". Durch die erste Leerstelle wird der Rest nicht mehr als Teil des Benutzernames interpretiert. Kann mir da jemand helfen?! PS: Antworten wie: "Leerstellen im Benutzername sind immer schlecht..." kann ich leider nicht gebrauchen, ich kann die Gegebenheiten leider nicht Ändern ;) MfG MichaTo
×
×
  • Neu erstellen...