Benutzer mit den meisten Antworten
Fehler psc1 Datei

Frage
-
Guten Morgen,
ich habe hier einen Microsoft Exchange Server 2010 mit einigen Benutzern. Die Umgebung ist für Schulische test zwecke virtualisiert. Ich habe immer eine Auswertung über die Exchange Management Shell gemacht mit dem Befehl "get-mailboxstatistics", um den Wachstum meines eigenen Postfaches zu überwachen. Ich möchte den Ablauf gerne automatisieren und dachte eben an eine Batchlösung. Jedoch laß ich immer in Foren von psc1 Datein die irgendwie aus der Shell exportiert werden müssen und diese kann ich dann per Batchscript starten und bekomme in der Console meine Auswertung, die ich dann als Textdatei speichern kann.
Der Befehl der in der CMD-Console dann abgesetzt wird lautet: PowerShell.exe -PSConsoleFile "C:\auswertung.psc1" > C:\auswertung.txt
In der psc1 Datei befindet sich der Script für die Exchange Management Shell: get-mailboxstatistics (parameter)
Nun bin ich ein Newcommer und habe von manchen dingen noch nicht so viel Ahnung. Mein Resultat ist eine Fehlermeldung: Fehler beim Laden der Windows PowerShell-Konsolendatei "C:\tmp\auswertung\auswertung.psc1": Ungültig auf der obersten Ebene im Dokument.
Jetzt frage ich mich, was in der auswertung.psc1 Datei falsch ist oder wo sonst mein Fehler liegt.
- Verschoben Denniver ReiningMVP Dienstag, 4. September 2012 09:24 Exchange :) (aus:Windows PowerShell)
Antworten
-
Hi Der Hirte,
Muss ich noch irgendeine Datei vorher laden damit der Befehl in der CMD-COnsole erkannt wird oder kann ich den Befehl garnicht ausführen da er kein Bestandteil der Cmdlet Funktionen ist?
Ja du musst das Snapin laden, damit er die Befehle kennt - einfach in die PS1 eintragen:
#Exchange Server 2010 Management Shell laden
if (-not (Get-PSSnapin | Where-Object {$_.Name -like "Microsoft.Exchange.Management.PowerShell.E2010"})){Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010}Start die normal Shell - da gibt es auch keine Exchangebefehle...
Viele Grüße
Christian- Als Antwort markiert Der Hirte Donnerstag, 6. September 2012 15:23
Alle Antworten
-
Moin,
eine Consolen-Datei ist ein Script in einem bestimmten Format. Das brauchst Du an der Stelle aber nicht.
Mach es Dir einfach:
Aus:
PowerShell.exe -PSConsoleFile "C:\auswertung.psc1" > C:\auswertung.txt
Wird:
PowerShell.exe -Command "C:\auswertung.ps1" > C:\auswertung.txt
Und Dein Script wird in *.ps1 umbenannt.
Allerdings:
- Du solltest noch den Schalter "-NonInteractive" anfügen, wenn Du das Script wirklich vollautomatisch laufen lassen willst
- Die Ausgabe kann man schöner als mit "> C:\auswertung.txt" umlenken
Grüße aus Berlin schickt Robert
MVP Exchange Server -
Danke für die Hilfe. Ich bin einen großen Schritt weiter gekommen. Die ps1 Datei scheint er zu finden, jedoch bekomme ich bei dem Ausführen über die CMD-Console folgende Fehlermeldung:
Die Benennung "get-mailboxstatistics" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausfhrbaren Programms erkannt. šberprfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang. Bei C:\auswertung\auswertung.ps1:1 Zeichen.
Jedoch wundert mich, dass wenn ich den Befehl von der ps1 eins zu eins kopiere, er unter der Exchange Managment Shell funktioniert.
Muss ich noch irgendeine Datei vorher laden damit der Befehl in der CMD-COnsole erkannt wird oder kann ich den Befehl garnicht ausführen da er kein Bestandteil der Cmdlet Funktionen ist?
-
Hallo,
vielleicht hilft dir das weiter:
http://technet.microsoft.com/en-us/library/bb123798.aspx;)
Gruß Norbert
-
Hi Der Hirte,
Muss ich noch irgendeine Datei vorher laden damit der Befehl in der CMD-COnsole erkannt wird oder kann ich den Befehl garnicht ausführen da er kein Bestandteil der Cmdlet Funktionen ist?
Ja du musst das Snapin laden, damit er die Befehle kennt - einfach in die PS1 eintragen:
#Exchange Server 2010 Management Shell laden
if (-not (Get-PSSnapin | Where-Object {$_.Name -like "Microsoft.Exchange.Management.PowerShell.E2010"})){Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010}Start die normal Shell - da gibt es auch keine Exchangebefehle...
Viele Grüße
Christian- Als Antwort markiert Der Hirte Donnerstag, 6. September 2012 15:23