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

Mitglied: Raducanu

Raducanu (Level 1) - Jetzt verbinden

23.11.2011 um 11:42 Uhr, 6552 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

PowerShell GUI, Cmdlet in ComboBox ausführen

gelöst Frage von 135531Batch & Shell6 Kommentare

Hi all, ich bin absoluter Neuling wenn es um die nutzung von PowerShell geht. Dennoch versuche ich im Moment ...

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 ...

Neue Wissensbeiträge
Sonstige Systeme
Es war einmal ein BeOS - Wer erinnert sich noch?
Information von BassFishFox vor 1 TagSonstige Systeme4 Kommentare

Hallo, Bin gerade ueber Haiku gestolpert, von dessen Existenz als "Nachfolger des BeOS" ich wusste nur mich nie wirklich ...

Datenschutz

Microsoft und DSGVO - ob das wohl jemals klappt (Probleme beim Datenabfluss für Office Pro Plus)?

Tipp von VGem-e vor 1 TagDatenschutz3 Kommentare

Servus Kollegen, siehe Aber wer setzt schon MS Office Pro Plus ein? Wie dann der Stand beim "normalen" MS ...

Windows 10

Macht Windows 10.1809 Probleme mit gemappten Netzlaufwerken (betrifft wohl insbes. AMD-Hardware und Trend Micro AV-Produkte)?

Tipp von VGem-e vor 1 TagWindows 103 Kommentare

Moin Kollegen, grad dazu gefunden und Hatten wir dies nicht bei früheren W10-Upgrades ebenfalls? Da bleibt nur, das Upgrade ...

Humor (lol)

Das neue Miniatur Wunderland OFFICIAL VIDEO - worlds largest model railway - railroad

Information von StefanKittel vor 1 TagHumor (lol)2 Kommentare

Hallo, wer noch nie im Miniatur Wunderland war, sollte es dringend mal nachholen. Es gibt eine neues Video. Viele ...

Heiß diskutierte Inhalte
DSL, VDSL
DSL Monitoring Tool - Quick and dirty?
Frage von george44DSL, VDSL15 Kommentare

Liebe Gemeinde, ich suche ein einfaches und vor allem schnell zu installierendes Monitoring-Tool zur kontinuierlichen Dokumentation (nur) der Internetanbindung. ...

Netzwerkgrundlagen
Werksreset HP 1920S-24G
gelöst Frage von HenereNetzwerkgrundlagen14 Kommentare

Servus zusammen, ich habe mir 2 neue Switche zugelegt, doch ich komme damit nicht ganz klar. Waren Vorführgeräte zum ...

LAN, WAN, Wireless
Gäste-WLAN durch DD-WRT AP nach einem MikroTik Routerboard
Frage von NukolarLAN, WAN, Wireless14 Kommentare

Hallo, wie der Titel schon sagt möchte ich gerne ein Gäste-WLAN innerhalb eines bestehenden LANs einrichten. Dass die Gäste ...

Exchange Server
Outlook findet Postfach nicht
Frage von MaximaxExchange Server11 Kommentare

Hallo, und zwar haben wir auf der Arbeit ein kleines (großes) Exchange 2016 Problem. Exchange meldete gestern, dass die ...