PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [PowerShell]Lokalen Port per Skript anlegen



SizZle
23.09.2011, 17:45
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:

$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ß

lalas
23.09.2011, 18:28
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 ?

SizZle
25.09.2011, 20:11
Hallo,


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.



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ß

SizZle
17.10.2011, 13:24
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:

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 ;)