Skip to Content

IT nieuczesane.
category

Category: tips’n’tricks

windows 7 RC do RTM

oficjalnie ścieżka niewspierana i po próbie uruchomienia pojawia się śliczny komunikat:

w7-rc2rtm

nieoficjalnie nie jest to żadna skomplikowana operacja. wystarczy przegrać pliki instalacyjne na dysk i wyedytować pliczek sourcescversion.ini . w nim są ledwie 3 linie textu a jedna z nich zawiera wartość:

MinClient=7233.0

wystarczy wartość zmienić na 71oo lub niższą i już można sobie normalnie i bez hecy zrobić upgrade. za kilka dni napisze co mi przez taki upgrade nie działa, ale na razie system wstał i ma się dobrze q:

ps. windows backup – nawet ten w 7 – jest bezużyteczny. próbowałem zrobić sobie pełny przed upgradem ale po kilq próbach i nic-niemówiącym komunikacie błędu, wyskaqjącym po ok. 1h backupu, który finalnie się nie robił, przeszukałem fora – błąd ma wiele osób, kilka osób go rozwiązało – każdy inaczej. czyli to taki uniwersalny komunikat błędu, oznajmiający, że jest wystąpił błąd. w sterylnych, podręcznikowych warunkach pewnie by się udało go zrobić, ale … wolę rozwiązania bulletproof – eh ntbackupie! wróć!

n.

zapamiętywanie ustawień okna

okna dialogowe w windows lubią niepamiętać ostatnich ustawień. można się narzeźbić na różne sposoby ale jeden jeden stary trick, który może ułatwić życie – wystarczy dane okno dialogowe [np. ‘save as’] skonfigurować pod siebie [widok, sortowanie, szerokość kolumn etc] a następnie zatwierdzić [OK] lub zamknąć [X] przytrzymując shift.

proste, sqteczne, działa od co najmniej win 95 – ale ponieważ ostatnio kilka osób się tym zdziwiło – może przyda się ogólnie. sposób działa również na niektóre aplikacje.

n.

Experts Exchange

EE to dziwny wynalazek i przykład tego, jak można zarobić za darmo – experci, którzy dają na tej stronie odpowiedzi nie dostają kasy – tak samo jak na większości innych forów. mimo to dostęp do EE jest płatny – a więc ktoś zgarnia kasę za wolontaryjną pracę innych. najs.

przy okazji znajomy podesłał mi linka do artu opisującego jak podejrzeć odpowiedź na EE za free

n.

Visual Studio Unattended

Przyszły wakacje, a więc czas odświeżania oprogramowania w salach laboratoryjnych w PJWSTK. Oczywiście wszystko powinno być nienadzorowane itd. Przez lata instalacje WinXP leżące na RIS było modyfikowane wielokrotnie – Peki, który jest autorem systemu teraz by go już nie poznał ;)

Dobra – zadnie polega na nienadzorowanej instalacji MSSQL2008 (tylko narzędzia klienckie) i Visual Studio 2008. Pierwszą rzeczą jest ustalenie kolejności instalacji. Gdyby zaczynać on VS, to trzeba by zrobić tak:

  • .NET 3.5 + Windows Installer 4.5 (wymaganie SQL2008)
  • restart
  • VS2008
  • restart
  • SP1 do VS2008
  • restart
  • SQL2008
  • restart

No i jakoś dużo tych restartów :/ gdyby zrobić odwrotnie? Zazwyczaj staram się instalować oprogramowanie według kolejności w jakiej wychodzi na świat, ale tutaj zrobię na odwrót :)

  • .NET 3.5 + Windows Installer 4.5
  • restart
  • SQL2008
  • restart
  • VS2008
  • teoretycznie restart, ale już nie wymagany :)

Jest krócej i to sporo :) Dzielimy to na 3 skrypty vbs. stage1.vbs, stage2.vbs i stage3.vbs 
Pierwszy wygląda tak:

Dim WshShell   
Set WshShell = WScript.CreateObject("WScript.Shell")   
WshShell.run "C:scriptsfrmwrkdotnetfx35.exe /qb /norestart",1,true ‚.NET 3.5   
Wait "msiexec.exe","Administrator"   
Wait "setup.exe","Administrator"   
WshShell.run "C:scriptsfrmwrkdotnetfx35SP1.exe /qb /norestart",1,true ‚.NET 3.5 SP1   
Wait "msiexec.exe","Administrator"   
Wait "setup.exe","Administrator"   
‚Windows Installer 4.5   
WshShell.run "C:scriptsWindowsInstallerWindowsXP-KB942288-v3-x86.exe /passive /norestart /overwriteoem /nobackup",1,true   
Wait "msiexec.exe","Administrator"   
Wait "setup.exe","Administrator"   
‚autologin do stage 2   
WshShell.run "c:Windowsregedit.exe /s c:scriptsstage2.reg",1,true   
WshShell.run "c:scriptsshutdown.exe -r -t 30 -f",1,false   

Sub Wait (processName, userName)    
 
On Error Resume Next    
 
Dim objProcess   
 
Dim wmi   
 
Dim isRunning   
 
Dim strUser   
 
Dim return   
 
isRunning = True   
 
set wmi=GetObject("winmgmts:")   
     
 
Do While isRunning   
   
isRunning = False   
   
for Each objProcess in wmi.ExecQuery("select * from Win32_Process")   
       
strUser = ""   
      &#16
0;
return = objProcess.GetOwner(strUser)   
       
If return = 0 Then   
           
if UCase(objProcess.name) = UCase(processName) And UCase(strUser) = UCase(userName) then   
               
isRunning = True   
           
End if           
       
End If   
   
Next   
   
wscript.sleep 1000   
 
Loop   
wscript.sleep 10000   
     
End Sub  

Dla Ciekawskich: Plik stage2.reg wygląda tak:

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon]  
"DefaultDomainName"
="PJWSTK"  
"DefaultUserName"
="Administrator"  
"DefaultPassword"
="StandardoweHasloAdmina"  
"AutoAdminLogon"
="3"  
"ForceAutoLogon"
="1"  

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]  
"afterreboot"
="c:\scripts\stage2.vbs"

Jedziemy dalej. Żeby zrobić nienadzorowaną instalację SQL 2008 trzeba przygotować response file. Jako, że informatycy są z natury ludźmi leniwymi pozwoliłem, żeby setup MSSQL zrobił go za mnie :) Po wyklikaniu jakie składniki chcemy mieć na komputerze (w procesie zwykłej instalacji – więcej szczegółów tutaj). Jak już mamy plik odpowiedzi, to jedziemy.

stage2.vbs:

Dim WshShell  
Set WshShell = WScript.CreateObject("WScript.Shell")  
‚naprawiamy MSDTC – czasami przez zepsuty log instalacja potrafi sie wywalać. polega to na zatrzymaniu usługi MSDTC, wywołaniu msdtc -resetlog i ponownym uruchomieniu MSDTC  
WshShell.run "c:scriptsfixmsdtc.cmd",0,true  
‚zatrzymanie usługi Automatic Updates – nie chcemy, żeby jakiś inny setup chodził w tle i nam coś popsuł :)  
WshShell.run "c:scriptsupdatesstop.cmd",1,true  
WshShell.run "P:DbMicrosoftMsSQL2008devsetup.exe /q /CONFIGURATIONFILE=P:DbMicrosoftMsSQL2008devConfigurationFile.ini",0,true  
Wait "setup.exe","Administrator"  
‚znów MSDTC – same kłopoty z tą usługą :/  
WshShell.run "c:scriptsfixmsdtc.cmd",0,true  
‚autologin do stage 3  
WshShell.run "c:Windowsregedit.exe /s c:scriptsstage3.reg",1,true  
WshShell.run "c:scriptsshutdown.exe -r -t 30 -f"< font color="#000000">,1,false  

Sub Wait (processName, userName)   
 
On Error Resume Next   
 
Dim objProcess  
 
Dim wmi  
 
Dim isRunning  
 
Dim strUser  
 
Dim return  
 
isRunning = True  
 
set wmi=GetObject("winmgmts:")  
    
 
Do While isRunning  
   
isRunning = False  
   
for Each objProcess in wmi.ExecQuery("select * from Win32_Process")  
       
strUser = ""  
       
return = objProcess.GetOwner(strUser)  
       
If return = 0 Then  
           
if UCase(objProcess.name) = UCase(processName) And UCase(strUser) = UCase(userName) then  
               
isRunning = True  
           
End if          
       
End If  
   
Next  
   
wscript.sleep 1000  
 
Loop  
 
wscript.sleep 10000    
End Sub 

