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

gelöst ForEach Schleife für Drucker funktioniert nicht

Mitglied: mguenth83

mguenth83 (Level 1) - Jetzt verbinden

25.09.2013, aktualisiert 16:44 Uhr, 1802 Aufrufe, 8 Kommentare

Hi,
ich wollte bei einer Migration die Druckernamen auslesen lassen, diese dann speichern und auf den neuen System wieder verbinden.

Habt Ihr eine Ahnung warum meine ForEachschleife nicht funktioniert ?
Versuche auf der Inhalt der in der Variable drauf zu zugreifen damit er alle vier Drucker anlegt.

01.
$Drucker = Get-WmiObject -Class Win32_Printer | Select-Object -Property ShareName, SystemName | Where-Object -Like -Property SystemName -Value \\CONTOSO-PRINT1 |Select-Object -Property ShareName 
02.
$WindowsVersion = [System.Environment]::OSVersion.Version 
03.
if ($WindowsVersion.Build -ge 7601) { 
04.
$Drucker | ForEach-Object { 
05.
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("$_.ShareName") 
06.
}}
Das hier steht in der Variablen...
01.
ShareName                                                                                                                    
02.
---------                                                                                                                    
03.
HPLJ_PRO_400M400                                                                                                          
04.
KONICAMINOLTA_1                                                                                                        
05.
KYOCERA_TASKALFA_01                                                                                                    
06.
KYOCERA_TASKALFA_02
Mitglied: colinardo
25.09.2013, aktualisiert um 23:23 Uhr
Hallo Matthias,
Versuchs mal in Zeile 5 hiermit (ungetestet)
01.
(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\CONTOSO-PRINT1\$($_.ShareName)") 
Grüße Uwe
Bitte warten ..
Mitglied: mguenth83
26.09.2013 um 07:44 Uhr
Hi Uwe,
danke für die Bemühungen aber leider hat es nicht funktioniert...schade eigentlich...

Gruß
Matze
Bitte warten ..
Mitglied: colinardo
26.09.2013 um 08:10 Uhr
Wenn du das Script auf dem gleichen Rechner ausführst wo die Verbindungen noch existieren kann das erneute Hinzufügen ja nicht klappen. Speichere die Daten pro Client z.B. in einer Textdatei wie in diesem Beispiel: http://social.technet.microsoft.com/Forums/windowsserver/de-DE/1da4e996 ...

Grüße Uwe
Bitte warten ..
Mitglied: mguenth83
26.09.2013 um 08:32 Uhr
Hey Uwe,
öhm ja deswegen habe ich Zeile Eins auskommentiert und nur eine Textdatei als Input genommen. Somit kann ich noch nicht vorhandene Drucker per Hand in die TXT schreiben die dann eigentlich hätte funktionieren sollen.

Gruß
Matze
Bitte warten ..
Mitglied: colinardo
26.09.2013, aktualisiert um 09:07 Uhr
öhm ja deswegen habe ich Zeile Eins auskommentiert
Stand leider nirgendwo in deinem Thread bzw. Script.
Hiermit hatte ich bei einem Test keine Probleme:
01.
$Drucker = ....... 
02.
$objPrint = [wmiclass] "Win32_Printer" 
03.
$Drucker | %{$objPrint.AddPrinterConnection("\\CONTOSO-PRINT1\$($_.ShareName)")}
Wäre auch nett wenn du zumindest mal die Ausgabe deines Scriptes posten würdest dann hätten wir mehr Ansätze

noch was, das auslesen deiner Drucker mit deiner ersten Zeile ginge auch einfacher:
01.
$Drucker = Get-WmiObject -Class Win32_Printer |?{$_.SystemName -eq "\\CONTOSO-PRINT1" -and $_.ShareName -ne $null} | select -ExpandProperty ShareName
Grüße Uwe
Bitte warten ..
Mitglied: mguenth83
26.09.2013 um 09:18 Uhr
Irgendwie bin ich glaub ich zu blöd für Powershell. Deine Variante von der Ersten Zeile gibt überhaupt nichts aus.

Das andere funktioniert auch nicht wirklich...

01.
Get-WmiObject -Class Win32_Printer|Select-Object -Property ShareName, SystemName|Where-Object -Like -Property SystemName -Value \\CONTOSO-PRINT1|Select-Object -Property ShareName|Format-Table ShareName -HideTableHeaders|Out-File C:\Temp\Printer.txt 
02.
Get-Content "C:\Temp\printer.txt" 
03.
$WindowsVersion = [System.Environment]::OSVersion.Version 
04.
if ($WindowsVersion.Build -ge 7601) { 
05.
    $File2=Get-Content "C:\Temp\printer.txt" 
06.
    $File2.Replace(" ",$null) | Out-File "C:\Temp\printer.txt" 
07.
    $Printer = Get-Content "C:\Temp\printer.txt" 
08.
 
09.
$objPrint = [wmiclass] "Win32_Printer"  
10.
$Printer | ForEach-Object { 
11.
$Printer | %{$objPrint.AddPrinterConnection("\\CONTOSO-PRINT1\$($_.ShareName)")} 
12.
}}
Bringt nur wirre Zeichen als ausgabe....
01.
KONICAMINOLTA_11                                                                                                        
02.
 
03.
 
04.
 
05.
 
06.
__GENUS          : 2 
07.
__CLASS          : __PARAMETERS 
08.
__SUPERCLASS     :  
09.
__DYNASTY        : __PARAMETERS 
10.
__RELPATH        :  
11.
__PROPERTY_COUNT : 1 
12.
__DERIVATION     : {} 
13.
__SERVER         :  
14.
__NAMESPACE      :  
15.
__PATH           :  
16.
ReturnValue      : 1801 
17.
PSComputerName   :  
18.
 
19.
__GENUS          : 2 
20.
__CLASS          : __PARAMETERS 
21.
__SUPERCLASS     :  
22.
__DYNASTY        : __PARAMETERS 
23.
__RELPATH        :  
24.
__PROPERTY_COUNT : 1 
25.
__DERIVATION     : {} 
26.
__SERVER         :  
27.
__NAMESPACE      :  
28.
__PATH           :  
29.
ReturnValue      : 1801 
30.
PSComputerName   : 
Bitte warten ..
Mitglied: colinardo
26.09.2013, aktualisiert um 09:33 Uhr
Das kann so auch nicht gehen .... dein Script ist voller Fehler
machs so ...
01.
Get-WmiObject -Class Win32_Printer |?{$_.SystemName -eq "\\CONTOSO-PRINT1" -and $_.ShareName -ne $null} | select -ExpandProperty ShareName | Out-File C:\Temp\Printer.txt 
02.
$Drucker = Get-Content "C:\Temp\printer.txt" 
03.
$WindowsVersion = [System.Environment]::OSVersion.Version 
04.
if ($WindowsVersion.Build -ge 7601) { 
05.
  $objPrint = [wmiclass] "Win32_Printer"  
06.
  foreach ($d in $Drucker){ 
07.
    $objPrint.AddPrinterConnection("\\CONTOSO-PRINT1\$d")} 
08.
09.
}
Und die Ausgabe ist nicht wirres Zeug sondern sagt zum Beispiel aus das der Fehler 1801 aufgetreten ist und das bedeutet: Invalid Printer Name (http://msdn.microsoft.com/en-us/library/aa384769%28v=vs.85%29.aspx)
Wenn dort ReturnValue = 0 ist wurde die Verbindung erfolgreich hinzugefügt.
Bitte warten ..
Mitglied: mguenth83
26.09.2013 um 12:00 Uhr
Funktioniert perfekt....vielleicht sollte ich mal nen Powershellkurs machen...jedenfalls wieder was dazu gelernt.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Powershell: if Abfrage in foreach Schleife

gelöst Frage von LuceDeCielloBatch & Shell5 Kommentare

Hallo, ich würde mich sehr freuen wenn ihr mir etwas auf die Sprünge helfen könntet. Ich habe hier folgendes ...

Batch & Shell

Powershell: Foreach-Schleife, feststellen ob aktuelles Element das letzte in der Schleife ist

gelöst Frage von MartinADBatch & Shell2 Kommentare

Hallo, ich habe eine Foreach-Schleife in Powershell. Ich möchte in der ForEach-Schleife feststellen, ob das aktuelle Element das letzte ...

Batch & Shell

Powershell If-Schleife funktioniert nicht

gelöst Frage von windelterroristBatch & Shell5 Kommentare

Hallo Admins Arbeite gerade an einem kleinen Script funktioniert aber nicht so, wie ich mir das vorstelle Mein Code: ...

Batch & Shell

Verwendung von "set" in For-Schleife funktioniert nicht

gelöst Frage von rkrausbyBatch & Shell2 Kommentare

Hallo zusammen. Ich habe ein kleines Problem beim erstellen einer Abfrage. Das Hauptproblem liegt darin dass ich innerhalb einer ...

Neue Wissensbeiträge
Windows 10
Zero-Day-Lücke in Microsoft Edge
Information von kgborn vor 1 TagWindows 10

In Microsofts Edge-Browser klafft wohl eine nicht geschlossene (0-Day) Sicherheitslücke im Just In Time Compiler (JIT Compiler) für Javascript. ...

Sicherheit
Microsoft und Skype: Sicherheit
Information von kgborn vor 1 TagSicherheit

Die Tage gab es ja einige Berichte zur Sicherheit des Skype-Updaters. Der Updater von Skype läuft unter dem Konto ...

Datenschutz

Behörden ignorieren Sicherheitsbedenken gegenüber Windows 10

Information von Penny.Cilin vor 2 TagenDatenschutz8 Kommentare

Hallo, passend zum Thema Ablösung LIMUX in München ein Beitrag bei Heise (siehe Link folgend). Behörden ignorieren Sicherheitsbedenken gegenüber ...

Sicherheit
Information Security Hub Munich airport
Information von brammer vor 2 TagenSicherheit

Hallo, Neues Center für Cyber Kriminalität am Münchener Flughafen brammer

Heiß diskutierte Inhalte
DSL, VDSL
Mindestgeschwindigkeiten DSL Telekom
Frage von justlukasDSL, VDSL13 Kommentare

Hallo zusammen, Seit diesem Jahr habe ich Verständnisprobleme mit dem Verhalten der Telekom. Wir haben seit einem Jahr VDSL ...

Switche und Hubs
LANCOM-Switch: Probleme (no link) mit SFP-Modulen?
Frage von THETOBSwitche und Hubs9 Kommentare

Hi zusammen, ich habe folgendes Problem: Und zwar habe ich an einem Standort drei Switche verbaut - LANCOM GS-2326P+, ...

Debian
Wie finde ich den betroffenen user
Frage von ProtectedDebian8 Kommentare

Hallo, Wie kann ich den User finden der dies verursacht hat? Betriebsystem ist Debian 7 your Server/Customer with the ...

Voice over IP
Vodafone IP Anlagenanschluss - TK-Anlage einrichten
Frage von BytedreherVoice over IP8 Kommentare

Moin Zusammen, wir hatten gestern bei uns die Umstellung auf den neuen IP Anschluss bei Vodafone. Vodafone IP Anlagenanschluss ...