PowerShell-Befehl ausführen von Batch

Habe ich das powershell-Befehl, um die whitespace-Zeichen in jedem meiner Exchange-Datenbanken, aber ich kann es nicht ausführen über batch.

Hier ist der shell-Befehl bestätigt arbeiten:

 
get-mailboxdatabase -status | 
  select name, 
     @{Name="DataBaseSize";Expression={ "{0:N2} GB" -f (($_.DatabaseSize.ToBytes()) / 1gb) }},
     @{Name="AvailableNewMailboxSpace";Expression={ "{0:N2} GB" -f(($_.AvailableNewMailboxSpace.ToBytes()) / 1gb) }},
     @{Name="Difference";Expression={ "{0:N2} GB" -f (($_.DatabaseSize.ToBytes() - $_.AvailableNewMailboxSpace.ToBytes()) / 1gb) }}

Hier ist der batch zum ausführen des Shell-Befehls:


C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -command ". 'D:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto;

Ich denke, dass die Zeichen in der shell-Befehl sind nicht zusammen mit der Gruppe und versucht haben "^" Ihnen, wo Sie Versagen. Jede Hilfe würde geschätzt werden. Ich bin ziemlich neu in batch und powershell, so nutzen Sie bitte kleine Worte 🙂

NEUE INFO:
Hi danke für deine Hilfe. Zur Beantwortung Ihrer ersten Frage, warum versuche ich dies mit einem batch ist, denn dies ist nur einer der Schritte, die ich bin versucht zu erreichen. Ich möchte dieses powershell-Befehl für die Ausgabe an .txt-doc, so kann ich dann eine FOR-Schleife gegen Sie und schreiben Sie die Parameter in eine html-Datei, welche dann blat ' ed täglich, um mein IT-team bei der überwachung des Wachstums auf die Leerzeichen. Auch die Fehler-codes, die ich erhalte sind nicht in Bezug auf Ihre Annahmen und ich entschuldige mich für nicht einschließlich Sie. Der Fehlercode den ich bekomme, ist: Unerwartetes token ':N2' in expression oder Anweisung. Wenn ich Sie entfernen ":N2" aus den Befehl, es meckert dann über die 'GB', und schließlich, wenn ich entfernen Sie das "GB" es meckert dann über den Begriff 'DataBaseSize'. Also ich werde versuchen Eure Lösungen hier in den nächsten paar Stunden, ich wollte nur sagen, danke und Sie wissen lassen, die Fehler, die ich sehe.

NEUEN FEHLER:

Nachdem ich es mit Beavels Vorschlag, erhalte ich diese Fehler:

C:\temp2>Leerzeichen.Fledermaus
Der Begriff 'get-mailboxdatabase' wird nicht als name eines cmdlet, funkt
ion, Skriptdatei oder bedienbare Programm. Überprüfen Sie die Schreibweise des namens, oder wenn ein
Pfad eingeschlossen ist, stellen Sie sicher, dass der Pfad korrekt ist und versuchen Sie es erneut.

At C:\temp2\Whitespace.ps1:1 char:20

+ get-mailboxdatabase <<<<  -status |select name, @{Name="DataBaseSize";Express
ion={ "{0:N2} GB" -f (($_.DatabaseSize.ToBytes()) / 1gb) }}, @{Name="AvailableN
ewMailboxSpace";Expression={ "{0:N2} GB" -f(($_.AvailableNewMailboxSpace.ToByte
s()) / 1gb) }}, @{Name="Difference";Expression={ "{0:N2} GB" -f (($_.DatabaseSi
ze.ToBytes() - $_.AvailableNewMailboxSpace.ToBytes()) / 1gb) }}
+ CategoryInfo          : ObjectNotFound: (get-mailboxdatabase:String) [],
CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Ist es, die sich über den Begriff zu bekommen-mailboxedatabase dies ist jedoch ein CDMLET. Ugh....

JOESPH

C:\temp2>. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps
1'
'.' ist nicht als ein interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

C:\temp2>Connect-ExchangeServer -auto
"Connect-ExchangeServer' ist nicht als ein interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

C:\temp2>$properties = @(
'$'Immobilien' ist nicht als ein interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

C:\temp2>"name"
'"name"' ist nicht als ein interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.
'{Name' wird nicht als interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.
'{Name' wird nicht als interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.
'{Name' wird nicht als interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

C:\temp2># möchten Sie vielleicht, um diese Datei auf einem Datei-server irgendwo
'#' wird nicht als interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

C:\temp2>$Dateipfad = "\server\share\Some\Path\To\File.html"
'$Dateipfad' ist nicht als ein interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

C:\temp2>$data = Get-mailboxdatabase -status | select $properties | sort-obj
ect-name | ConvertTo-Html | Set-Content $Dateipfad -
'$Daten' ist nicht als ein interner oder externer Befehl,
betriebsbereiten Programm oder batch-Datei.

Ich kann nur diese Datenbank offline, und führen Sie eine Defragmentierung der Speicherplatz. Anstatt zu versuchen, zu überwachen, ihn von dieser verrückten Idee.

InformationsquelleAutor Eddie.Brown | 2013-11-13
Schreibe einen Kommentar