No już prawie koniec – jeszcze tylko Visual Studio. I tu zaczynają się schody. Teoretycznie robię to według tej instrukcji http://www.msfn.org/board/index.php?showtopic=117875, ale coś się nie udawało. Troszkę poczytać i wiem, że mój system to WinXP SP3. Ta aktualizacja zawiera już w sobie Windows Installera 3.5, więc trzeba odpowiednie wpisy usunąć z pliczku ini (więcej informacji tutaj). Ale to niestety jeszcze nie wszystko. Próba ciche instalacji się kończy po paru minutach. Wystarczy spojrzeć do Event Viewer-a, żeby zobaczyć, że Windows Installer próbuje zainstalować .NET 3.5. Jako, że już mamy nowszą wersję, to  setup zwraca błąd i sie kończy. Więc znów trzeba grzebać się w pliczku. Usuwamy wpisy dotyczące net framework z [PreInstallOrder], [InstallOrder] i [PostInstallOrder] oraz zmieniamy InstallActionInteger komponentu na 1. Teraz bangladesz :) dzięki temu mamy taki pliczek stage3.vbs:

Dim WshShell  
Set WshShell = WScript.CreateObject("WScript.Shell")  
WshShell.run "P:InstalkiMICROSOFTDevelopervisual_studio_2008Setupsetup.exe /UnattendFile P:InstalkiMICROSOFTDevelopervisual_studio_20082008v3.ini",0,true  
Wait "setup.exe","Administrator"  
WshShell.run "cmd /c""echo y|gpupdate /force """,1,true  
WshShell.run "c:winntshutdown.exe -r -t 30",1,false  

Sub Wait (processName, userName)   
 
On Error Resume Next   
 
Dim objProcess  
 
Dim wmi  
 
Dim isRunning  
 
Dim strUser  
 
Dim return  
 
isRunning = True  
 
set wmi=GetObject("winmgmts:")  
    
 
Do While isRunning  
   
isRunning = False  
   
for Each objProcess in wmi.ExecQuery("select * from Win32_Process")  
       
strUser = ""  
       
return = objProcess.GetOwner(strUser)  
       
If return = 0 Then  
           
if UCase(objProcess.name) = UCase(processName) And UCase(strUser) = UCase(userName) then  
               
isRunning = True  
           
End if          
       
End If  
   
Next  
   
wscript.sleep 1000  
 
Loop  
 
wscript.sleep 10000    
End Sub

To by było na tyle :) Działa aż miło :D

Jak sprawdzić GUID dysq

Potrzebowałem znaleźć GUID dysq – i pojawia się problem. Zacząłem szukać w interfejsie gdzież ten GUID można znaleźć… okazuje się, że nie można [w każdym razie mi się nie udało – ale jestem mało cierpliwy]. W pierwszej kolejności trzeba wiedzieć, że GUIDy są przypisywane tak na prawdę do ‚volume’ a nie do ‘disk’. Następnie należy skorzystać z uniwersalnego wytrychu w postaci ‘wmic’:

PS C:UsersnExoR> wmic volume get "label,caption,deviceid"
Caption  DeviceID                                           Label
C:      \?Volume{d815632d-daed-11dc-8b3b-806e6f6e6963}  SYSTEM
W:      \?Volume{d8156330-daed-11dc-8b3b-806e6f6e6963}  somecd

PS. [Post Scriptum a nie PowerShell (; ] w składni polecenia na początq widać ‘PS’ – standardowy prompt PowerShell. Jest to o tyle istotne, że z cmd dostaniecie zwrotkę w postaci błędu:

C:UsersnExoR>wmic volume get "label,caption,deviceid"
Node - UNION
ERROR:
Description = Invalid query

wystarczy nie wpisywać cudzysłowów: wmic volume get label,caption,deviceid

n.

Best Practices Analyzer nie chce się updateować

Aby działały update’y BPA na w2k8, narzędzie musi być uruchomione ‘as administrator’ – inaczej krzyczy coś o braq pliq.

n.

Vista oszalała czyli jak usunąć *kilkaset* urządzeń ISATAP

Z niewiadomych przyczyn czasami Vista + CheckPoint SecureClient = piekielne zło. Ostatnia emanacja szatana spod tego znaku spowodowała u mnie obecność kilkuset urządzeń sieciowych ISATAP i ogólny bałagan którego efektem był brak możliwości łączenia się na udziały sieciowe a nbtstat -c grzecznie mówił Netbt is not bound to any devices. Generalnie masakra. Jak poradzić sobie w tej krępującej sytuacji i nie klikać kilkaset razy w menedżerze urządzeń? Z pomocą przychodzi mało znane narzędzie devcon będące niczym innym tylko menedżerem urządzeń z linii poleceń. Niestety brak wersji x64 no ale nie można mieć wszystkiego. Radzimy sobie pisząc:

Dalej usuwamy wszystkie interfejsy sieciowe, czyścimy do końca pisząc:

Po boocie i ponownej instalacji sieciówek wszystko bangla jak trzeba.

Help Desk – co warto mieć jadąc do klienta?

Pomóżcie zebrać do kupy potrzebne rzeczy na robocie u klienta w formie help desku dla użytkowników.

Na początek:

1. śrubokręt krzyżak duży i mały

2. przejściówki do HDD (SATA,ATA)

3. przejściówki USB + LAN

4. coś do backupów (np.: Acronis bootCD)

5. ERD commander bootCD

6. Ultimate Boot CD albo Hiren’s Boot CD (i/lub pendrive)

7. Windows XP/VISTA

8. Office 2003/2007

9. aktualizacje offline (najwazniejsza to KB893357 ;-) może polecany przez domela RyanVM Integrator

10. programiki: cdburnxp, aimp2, kodeki, firefox, opera, paint .NET, sysinternals tools, netstumbler, 7-zip, winrar, putty, winscp itd.

11. Ubuntu Live CD (lub inne distro Live)

12. nLite

13. własny laptop

Co jeszcze? :)

