Powershell Script als "externes Programm"

Antworten
Benutzeravatar
Thomasgee
Beiträge: 82
Registriert: 03. Mär 2010, 14:51
Kontaktdaten:

Powershell Script als "externes Programm"

Beitrag von Thomasgee » 26. Nov 2015, 14:07

Hallo,

ich habe ein Powershell Script, welches mir über die Api eine "zusätzliche Information" als Variable des Computers schreibt.
Funktioniert soweit wunderbar, wenn ich es aus einem Powershell Fenster starte.

Starte ich das Script aber als externes Programm über die EMC, dann beendet sich das Script mit der Fehlermeldung:
Open-Matrix42ServiceConnection : Die Benennung
"Open-Matrix42ServiceConnection" wurde nicht als Name eines Cmdlet, einer
Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt.
Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist
(sofern enthalten), und wiederholen Sie den Vorgang.
Die SDK ist installiert, funktioniert auch wenn ich das Script über Powershell oder Powershell ISE laufen lasse.

Wo ist der Unterschied in den Aufrufen?

Script:

Code: Alles auswählen

param([string]$ComputerName,
    [string]$Server="it-empirum",
    [string]$User="ads\empirum.admin",
    [string]$PW="password",
    [string]$Value="Office_Lic",
    [string]$CustomVar="Custom08")


$Empirum=Open-Matrix42ServiceConnection -ServerName $Server -Port 9200 -UserName $User -Password $PW

$Computer=$Empirum.Computers | where{$_.Name -eq $ComputerName}
$Custom01=Get-EmpirumProperty -Session $Empirum -TargetObject $Computer -Property $CustomVar
set-EmpirumProperty -Session $Empirum -TargetObject $Computer -Property $Value -Value $Custom01
Thomas Günter

Sys-Admin

Empirum v16.1.3

benjaminh
Beiträge: 4
Registriert: 07. Dez 2016, 16:39
Kontaktdaten:

Re: Powershell Script als "externes Programm"

Beitrag von benjaminh » 14. Dez 2016, 11:56

Hallo.
Ich habe aktuell genau das gleiche Problem. Haben Sie damals eine Lösung gefunden?
Viele Grüße,
Benjamin H.

Benutzeravatar
Hendrik_Ambrosius
Moderator
Moderator
Beiträge: 7409
Registriert: 13. Dez 2004, 23:10
Wohnort: Adendorf/Lüneburg

Re: Powershell Script als "externes Programm"

Beitrag von Hendrik_Ambrosius » 14. Dez 2016, 14:36

Sie müssen dann erst mal das Empirum Modul importieren damit die Befehle bekannt sind:
Import-Module Matrix42.SDK.Empirum.PowerShell
ggf. noch mit einem Pfad davor wenn er das Modul nicht so findet.
Hendrik Ambrosius / Senior Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 AG | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 AG or of the support team.

benjaminh
Beiträge: 4
Registriert: 07. Dez 2016, 16:39
Kontaktdaten:

Re: Powershell Script als "externes Programm"

Beitrag von benjaminh » 15. Dez 2016, 09:35

Danke für die Antwort.

Mein Script sieht bisher so aus:

Code: Alles auswählen

Param (
    [Parameter(Mandatory=$true)][String]$Computername,
    [Parameter(Mandatory=$true)][String]$Zuweisungsgruppe
)

Import-Module Matrix42.SDK.Empirum.Powershell

$ServerName = 'hahnsoft01.peterhahn.local'
$Port = 9200
$UserName = 'hahndom\empirum.service'
$Password = '***********************'

$session = Open-Matrix42ServiceConnection -ServerName $ServerName -Port $Port -UserName $UserName -Password $Password

$computer = $session.Computers | Where{ $_.Name -eq "$Computername" }
$group = $session.groups  | Where{ $_.Name -eq "$Zuweisungsgruppe" -and $_.GroupType -eq "AssignmentGroup" }

# Add the computer to the group
Add-EmpirumComputerToGroup -Session $session -Computer $computer -Group $group -Verbose

# Activate the computer (-Flags Software,OS,PXE)
Invoke-EmpirumComputerActivation -Session $session -Computer $computer -Flags Software -Verbose
Laut der Fehlermeldung erkennt er auch das "Param" nicht.
Fehlermeldung:

Code: Alles auswählen

Die Benennung "param" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.Der Typ "Matrix42.SDK.Contracts.Models.EmpirumGroupTypes" in der Assembly "Matrix42.SDK.Contracts, Version=1.0.164.0, Culture=neutral, PublicKeyToken=null" konnte nicht geladen werden.Die Benennung "Open-Matrix42ServiceConnection" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.Die Benennung "Add-EmpirumComputerToGroup" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.Die Benennung "Invoke-EmpirumComputerActivation" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.

Antworten

Zurück zu „Plattform“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste