» Kategorie "Errors, Solutions & Workarounds"  »  4 Beiträge vorhanden

Zuletzt verwendeten Standard-Drucker, bei Anmeldung erneut festlegen (ohne GPO)

Dienstag, 14. Juni 2016 - 13:49 Uhr  |  Kategorie: Errors, Solutions & Workarounds  |  Kommentare (0)

Der Titel für diesen Beitrag zu wählen war schon eine Herausforderung an sich :D

Die ursprüngliche Herausforderung war jedoch ein schneller Workaround für unseren Terminalserver, der es ermöglicht, den zuletzt verwendeten Standard-Drucker nach der nächsten Anmeldung an einem der Terminalserver erneut zur als Standard-Drucker zu definieren.

Wir haben eine Printer-GPO die nach der Anmeldung alle notwendigen Drucker verbindet, jedoch keine Standard-Drucker vorgibt.
Der User kann seinen Standard-Drucker selbst festlegen und dieser sollte (wie auch auf den W7-Workstations) nach einem erneuten Login erhalten bleiben.

Auf den 2012R2-Server passiert das aus misteriösen Gründen nicht. Und so machte ich mich im Netz auf die Suche nach einer zielführenden Lösung des Problems und wurde nicht wirklich fündig.
Ein Workaround musste her und so suchte ich nach einem Tool, das den Standard-Drucker vor der Abmeldung ausliest und nach der Anmeldung wieder setzt.
Es gibt viele Programme die es ermöglichen den Standarddrucker nach der Anmeldung zu setzen. Leider konnte ich kein Programm finden, welches sich den letzten Standard-Drucker merkt und diesen nach der Anmeldung setzen kann.

Selbst ist der IT-ler. Und so habe ich ein kleines Tool in AutoIt gebaut, dass genau diese Funktion beherscht und die User somit wieder glücklich sind.

Um das Tool einfach in den Autostart schmeißen zu können und nicht extra eine Richtlinie mit Loopback-Verarbeitung erstellen zu müssen, läuft das Tool im Hintergrund, prüft alle 10 Minuten den aktuellen Standard-Drucker und speichert diesen in einer Datei im Profil des Benutzers.

Nach der Anmeldung startet das Programm und liest den Drucker aus der Datei und setzt diesen als Standard-Drucker.
Anschließend läuft es wieder im Hintergrund und wartet auf Änderungen.

#include <WinAPI.au3>
#include <FileConstants.au3>
#include <WinAPIFiles.au3>
#include <File.au3>

$STD_Printer = ""
$DefaultPrinterFile = @AppDataDir & "\default_printer"

If FileExists($DefaultPrinterFile) Then

	;ConsoleWrite("Datei existiert" & @CRLF)

	$hFileOpen = FileOpen($DefaultPrinterFile, $FO_READ)
	$sFileRead = FileRead($hFileOpen)

	If $sFileRead <> "" Then
		If _WinAPI_SetDefaultPrinter ( $sFileRead ) Then
			ConsoleWrite("Drucker '" & $sFileRead & "' als Standarddrucker gesetzt" & @CRLF)
			$STD_Printer = $sFileRead
		Else
			MsgBox(0,"",$sFileRead & " konnte nicht als Standarddrucker gesetzt werden");
		EndIf
	EndIf

Else
	_FileCreate($DefaultPrinterFile)
EndIf

While 1

	$strComputer = "."

	$objWMIService = ObjGet ("winmgmts:\\" & $strComputer & "\root\cimv2")
	$colPrinters = $objWMIService.ExecQuery ("Select * From Win32_Printer Where Default = True")

	For $objPrinter in $colPrinters
			If $objPrinter.Name <> $STD_Printer Then
				$hFileOpen = FileOpen($DefaultPrinterFile, $FO_OVERWRITE)
				FileWrite($hFileOpen, $objPrinter.Name)
				$STD_Printer = $objPrinter.Name
				ConsoleWrite("Drucker '" & $STD_Printer & "' als Standarddrucker gesichert" & @CRLF)
			EndIf
	Next

	Sleep(600000)

WEnd

Der Code kann gern übernommen und/oder weiterentwickelt werden (über einen Link zum Beitrag freue ich mich natürlich trotzdem)


Tags: WindowsTerminalserverScriptAutomatisierungGPOAutoitDrucker

Rechte-Vererbung in der AD über Powershell aktivieren

Mittwoch, 18. Mai 2016 - 11:16 Uhr  |  Kategorie: Errors, Solutions & Workarounds  |  Kommentare (0)

Da ich aktuell ein schnelles und einfaches Firmentelefonbuch (PHP, HTML, CSS, AJAX) programmiere, gab es mal wieder ein AHA-Erlebnis und eine coole Lösung für ein IT-Problem.

Um Änderungen an Benutzer-Accounts direkt im Web-Frontend des Telefonbuchs vorzunehmen (nach Authentifizierung), musste nicht nur ein AD-User mit Leseberechtigung sondern auch ein User mit Schreibberechtigung in der AD angelegt werden
User angelegt, Berechtigungen in der AD delegiert und siehe da.. keine Berechtigung auf einzelne Useraccounts.

Nach etwas Recherche stellte sich heraus, dass fast die Hälfte der Accounts die Vererbung der übergeordneten Objekte nicht übernimmt.

Folgendes Powershellscript hat dieses Problem elegant gefixt und bei allen Useraccounts die Vererbung aktiviert.

Import-Module activedirectory
$OU = "OU=Test-OU,DC=Domäne,DC=TLD"

$Users=get-aduser -Filter * -SearchBase $OU

if ($Users -ne $null) 
{

foreach ($Entry in $Users) 
{
[string]$dn = (Get-ADUser $Entry).DistinguishedName
$user = [ADSI]”LDAP://$dn”
$acl = $user.objectSecurity
Write-Host "Pruefe Benutzer:" (Get-ADUser $Entry).SamAccountName

if ($acl.AreAccessRulesProtected)
{
Write-Host "Fixe Benutzer:" (Get-ADUser $Entry).SamAccountName
$acl.SetAccessRuleProtection($false,$true)
$inherited = $acl.AreAccessRulesProtected
$user.commitchanges()
}
}

}
else 
{
Write-Host "Keine Benutzer in $OU gefunden"
}

Bei uns hatte es kein Grund, warum die Vererbung deaktiviert gewesen sein könnte. Es kann natürlich in anderen Unternehmen Gründe dafür geben und sollte somit vorher geprüft werden.


[Quellen]

Tags: Active DirectoryPowershellScriptAutomatisierungWindowsDomäneServer

Remote logins are currently disabled

Dienstag, 17. Februar 2015 - 16:13 Uhr  |  Kategorie: Errors, Solutions & Workarounds  |  Kommentare (0)

Remote logins are currently disabled
CMD
 
change logon /enable | /disable | /query

The parameters that are used by the change logon command are:

/enable: Use this parameter to turn on logons from client sessions.
/disable: Use this parameter to turn off any further logons from client sessions. Currently- logged-on users are not affected.
/query: Use this parameter to display the current logon status.


[Quellen]

Tags: WindowsRDPCitrixRemoteServerTerminalserver

Windows 7 - Installation wird abgeschlossen

Samstag, 20. September 2014 - 17:12 Uhr  |  Kategorie: Errors, Solutions & Workarounds  |  Kommentare (0)

windows-7-installation-wird-abgeschlossen.png

Auf einem Netbook (kein optisches Laufwerk) Windows 7 installieren ist mit dem Windows 7 USB/DVD Download Tool problemlos möglich.

Wenn die Installation dann bei "Installation wird abgeschlossen" hängen bleibt und nichts mehr passiert (HDD-Aktivität = 0), einfach mal den USB-Stick, und alle anderen USB-Geräte, entfernen.

Das kann wohl beim ersten Start von Windows passieren, wenn die USB-Treiber nicht korrekt geladen werden.

Erstmal drauf kommen o.O


Tags: WindowsFehlerInstallation

Gravatar-Profilbild

SANDRO WIENBERG

Hier schreibe ich über alles, was mir in meinem Alltag über den Weg läuft...

Als IT-Systemadministrator in einem mittelständischen Unternehmen und als technikaffiner Mensch in der Freizeit, gibt es häufig Themen, Probleme oder Interessantes worüber ich einfach schreiben möchte..

Profil auf www.geocaching.com

2017


2016


2015


2014


2013

Top