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

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

Batch & Shell

Powershell start-process

gelöst Frage von Cougar77Batch & Shell4 Kommentare

Guten Morgen, ich habe da ein kleines Problem, das ich nicht ganz verstehe. Es geht um ein kleines Powershell-Skript, ...

Neue Wissensbeiträge
Windows Server

Zähe Update-Installation auf Windows Server 2016

Information von kgborn vor 1 TagWindows Server4 Kommentare

Mir sind in der Vergangenheit immer wieder Beschwerden von Admins unter die Augen gekommen, die sich über die doch ...

Humor (lol)
Turnschuhe per Firmware lahmlegen
Information von Henere vor 1 TagHumor (lol)6 Kommentare

Und was kommt demnächst ? Bekomme ich kein Klopapier mehr, weil der Spender einem DDOS unterliegt ? :-) Ich ...

Sicherheit

Sicherheitsrisiko in WinRAR und Co. durch Schwachstelle in UNACEV2.DLL

Information von kgborn vor 1 TagSicherheit

In der seit 2005 nicht mehr aktualisierten Bibliothek UNACEV2.DLL gibt es eine Path-Traversal-Schwachstelle. Diese ermöglicht es, bei ACE-Archiven Dateien ...

Internet

CDU Propaganda: Urheberschutz im Internet - Ende des digitalen Wild-West

Information von Frank vor 2 TagenInternet6 Kommentare

Hallo Administratoren, aus einem Kommentar heraus habe ich folgenden Beiträge von Herr Sven Schulze und Axel Voss (beide CDU ...

Heiß diskutierte Inhalte
Hardware
Frage an Kenner von 5,25 Zoll Laufwerken
Frage von DerWoWussteHardware54 Kommentare

Moin Kollegen. Hier wird gerade im Archiv gewühlt und 5,25 Zoll Disketten ("2S/HD", 96TPI) sollen eingelesen werden. Ich habe ...

Windows Tools
Dateiname Automatisch auf PDF Klartext oder als Barcode abdrucken
Frage von spongebob24Windows Tools29 Kommentare

Hallo Zusammen, habe eine tolle Anforderung bekommen. Ich sollte auf mehrere PDF Dateien Automatisch einen Stempel anbringen lassen. Toll ...

Internet
SDSL oder ADSL - Preis-Leistungs-Verhältnis
Frage von ZeppelinInternet22 Kommentare

Wehrte Community, der Unterschied dieser beiden Techniken ist recht einfach erklärt. Das S, steht für Synchron (Gleich) und das ...

Microsoft Office
MicroSoft und seine Lizenzen
Frage von ZeppelinMicrosoft Office19 Kommentare

Wehrte Community, ich wende mich an die Community weil MicroSoft dazu keine Stellung nehmen möchte. Ich öffne mein Web-Browser ...