Jump to content

MichaTo

Members
  • Gesamte Inhalte

    61
  • Registriert seit

  • Letzter Besuch

Beiträge erstellt 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. 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

  3. @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

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

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

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

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

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

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

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

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

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

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