Benutzer mit den meisten Antworten
Intranet Einstellungen im Internet Explorer anpassen

Frage
-
Guten Tag zusammen
Ich habe folgende Sorgen: Ich habe ein Powershell Skript geschrieben (siehe unten) welches:
- Die Startseite (des momentan angemeldeten Benutzers) definiert
- Den Cache auf 50MB begrenzt
- Einstellt, wie viele Tage die History behalten werden soll (20 Tage)
- Die Intraneteinstellungen vornehmen soll
Das Skript funktioniert soweit einwandfrei. Nur das mit den Intraneteinstellungen nicht ganz so wie es gedacht war. Wenn ich das Skript ausführe (IE nicht geöffnet) werden alle Einstellungen übernommen, bis auf die Intraneteinstellungen.
ABER, habe ich nun den IE offen und führe das Skript aus, dann werden die Einstellungen übernommen. Ich habe dies versucht zu "rekonstruieren", das heisst im Skript habe ich den Internet-Explorer geöffnet, dei Einstellungen eingetragen und den IE wieder geschlossen. Der Effekt war, dass die Einstellungen wieder NICHT übernommen wurden.
Ich habe das Skript auf meinem Host-System (Windows Vista) und in einer VMWare (Win XP) getestet, mit demselben Effekt. Der verwendete Internet Explorer ist V8.
Skript:
########################################################################################################
#Funktion zum in die Registry schreiben
Function fnSetKeyValue([String]$strKey, [String]$strTyp, [String]$strValueToSet)
{
#REG_SZ = String
#REG_EXPAND_SZ = ExpandString
#REG_DWORD = DWORD
#REG_MULTI_SZ = MultiString
#[System.Byte]$TestShit = $strValueToSet
#Überflüssiges Backslash am Ende entfernen
If(($strKey.SubString($strKey.Length - 1, 1)) -eq "\")
{
$strKey = $strKey.SubString(0, $strKey.Length - 1)
}
#Position des letzten '\' bestimmen
[Int32]$intKeyLength = $strKey.Length
For ($i = 1; $i -lt $intKeyLength; $i++)
{
If($strKey.SubString($strKey.Length - $i, 1) -eq "\")
{
[Int32]$intPosSlash = $strKey.Length - $i
[Int32]$intLaengeSubKey = $i
#$i auf Maximum setzen, damit aus der Schleife gesprungen wird
$i = $strKey.Length
}
}#Schlüsselattribut auslesen
[String]$strValueName = $strKey.SubString($intPosSlash + 1, $intLaengeSubKey - 1)
#Schlüsselpfad auslesen
[String]$strKey= $strKey.SubString(0, $intPosSlash)
#Typ des neuen / geänderten Schlüssels definieren
Switch ($strTyp)
{
"REG_SZ" {
Set-ItemProperty $strKey $strValueName -Value "$strValueToSet" -Type String
}
"REG_BINARY" {
#Binary Values werden in einer Seperaten Funktion gesetzt
}
"REG_EXPAND_SZ" {
Set-ItemProperty $strKey $strValueName -Value "$strValueToSet" -Type ExpandString
}
"REG_DWORD" {
Set-ItemProperty $strKey $strValueName -Value "$strValueToSet" -Type DWORD
}
"REG_MULTI_SZ" {
Set-ItemProperty $strKey $strValueName -Value "$strValueToSet" -Type MultiString
}
Default {
#Fehlernummer generieren und hier einfügen
}
}
}#Beginn der Hauptroutine:
#Startseite "Google":
fnSetKeyValue "HKCU:\Software\Microsoft\Internet Explorer\Main\Start Page" REG_SZ "http://www.google.de"
#Cache setzen (50MB):
fnSetKeyValue "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Content\CacheLimit" REG_DWORD 51200
#"History x Tage aufbewahren (x = 20Tage):
fnSetKeyValue "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\URL History\DaysToKeep" REG_DWORD 20
#IntranetEinstellungen setzen:
#IE als Objekt einlesen
$appIE = New-Object -ComObject "InternetExplorer.Application"
#Seite setzen, mit der der IE geöffnet werden soll$appIE.navigate2("http://www.google.de")
#IE anzeigen
$appIE.visible = $True
#Registry Einträge schreiben
fnSetKeyValue "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\AutoDetect" REG_DWORD 0
fnSetKeyValue "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\IntranetName" REG_DWORD 1
fnSetKeyValue "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProxyBypass" REG_DWORD 1
fnSetKeyValue "HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\UNCAsIntranet" REG_DWORD 1
#2 Sekunden warten
Start-Sleep -Milliseconds 2000
#IE beenden
$appIE.Quit()###################################Skript Ende############################################################
Vielen Dank für Eure Mithilfe schon jetzt
Ronny
Antworten
-
Ein Windows Server allein würde dabei allerdings nicht reichen. Es
müsste schon ein Domain Controller der Windows Domain sein. Gibts bei
Netware keine Möglichkeit das an Windows Clients zu verteilen?Die gibt es. Das heisst bei Novel Zenworks und dort kann man auch Gruppenrichtlinien verwenden.
Viele Grüße
Frank
-- Frank Röder MVP Directory Services blog.iteach-online.de --- Als Antwort markiert Andrei TalmaciuModerator Dienstag, 27. Juli 2010 07:22
Alle Antworten
-
Hallo Andrei,
Das mit den Gruppenrichtlinien ist eine super Idee...leider können diese nicht verteilt werden, da keinen einzigen Windows Server im Haus haben (Wir setzen auf ein Linux/Netware Betriebssystem). Und für dieses kleine Problem einen Windows Server aufzusetzen wäre doch auch ein wenig übertrieben oder? :-)
Daher müssen unsere Einstellungen per Login-Skript gesetzt werden. Was bisher auch einwandfrei funktioniert. Da wir mit dem LoginSkript einige Tools die auf dem Netzwerk liegen aufrufen. Da aber der Internet-Explorer standardmässig "falsch" eingestellt ist, erscheint beim Login eine Meldung, dass ein Programm vom Netzwerk gestartet wurde. (Bitte schreibt mir nicht dass ich die Benutzerkontensteuerung deaktivieren soll ;-) die soll aktiv bleiben, das hat eine höhere Gewalt so bestimmt)
Daher wollte ich wissen ob es einen passenden Work-Around mit Powershell gibt oder ob jemand eine andere, skriptbasierte Lösung für mein Anliegen hat. Ansonsten muss ich mich wohl mit einem "Nein" abfinden.
Gruss
Ronny -
Am 20.07.2010 schrieb R00ney1988:
Das mit den Gruppenrichtlinien ist eine super Idee...leider können diese nicht verteilt werden, da keinen einzigen Windows Server im Haus haben (Wir setzen auf ein Linux/Netware Betriebssystem). Und für dieses kleine Problem einen Windows Server aufzusetzen wäre doch auch ein wenig übertrieben oder? :-)
Ein Windows Server allein würde dabei allerdings nicht reichen. Es
müsste schon ein Domain Controller der Windows Domain sein. Gibts bei
Netware keine Möglichkeit das an Windows Clients zu verteilen?Daher müssen unsere Einstellungen per Login-Skript gesetzt werden. Was bisher auch einwandfrei funktioniert. Da wir mit dem LoginSkript einige Tools die auf dem Netzwerk liegen aufrufen. Da aber der Internet-Explorer standardmässig "falsch" eingestellt ist, erscheint beim Login eine Meldung, dass ein Programm vom Netzwerk gestartet wurde. (Bitte schreibt mir nicht dass ich die Benutzerkontensteuerung deaktivieren soll ;-) die soll aktiv bleiben, das hat eine höhere Gewalt so bestimmt)
Das müsste im Internet Explorer einzustellen sein. Könnt ihr die
Einstellungen nicht per Computerstartupscript vornehmen? Zu diesem
Zeitpunkt habt ihr alle Rechte zum ausführen des Scriptes. Nur auf das
Share müssen natürlich auch die Computerkonten zugreifen dürfen.
Versuch die Einstellungen doch mal auf einem Rechner mit GPEDIT.MSC
innerhalb der Computerkonfiguration zu setzen. Wenn das geht,
exportieren und auf den anderen Rechnern als Computerstartupscript
importieren.Servus
Winfried
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
GPO's: http://www.gruppenrichtlinien.de
Community Forums NNTP Bridge: http://communitybridge.codeplex.com/ -
Ein Windows Server allein würde dabei allerdings nicht reichen. Es
müsste schon ein Domain Controller der Windows Domain sein. Gibts bei
Netware keine Möglichkeit das an Windows Clients zu verteilen?Die gibt es. Das heisst bei Novel Zenworks und dort kann man auch Gruppenrichtlinien verwenden.
Viele Grüße
Frank
-- Frank Röder MVP Directory Services blog.iteach-online.de --- Als Antwort markiert Andrei TalmaciuModerator Dienstag, 27. Juli 2010 07:22
-
Am 22.07.2010 schrieb Frank Roeder [MVP]:
Ein Windows Server allein würde dabei allerdings nicht reichen. Es
müsste schon ein Domain Controller der Windows Domain sein. Gibts bei
Netware keine Möglichkeit das an Windows Clients zu verteilen?Die gibt es. Das heisst bei Novel Zenworks und dort kann man auch Gruppenrichtlinien verwenden.
Danke,dann muß der OP das nur noch umsetzen. ;)
Servus
Winfried
Connect2WSUS: http://www.grurili.de/tools/Connect2WSUS.exe
GPO's: http://www.gruppenrichtlinien.de
Community Forums NNTP Bridge: http://communitybridge.codeplex.com/