Mehrere Parameter an ein Script auf Remote Computer übergeben
Hallo ,
Ich komme bei einem Problem nicht so recht weiter.
Ich möchte auf einem Remote-Computer ein Script starten, an das 3 Parameter aus dem aufrufenden Script auf dem Hostcompouter übrgeben werden sollen. Sobald ich bloß einen Parameter verwende, klappt das, aber bei 3 Parametern funktioniert es einfach nicht:
Ich komme bei einem Problem nicht so recht weiter.
Ich möchte auf einem Remote-Computer ein Script starten, an das 3 Parameter aus dem aufrufenden Script auf dem Hostcompouter übrgeben werden sollen. Sobald ich bloß einen Parameter verwende, klappt das, aber bei 3 Parametern funktioniert es einfach nicht:
param (
[Parameter(Mandatory=$true)][String]$new_version,
[Parameter(Mandatory=$true)][String]$customer,
[Parameter(Mandatory=$true)][String]$stage
)
Invoke-Command -ScriptBlock { D:\tools\Apptausch_Citrix.ps1 $args[0] $args[1] $args[2] } -args $new_version,$customer,$stage -ComputerName $Computers -Credential $adminCredential -ErrorAction Stop
A positional parameter cannot be found that accepts argument 'Customer123'.
At D:\powershell_tools\citrix_client_update_trigger.ps1:35 char:5
+ Invoke-Command -ScriptBlock { D:\tools\Apptausch_Citr ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Apptausch_Citrix.ps1], ParameterBindingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Apptausch_Citrix.ps1
+ PSComputerName : 10.32.2.17
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 33118368179
Url: https://administrator.de/contentid/33118368179
Ausgedruckt am: 22.11.2024 um 03:11 Uhr
6 Kommentare
Neuester Kommentar
Tja du liest unsere Posts einfach nicht aufmerksam genug ....haben wir dir schon x mal gezeigt. Wir das geht steht nämlich bereits in den Antworten zu deinem Beitrag hier ...
Mehrere Parameter an zweites Powershell Script übergeben
Aufmerksamkeitsspanne erhöhen!
Immer neue Threads zum selben Thema aufmachen bringt dich nicht weiter. RTFM!
☠️
Mehrere Parameter an zweites Powershell Script übergeben
Aufmerksamkeitsspanne erhöhen!
Immer neue Threads zum selben Thema aufmachen bringt dich nicht weiter. RTFM!
☠️
Offensichtlich hast du es "überlesen" denn sonst hättest du es anders umgesetzt, im Beitrag steht es nämlich auch ganz anders
Ansonsten hast du einen Parameter Definitions Fehler im Skript "Apptausch_Citrix.ps1"
Never ending story ... 💩
Invoke-Command -ScriptBlock {&"D:\tools\Apptausch_Citrix.ps1" -new_version $using:new_version -customer $using:customer -stage $using:stage } -ComputerName $Computer -Credential $adminCredential -ErrorAction Stop
Ansonsten hast du einen Parameter Definitions Fehler im Skript "Apptausch_Citrix.ps1"
Never ending story ... 💩
Die Fehlermeldung sagt es dir doch schon wo du deinen Fehler hast. 😵💫
Da wird dein Skript nicht sehen hast du da einen Fehler bei der übergabe einer Variablen an den Parameter Path gemacht wenn der NULL ist.
https://tio.run/##ZY69DoJAEIT7fYrNxYgmHgp0VhgrW1tDccQTiQd3uR8o1Gc/F4OVxU ...
Cannot bind argument to parameter 'Path' because it is null.
Da wird dein Skript nicht sehen hast du da einen Fehler bei der übergabe einer Variablen an den Parameter Path gemacht wenn der NULL ist.
Ich bin momentan mir sehr vielen Sachen beschäftigt und mache das gerade nur nebenbei am Rande.
Das nennt man dann wohl Administrator Outsourcing ... ☹️https://tio.run/##ZY69DoJAEIT7fYrNxYgmHgp0VhgrW1tDccQTiQd3uR8o1Gc/F4OVxU ...
Ich hole mir meine Remote Infos wie hier z.B. NTFS Berechtigungen so.
Da wird auch ein Pfad bzw. Freigabename aus einem anderen Teil des Skripts das auf meinem Admin Server läuft verwendet.
Hat erst geklappt als ich hier
und das
Da wird auch ein Pfad bzw. Freigabename aus einem anderen Teil des Skripts das auf meinem Admin Server läuft verwendet.
Invoke-Command -Computer $Server -ArgumentList $Share,$NTFS -ScriptBlock{
param($Share,$NTFS)
Get-Acl $Share.Path -ErrorAction SilentlyContinue | select -Expand Access | Where-Object {$_.IdentityReference -Match "Jeder" -or $_.IdentityReference -match "test" -or $_.IdentityReference -match "VORDEFINIERT"}|
% { $Share.Path + "," + $_.IdentityReference + "," + $_.FileSystemRights }
}
Hat erst geklappt als ich hier
-ArgumentList $Share,$NTFS
ScriptBlock{
param($Share,$NTFS) verwendet habe.