2013-08-26 4 views
22

Sto cercando un modo per eseguire solo un paio di comandi di PowerShell dal prompt dei comandi. Non voglio creare uno script per questo poiché sono solo un paio di comandi che devo eseguire e poiché non so davvero come scrivere script con PowerShell.Eseguire il comando PowerShell dal prompt dei comandi (senza script ps1)

Ecco il comando che sto cercando di utilizzare per iniziare con:

Get-AppLockerFileInformation -Directory <folderpath> -Recurse -FileType <type> 

Non voglio davvero creare uno script per questo, come sarebbe molto più facile se posso solo eseguire uno o due comandi da un file batch con il resto del materiale.

MODIFICA: Ecco cosa ho provato finora.

1)

powershell -Command "Get-AppLockerFileInformation....." 
Error: The term 'Get-AppLockerFileInformation is not recognized as the name of a cmdlet, function, script file, or operable program.... 

2)

powershell -Command {Get-AppLockerFileInformation.....} 

Nessun errore con questo modo, ma non ho ricevuto nulla in cambio. Se uso lo Set-AppLockerPolicy... non succede nulla.

3)

powershell -Command "{Get-AppLockerFileInformation.....}" 
Error: The term 'Get-AppLockerFileInformation is not recognized as the name of a cmdlet, function, script file, or operable program.... 

4)

powershell -Command "& {Get-AppLockerFileInformation.....}" 
Error: The term 'Get-AppLockerFileInformation is not recognized as the name of a cmdlet, function, script file, or operable program.... 

5)

powershell "& {Get-AppLockerFileInformation.....}" 
Error: The term 'Get-AppLockerFileInformation is not recognized as the name of a cmdlet, function, script file, or operable program.... 

6)

powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command {Get-AppLockerFileInformation....} 

Nessun errore ma non succede nulla.

7)

powershell -ExecutionPolicy Bypass -NoLogo -NoProfile -Command "Get-AppLockerFileInformation...." 

Nessun errore, ma non succede nulla.

+1

Da un lato si dice " Non voglio davvero creare una sceneggiatura "e d'altra parte dici" se posso solo eseguire uno o due comandi da un file batch ". Quindi: che cos'è ??? – djangofan

+0

Dovrei chiarire, non voglio creare uno script PowerShell. –

+0

E 'Get-AppLockerFileInformation' funziona bene quando si esegue da un nuovo prompt di PowerShell fresco e pulito? Quale sistema operativo? (testato Get-App .. in Win7 e in questo caso non esiste un cmdlet di questo tipo in modo da ottenere lo stesso messaggio di errore) – NiKiZe

risposta

38

Ecco la solo rispondere che è riuscito a lavorare per il mio problema , capito con l'aiuto della pagina web this (bella referenza).

powershell -command "& {&'some-command' someParam}" 

Inoltre, ecco un modo pulito per fare più comandi:

powershell -command "& {&'some-command' someParam}"; "& {&'some-command' -SpecificArg someParam}" 

Ad esempio, questo è come mi sono imbattuto miei 2 comandi:

powershell -command "& {&'Import-Module' AppLocker}"; "& {&'Set-AppLockerPolicy' -XmlPolicy myXmlFilePath.xml}" 
+1

Ecco un altro trucco utile, è possibile eseguire uno script ps1 dal prompt dei comandi e passare args in questo modo: 'powershell. exe -File "C: \ myfile.ps1" arg1 arg2 arg3' o 'powershell.exe -File" C: \ myfile.ps1 "-Some-Command arg1 -Another-Command arg2' –

+2

Il comando' powershell -command "& {& 'Import-Module' AppLocker} "; "& {& 'Set-AppLockerPolicy' -XmlPolicy myXmlFilePath.xml}" "esegue questi 2 comandi PS in sessioni PS separate, vale a dire non è applicabile Se è necessario condividere alcune variabili tra 2 comandi. La soluzione è la seguente: 'powershell -command 'e {$ someVar =' test '; &' Write-Host '$ someVar}" ' –

+0

@Maciej Non penso che venga eseguito in diverse sessioni PS altrimenti la seconda parte di questo comando specifico fallirebbe dal momento che ho bisogno di quel modulo caricato dalla prima parte del comando. Non sono d'accordo. Ma, se necessario, potrebbe esserci un certo valore nella condivisione delle variabili, come si cita. –

1

Forse powershell -Command "Get-AppLockerFileInformation....."

Date un'occhiata a powershell /?

+0

Questo è quello che sto provando ma non mi sembra di ottenere il sintassi abbastanza giusta o qualcosa del genere. Quando eseguo il comando direttamente dal PowerShell funziona bene però ... –

+0

Ok, hai qualche errore o qualcos'altro? Modifica la tua domanda e fornisci ulteriori informazioni. Cosa hai provato e cosa non funziona, ecc. – NiKiZe

+0

Vedi la mia modifica qui sopra. –

6

eseguirlo su un'unica riga di comando in questo modo:

powershell.exe -ExecutionPolicy Bypass -NoLogo -NonInteractive -NoProfile 
    -WindowStyle Hidden -Command "Get-AppLockerFileInformation -Directory <folderpath> 
    -Recurse -FileType <type>" 
+0

Non appena avrò la possibilità, proverò a farlo. Sembra che ci siano molti flag in là, sarebbe lo stesso se voglio usare Set-AppLockerPolicy e New-AppLockerPolicy? –

+0

Questo non ha funzionato, per non parlare del flag -WindowStyle che chiude il mio prompt dei comandi ... Inoltre, non ho bisogno del flag ExecutionPolicy poiché sto usando direttamente la riga di comando. –

+0

Sì, alcune opzioni probabilmente non sono necessarie. Basta modificare a seconda di ciò che ti serve. Maggiori informazioni qui: http://zduck.com/2012/powershell-batch-files-exit-codes/ – djangofan