2017-02-24 2 views
1

Ich möchte einen Befehl auf einem Remote-Server aufrufen, ich möchte nicht das Kennwort eingeben müssen, um das Skript auszuführen. Ich habe versucht, das Passwort zu verschlüsseln und es in einer TXT-Datei zu speichern. HierInvoke-Befehl mit -credentials

$username = "Mydomain\service.account" 
$password = cat C:\username-password-encrypted.txt | convertto-securestring 
$cred = new-object -typename System.Management.Automation.PSCredential - argumentlist $username, $password 
Invoke-command $cred -Computer myserver -scriptblock {param([string]$LocalUser); Add-PSSnapin Citrix* ; Get-BrokerSession -max 10000 | Where-Object brokeringusername -eq "mydomain\$($LocalUser)" | Stop-BrokerSession} -ArgumentList $user 

ist der Fehler bekomme ich

Invoke-Command : A positional parameter cannot be found that accepts argument 'System.Management.Automation.PSCredential'. 
At \\uncpath\citrix\Installation Media\Citrix\Ticketing_script\Ticketing_Script - Copy (3).ps1:70 char:1 
+ Invoke-command $cred -Computer MyServer -scriptblock {param([s ... 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidArgument: (:) [Invoke-Command], ParameterBindingException 
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.InvokeCommandCommand 

Es muss einen einfacheren Weg, um diesen Befehl auf myserver auszuführen, ohne jedes Mal das Kennwort setzen zu müssen.

+0

den Raum entfernen zwischen - und argumente in Zeile 3 –

+0

Als ich tue, dass es nicht liest mehr in dem creds des Benutzers das ist das Skript ausgeführt wird. – user770022

Antwort

0

Sie müssen nur die -Credential Parameter angeben:

Invoke-command -Credential $cred -Computer myserver -scriptblock {param([string]$LocalUser); Add-PSSnapin Citrix* ; Get-BrokerSession -max 10000 | Where-Object brokeringusername -eq "mydomain\$($LocalUser)" | Stop-BrokerSession} -ArgumentList $user 
+0

Ich habe versucht, dass Hier ist der Fehler, den ich bekomme, wenn ich die -Credential New-Objekt hinzufügen: Kann keine Überladung für "PSCredential" und das Argument count: "2". Unter \\ MeineDomain \ Citrix \ Installation Medien \ Citrix \ Ticketing_script \ Ticketing_Script.ps1: 110 Zeichen: 9 + $ Cred = New-Objekt System.Management.Automation.PSCredential ($ Userna ... + ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ + CategoryInfo: InvalidOperation: (:) [Neues Objekt], MethodeException + FullyQualifiedErrorId: ConstructorInvokedThrowException, Microsoft.PowerShell.Commands.NewObjectCommand – user770022

Verwandte Themen