Per prima cosa, consiglio VELOCE di utilizzare l'ISE di Windows PowerShell per la scrittura degli script. È gratuito e offre un'esperienza di console/editor piuttosto decente, dato che è gratuito (ci sono presumibilmente i migliori là fuori, ma questo ha sempre funzionato bene per me). Io uso Visual Studio per altre cose, e mentre è un prodotto ESPONENTIMENTE migliore (e dovrebbe essere), il PowerShell ISE è piuttosto ricco di funzionalità.
Successivamente, se si sta appena iniziando, è necessario consultare il libro "Impara PowerShell 3.0 di Don Jone in un mese di pranzi". Sono due versioni dietro la più recente, tuttavia, tutte le informazioni sono ancora rilevanti e una volta che hai finito il libro, sarai in grado di cercare aiuto per qualsiasi altra cosa abbastanza facilmente da solo. Copre tutte le nozioni di base ed è un ottimo primo passo per imparare la lingua.
Ora, per rispondere alla domanda: gli script PowerShell hanno generalmente l'estensione di file .ps1. Altre estensioni sono generalmente utilizzate per i moduli (.psm1) o altri contenuti di supporto utilizzati da Windows PowerShell. Per la maggior parte delle cose, ti atterrai a .ps1 e, quando avrai raggiunto un punto in cui inizi a richiedere le altre estensioni, sospetto che non avrai problemi a identificare quelli che ti servono.
Esistono due modi in genere per chiamare uno script PowerShell. Il primo proviene da un normale prompt dei comandi e comunica a PowerShell di eseguire lo script. Questo è mostrato di seguito:
powershell.exe -File MyScript.ps1
Ci sono alcuni parametri aggiuntivi che ti consiglio di utilizzare, ma l'utilizzo dipende dalle tue esigenze. Ecco quello che ho di solito tag su mia:
powershell.exe -NoProfile -ExecutionPolicy RemoteSigned -File MyScript.ps1
Questo vi dirà il processo di PowerShell per ignorare qualsiasi PowerShell profili è stata impostata, che è l'ideale se si dispone di un sacco di roba nel tuo profilo script che fa le cose come lettura input della console (per la tua situazione attuale, assumerò che tu non lo faccia, ma potresti farlo in futuro). L'altro è quello ExecutionPolicy: RemoteSigned comunicherà a PowerShell di ignorare sostanzialmente tutto ciò che è stato scaricato dagli interwebs, ma di consentire l'esecuzione gratuita di qualsiasi elemento originario all'interno della rete. Probabilmente non è la procedura migliore, ma questa non è una politica TERRIBILE se puoi avere fiducia che il tuo repository è protetto.In caso contrario, optare per qualcosa di più stretto di questo (è possibile leggere le politiche di esecuzione digitando "Get-Help about_Execution_Policies" nel prompt di PowerShell o visitando la pagina TechNet su di essi - il contenuto dovrebbe essere simile se non identico) .
Il secondo modo proviene da uno script di Windows PowerShell. In realtà è molto più facile da fare. Si noti che è necessario impostare il criterio di esecuzione su qualcosa che consenta l'esecuzione degli script, ma in seguito, si sta navigando lentamente.
. .\MyScript.ps1
Questo è chiamato "dot-sourcing" il tuo script. Il vantaggio di farlo all'interno di Windows PowerShell è che se si ha qualcosa di simile a uno script pieno di funzioni, vengono aggiunti all'ambito corrente (Get-Help about_Scopes), il che significa che sono ora disponibili nella sessione corrente. Un buon esempio sarebbe la definizione di una funzione chiamata "Test-DomainConnection" in uno script distribuito con il tuo script principale: dovresti dot-source lo script che è distribuito con quello principale (questo viene fatto solitamente quando separi lo "standard" "PowerShell funziona dal tuo script principale), quindi usa le funzioni nello script principale. Ci sono pro e contro a questo approccio, ma sembra essere generalmente raccomandato (potrebbero esserci alcune estensioni di community che rimuovono la necessità di gestirlo manualmente).
Per ulteriori informazioni, è possibile chiamare Get-Help about_Scripts dall'interno di Windows PowerShell. Poiché stai utilizzando Windows 10, potrebbe essere necessario eseguire Update-Help da una finestra di PowerShell amministrativa prima che il contenuto della guida sia disponibile sul sistema locale.
Se avete altre domande, sentitevi liberi di inviarmi messaggi :) Ho fatto PowerShell per un po 'e potrei essere in grado di dare una mano.
Il messaggio di errore che hai postato non corrisponde ai comandi dichiarati in esecuzione ('./Test.ps1.txt' vs.'./Test.ps1'). Inoltre, i file .txt dovrebbero essere associati a Blocco note e dovrebbero essere automaticamente aperti con quel programma, a meno che non si sia incasinato qualcosa. Assicurati che lo script sia presente nella directory corrente quando provi ad eseguirlo tramite './Test.ps1'. –