Lancer une session PowerShell à distance à l'aide d'un fichier ps1 enregistré

15

J'essaie de créer quelques fichiers que je peux enregistrer sur mon bureau local pour lancer des sessions PowerShell.

Windows Server 2008 et Windows Server 2012 sont tous deux des installations Server Core.

Actuellement, je peux ouvrir Powershell et taper:

Enter-PSSession -computername Win2012SrvCore -credential administrator

En utilisant cela, je peux me connecter et exécuter des commandes et tout va bien.

Ce que j'ai essayé de faire, c'est:

Créez un fichier appelé Win2012SrvCore1.ps1avec les éléments suivants:

$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd

$session = new-pssession -computername Win2012SrvCore -credential $cred

Créez un fichier appelé Win2012SrvCore2.ps1avec les éléments suivants:

PowerShell.exe -Command Enter-PSSession -computername Win2012SrvCore -credential administrator

Chaque ps1fichier se lancera et se fermera rapidement avec du texte rouge que je ne peux pas lire.

J'ai essayé d'ajouter PAUSEà chaque script mais cela ne semble pas empêcher la fermeture de la fenêtre.

Ce que je voudrais faire, c'est créer des scripts que je peux double-cliquer et ouvrir à l'invite PowerShell, semblable à une session RDP enregistrée.

J'ai configuré les fichiers ps1 pour exécuter:

C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe

Toute aide serait grandement appréciée.

Anthony Fornito
la source
Que se passe-t-il si vous tapez manuellement ceci dans l'ISE ligne par ligne, commande par commande? Avez-vous toujours une erreur?
Colyn1337
J'ouvrirais Powershell ISE (Integrated Scripting Environemt) et exécuterais le script. Cela affichera la sortie et vous permettra de poursuivre le dépannage.
BRNDR du

Réponses:

10
$passwd = convertto-securestring -AsPlainText -Force -String MYPASSWORD

$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist "administrator",$passwd

$session = new-pssession -computername Win2012SrvCore -credential $cred

Ajoutez une ligne supplémentaire:

Import-PSSession $session

Enregistrez ensuite le fichier .PS1 et créez-y un raccourci sous powershell.exe -noexit -File "C:\PS.ps1".

Le nettoyeur
la source
12

ajouter `-noexit '

PowerShell.exe -noexit -Command Enter-PSSession -computername Win2012SrvCore -credential administrator

Craig
la source
9

Essayez d'enregistrer vos commandes en tant que fichier de script, puis utilisez vos raccourcis en ligne de commande:

powershell.exe -noExit <filename.ps1>

Vos raccourcis exécuteront le fichier de script spécifié et ne quitteront pas powershell à la fin de l'exécution des scripts, vous pourrez donc continuer à utiliser la fenêtre une fois la session établie.

Pour que cela fonctionne, vous devez vous assurer que la stratégie d'exécution PowerShell n'est pas restreinte, sinon aucun fichier de script ne peut être exécuté

Pour vérifier la stratégie d'exécution actuelle, vous pouvez utiliser Get-ExecutionPolicyet vous pouvez soit utiliser Set-ExecutionPolicypour modifier la stratégie de façon permanente, soit ajouter le -ExecutionPolcyparamètre à la ligne de commande powershell pour le modifier pour une seule session.

Pour plus d'informations sur les politiques d'exécution et leur impact, utilisez la help about_Execution_Policiescommande.

Crippledsmurf
la source