Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

PowerShell Script starten mit externen CMDlets

Frage Entwicklung

Mitglied: Raducanu

Raducanu (Level 1) - Jetzt verbinden

23.11.2011 um 11:42 Uhr, 6439 Aufrufe, 1 Kommentar

Guten Tag,

ich bin absolute unerfahren was PowerShell betrifft, muß aber ein Problem lösen.
Hier hoffe ich auch eure Hilfe.

Problem:

Software welches eigene CMDlets mitbringt (DataCore SANsymphony-V). Diese CMDlets sollen aus einer Batchfile genutzt werden (werden aus einem Program angestartet welches nur *.bat oder *.exe Dateien ausführen kann -> APC PowerChute Network Shutdown)

Wenn ich die Powershell der Software starte (powershell.exe mit .ps1 Konfigscript zum registrieren der CMDlets) und dort die Befehle bzw meine *.ps1 ausführe funktioniert alles wunderbar.
01.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe  -c ". \"C:\Program Files\DataCore\SANsymphony\Register-DcsCmdlets.ps1\""
Die Register-DcsCmdlets.ps1 sieht wie folgt aus:

01.
param([ScriptBlock]$scriptBlock, [switch]$forceExit, [string[]]$params) 
02.
 
03.
$configurationPath = $Env:TEMP | Join-Path -ChildPath ([Guid]::NewGuid()) 
04.
New-Item -Path $configurationPath -ItemType Container > $null 
05.
@" 
06.
<?xml version="1.0" encoding="utf-8" ?> 
07.
<configuration> 
08.
    <startup useLegacyV2RuntimeActivationPolicy="true"> 
09.
        <supportedRuntime version="v4.0"/> 
10.
        <supportedRuntime version="v2.0.50727" /> 
11.
    </startup> 
12.
</configuration> 
13.
"@ | Set-Content -Path $configurationPath\powershell.exe.activation_config -Encoding UTF8 
14.
 
15.
$envVariableName = 'COMPLUS_ApplicationMigrationRuntimeActivationConfigPath' 
16.
$envVariableOld = [Environment]::GetEnvironmentVariable($envVariableName) 
17.
[Environment]::SetEnvironmentVariable($envVariableName, $configurationPath) 
18.
 
19.
$importCmdletBlock = {  
20.
	$bpKey = 'BaseProductKey' 
21.
    	$regKey = get-Item "HKLM:\Software\DataCore\Executive" 
22.
    	$strProductKey = $regKey.getValue($bpKey) 
23.
    	$regKey = get-Item "HKLM:\$strProductKey" 
24.
    	$installPath = $regKey.getValue('InstallPath') 
25.
	 
26.
	Import-Module "$installPath\DataCore.Executive.Cmdlets.dll" -DisableNameChecking -ErrorAction Stop 
27.
	Write-Host "Successfully registered SANsymphony-V Cmdlets for Windows PowerShell." 
28.
29.
 
30.
try 
31.
32.
    Cls 
33.
34.
catch 
35.
36.
    # Nothing to do. This will throw an exception only when it is called 
37.
    # without a console. 
38.
39.
 
40.
try 
41.
42.
	if ($scriptBlock -ne $null) 
43.
44.
		$finalBlockString = $importCmdletBlock.ToString() + "`n" + $scriptBlock.ToString() 
45.
		$finalBlock = [scriptblock]::Create($finalBlockString) 
46.
 
47.
		if ($forceExit) 
48.
		{ & powershell.exe -Command $finalBlock -args $params} 
49.
		else 
50.
		{ & powershell.exe -NoExit -Command $finalBlock -args $params } 
51.
52.
	else 
53.
54.
		& powershell.exe -Command $importCmdletBlock -NoExit 
55.
56.
57.
finally 
58.
59.
    [Environment]::SetEnvironmentVariable($envVariableName, $envVariableOld) 
60.
    $configurationPath | Remove-Item -Recurse 
61.
}
Nur wie führe ich meine *.ps1 Datei aus einer *.bat Datei aus, so dass auch die CMDlets der Software zur Verfügung stehen?
Meine *.ps1 Datei
01.
#Konfiguration 
02.
$server="SSY-V-01" 
03.
$username="Administrator" 
04.
$password="test123!" 
05.
 
06.
 
07.
Connect-DcsServer -Server $server -UserName $username -Password $password -Connection $server 
08.
Disable-DcsServerWriteCache -Server $server -Connection $server
Mitglied: Raducanu
23.11.2011 um 15:13 Uhr
Ich bin etwas weiter gekommen:

Mit

01.
#Konfiguration 
02.
$server="SSY-V-01" 
03.
$username="Administrator" 
04.
$password="test123!" 
05.
 
06.
Import-Module 'C:\Program Files\DataCore\SANsymphony\DataCore.Executive.Cmdlets.dll" 
07.
Connect-DcsServer -Server $server -UserName $username -Password $password -Connection $server 
08.
Disable-DcsServerWriteCache -Server $server -Connection $server
Startet zumindest eine PS mit DataCore CMDlets.
Nur die Befehle Connect-DcsServer und Disable-DcsServerWriteCache werden erst ausgeführt wenn ich mit "exit" die DataCore CMDlet Ebende wieder verlasse.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell HPE Cmdlet - If - Else
gelöst Frage von MasterBaiterBatch & Shell3 Kommentare

Hi, kann mir wer aushelfen? Im folgenden möchte ich die Ausgabe von Get-HPBIOSPowerRegulator überprüfen und daraus eine Aktion folgen ...

Batch & Shell
Batch lässt sich nicht aus Powershell-Script starten
gelöst Frage von complexBatch & Shell4 Kommentare

Guten Morgen Jungs! stehe vor einem kuriosen Problem und hoffe, ihr könnt mir helfen. Eins vorne Weg: Ich weiß ...

Windows 10
Hyper-V Cmdlet (Powershell) Sprachproblem
gelöst Frage von Highend01Windows 102 Kommentare

Hi zusammen, Ich habe bisher immer rein deutsche Serverversionen benutzt (also keine englische Grundinstallation mit installiertem language pack). Ich ...

Exchange Server
CmdLet-Probleme
gelöst Frage von JudgelgExchange Server5 Kommentare

Hallo, wenn ich enable-mailbox in die EMS eingebe kommt folgender Fehler:  Hat eventuell jemand nen tipp für mich? ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 10 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 15 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 15 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Häufig Probleme beim Anmelden in WLAN
Frage von mabue88LAN, WAN, Wireless15 Kommentare

Hallo zusammen, in einem Netzwerk gibt es relativ häufig (1-2 mal pro Woche) Probleme mit der WLAN-Verbindung. Zunächst mal ...

Windows Server
SMBv1 deaktivieren führte zur Katastrophe, keine Domänenanmeldung mehr
Frage von Freak-On-SiliconWindows Server14 Kommentare

Servus; Habe Mist gebaut. Umgebung: Server 2012R2 Domäne 2x DC ~10 Memberserver (2012R2 und 2008R2) ~100 Windows 8 Clients ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Grafikkarten & Monitore
2x 4K Monitore an einer GraKa betreiben
gelöst Frage von JollyJumper83Grafikkarten & Monitore10 Kommentare

Hallo liebe IT-Gemeinde, ich bin auf der Suche nach einer kostengünstigen GraKa für meinen Präsentations-PC. Wir möchten in unserem ...