Welches ist Ihr bevorzugter Powershell-Befehl oder -Skript für die Systemadministration? [geschlossen]

16

Was ist dein oberster Powershell-Befehl? Machen wir eine Liste und stimmen die Besten ab!

Jon Galloway
quelle
@Jon: meintest du "cmdlet"?
dance2die
Sollte als subjektiv markiert werden
halr9000

Antworten:

13

Get-Member ist der König der PowerShell-Cmdlets.

Mit Get-Member können Sie die statischen Elemente von Objekten (Elemente und Typen) (mit der Option -static) interaktiv untersuchen.

Steven Murawski
quelle
5

Ich habe gerne ein Skript, um AD-Benutzer zu finden:

$strFilter = "(&(objectCategory=User)(sAMAccountName=[USERNAME]))";
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher;
$objSearcher.SearchRoot = "LDAP://dc=[AD_Location]";
$objSearcher.Filter = $strFilter;
$objSearcher.SearchScope = "Subtree";
$objSearcher.FindALL()
Eldila
quelle
2
Dies kann in einer Zeile mit den Quest AD-Cmdlets erfolgen - sie sind kostenlos und sehr nützlich! quest.com/activeroles-server/arms.aspx
Doug Chase
1
@Doug Chase Ja, es ist kostenlos, aber einige Organisationen lassen Sie nicht genehmigte Software nicht verwenden, mit wirklich schlechten Vorlaufzeiten für die Genehmigung von Sachen, aber selbst geschriebene Skripte sind sofort verfügbar.
Orihara,
1
Falls dies jetzt jemand sieht und dies für ein gutes Skript hält, können Sie dies mit einem Einzeiler in Powershell 2.0 tun, wenn Sie die RSAT-Tools installiert haben: Get-ADUser -filter 'Name -like "*"'(Ersetzen Sie "Filter" durch was auch immer)
Mark Henderson
3

Ich muss mit der Hilfe gehen. Dieses Cmdlet ist der Schlüssel zum Ermitteln der Funktionalität anderer Cmdlets. Eine knappe Sekunde würde Mitglied werden.

Marcus
quelle
2

Im Moment bin ich ein großer Fan von Get-WMIObject.

Tim Benninghoff
quelle
2

"Test-Path", dies ist nützlich, um zu überprüfen, ob bereits Daten vorhanden sind oder ob ein Standard hinzugefügt werden muss.

Brandan
quelle
1

Für mich - Was ist das nützlichste.

Travis
quelle
-1: -Whatif ist kein Cmdlet, sondern eine Cmdlet-Option.
dance2die
1
er hat gerade "befehl" und nicht cmdlet angegeben
travis 19.05.09
1

CD (Change-Location) - Grundsätzlich kann ich in der Registrierung navigieren, als wäre es ein Dateisystem. Grundsätzlich können Sie dies für alle Powershell-Anbieter tun (von Get-PSProviders zurückgegeben).

cd HKLM:\
dance2die
quelle
1

Keine Frage - Get-Member. Ich kann mir keine PowerShell-Sitzung ohne diese vorstellen. Die Erkennbarkeit ist eine der stärksten Funktionen von Windows PowerShell.

Aleksandar
quelle
1

Dies ist eher eine Technik als ein bestimmtes Cmdlet oder eine bestimmte Funktion, aber meine Lieblings-PS-Sache ist die Objektkonstruktion:

$foo=""|select bar, baz, gronk|ft

gibt Ihnen

bar   baz   gronk
----- ----- ------

Dies ist praktisch, um unstrukturierte Daten für die weitere Verarbeitung in einen Satz von Objekten umzuwandeln.

user2278
quelle
1

Eines meiner liebsten:

Get-Content "c: \ logfile.log" -Warten

Die Powershell-Version von 'tail -f' logfile '

SlinkingAnt
quelle
1
Das scheint bei mir nicht zu funktionieren. Ich habe diesen Befehl für eine CSV-Datei ausgeführt, in die ein anderer Powershell-Befehl Daten geschrieben hat, und er hat die Aktualisierungen der Datei beim Ändern nicht angezeigt, sondern nur die Zeilen der Datei angezeigt, wie sie beim Ausführen des Befehls und dann vorhanden waren habe gerade auf STRG + Pause gewartet.
Chris Magnuson
1

Ich sehe Get-Member aufgelistet, dem ich zustimmen muss, es ist das Beste, aber eine nahe und ebenso notwendige Sekunde für mich ist:

Format-List

Normalerweise verwende ich dies nach einer Pipe, um mir alle Werte der Eigenschaften eines Objekts anzuzeigen:

$SomeObject | fl *

GM wird Ihnen sagen, was das Objekt ist, und die Namen und Typen seiner Eigenschaften auflisten, aber in den meisten Fällen hilft dies Ihnen nicht wirklich zu verstehen, wie diese Eigenschaften verwendet werden, ohne die Dokumentation nachzuschlagen, die langwierig sein kann.

$SomeObject | Format-List * Gibt alle Werte der für das Objekt verfügbaren Eigenschaften aus, sodass Sie die aktuellen Werte anzeigen und nach Eigenschaften suchen können, die Sie auswählen oder zum Filtern von Objekten verwenden möchten.

Ich stelle oft fest, dass ein Objekt mehrere Eigenschaften hat, die basierend auf der Dokumentation so aussehen, als hätten sie die gewünschten Daten, aber in Wirklichkeit hat nur eine der Eigenschaften Daten, oder die Daten in einer von ihnen sind überhaupt nicht so, wie Sie es erwarten würden die Dokumentation allein.

Chris Magnuson
quelle
0

Zusätzlich zu Get-Member würde ich Add-Member und New-Object sagen, die Ihnen die Möglichkeit geben, das Extensible Type System zu verwenden.

Wenn Sie jederzeit Mitglieder zu einem Objekt hinzufügen können, erhalten Sie genau die Informationen, die Sie benötigen, und können diese sortieren, gruppieren, in Scheiben schneiden, in Würfel schneiden, exportieren oder was auch immer Sie damit tun möchten.

Andy Schneider
quelle