7 Shutdown.exe ohne sichtbarem Countdown & andere Win7-Gemeinheiten

Dalai

Grand Admiral Special
Mitglied seit
14.06.2004
Beiträge
7.420
Renomée
262
Standort
Meiningen, Thüringen
Hey Leute :),

wie ich schon in anderen Posts schrieb, schaue ich mir momentan Win7 an und versuche, dafür eine unbeaufsichtigte Installation zusammenzuschrauben. Bisher habe ich den Abschnitt [GuiRunOnce] der Antwortdatei extensiv genutzt, um diverse Einstellungen direkt beim ersten Anmelden auszuführen.

Manche davon brauchen natürlich einen Neustart, um wirksam zu werden. Also habe ich wie bisher auch die shutdown.exe aufgerufen, mit den gleichen Parametern. Und was soll ich sagen? WTF? Das Einzige, was man sieht, ist ein Dialog mit der per Parameter übergebenen Meldung und einem Schließen-Button drauf! Klickt man auf den, ist der Dialog weg und man sieht nichts mehr vom Countdown, bis die Kiste unvermittelt neu bootet!

Also schaute ich mir die Parameter genauer an, aber ich finde nichts, was den Countdown anzeigen würde. Ich habe auch die shutdown.exe von WinXP und auch psshutdown.exe probiert - selbes Spiel. Demzufolge hat MS das entsprechende API/Interface geändert.

Ich frage mich, was MS da wieder geritten hat :]. Ich kann ja verstehen, dass Leute sich über den Dialog aufgeregt haben, aber das Wort "optional" kommt wohl in MS' Wortschatz nicht vor...

So long, bis zum nächsten Aufreger im neuen, ach so tollen Windows: Quick Launch ist zwar manuell aktivierbar, aber die (automatisierbare) Einstellung in den Gruppenrichtlinien gilt natürlich nur für Vista :].

MfG Dalai
 
Heute: Statische IP-Adresse mit Standard-Gateway in der Antwortdatei von Vista, Win7 & Server 2008.

Wie ich im OP schon schrieb, fummle ich grade eine Antwortdatei für Win7 zusammen. Bislang habe ich immer ausschließlich feste IP-Adressen verwendet und wollte das natürlich auch beibehalten.

Also hab ich mir den WSIM geschnappt, um die entsprechenden Einstellungen in der Antwortdatei vorzunehmen. Fix in die Hilfedatei geschaut, welche Einstellungen dafür zuständig sind (der Abschnitt zur Migration einer XP-Antwortdatei war dabei hilfreich) und die nötigen Tags gefunden:
Code:
Microsoft-Windows-TCPIP | Interfaces | Interface | UnicastIpAddresses
Microsoft-Windows-TCPIP | Interfaces | Interface | Routes
Alles eingetragen und gespeichert:

PHP:
<component name="Microsoft-Windows-TCPIP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Interfaces>
        <Interface wcm:action="add">
            <Ipv4Settings>
                <DhcpEnabled>false</DhcpEnabled>
                <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled>
            </Ipv4Settings>
            <!--<Ipv6Settings>
                <DhcpEnabled>false</DhcpEnabled>
                <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled>
            </Ipv6Settings>-->
            <UnicastIpAddresses>
                <IpAddress wcm:action="add" wcm:keyValue="1">192.168.0.250/24</IpAddress>
            </UnicastIpAddresses>
            <Routes>
                <Route wcm:action="add">
                    <Identifier>0</Identifier>
                    <!--<Metric>256</Metric>-->
                    <Prefix>0.0.0.0/0</Prefix>
                    <NextHopAddress>192.168.0.100</NextHopAddress>
                </Route>
            </Routes>
            <Identifier>LAN-Verbindung</Identifier>
        </Interface>
    </Interfaces>
</component>
Installation gestartet und geflucht, weil die Installation mit dem Fehler
Code:
"Interner Fehler beim Laden oder Suchen einer Antwortdatei für die unbeaufsichtigte Installation"
abbrach. Natürlich gaben die Dateien setup.log/setupact.log keinerlei Hinweis, warum das passierte :]. Also rumprobiert und schließlich kommentierte ich die <Routes> Tags aus und es lief durch :). Doch wie komme ich nun zu einem Gateway? So ganz ohne geht kein Internet...