TeraCopy i FC

ostatnio podpatrzyłem fajny tool – TeraCopy. niestety ‚free for home users’ więc na firmowego lapa 15€ trzeba będzie poświęcić. jak nazwa sugeruje tool służy do kopiowania i przenoszenia plików i nie byłoby w tym nic specjalnie wyjątkowego poza ważnym szczegółem – ładnie integruje się z systemem, zastępując gówniane, systemowe kopiowanie, dodając kolejkowanie, sumy kontrolne itp, itd – a więc wszystko to, czego braqje. [ps. testuję go na w7]

za chwilę trafiłem na problem – freecommander [freeware, ostatni update o2.2k9] nadal korzysta z systemowych libów. okazuje się jednak, że da się to ładnie da się problem rozwiązać, modyfiqjąc plik ini:

standardowa lokalizacja pliq: %userprofile%AppDataRoamingFreeCommanderfreecommander.ini
należy zamknąć aplikację a następnie dodać dwie linijki:

FileMovePrg=C:Program FilesTeraCopyTeraCopy.exe Move *%ActivSelAsFile% "%InactivDir%"
FileCopyPrg=C:Program FilesTeraCopyTeraCopy.exe Copy *%ActivSelAsFile% "%InactivDir%"

[oczywiście podając odpowiednie ścieżki do teracopy]

najs end łorking (;

n.

SIP [OCS]

SIP nie pozwala na znaki z poza standardowego alfabetu łacińskiego [na znaki diakrytyczne]. efekt może być nieco mylący, ponieważ sam interfejs nie ostrzega – podczas włączania użytkownikom funkcjonalności OCS można wybrać automatyczne tworzenie nazwy SIP domain jako imię.nazwisko@siddomain. wizard pokazuje wszystko jako ‚success’ a potem zaczynają się pytania typu ‚czemu po rozwinięciu adresów grupy nie widać wszystkich osób?’.
problem jest dość łatwo zdebugować, ponieważ w eventlogu na serwerze pojawiają sie warningi [nie errory] informujące, że jest problem w synchronizacji adresu SIP.
przypadek na jaki trafiłem był dość ciekawy i zacząłem debugowanie od złego narzędzia – ADSIEdit. po zmianie adresu SIP na nowy [np. z jozef.kot@domain.internal na józef.kot@domena.com], user oczywiście nie mógł zalogować się na nowy adres. sprawdziłem ADSIEditem atrybut msRTCSIP-DomainName – i wszystko niby ok. a mimo to user nadal jest w stanie zalogować się na stary adres. początkowo myślałem, że to może opóźnienie replikacji, ale nic z tego… w końcu sięgnąłem po najprostsze narzędzie – czyli eventvwr i wszystko stało się jasne.
dowodzi to:

  • żeby mimo wszystko zaczynać od podstawowych narzędzi [nawet jeśli spodziewa się poważniejszych problemów]
  • że OCS pomimo tego, że integruje się z AD i z niego sczytuje informacje to realnie korzysta z danych w SQL

niestety inne kwestie nie są takie proste do zdebugowania – zwłaszcza komunikacja pomiędzy komponentami takimi jaki Edge czy WebAccess to długie godziny ślęczenia i sprawdzania na poziomie protokołu. wszelkie odstępstwa od podręcznika okazują się generować problemy ):

n.

%d bloggers like this: