Powershell Script als "externes Programm"

Post Reply
User avatar
Thomasgee
Posts: 92
Joined: 03. Mar 2010, 14:51
Contact:

Powershell Script als "externes Programm"

Post by 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: Select all

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 v21.0.0, UEM 2103

benjaminh
Posts: 4
Joined: 07. Dec 2016, 16:39
Contact:

Re: Powershell Script als "externes Programm"

Post by benjaminh » 14. Dec 2016, 11:56

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

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7962
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Powershell Script als "externes Programm"

Post by Hendrik_Ambrosius » 14. Dec 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 Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | 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 or of the support team.

benjaminh
Posts: 4
Joined: 07. Dec 2016, 16:39
Contact:

Re: Powershell Script als "externes Programm"

Post by benjaminh » 15. Dec 2016, 09:35

Danke für die Antwort.

Mein Script sieht bisher so aus:

Code: Select all

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: Select all

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.

Post Reply

Return to “Plattform”

Who is online

Users browsing this forum: No registered users and 2 guests