[PowerShell]Lokalen Port per Skript anlegen

SizZle

Cadet 4th Year
Registriert
Nov. 2010
Beiträge
125
Hallo Leute
ich möchte aus einer CSV datei viele Drucker anlegen. Mein Problem dabei ist, dass ich per Skript die Port nicht anlegen kann. Im Internet finde ich nur Anleitungen zum anlegen von TCP/IP Ports. Ich brauche aber die lokalen Ports.
Mein Skript sieht so aus:
Code:
$newprinter=([WMICLASS]"\\.\ROOT\cimv2:Win32_Printer").createInstance()
$newprinter.Name="$Printername"
$newprinter.DriverName="$Printerdriver"
$newprinter.DeviceID="$Printername"
$newprinter.Local=$true
$newprinter.Network=$false
$newprinter.Portname="$Printerport"
$newprinter.Shared=$false
$newprinter.Put()

Das bricht aber mit einem Fehler ab. wen ich den Port ($Printerport) aber bevor ich das skript ausführe anlege, funktionierts.
Irgendwelche Ideen?
Gruß
 
Mit $newprinter.Portname="$Printerport" weisst du deinem Drucker den port zu. Der port $Printerport existiert aber hier noch garnicht.
Du müsstest also den port anlegen, bevor Du dein script so startest. (so wie ja auch der Treiber schon vorhanden sein muss, denn du zuweist).

Leider weiss ich nur von der TCP/IP-port Klasse unter WMI.

Was genau für einen "lokalen" port willst Du denn anlegen ? FILE-port oder LPT oder sind das spezielle ports ?
 
Hallo,

lalas schrieb:
Mit $newprinter.Portname="$Printerport" weisst du deinem Drucker den port zu. Der port $Printerport existiert aber hier noch garnicht.
Du müsstest also den port anlegen, bevor Du dein script so startest. (so wie ja auch der Treiber schon vorhanden sein muss, denn du zuweist).
Ja weiss ich ja. Genau dass will ich ja wissen, wies geht.

lalas schrieb:
Leider weiss ich nur von der TCP/IP-port Klasse unter WMI.

Was genau für einen "lokalen" port willst Du denn anlegen ? FILE-port oder LPT oder sind das spezielle ports ?

Wenn man die Ports manuell anlegt, hat man die Auswahl zwischen TCP/IP oder Lokal... aber ich vermute mal einen LPT Port.
Gruß
 
Für alle die in der Zukunft das selbe Problem haben, ich habe es jetzt per Registry Einträge gelöst.
Hier das Sktipt zum anlegen von LPR (doch nicht LPT) Ports:
Code:
echo. > LPRports.reg

		REM LOOP IP addresses and create keys

		For /F %%p in (LPRPorts.txt) do

		(
		ECHO ;port %%p
		ECHO.
		ECHO [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\LPR Port\Ports\%%p]
		ECHO "EnableBannerPage"=dword:00000000
		ECHO "HPUxCompatibility"=dword:00000000
		ECHO "OldSunCompatibility"=dword:00000000
		ECHO "Printer Name"=""
		ECHO "Server Name"="%%p"
		ECHO [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Print\Monitors\LPR Port\Ports\%%p\Timeouts]
		ECHO "CommandTimeout"=dword:00000078
		ECHO "DataTimeout"=dword:0000012c
		ECHO.
		ECHO.
		)  >> LPRPorts.reg


		REM silently import the keys into the registry
		REGEDIT /S LPRPorts.reg

		REM delete the reg file (in this case, consider using %temp%\LPRPorts.reg )
		REM DEL LPRPorts.reg
P.S. dies ist allerdings dann ein Batch Skript und kein PS ;)
 
Zurück
Oben