Enter-PSSession dans un script ne fait pas ce que j'attends – il s'exécute sur une machine locale au lieu de la distance

La command "CD" dans le script ci-dessous s'exécute sur une machine locale plutôt que sur une télécommand. Qu'est-ce qui ne va pas?

Add-PSSnapin Windows.ServerBackup -ErrorAction SilentlyContinue set-item wsman:\localhost\Client\TrustedHosts -value 81.xxx.xx.xx $WBResult = $WBSummary.LastBackupResultHR $WBErrorMsg = $WBJob.ErrorDescription + "`n" + $WBSummary.DetailedMessage $User = "administrator" $File = "C:\Users\jsapsford\Desktop\Password.txt" $cred = New-Object -TypeName System.Management.Automation.PSCredential ` -ArgumentList $User, (Get-Content $File | ConvertTo-SecureSsortingng) If ($WBResult -eq 0) { $WBResult = "Successful"} Else {$WBResult = "Failed"} if ($WBResult -eq "Succesful") {$text = 'document.write("Succesful");'} Else {$text = 'document.write("Failed");'} $serverconnection = New-PSSession -ComputerName 81.xxx.xx.xx -Credential $cred Enter-PSSession -Session $serverconnection cd C:\website\ $text | Out-File 'company.txt' 

Fondamentalement, ce que j'essaie de faire est de se connecter à un server en utilisant le powershell à distance, il est alors censé créer un CD vers C: \ et créer un file appelé company.txt, mais ce qui se passe, c'est qu'il exécute le cd C:\website et $text | Out-File 'company.txt' $text | Out-File 'company.txt' sur la machine locale, je suis en train d'exécuter le script à partir de la machine distante. Quelqu'un sait-il pourquoi?

2 Solutions collect form web for “Enter-PSSession dans un script ne fait pas ce que j'attends – il s'exécute sur une machine locale au lieu de la distance”

Enter-PSSession est généralement pour l'utilisation interactive de la command line. Pour les appels distants scripts, il existe deux templates principaux de remixage PowerShell avec Invoke-Command .

Invoke-Command -ComputerName ... -ScriptBlock { ... } est bon pour les appels ponctuels. Notez le -computername . L'utilisation de ce model d'argument supporte le coût de la configuration et de la déchirure de la connection et de l'authentification avec chaque appel. Il est pratique que vous ne devez pas vous callbacker de nettoyer tout.

Passer à New-PSSession comme dans votre question d'origine donne une connection plus persistante qui peut être réutilisée à plusieurs resockets, en spécifiant -Session place de ComputerName . Pour une bonne hygiène des ressources, vous voudrez supprimer la session après avoir terminé. J'utilise généralement un model try/finally .

Dans les deux cas, faites votre travail dans ScriptBlock . Vous pouvez utiliser $using:text | Out-File c:\website\company.txt $using:text | Out-File c:\website\company.txt à l'intérieur du bloc. Le qualificatif de scope d' using vous permet de faire reference à des variables à partir de votre context d'appel.

désolé, ce sera une petite réponse, mais j'ai fini par démanteler tout et recommencer, au lieu de créer la variable puis de la transporter, elle crée maintenant le file text sur la machine locale puis la transfère à la server via FTP manière beaucoup plus facile de le faire. Si vous voulez que je télécharge le code que j'utilise, je le ferai, mais jusqu'à ce que l'intérêt soit montré, laissez-le pour l'instant. Merci à tous pour notre aide

  • Windows Server 2012 R2 Essentials peut-il être déployé comme autonome (pas dans un domaine)?
  • Est-il possible d'appliquer une stratégie de groupe pour le même user connecté à différents ordinateurs?
  • Hébergement d'un Odoo 9 sur site avec Hyper V - Problèmes de security
  • Conversion de Windows 2012 R2 d'Hyper-V en KVM (qemu)
  • Empêcher les users de RD de stocker un mot de passe dans WebAccess (RdWeb)?
  • Remote PowerShell, WinRM Failures: WinRM ne peut pas terminer l'opération
  • Configurez NLA pour ne pas utiliser la vérification des informations d'identification côté client
  • "L'opération demandée nécessite une élévation" lors de la gestion des imprimantes
  • Windows Server 2012 R2 perd des imprimantes partagées en réseau
  • SERVER2012 R2 Accès Core refusé lors du deployment d'un controller de domaine à partir du système distant
  • SBS 2011 to Server 2012 R2 Essentials
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.