Also im Netz gesucht und gefunden, dass man den Prefix völlig anders einstellen muss als in der Hilfedatei angegeben, und zwar so:
Code:
<Prefix>0.0.0.0/0</Prefix>
Wieder Installation laufen lassen, selber Fehler 8-(. Also nahm ich an, dass es mal wieder ein Bug ist oder noch anders angegeben werden muss. Andere Leute sehen das genauso (letzter Abschnitt) und hatten sich sogar schon einen Workaround ausgedacht. Also tat ich das ebenfalls, bis ich mehr oder weniger zufällig über diesen Blog stolperte, der das Problem exakt traf und eine Lösung angibt: der Identifier des Interface muss im Abschnitt ganz oben stehen!

Folgendes funktioniert also einwandfrei:
PHP:
<component name="Microsoft-Windows-TCPIP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Interfaces>
        <Interface wcm:action="add">
            <Identifier>LAN-Verbindung</Identifier>
            <Ipv4Settings>
                <DhcpEnabled>false</DhcpEnabled>
                <RouterDiscoveryEnabled>false</RouterDiscoveryEnabled>
            </Ipv4Settings>
            <UnicastIpAddresses>
                <IpAddress wcm:action="add" wcm:keyValue="1">192.168.0.250/24</IpAddress>
            </UnicastIpAddresses>
            <Routes>
                <Route wcm:action="add">
                    <Identifier>0</Identifier>
                    <!--<Metric>256</Metric>-->
                    <Prefix>0.0.0.0/0</Prefix>
                    <NextHopAddress>192.168.0.1</NextHopAddress>
                </Route>
            </Routes>
        </Interface>
    </Interfaces>
</component>
Die in der Hilfedatei angegebenen Beispiele funktionieren also überhaupt nicht (weil der Identifier immer unten steht) und wurden sicher nicht getestet.

Dieser Fehler von MS hat mich gestern den ganzen Tag gekostet *motz*! Was mich richtig ankotzt: der Fehler besteht seit Vista 8-(! MS hatte also mehrfach mit den Vista SPs, dem Server 2008 (R2) und Win7 die Möglichkeit, das zu korrigieren, zumal auch das WAIK immer wieder aktualisiert wurde.

MfG Dalai
 
Heute: Die Microsoftsche Implementation von Junctions/Symlinks und Hard Links

Alle Programme werden bei mir geskriptet installiert - denn wie sonst sollte man Anwendungen auf vielen Rechnern möglichst arbeitsarm möglichst gleichartig installieren. Natürlich werden dabei auch Verknüpfungen im Startmenü und auf dem Desktop erstellt oder gelöscht (Adobe Reader anyone?).

Dabei müssen logischerweise auch Verknüpfungen im %AllUsersProfile% berücksichtigt werden. Die Skripte tun auch soweit - bis man sie auf Win7 ausführt. Knackpunkt der Geschichte ist, dass %AllUsersProfile% noch ein echtes Verzeichnis ist, die Verzeichnisse Desktop und Start Menu darunter aber in Wirklichkeit Links sind auf %SystemDrive%\Users\Public\Desktop bzw. %SystemDrive%\Users\Public\Start Menu.

Soweit wäre das auch kein Problem, wäre da nicht die "Kleinigkeit", dass man auf einer CMD in einem verlinkten Verzeichnis NICHTS machen kann! Es geht keine Auflistung des Inhalts mit dir, noch kann man Dateien daraus kopieren, noch kann man in ein Unterverzeichnis des verlinkten wechseln! All das geht übrigens mit jedem beliebigen Dateimanager problemlos, nur auf der CMD muss man Extrawürste braten 8-(.

Hach, wie schön ist das bei Linux, wo es völlig egal ist, ob ein Verzeichnis verlinkt ist oder nicht...

MfG Dalai
 
Zurück
Oben Unten