tag:blogger.com,1999:blog-68841422268660474562024-03-05T07:15:34.739+01:00Dave's BlogDavehttp://www.blogger.com/profile/01996977551353943507noreply@blogger.comBlogger68125tag:blogger.com,1999:blog-6884142226866047456.post-38157579310800560982015-06-08T23:50:00.003+02:002015-06-09T18:09:52.291+02:00Video surveillance - Hikvision IP cameras with Xeoma NVR software solutionI recently switched from analogue cameras and dedicated DVR to IP cameras in order to consolidate my infrastructure.<br />
I acquired 2 different <a href="http://overseas.hikvision.com/en/index.html" target="_blank">Hikvision</a> full-HD (3MP) IP cameras which appear to be a good quality/cost compromise.<br />
These cameras are :<br />
for internal use : DS-2CD2432F-I(W)<br />
for external use : DS-2CD2332-I<br />
<br />
These IP cameras come with internal software but I wanted to manage them centrally.<br />
I had a look at different NVR software solutions.<br />
- <b>Hikvision </b>offers a free but limited software (iVMS-4200 PCNVR) (Windows).<br />
- <b>ISpyConnect </b>(Windows)<br />
- <b>ZoneMinder </b>(Linux)<br />
- <b>Xeoma </b>(Windows, Linux, MacOS, Android)<br />
<br />
I wished to run it on Linux preferably to lower the resource requirements.<br />
<br />
<br />
<br />
<ul>
<li><u><b>Hikvision </b></u>solution runs well with good video quality but has no remote access for mobile devices, and event/trigger/action is pretty limited.</li>
</ul>
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_xQjyGBZvnRjcgfBBXumSR1Fwfbop15Ju79WH2c9j2yIJubPhVr5xTXDHDZx0W-B_KIO4RF7XnOWYzqSDY5GNgJ49kZcXa1Zy7OkTFDEeLNyy_RPwjShDr6KDv6jZhWdkrdbUUfSekvs/s1600/ivms.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_xQjyGBZvnRjcgfBBXumSR1Fwfbop15Ju79WH2c9j2yIJubPhVr5xTXDHDZx0W-B_KIO4RF7XnOWYzqSDY5GNgJ49kZcXa1Zy7OkTFDEeLNyy_RPwjShDr6KDv6jZhWdkrdbUUfSekvs/s400/ivms.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoJ_eninNTU5sEhRyRuaJ7ZpgmGodcFeEstlcrnfReIaYnz3pneRvUV6-9jXYLqRloxbARz9YyU5tD6s45dwWVllAvwaM5EV0n9dk3JSABWR-RtmSW3rupsVp4zlJ-HUHYvI73yfH8OIw/s1600/ispy.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><br /></a></div>
<br />
<ul>
<li><u><b>ISpyconnect </b></u>seemed to work initially but has some smearing effects very often. It also requires to use a cloud account to remotely access your own NVR.</li>
</ul>
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoJ_eninNTU5sEhRyRuaJ7ZpgmGodcFeEstlcrnfReIaYnz3pneRvUV6-9jXYLqRloxbARz9YyU5tD6s45dwWVllAvwaM5EV0n9dk3JSABWR-RtmSW3rupsVp4zlJ-HUHYvI73yfH8OIw/s1600/ispy.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjoJ_eninNTU5sEhRyRuaJ7ZpgmGodcFeEstlcrnfReIaYnz3pneRvUV6-9jXYLqRloxbARz9YyU5tD6s45dwWVllAvwaM5EV0n9dk3JSABWR-RtmSW3rupsVp4zlJ-HUHYvI73yfH8OIw/s400/ispy.png" width="400" /> </a></div>
<br />
<ul>
<li><u><b>ZoneMinder </b></u>is free and runs on Linux which are good points and offers mobile device oriented web portal. It has many many settings but interface is basic.</li>
</ul>
Main drawback here again is the smearing effect which is blocking for this purpose.<br />
<br />
<div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaQZ9s7WzZ5aj5KMSQMidq7hUZieHS1SQGEWe9T-YQAjkog7qqYfb8Cn6WDB_P4m4qESF4Ni3zClTHN-YCmd81ibkEqDu8RbPJ_-ApxeGPQM_3Q8nZi9NmQpXBv8NXSo0bZwYO8YP5uYk/s1600/zoneminder.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaQZ9s7WzZ5aj5KMSQMidq7hUZieHS1SQGEWe9T-YQAjkog7qqYfb8Cn6WDB_P4m4qESF4Ni3zClTHN-YCmd81ibkEqDu8RbPJ_-ApxeGPQM_3Q8nZi9NmQpXBv8NXSo0bZwYO8YP5uYk/s400/zoneminder.png" width="400" /></a> </div>
<br />
<ul>
<li><u><b>Xeoma <a href="http://felenasoft.com/en/" target="_blank">http://felenasoft.com/en/</a></b></u></li>
</ul>
<ul><ul>
<li> First excellent point, the <u>video quality is as good as on the proprietary Hikvision software</u></li>
</ul>
</ul>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAujmOFCyg9W1KuFe-PsqR-1cMNE8pCe3LdRT8yf8RavXEl_MO57kB6IIJVgQf25g45RYkvtwVkvbtm4CntRhVj5wVFKWCHVu41zovAZzPilesmzGOkVMe9hSwWE5e5XtP9YNuRhROwZk/s1600/xeoma4.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAujmOFCyg9W1KuFe-PsqR-1cMNE8pCe3LdRT8yf8RavXEl_MO57kB6IIJVgQf25g45RYkvtwVkvbtm4CntRhVj5wVFKWCHVu41zovAZzPilesmzGOkVMe9hSwWE5e5XtP9YNuRhROwZk/s1600/xeoma4.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAujmOFCyg9W1KuFe-PsqR-1cMNE8pCe3LdRT8yf8RavXEl_MO57kB6IIJVgQf25g45RYkvtwVkvbtm4CntRhVj5wVFKWCHVu41zovAZzPilesmzGOkVMe9hSwWE5e5XtP9YNuRhROwZk/s400/xeoma4.png" width="400" /></a></div>
<br />
<br />
<ul><ul>
<li>Then it runs on multiple OS</li>
</ul>
</ul>
<ul><ul>
<li> It is composed of a server and a client, and you can then run the server only on a light headless linux machine (or a VM) and operate it from your Windows laptop for instance</li>
</ul>
</ul>
<ul><ul>
<li>The interface is clean, intuitive and event/trigger/action are graphically managed by chaining module boxes</li>
</ul>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguUu_Wgv4BQojCJsvTdjh-RjF_hletk1iK33dfW4b5PTOpdMMmtA4Ij1tJ40xE_ec-9BR6QuBYlYn2Srhvf_mMf9vNPnk0W8eoVm_ugTAlsAIM5xPCnTcTzxIIng8IB3bX0ayF5gfKms4/s1600/xeoma2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguUu_Wgv4BQojCJsvTdjh-RjF_hletk1iK33dfW4b5PTOpdMMmtA4Ij1tJ40xE_ec-9BR6QuBYlYn2Srhvf_mMf9vNPnk0W8eoVm_ugTAlsAIM5xPCnTcTzxIIng8IB3bX0ayF5gfKms4/s400/xeoma2.png" width="400" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUapqiLJ0rfF4PGVyZ8DrcC7UCu5Hjj-HvEYawOCuGB5cE-vrRIpud_z0snrgi4nAPy8z0rD2Yhe7d8_S3L9Uib3rA-pGVMhBl_VVwd2WveIntgInlSZJqvNffuvq4KHUPK-QVl5g8oXg/s1600/xeoma3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUapqiLJ0rfF4PGVyZ8DrcC7UCu5Hjj-HvEYawOCuGB5cE-vrRIpud_z0snrgi4nAPy8z0rD2Yhe7d8_S3L9Uib3rA-pGVMhBl_VVwd2WveIntgInlSZJqvNffuvq4KHUPK-QVl5g8oXg/s1600/xeoma3.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUapqiLJ0rfF4PGVyZ8DrcC7UCu5Hjj-HvEYawOCuGB5cE-vrRIpud_z0snrgi4nAPy8z0rD2Yhe7d8_S3L9Uib3rA-pGVMhBl_VVwd2WveIntgInlSZJqvNffuvq4KHUPK-QVl5g8oXg/s400/xeoma3.png" width="400" /></a></div>
<br />
<ul><ul>
<li>You can as well use external service like clickatell to send text messages on alerts.</li>
</ul>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJHvQfj6fDPgD7bRE1RQOpRk9IxNodHa9cFzdKPBF_IGM6MFs5wSapqNSl1ck1VozLOseAaFD3hgKRjWVrWaY7Vv8UYuqtwmCkk3lvkgRqk8GSoI76MH6EimBwBBAUww-EyNQzPpfH0TU/s1600/xeoma1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJHvQfj6fDPgD7bRE1RQOpRk9IxNodHa9cFzdKPBF_IGM6MFs5wSapqNSl1ck1VozLOseAaFD3hgKRjWVrWaY7Vv8UYuqtwmCkk3lvkgRqk8GSoI76MH6EimBwBBAUww-EyNQzPpfH0TU/s400/xeoma1.png" width="400" /></a></div>
<br />
<br />
<ul><ul>
<li> I found that it lacks some monitoring app for IOS and Windows Phone, but you can create a custom view web server using the web server module and access it from your phone's browser or any device, so it's not blocking.</li>
<li>Basic network layout<br /><div style="text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTlQpnWuAhp0A4QxwQReGCwht27pFWtvEMz117dTRKC0Vcb7eepIRtPKY7wGkEMKhNT_Mn2hodCDz2i_wY2RUqC7MJR4f9_wp87yOHiZ325YaHMVTU7O83vqfumPa6dn2_f0XZNzPLSMI/s1600/vsnetwork.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="346" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTlQpnWuAhp0A4QxwQReGCwht27pFWtvEMz117dTRKC0Vcb7eepIRtPKY7wGkEMKhNT_Mn2hodCDz2i_wY2RUqC7MJR4f9_wp87yOHiZ325YaHMVTU7O83vqfumPa6dn2_f0XZNzPLSMI/s400/vsnetwork.png" width="400" /></a></div>
</li>
</ul>
</ul>
Definitely this piece of software makes it easy to manage your camera and if you have Hikvision IP cameras, Xeoma is the only one that displays/records correctly the streams (in addtion to Hikvision own software of course). <br />
<br />Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com66tag:blogger.com,1999:blog-6884142226866047456.post-27070598495309647932011-05-03T13:49:00.001+02:002011-05-03T13:51:27.999+02:00TAPI Calling from Outlook and Lync 2010 issues<p>After installing Lync 2010 the TAPI calling feature in Outlook 2010 no longer was working. It seems that Outlook uses Lync as it’s default “Call Contact” method.</p> <p>To change this you need to override this setting in the registry with the following key (you can paste this to a “.reg” file and double click it to add it to the registry):</p> <p>[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Outlook\Call Integration] <br />"TAPIOVERRIDE"=dword:00000001</p> Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-6884142226866047456.post-25320846496702608862011-04-04T13:29:00.001+02:002011-04-04T13:29:35.290+02:00Enable hidden features in Zune<p>When I switched the Windows Live account I was using in Zune from a US registered account to a German registered account I wondered where all the features like podcast browsing and SmartDJ disappeared to.</p> <p>For some reason Microsoft thinks that if you are in Germany you might not understand how these things work if there are not in the German language ;).</p> <p>To turn these features on you have to add a registry key “FeaturesOverride” in HKCU\Software\Microsoft\Zune\ and add the DWORD values as in the graphic below:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJQByXCMuINuq38VU5yygOI1wkpfdJFlLSTvtHbfqirOtKj4w5nNejSInIVruCe5rRO5ua7Ajr0unAWt-0cG8ZC-eT0VFhWk5bY1TW4OaRrK9iINw_YfMKYwNJjBp0jdPcpNEuFW4NdQU/s1600-h/image%5B3%5D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikG1KIuwBhr9abHLikxUFO4IyRzn3pdiJVO8u7GGFhUHcxZoVBcJfgY1gnVIWmdOP5ev4ro5NdqU-yK5flxa6BNVZr0_MWrgSBNiQMBN7bPZwmVkpkOdZ7qacN0fAYN2LXQeljqcvia-w/?imgmax=800" width="389" height="381" /></a></p> <p>Open up Zune and the features should be there :D</p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-28429929506870111622011-04-04T12:09:00.001+02:002011-04-04T12:09:19.282+02:00Blob Cache for SharePoint 2010<p>On a SharePoint Web Front End you can turn on the BLOB cache which allows the webserver to cache certain file types on the front end without having to go back to the SQL server.</p> <p>The setting for doing this is in the web.config file of the web application. For example to activate it on the cp Portal I used the following configuration:</p> <p><em><strong><BlobCache location="C:\BlobCache\14" path="\.(gif|jpg|jpeg|jpe|jfif|bmp|dib|tif|tiff|ico|png|wdp|hdp|css|js|asf|avi|flv|m4v|mov|mp3|mp4|mpeg|mpg|rm|rmvb|wma|wmv)$" maxSize="10" enabled="true" /></strong></em></p> <p> </p> <p>The line was already in the web.config file but I had to change enabled to “true” and also create the folder c:\BlobCache</p> <p>The users also have to be changed a la: <a title="http://technet.microsoft.com/en-us/library/ff758656.aspx" href="http://technet.microsoft.com/en-us/library/ff758656.aspx">http://technet.microsoft.com/en-us/library/ff758656.aspx</a></p> Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-6884142226866047456.post-36476220864807562422011-03-14T15:12:00.001+01:002011-04-04T12:23:30.195+02:00Issues with Delta CRL Publishing to IIS<p>I have an Enterprise CA that publishes its CRL to an IIS (7.5) website. The CA adds a plus (+) character to the file name for the Delta CRL.</p> <p>In order for IIS to show this plus sign properly you need to allow double escaping. You can do this with powershell:</p> <p><strong><em>Set-WebConfiguration -Filter system.webServer/security/requestFiltering -PSPath ‘IIS:\sites\My Web Site’ -Value @{allowDoubleEscaping=$true}</em></strong></p> <p>You may need to import the IIS module first with:</p> <p><strong><em>Import-Module Webadministration</em></strong></p> Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-6884142226866047456.post-51520519847501116152011-02-25T15:59:00.007+01:002011-04-13T17:39:21.445+02:00Batch edit shortcut targets with a VB ScriptOn some file servers, users create multiple shotcuts pointing to different locations on the same server.<br />When migrating data from this server to another, these shorcuts are deprecated, so you need to update them and you can have thousands...<br />Here is a VB script that let you batch edit these shortcuts so that you can keep all of them updated.<br /><br />Dim objFSO<br /><br />Const srcServer = "\\formerServer\"<br />Const dstServer = "\\newServer\"<br /><br />args = WScript.Arguments.Count<br /><br />If args < 1 then<br /> WScript.Echo "usage: cscript replaceLinkTarget.vbs [folder]"<br /> WScript.Quit<br />End If<br /><br />Set objFSO = CreateObject("Scripting.FileSystemObject")<br /><br />Call FindEditShortcut(WScript.Arguments.Item(0))<br /><br /><br />Sub FindEditShortcut(currentDrive)<br /> Dim objFile<br /> Dim objFolder<br /><br /> For Each objFolder In objFSO.GetFolder(currentDrive).SubFolders <br /> For Each objFile In objFolder.Files<br /> 'Check extension<br /> If LCase(objFSO.GetExtensionName(objFile)) = "lnk" Then<br /> Set objShell = CreateObject("WScript.Shell")<br /> Set shortcut = objShell.CreateShortcut(objFile.path)<br /> target = LCase(shortcut.TargetPath)<br /><br /> If (InStr(target, srcServer) > 0) Then<br /> target = replace(target,srcServer,dstServer)<br /> Wscript.Echo "New target : " & target<br /> shortcut.TargetPath = target<br /> shortcut.Save<br /> End If<br /> End If<br /> Next<br /> <br /> Call FindEditShortcut(objFolder)<br /> Next<br />End SubChristophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com4tag:blogger.com,1999:blog-6884142226866047456.post-2130434891024563212011-01-19T16:14:00.005+01:002011-04-04T12:23:30.196+02:00Browse a Windows Server 2008 through an alias with explorerWhen migrating a server to a new one, you may want to create an alias with the old server name to the new one.<br />DNS will resolve it, but browsing through explorer will fail.<br />In order to solve this, start RegEdit and deploy :<br /><span style="font-weight: bold;">HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters</span><br />Then create a new <span style="font-weight: bold;">DWORD </span>value called : <span style="font-weight: bold;">DisableStrictNameChecking </span>and set it to <span style="font-weight: bold;">1</span>.<br />Restart your server.Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-76741753245877560202011-01-13T15:00:00.005+01:002011-04-04T12:23:30.196+02:00Add language pack even if the feature is missing / unavailable in Windows 7 (or Vista)On computers purchased from manufacturers like Dell, HP..., a Windows 7 OEM version is installed.<br />In these OEM versions, contrary to Microsoft contracted versions, the button to add a language pack from a MUI is unavailable (Control Panel / Region and Language / Keyboards and Languages).<br /><br />If you bought your system abroad or Windows doesn't match the user's language, you can still do it successfully on Windows 7 and Vista with this little utility : <a href="http://www.froggie.sk/download.html">Vistalizator</a>Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com1tag:blogger.com,1999:blog-6884142226866047456.post-18027529449526163202010-11-15T12:22:00.014+01:002010-11-16T15:39:50.082+01:00Password change reminder script for all ADIf you have remote users in your domain, they are not notified by the DC when their password is about to expire, because they open their windows session before the VPN client can connect to the DC.<br /><br />Here is a script that you can run daily on your DC to send an email to users from an OU, everyday for some days before it expires.<br />So they know they have to change it before it really expires.<br /><br /><P>Option Explicit</P><br /><P>' Per environment constants - you should change these<BR><br />Const SMTP_SERVER = "emailserv.mydomain.intra" ' your mail server<BR><br />Const STRFROM = "<A HREF="mailto:dcserv@mydomain.intra">dcserv@mydomain.intra</A>" ' your DC <BR><br />Const DAYS_FOR_EMAIL = 14 'Send notification when pwd will expire in this number of days<BR><br />Const GROUPDN = "CN=USERS_OU,OU=Groups,OU=Domain Users,DC=mydomain,DC=intra" ' Recurse this user OU<BR><br />Const LOGFILE = "C:\Scripts\PasswordExpiration\passwordexpiration.log" ' Log file path</P><br /><P>' System Constants - do not change<BR><br />Const ONE_HUNDRED_NANOSECOND = .000000100 ' .000000100 is equal to 10^-7<BR><br />Const SECONDS_IN_DAY = 86400<BR><br />Const ADS_UF_DONT_EXPIRE_PASSWD = &h10000<BR><br />Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D</P><br /><P>' Change to "True" for extensive debugging output<BR><br />Const bDebug = False</P><br /><P>Dim numDays, iResult<BR><br />Dim strDomain<BR><br />Dim objGroup, objMember, member<BR><br />Dim objFSO, objFile, strOutput</P><br /><P>Set objFSO = CreateObject("Scripting.FileSystemObject")<BR><br />If objFSO.FileExists(LOGFILE) = True Then<BR><br /> objFSO.DeleteFile(LOGFILE)<BR><br />End If</P><br /><P>Set objFile = objFSO.OpenTextFile(LOGFILE, 8, True)</P><br /><P>Set objGroup = GetObject("LDAP://" & GROUPDN)<BR><br />objFile.WriteLine "Executed at " & Now() & vbCRLF<BR><br />objFile.WriteLine "Enumerating members of " & objGroup.distinguishedName & ":" & vbCRLF</P><br /><BR><br /><P>Call GetSubMembers(objGroup)</P><br /><P>objFile.WriteLine "Done. Finished at " & Now() & "."<BR><br />objFile.Close</P><br /><P> </P><br /><P>Function GetSubMembers (GroupObject)<BR><br /> Dim TmpMember<BR><br /> numDays = 0</P><br /><P> If (TypeName(GroupObject.Member) = "Empty") Then<BR><br /> Exit Function<BR><br /> End If</P><br /><P> If (TypeName(GroupObject.Member) = "String") Then<BR><br /> TmpMember = GroupObject.Member<BR><br /> Set objMember = GetObject("LDAP://" & GroupObject.Member)<BR><br /> If (LCase(objMember.Class) = "user") then<BR><br /> Wscript.Echo objMember.sAMAccountName<BR><br /> strDomain = Mid(objMember.distinguishedname, InStr(objMember.distinguishedname, "DC="))<BR><br /> numdays = GetMaximumPasswordAge (strDomain)<BR><br /> objFile.WriteLine objMember.sAMAccountName & " " & TmpMember & " " & numdays & " " & objMember.Mail<BR><br /> Call ProcessUser (numDays)<BR><br /> else<BR><br /> Wscript.Echo "Group : " & objMember.CN<BR><br /> objFile.WriteLine "Group 1: " & objMember.CN<BR><br /> Call GetSubMembers(objMember)<BR><br /> End If<BR><br /> <BR><br /> Else<BR><br /> For Each TmpMember In GroupObject.Member<BR><br /> Set objMember = GetObject("LDAP://" & TmpMember)</P><br /><P> If (LCase(objMember.Class) = "group") Then <BR><br /> Wscript.Echo "Group : " & objMember.CN<BR><br /> objFile.WriteLine "Group 2: " & objMember.CN<BR><br /> Call GetSubMembers(objMember)<BR><br /> Else<BR><br /> Wscript.Echo objMember.sAMAccountName<BR><br /> strDomain = Mid(objMember.distinguishedname, InStr(objMember.distinguishedname, "DC="))<BR><br /> numdays = GetMaximumPasswordAge (strDomain)<BR><br /> objFile.WriteLine objMember.sAMAccountName & " " & TmpMember & " " & numdays & " " & objMember.Mail<BR><br /> Call ProcessUser (numDays)<BR><br /> End If<BR><br /> Next<BR><br /> End If<BR><br />End Function</P><br /><BR><br /><P>Function GetMaximumPasswordAge (ByVal strDomainDN)<BR><br /> Dim objDomain, objMaxPwdAge<BR><br /> Dim dblMaxPwdNano, dblMaxPwdSecs, dblMaxPwdDays</P><br /><P> Set objDomain = GetObject("LDAP://" & strDomainDN)<BR><br /> Set objMaxPWdAge = objDomain.maxPwdAge</P><br /><P> If objMaxPwdAge.LowPart = 0 And objMaxPwdAge.Highpart = 0 Then<BR><br /> ' Maximum password age is set to 0 in the domain<BR><br /> ' Therefore, passwords do not expire<BR><br /> GetMaximumPasswordAge = 0<BR><br /> Else<BR><br /> dblMaxPwdNano = Abs (objMaxPwdAge.HighPart * 2^32 + objMaxPwdAge.LowPart)<BR><br /> dblMaxPwdSecs = dblMaxPwdNano * ONE_HUNDRED_NANOSECOND<BR><br /> dblMaxPwdDays = Int (dblMaxPwdSecs / SECONDS_IN_DAY)<BR><br /> GetMaximumPasswordAge = dblMaxPwdDays<BR><br /> End If<BR><br />End Function</P><br /><BR><br /><P>Function UserIsExpired (objMember, iMaxAge, iDaysForEmail, iRes)<BR><br /> Dim intUserAccountControl, dtmValue, intTimeInterval<BR><br /> Dim strName<BR><br /> On Error Resume Next<BR><br /> Err.Clear<BR><br /> strName = Mid (objMember.Name, 4)<BR><br /> intUserAccountControl = objMember.Get ("userAccountControl")</P><br /><P> If intUserAccountControl And ADS_UF_DONT_EXPIRE_PASSWD Then<BR><br /> dp "The password for " & strName & " does not expire."<BR><br /> UserIsExpired = False<BR><br /> Else<BR><br /> iRes = 0<BR><br /> dtmValue = objMember.PasswordLastChanged<BR><br /> If Err.Number = E_ADS_PROPERTY_NOT_FOUND Then<BR><br /> UserIsExpired = True<BR><br /> dp "The password for " & strName & " has never been set."<BR><br /> Else<BR><br /> intTimeInterval = Int (Now - dtmValue)<BR><br /> dp "The password for " & strName & " was last set on " & _<BR><br /> DateValue(dtmValue) & " at " & TimeValue(dtmValue) & _<BR><br /> " (" & intTimeInterval & " days ago)"<BR><br /> If intTimeInterval >= iMaxAge Then<BR><br /> dp "The password for " & strName & " has expired."<BR><br /> UserIsExpired = True<BR><br /> Else<BR><br /> iRes = Int ((dtmValue + iMaxAge) - Now)<BR><br /> dp "The password for " & strName & " will expire on " & _<BR><br /> DateValue(dtmValue + iMaxAge) & " (" & _<BR><br /> iRes & " days from today)."<BR><br /> If iRes <= iDaysForEmail Then<BR><br /> dp strName & " needs an email for password change"<BR><br /> UserIsExpired = True<BR><br /> Else<BR><br /> dp strName & " does not need an email for password change"<BR><br /> 'Swap commented variable below to force email to be sent (for testing).<BR><br /> UserIsExpired = False<BR><br /> End If<BR><br /> End If<BR><br /> End If<BR><br /> End If<BR><br />End Function</P><br /><BR><br /><P>Sub ProcessUser (iMaxPwdAge)<BR><br /> Dim iResult, strExpire<BR><br /> If Right (objMember.Name, 1) <> "$" Then<BR><br /> If IsEmpty (objMember.Mail) or IsNull (objMember.Mail) Then<BR><br /> dp Mid (objMember.Name, 4) & " has no mailbox"<BR><br /> Else<BR><br /> If UserIsExpired (objMember, iMaxPwdAge, DAYS_FOR_EMAIL, iResult) Then<BR><br /> objFile.WriteLine "Sending an email to " & objMember.givenName & " " & objMember.sn & _<BR><br /> " (" & objMember.Mail & "). Password expires in " & iResult & " days." & vbCRLF<BR><br /> Call SendEmail (iResult)<BR><br /> Else<BR><br /> If iResult = "" Then<BR><br /> strExpire = "."<BR><br /> Else<BR><br /> strExpire = " for " & iResult & " days."<BR><br /> End If<BR><br /> objFile.WriteLine "Skipping " & objMember.givenName & " " & objMember.sn & _<BR><br /> ". Password does not expire" & strExpire & vbCRLF<BR><br /> End If<BR><br /> End If<BR><br /> End If<BR><br />End Sub</P><br /><BR><br /><P>Sub SendEmail (iResult)<BR><br /> Dim objMail<BR><br /> Set objMail = CreateObject ("CDO.Message")<BR><br /> objMail.Configuration.Fields.Item ("<A HREF="http://schemas.microsoft.com/cdo/configuration/sendusing" TARGET="_blank">http://schemas.microsoft.com/cdo/configuration/sendusing</A>") = 2<BR><br /> objMail.Configuration.Fields.Item ("<A HREF="http://schemas.microsoft.com/cdo/configuration/smtpserver" TARGET="_blank">http://schemas.microsoft.com/cdo/configuration/smtpserver</A>") = SMTP_SERVER<BR><br /> objMail.Configuration.Fields.Item ("<A HREF="http://schemas.microsoft.com/cdo/configuration/smtpserverport" TARGET="_blank">http://schemas.microsoft.com/cdo/configuration/smtpserverport</A>") = 25<BR><br /> objMail.Configuration.Fields.Update</P><br /><P> objMail.From = STRFROM<BR><br /> objMail.To = objMember.Mail</P><br /><P> objMail.Subject = "[IMPORTANT] :: The Windows password of " & Mid (objMember.Name, 4) & " is going to expire"<BR><br /> objMail.Textbody = "Hello, The Windows Active Directory password for user " & objMember.givenName & " " & objMember.sn & _<BR><br /> " (" & objMember.sAMAccountName & ")" & " will expire in " & iResult & " days. " & vbCRLF & vbCRLF & _<BR><br /> "Please change it before it expires (CTRL+ALT+DEL, then change password)." & vbCRLF & vbCRLF & _<BR><br /> "If you are a remote user, please connect with your VPN client and then change the password (so that DC server will be notified). The VPN peer will be automatically updated within 5 minutes." & vbCRLF & _<BR><br /> "You can also use Outlook Web Access with Internet Explorer (richer GUI than in Firefox) from outside to change it before it expires." & vbCRLF & vbCRLF & _<BR><br /> "If you have a phone with email capability, please change your password on it too." & vbCRLF & vbCRLF & _<BR><br /> "Thank you."<BR><br /> objMail.Send<BR><br /> Set objMail = Nothing<BR><br />End Sub</P><br /><BR><br /><P>Sub dp (str)<BR><br /> If bDebug Then<BR><br /> objFile.WriteLine str<BR><br /> End If<BR><br />End Sub</P>Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com2tag:blogger.com,1999:blog-6884142226866047456.post-82194935368578633852010-11-15T10:50:00.001+01:002011-04-04T12:23:30.198+02:00MBR / GPT partition style and Windows Server 2008 R2 system partition<!--[if gte mso 9]><xml> <o:officedocumentsettings> <o:allowpng/> <o:targetscreensize>1024x768</o:TargetScreenSize> </o:OfficeDocumentSettings> </xml><![endif]--><!--[if gte mso 9]><xml> <w:worddocument> <w:view>Normal</w:View> <w:zoom>0</w:Zoom> <w:trackmoves/> <w:trackformatting/> <w:hyphenationzone>21</w:HyphenationZone> <w:punctuationkerning/> <w:validateagainstschemas/> <w:saveifxmlinvalid>false</w:SaveIfXMLInvalid> <w:ignoremixedcontent>false</w:IgnoreMixedContent> <w:alwaysshowplaceholdertext>false</w:AlwaysShowPlaceholderText> <w:donotpromoteqf/> <w:lidthemeother>FR</w:LidThemeOther> <w:lidthemeasian>X-NONE</w:LidThemeAsian> <w:lidthemecomplexscript>X-NONE</w:LidThemeComplexScript> <w:compatibility> <w:breakwrappedtables/> <w:snaptogridincell/> <w:wraptextwithpunct/> <w:useasianbreakrules/> <w:dontgrowautofit/> <w:splitpgbreakandparamark/> <w:dontvertaligncellwithsp/> <w:dontbreakconstrainedforcedtables/> <w:dontvertalignintxbx/> <w:word11kerningpairs/> <w:cachedcolbalance/> </w:Compatibility> <w:browserlevel>MicrosoftInternetExplorer4</w:BrowserLevel> <m:mathpr> <m:mathfont val="Cambria Math"> <m:brkbin val="before"> <m:brkbinsub val="--"> <m:smallfrac val="off"> <m:dispdef/> <m:lmargin val="0"> <m:rmargin val="0"> <m:defjc val="centerGroup"> <m:wrapindent val="1440"> <m:intlim val="subSup"> <m:narylim val="undOvr"> </m:mathPr></w:WordDocument> </xml><![endif]--><!--[if gte mso 9]><xml> <w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"> <w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"> <w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"> <w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"> <w:lsdexception locked="false" priority="39" name="toc 1"> <w:lsdexception locked="false" priority="39" name="toc 2"> <w:lsdexception locked="false" priority="39" name="toc 3"> <w:lsdexception locked="false" priority="39" name="toc 4"> <w:lsdexception locked="false" priority="39" name="toc 5"> <w:lsdexception locked="false" priority="39" name="toc 6"> <w:lsdexception locked="false" priority="39" name="toc 7"> <w:lsdexception locked="false" priority="39" name="toc 8"> <w:lsdexception locked="false" priority="39" name="toc 9"> <w:lsdexception locked="false" priority="35" qformat="true" name="caption"> <w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"> <w:lsdexception locked="false" priority="1" name="Default Paragraph Font"> <w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"> <w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"> <w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"> <w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"> <w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"> <w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"> <w:lsdexception locked="false" unhidewhenused="false" name="Revision"> <w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"> <w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"> <w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"> <w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"> <w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"> <w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"> <w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"> <w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"> <w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"> <w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"> <w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"> <w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"> <w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"> <w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"> <w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"> <w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"> <w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"> <w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"> <w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"> <w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"> <w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"> <w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"> <w:lsdexception locked="false" priority="37" name="Bibliography"> <w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"> </w:LatentStyles> </xml><![endif]--><!--[if gte mso 10]> <style> /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tableau Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin;} </style> <![endif]--> <p class="MsoNormal"><span style="" lang="EN-US">GPT partition style has been introduced to expand the limitations of the MBR (2TB).</span></p> <p class="MsoNormal"><span style="" lang="EN-US">Today with disks of 2TB, you can have a raid system much larger than 2TB (eg : on a NAS, file server…)</span></p> <p class="MsoNormal"><span style="" lang="EN-US">If you wish to install a system on a 8TB partition for instance you need to create a partition on a GPT partition style of 8TB.</span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p> <p class="MsoNormal"><span style="" lang="EN-US">Windows can handle disks larger than 2TB, but not for the windows system installation…<br /><span style="font-weight: bold; color: rgb(255, 0, 0);">Even Windows Server 2008R2 can only install on a MBR partition style, so up to a 2TB partition.</span></span></p> <p class="MsoNormal"><span style="" lang="EN-US">So you will have to split your raid into 2 and have Windows installed on the first and have data on the second.</span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p> <p class="MsoNormal"><span style="" lang="EN-US">For instance : </span></p> <p class="MsoNormal"><span style="" lang="EN-US">We have 5x 2TB HDD (initially a 8GB raid 5)</span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p> <p class="MsoNormal"><span style="" lang="EN-US">It can become :</span></p> <p class="MsoNormal"><span style="" lang="EN-US">2x 2TB HDD (raid 1) for Windows</span></p> <p class="MsoNormal"><span style="" lang="EN-US">3x 2TB HDD (raid 5) for data </span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p> <p class="MsoNormal"><span style="" lang="EN-US">So there is a lot of spare space on the first partition (system). Of course you can split into 2 partitions (system + data).</span></p> <p class="MsoNormal"><span style="" lang="EN-US">So you’d better have 2 small disks in raid 1 for the system and then have multiple large disks for data.</span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p> <p style="font-style: italic;" class="MsoNormal"><span style="" lang="EN-US">Be aware that NAS servers are usually sold with a bunch of large disks.</span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p> <p class="MsoNormal"><span style="" lang="EN-US"> </span></p>Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com1tag:blogger.com,1999:blog-6884142226866047456.post-71515052339573047692010-11-04T13:29:00.001+01:002010-11-04T13:29:50.231+01:00SharePoint 2010 not crawling some sites<p>I recently came across an issue where SharePoint was not indexing some Site Collections and the crawl logs were showing the following with reference to the problematic Site Collection:</p> <p>"The SharePoint item being crawled returned an error when attempting to download the item"</p> <p>It turns out the start page of the root site contained a search result webpart which was causing the crawler to abort the rest of the crawl.</p> <p>This issue has since been fixed in a hotfix. Install the latest CU to solve the issue.</p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-25176703668665159172010-11-03T13:12:00.001+01:002010-11-03T13:13:43.775+01:00Central Management of Content Types with SharePoint 2010<p>A new feature of SharePoint 2010 allows you to publish your content types from one central hub to Site Collections that choose to subscribe to them.</p> <p>The first thing you need to do is to to define the location of your hub. You will find this in the properties of the managed metadata service at the bottom:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwXurIwiyhpVB19ambfI114bINaBBWJ9bG1i2j4mgOwyynVI1Inscjfn4cZjN9glYjtBs7T2QACjZ0yukDXwm5b1QKZsv_RbS5df_A5LxvDodXLtL529uW1I1JH0s3Q8EyGWK4gT6jaoE/s1600-h/image%5B3%5D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqtDH6h7JW2AgGKIDEDSdtNdpvIv8QIEqS9D62alcTlhHxSkf5VFRKehFt0CB2POGaYutKss1UcZWBGf5D-IWBCBYAYBkNr5RjMfgX8MvRYzNKDKEkbfz6uqNO-2KkNppZyFzFNi8vYv4/?imgmax=800" width="428" height="62" /></a></p> <p>Then in the properties of the managed metadata service connection you need to tell it to “consume content types from the content type gallery”:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwUCIsD5Aet-AevRyxjv8GdHq0NJf2bf5C_FPlICzXunvztun0lF3T-D8DXX3JCL4gp24cRw9NuHmB5ne5tbvVCbzuR1loemfYHmydAoO0iUjh92CkY563FPmIzvTfgsvJrtq2ego-QP8/s1600-h/image%5B7%5D.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 0px 5px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLr5TXp78dccVI9FHxWsoEUJmRDIgwWM67rawZreAWrZSzVEuRLna45J_clqtOUB5B8hMdWNZMm2-Fdo0KK3gkFEdIg0y1AAMZh5yVyFNJBRuQvXJK1ipSiduW2uJlZREmPHc2An7yg-s/?imgmax=800" width="390" height="194" /></a></p> <p>The site collections that are then supposed to use the content type hub will need to activate the site collection feature “Content Type Syndication Hub”.</p> <p>In order for content types to be published you need to change the setting under “Manage Publishing for this Content Type”</p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-7498343981661141512010-10-22T23:23:00.001+02:002010-10-22T23:23:32.842+02:00IE9 Jumplists with SharePoint<p>I installed the new Beta of Internet Explorer 9 and really liked the idea of pinning an IE tab to the taskbar. To test it I pinned the Facebook homepage to the taskbar and noticed when I right-clicked it, I also had four “Tasks” in the jumplist.</p> <p>I thought it would be cool to have something similar in a SharePoint portal where I could add links to a Document Center or a Search Center. It turns out it’s actually quite simple to do - add a Content Editor webpart to the site, open the HTML editor and add this to it:</p> <p><meta name="msapplication-task" content="name=Documents;action-uri=http://intranet/docs/;icon-uri=/_layouts/images/favicon.ico"/></p> <p>In the above example, the name that shows up in the jumplist is “Documents” and it links to “http://intranet/docs”. I used the standard SharePoint “favourite” icon but you can link to any you like.</p> <p>Pretty cool!</p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-90094527482197551482010-07-29T17:02:00.001+02:002010-07-29T17:02:23.727+02:00Profile Pictures in your SharePoint MySite<p>After migrating MySites from SharePoint 2007 to SharePoint 2010 it is possible that the profile pictures no longer display correctly. The picture is either cropped showing only the top corner (for example, in the Organisation Browser) or the aspect ratio is wrong, making it look very tall and narrow (for example, under the “In Common Between Us” section).</p> <p>To solve this problem simply upload your picture again - go to your profile, click “Edit My Profile” and select “Choose Picture”. You can even use the same picture which should be stored under “Shared Pictures/Profile Pictures”.</p> Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-6884142226866047456.post-12510771032140000752010-07-15T12:23:00.009+02:002010-07-15T12:37:42.342+02:00Force replication of AD partitions after tombstone lifetime exceeded / emails issues<em><strong></strong></em>If a server has exceed the tombstone lifetime (180 days on WS2008 by default), it will cause issues when brought back on the network.<br />New users, groups… are not synchronized anymore on this server, and it can cause issues with emails sent to these new users.<br />If the email server can check for the user in the AD against the bad server, emails won’t be delivered.<br /><br />Run the following on a good dc :<br /><br /><span style="font-style: italic;font-family:arial;" >Repadmin /showrepl</span><br /><br />Get the GUI of a good DC :<br /><br />DC=mydomain,DC=intra<br />Default-First-Site-Name\GOOD-DC1 via RPC<br />DSA object GUID: <span style="color: rgb(255, 0, 0);">de7429ee-7637-45cb-bbf0-43d17b17831b </span><br />Last attempt @ 2010-07-15 12:17:30 was successful.<br /><br />Then remove objects on the bad DC that not longer exist in the current AD (good DC) :<br /><br /><span style="font-style: italic;font-family:verdana;" >repadmin /removelingeringobjects bad-dc.mydomain.intra <span style="color: rgb(255, 0, 0);">de</span><span style="color: rgb(255, 0, 0);">7429ee-7637-45cb-bbf0-43d17b17831b</span> "dc=mydomain, dc=intra"</span><br /><br /><br />Then :<br /><br /><span style="font-style: italic;font-family:verdana;" >repadmin /replicate bad-dc.mydomain.intra good-dc.mydomain.intra DC=mydomain,DC=intra /force</span><br /><br /><span style="font-style: italic;font-family:verdana;" >repadmin /replicate bad-dc.mydomain.intra good-dc.mydomain.intra CN=configuration,DC=mydomain,DC=intra /force</span><br /><br /><span style="font-style: italic;font-family:verdana;" >repadmin /replicate bad-dc.mydomain.intra good-dc.mydomain.intra CN=schema,CN=configuration,DC=mydomain,DC=intra /force</span><br /><br />This will synchronize the servers for these partitions and you won’t have issues anymore with the accounts of the new users.<br /><br />But, if the bad DC is planned for a removal I recommend to use the <span style="font-family:verdana;">dcpromo /forceremoval</span> method and a metadata cleanup as explained here :<br /><a href="http://www.petri.co.il/forcibly_removing_active_directoy_from_dc.htm">Remove_ad_from_dc</a><br /><a href="http://www.petri.co.il/delete_failed_dcs_from_ad.htm">Delete_failed_DC</a>Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com14tag:blogger.com,1999:blog-6884142226866047456.post-2361398238186552442010-07-12T15:56:00.006+02:002011-04-04T12:23:30.198+02:00Forefront Security for Exchange : release blocked emailsForefont Security for Exchange (before v. 2010) may use a lot of CPU/RAM and almost hangs your transport server.<br /><br />If you stop Forefront, some emails (*.eml) can remain blocked in the following folders (incoming and outgoing emails) :<br /><br /><span style="font-style: italic;">C:\Program Files (x86)\Microsoft Forefront Security\Exchange Server\Data\Archive\in</span><br /><span style="font-style: italic;">C:\Program Files (x86)\Microsoft Forefront Security\Exchange Server\Data\Archive\out</span><br /><br />In order to release them, just move them to the following folder and let Exchange process them :<br /><br /><span style="font-style: italic;">C:\Program Files (x86)\Microsoft Forefront Security\Exchange Server\Pickup</span>Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com3tag:blogger.com,1999:blog-6884142226866047456.post-46192032957040154612010-05-19T17:22:00.005+02:002011-04-04T12:23:30.199+02:00Routing Sendmail SMTP messages to Exchange 2007 distribution listsRelaying emails from an internal sendmail server to an Exchange 2007 transport server will work for AD users recipients, but not for AD distribution lists.<br />The error given by the Exchange server is :<br /><span style="font-style: italic; font-weight: bold;">550 5.7.1 RESOLVER.RST.AuthRequired; authentication required</span><br /><br />In order to allow emails coming from an internal sendmail server, you can disable the authentication on this distribution list :<br /><br />Edit the distribution list property in the Exchange Management Console, mail flow settings tab, Message Delivery restriction and then uncheck "Require that all senders are authenticated.<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Nr8L_NYVrExMGryHgZp9CmZDHr0-XDqD5xoKjDTHFiTafkCOLEU0C8Eh_acs9OtcE9ODurWPzRABb4tK-cgukJ2SS9K6dc0jlIObXY9Ft14bCn4bFHA_x4JExmV6Tp8Dyg9mUMjyhGU/s1600/distributionlist.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 302px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5Nr8L_NYVrExMGryHgZp9CmZDHr0-XDqD5xoKjDTHFiTafkCOLEU0C8Eh_acs9OtcE9ODurWPzRABb4tK-cgukJ2SS9K6dc0jlIObXY9Ft14bCn4bFHA_x4JExmV6Tp8Dyg9mUMjyhGU/s320/distributionlist.png" alt="" id="BLOGGER_PHOTO_ID_5473004338676760610" border="0" /></a>Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-15201141364968328052010-05-19T12:13:00.001+02:002010-05-19T12:14:17.238+02:00Send text messages (SMS) from Outlook/Exchange 2010<p>A cool new feature of Exchange 2010 allows you to send text messages from your OWA or Outlook 2010 client.</p> <p>You will also need a Windows Mobile phone connected to your Exchange 2010 mailbox. WM 6.1 should download an update from the Exchange Server to enable this functionality (I haven’t tested this) whereas WM 6.5 can do this out of the box.</p> <p>It basically works by syncing the SMS to your phone and your phone then sends it out.</p> <p>When setting up the partnership between your Windows Mobile phone and Exchange you should see the option to also sync your text messages. Once you select this you will need to restart Outlook 2010 after which it will show you an additional item under “New Items” called “Test Message (SMS)”.</p> <p>Incoming texts will also land in your Exchange mailbox.</p> <p>It is worth noting that I wasn’t able to add the SMS syncing after I had created the partnership with Exchange – I had to remove the partnership and recreate it.</p> Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-6884142226866047456.post-12778284204736817342010-05-11T12:03:00.001+02:002010-05-11T12:03:31.710+02:00Add Traffic Light indicators to a Yes/No column in a custom SharePoint list<p>I needed to create a list which would show a Yes/No column as traffic lights. Since SharePoint already has the necessary images from KPI lists I decided to use them.</p> <p>Unfortunately, this isn’t an option OOTB so I decided to generate the URL to the KPI gifs using a calculated column. The name of the Yes/No column was “Approved” so I created the following calculated column:</p> <p><em><strong>="<div><img src='/_layouts/images/KPIDefault-"&IF([Approved]=TRUE,0,2)&".gif'/></div>"</strong></em></p> <p>For those of you using various regional versions of SharePoint, be careful with the commas after “TRUE”. You might need to change them to semi-colons.</p> <p> </p> <p>The problem with the result from the above calculated column is that it is simply displayed as text. While trying to get it to display as an image, I stumbled across <a href="http://blog.pathtosharepoint.com/" target="_blank">this site</a>, and in particular a script which does exactly that. The script can be downloaded from <a href="http://pathtosharepoint.com/Downloads/TextToHTMLlite-v2.1.1.txt" target="_blank">here</a>. I have added it below for the sake of simplicity.</p> <p>This script needs to be added to the bottom of the page using the Content Editor WebPart (add it by using the source editor not the Rich Text editor).</p> <p> </p> <p><em><strong><script type="text/javascript"> <br />/* <br />Text to HTML Lite - version 2.1.1 <br />Questions and comments: Christophe@PathToSharePoint.com <br />*/ </strong></em></p> <p><em><strong>function TextToHTML(NodeSet, HTMLregexp) { <br />var CellContent = ""; <br />var i=0; <br />while (i < NodeSet.length){ <br />try { <br />CellContent = NodeSet[i].innerText || NodeSet[i].textContent; <br />if (HTMLregexp.test(CellContent)) {NodeSet[i].innerHTML = CellContent;} <br />} <br />catch(err){} <br />i=i+1; <br />} <br />} </strong></em></p> <p><em><strong>// Calendar views <br />var regexpA = new RegExp("\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*"); <br />TextToHTML(document.getElementsByTagName("a"),regexpA); </strong></em></p> <p><em><strong>// List views <br />var regexpTD = new RegExp("^\\s*<([a-zA-Z]*)(.|\\s)*/\\1?>\\s*$"); <br />TextToHTML(document.getElementsByTagName("TD"),regexpTD); </strong></em></p> <p><em><strong></script></strong></em></p> Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-6884142226866047456.post-59697531363179790592010-04-27T10:43:00.001+02:002010-04-27T10:44:23.858+02:00Map a drive letter to SkyDrive<p>Office 2010 has a very cool option to save files to the Windows Live SkyDrive. By choosing “Save and Send” from the File menu you can connect to your Windows Live SkyDrive as shown in the screenshot below.</p> <p> </p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg34eoU7S8DnBfS1erO4cL2mgfg7ZDDyDkA_KgOmY9K5cfFi16EmLyE0ypfFhHS4BKNJAvLpKtBaw7y1ctwQ25Afu2O-Pq9dpPvcM6ak4h6bXX6DvhJnto3dqjy6PFYxAmmecH52pI6cDk/s1600-h/image%5B16%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEguEWmNkqp3WmffThbcpJLjiGOhSajJoKjNp1PbGoPW6JUBBKGN_mzOmsY9Y2n-9LDAtBC3N89p_lFjlJq1HY8GAbobJn7TJqmzctYwWPDv1kyJHyOMgJfU5ONDy4ktfg6C6GJO_VgDnDY/?imgmax=800" width="437" height="243" /></a> </p> <p> </p> <p>After you click “Save As” you will get a normal Windows Explorer Save As dialog with the address in the address bar such as this one:</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0QvF-_nhAyqOakKChfhpEh7qS-B41I1BkyWVXos2uqshkkvTtJZZI9Uwc8nTAsYGwn-8D12rcdT8s4RorAc0K6_Oc6C1D3pgc6sPfjSWaUwbgOC3N9DFIo7FgEqK8VoFtz6rX9acLkTQ/s1600-h/image%5B17%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiU9QpdarxCFHH1t_S7fgbsuNMxecA2yz3WxPLNAelboZLnCtJHrRTk-tPp6AxPqciwlMZfpNac5HHjyx7v4-SS1y3Uwm5L1JoZAir4EipOWGGZOcWxknDgERatSLUjVmXksI-5xi4C5dg/?imgmax=800" width="438" height="65" /></a> </p> <p> </p> <p>Copy this address, open the Windows Explorer, click on Computer and choose “Map network drive”</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjq80rEGBMSB4clXay2LkOKiXhtDXXCOoizkACegJvq-oLfbq6xKU4B4wLh1fkyN0PiBrpMb_Dyl5EAnIr-AF8LjvoCGueBpkRrqy7yw0OuXAvSQNVS8mG9RD8dDgwJTyze3T58g3j2QQ/s1600-h/image%5B18%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaaAcSEHkokG3_q2JLObE9EEEWe0YImnOJ0O8XwMSMKoebMNB6Fsg-gq2vQUmbcN2WJFcbSwqv3iNDfiZ-j90Ab1Y6PdFx0VIvCXZhnf4WwqlMZBaGPUSt535t-RMLGt3hIwaLbbucrXo/?imgmax=800" width="438" height="61" /></a> </p> <p> </p> <p>Now paste in the address you copied from above and choose the drive you would like to map it to</p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJ1oGIRlzn2aASQd_xDIrZ1QKCKTbEGLI-9X7R7eDWKt2SC4BGsImcA3jl7tgtlhSXbSm2ODaFPiGrDSrb0ErkGIQ4cdOubAlkI4EpDakHVjGIHi_LqELf-PEjIFnJy8OMd1nM_mXxREY/s1600-h/image%5B19%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy80QwNqPMzMVUUDy5GQl-QvWMBNFzilWQzmQ14146Pc-7GzzWzAdZUIE6UwqjVGSLcuYpkg9rtMUpGxV58GCDZbKNaYBV5sJaHGvVtCp-tmlFL0irlRV4BOSc3bZBlBlfAYTsmKSFKPY/?imgmax=800" width="433" height="321" /></a> </p> <p> </p> <p>Done! ;)</p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-16750718648082114902010-04-12T13:13:00.001+02:002011-04-04T12:23:30.200+02:00Very Useful Tool: ADRecycleBin<p>The new Active Directory recycle bin feature in Windows Server 2008 R2 can be extremely useful. The problem, however, is that you need all your domain controllers to be running R2. The lack of a GUI can also make a restore a little hairy at best.</p> <p>I recently came across a handy little (FREEWARE) tool from Overall Solutions called ADRecycleBin. The tool can work with the new recycle bin feature in Windows 2008 R2 but if you are running earlier versions of AD the tool will also work.</p> <p>For some screenshots and to download the tool go <a href="http://www.overall.ca/index.php?option=com_content&view=article&id=40&Itemid=66" target="_blank">here</a>.</p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-22926455324187499132010-03-15T17:18:00.001+01:002010-03-15T17:18:28.903+01:00Showing active SharePoint connections<p>It can be very useful to see how many active connections you have on your SharePoint server. This can be easily done using PowerShell to look at the IIS performance counters.</p> <p>As is mostly the case with scripting, somebody has already done a much better job than I ever could. <a href="http://geekswithblogs.net/Lance/archive/2009/06/03/get-the-number-of-current-sharepoint-connections.aspx" target="_blank">Here</a> is a script which creates a PowerShell function <em><strong>Get-WebServiceConnections</strong></em>.</p> <p>I created a PowerShell script called CurrentConnections.ps1 with the following content and can now run it whenever needed:</p> <p><em><strong>function Get-WebServiceConnections() <br />{ <br />  $results = @{} <br />  $perfmon = new-object System.Diagnostics.PerformanceCounter <br />  $perfmon.CategoryName = "Web Service" <br />  $perfmon.CounterName = "Current Connections" </strong></em></p> <p><em><strong>  $cat = new-object System.Diagnostics.PerformanceCounterCategory("Web Service") <br />  $instances = $cat.GetInstanceNames() </strong></em></p> <p><em><strong>  foreach ($instance in $instances) <br />  { <br />    $perfmon.InstanceName = $instance <br />    $results.Add($instance, $perfmon.NextValue()) <br />  } <br />  write-output $results <br />} </strong></em></p> <p><em><strong>Get-WebServiceConnections</strong></em></p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-30818613590734408932010-03-04T14:15:00.004+01:002011-04-04T12:23:30.200+02:00Customizing Forefront Server Security Notification messagesAs an administrator, you would like to know more information when a virus is detected on your Exchange organization than the default message.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-3dYFGm61UX0TFHjqC9JUQwTq7EH7Pf3EdS3eLpqepRTueISgAziKl_p-UDGjWXJWerxZ6l4udTtnZk5t3Z6jiNnDOb2hEvzGUI4nPwfe3DBN8QYM4rB7EOm_zj4IQi_coml20JJcR8M/s1600-h/forefrontserver.png"><img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 304px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-3dYFGm61UX0TFHjqC9JUQwTq7EH7Pf3EdS3eLpqepRTueISgAziKl_p-UDGjWXJWerxZ6l4udTtnZk5t3Z6jiNnDOb2hEvzGUI4nPwfe3DBN8QYM4rB7EOm_zj4IQi_coml20JJcR8M/s320/forefrontserver.png" alt="" id="BLOGGER_PHOTO_ID_5444770572423684082" border="0" /></a><br /><br /><a href="http://technet.microsoft.com/en-us/library/dd639407.aspx">Here</a> you will find the list of keywords that can be added to your message template.<br />In my case, I wanted to add the recipient details, and sender address :<br /><br /><span style="font-weight: bold; font-style: italic;">Sender: "%ISName%%ESName%%ESAddress%"</span> <span style="font-weight: bold; font-style: italic;"><br />Recipient: "%IRName%%ERNames%"</span>Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-32512656666813262832010-03-03T15:38:00.004+01:002011-04-04T12:23:30.201+02:00Large XML file editor useful for displaying BackupExec logsWhen using BackupExec to save all your data, the xml logfile can be huge, hundreds of MB or more.<br />Then BackupExec cannot display the result and it is really hard to find the reason of any issue encountered.<br />I found this freeware : <a href="http://symbolclick.com/index.htm">XML Marker</a> which works pretty good with a 700MB file (you can start searching the file even if not finished loading).Christophehttp://www.blogger.com/profile/00793236895883223638noreply@blogger.com0tag:blogger.com,1999:blog-6884142226866047456.post-63853058942437303612010-03-03T13:57:00.001+01:002010-03-03T13:57:50.965+01:00Exchange 2010 Public Folder Replication<p>After installing the first Exchange 2010 Server in an Exchange 2007 environment, I noticed the public folders weren’t replicating. Even after adding a number of replicas the hierarchy wasn’t even showing up.</p> <p>After much searching I found <a href="http://get-exchange.blogspot.com/2009/11/public-folder-mayhem-exchange-2010.html?showComment=1260569369909#c8199449617092465069" target="_blank">this</a> comment in a blog entry with the solution. Basically, it was due to an object still remaining in Active Directory from Exchange 2003 days.</p> <p><strong>Using ADSIEdit open “Configuration-Services-Microsoft Exchange-<em><Organization Name></em>-Administrative Groups-<em><Name of your Admin Group></em>”</strong></p> <p><strong>In this container delete the object “Servers”.</strong></p> <p><font color="#ff0000">(Before doing this you should probably back up your AD ;) )</font></p> <p> </p> <p>After a little waiting, all was back to normal.</p> Unknownnoreply@blogger.com0