search
Categories
Sponsors
VirtualMetric Hyper-V Monitoring, Hyper-V Reporting
Archive
Blogroll

Badges
MCSE
Community

Cozumpark Bilisim Portali
Posted in Hosting & IIS7, Windows Powershell, Windows Server | No Comment | 7,493 views | 27/02/2010 16:05

It’s really easy to create new web site on IIS7.5 with Powershell WebAdministration module.

Import-Module WebAdministration
New-Item IIS:\Sites\$Description -Bindings (@{Protocol="http";BindingInformation="*:80:$Domain"},@{Protocol="http";BindingInformation="*:80:www.$Domain"}) -PhysicalPath "$LogDir\http"

As you see, you can set Bindings with the same command. Next time, I’ll write a function.


Posted in Hosting & IIS7, Windows Powershell, Windows Server | No Comment | 3,967 views | 27/02/2010 16:01

After creating web site directories, you should set ACL settings of directories.

Function Set-IISACL
{
Param ($Username, $LogDir)
 
$Netbios = "FABRIKAM"
$Account = New-Object System.Security.Principal.Ntaccount("$Netbios\$Username")
$ACL = Get-Acl -Path "$LogDir"
$ACL.SetAccessRuleProtection($True, $True) 
Set-Acl -Path "$LogDir" -AclObject $ACL
$Permission = "$Account","ReadAndExecute","ContainerInherit,ObjectInherit","None","Allow"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl "$LogDir"
$Permission = "$Account","Modify","ContainerInherit,ObjectInherit","None","Allow"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl "$LogDir\db"
$Permission = "$Account","Modify","ContainerInherit,ObjectInherit","None","Allow"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl "$LogDir\http\upload"
}

Fabrikam is my Netbios name. If you create your users on Active Directory, you should write your Netbios name of your domain. But on a local machine, you can use your local computer name like “Plesk01\username”.


Posted in Hosting & IIS7, Windows Powershell, Windows Server | No Comment | 2,532 views | 27/02/2010 15:57

You can create default web site directories with a function on Powershell:

Function Create-Directories
{
Param ($LogDir)
 
New-Item "$LogDir" -Type Directory
New-Item "$LogDir\db" -Type Directory
New-Item "$LogDir\http" -Type Directory
New-Item "$LogDir\http\bin" -Type Directory
New-Item "$LogDir\http\stats" -Type Directory
New-Item "$LogDir\http\upload" -Type Directory
}

You can execute our function using with this command:

Create-Directories -LogDir "C:\inetpub"

Have fun!


Posted in Hosting & IIS7, Windows Powershell, Windows Server | No Comment | 4,089 views | 27/02/2010 15:51

You can assign a domain user called FABRIKAM\user_yusufozturk.info to a directory with Powershell:

$LogDir = "C:\inetpub\yusufozturk"
$Account = New-Object System.Security.Principal.Ntaccount("FABRIKAM\user_yusufozturk.info")
$ACL = Get-Acl -Path "$LogDir"
$ACL.SetAccessRuleProtection($True, $True) 
Set-Acl -Path "$LogDir" -AclObject $ACL
$Permission = "$Account","Modify","ContainerInherit,ObjectInherit","None","Allow"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl "$LogDir"

You can change Inherit Settings with changing “ObjectInherit”.


Posted in Hosting & IIS7, Windows Powershell, Windows Server | No Comment | 6,705 views | 27/02/2010 15:48

You can assign a domain user called FABRIKAM\user_yusufozturk.info to a directory with Powershell:

$LogDir = "C:\inetpub\yusufozturk"
$Account = New-Object System.Security.Principal.Ntaccount("FABRIKAM\user_yusufozturk.info")
$ACL = Get-Acl -Path "$LogDir"
$ACL.SetAccessRuleProtection($True, $True) 
Set-Acl -Path "$LogDir" -AclObject $ACL
$Permission = "$Account","ReadAndExecute","ContainerInherit,ObjectInherit","None","Allow"
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule $Permission
$ACL.SetAccessRule($AccessRule)
$ACL | Set-Acl "$LogDir"

You can change Inherit Settings with changing “ObjectInherit”.


Posted in Windows Powershell | No Comment | 2,338 views | 14/02/2010 04:57

Uzun zamandır işlerimin yoğunluğundan dolayı siteye vakit ayıramadım. Her gün neredeyse sabah 9, gece 3-4 çalışmaya başladık. Bu çalışmalarım sırasında öğrendiğim, geliştirdiğim bir çok yeni teknoloji ve yapı vardı. Aslında baya bir malzeme çıktı bana yazacak fakat yazacak vakit bulamıyorum.

Radore için geliştirmeye başladığım XiW projesinde, tüm Windows sunucuların tek noktadan yönetilmesi planlanıyoruz. Böylece hiç bir sunucu üzerinde ekstra bir yük olmadan bu sunucular üzerinde düzenlemeler ve güncellemeler yapabileceğiz. Yakında üzerinde uzun uzun duracağım bir özelliği kullandım: Remote Powershell

Remote Powershell ile uzaktaki Windows sunucuları, sanki local makinayı yönetiyormuş gibi yönetebiliyorsunuz. Aynı Active Directory yapısında bulunan sunucuları, herhangi bir authentication sorunu yaşamadan yönetebilmeniz harika bir gelişme oldu sistem dünyası için. Önümüzdeki günlerde Remote Powershell scriptlerinin bir bölümünü yayınlamayı planlıyorum.

Yarın sabah 9’da (4 saat sonra yani) mesai başı yapacağım için bu gecelik bu kadar. Kolay gelsin..


Posted in Windows Powershell, Windows Server | No Comment | 5,783 views | 17/01/2010 12:03

5651 yasasıyla birlikte, ofisinize ait DHCP loglarını 6 aylık bir süre boyunca imzalayarak saklamanız gerekiyor. DHCP servisi, farklı bir sunucu üzerinde bulunuyorsa, DHCP loglarını Powershell sayesinde herhangi bir FTP programına ihtiyaç olmadan imzalama yapacağınız sunucuya gönderebilirsiniz. Bu işlem ile sadece DHCP loglarının değil HTTP loglarının da arşivlenmesini sağlayabilirsiniz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 5651 Log Sender
# Yusuf Ozturk - http://www.yusufozturk.info
# In God We Trust, All Others We Use Powershell
 
# Get Yesterday
$Day = Get-Date -uformat %A
$Date = (Get-Date).AddDays(-1).ToString("yyyyMMdd")
 
If ($Day -eq "Pazar")
{
$Day = "Sat"
}
ElseIf ($Day -eq "Cumartesi")
{
$Day = "Fri"
}
ElseIf ($Day -eq "Cuma")
{
$Day = "Thu"
}
ElseIf ($Day -eq "Perşembe")
{
$Day = "Wed"
}
ElseIf ($Day -eq "Çarşamba")
{
$Day = "Tue"
}
ElseIf ($Day -eq "Salı")
{
$Day = "Mon"
}
ElseIf ($Day -eq "Pazartesi")
{
$Day = "Sun"
}
 
# Get DHCP IPV4
$DHCPV4Log = "C:\Windows\System32\dhcp\DhcpSrvLog-" + $Day + ".log"
 
# Get DHCP IPV6
$DHCPV6Log = "C:\Windows\System32\dhcp\DhcpV6SrvLog-" + $Day + ".log"
 
# FTP Paths
$DHCPv4Dir = "ftp://username:password@yusufozturk.info/Data/RH_Ofis_DHCPv4_" + $Date + ".log"
$DHCPv6Dir = "ftp://username:password@yusufozturk.info/Data/RH_Ofis_DHCPv6_" + $Date + ".log"
 
# Prepare Files
$Webclient = New-Object System.Net.WebClient 
$DHCPv4Uri = New-Object System.Uri($DHCPv4Dir)
$DHCPv6Uri = New-Object System.Uri($DHCPv6Dir)
 
# Send to Log Server
$Webclient.UploadFile($DHCPv4Uri, $DHCPv6Log)
$Webclient.UploadFile($DHCPv6Uri, $DHCPv4Log)

Yukarda dikkat etmeniz gereken nokta, DHCP loglarının tarihe göre değil günlere göre tutulduğudur. Sistem lokasyonu Türkiye olduğu için Get-Date yaptığınızda Pazartesi gibi gelecektir günler. Bu yüzden her güne karşılık olarak bir önceki günün İngilizce adını yazdım. Böylece bu scripti Cronjob ile her gece saat 3 gibi çalıştırmanız durumunda, hep bir önceki günün loglarını FTP üzerinden sunucuya gönderecektir. Kolay gelsin.