PowerShell 研究 – 伺服器維運 定期清理不必要檔案

by Eddie 9. December 2014 10:33
在管理Server上常遇到的問題就是空間不足的狀況,而在整理資料上如果做好計畫的話, 通常在Server之中就會有一堆不知道是誰或者何時建立的檔案, 最近有客戶希望可幫他們設定Windows Backup, 並且提出了希望可以定期的將這些備份檔案給移除的需求。 所以今天就來分享一個實用的PowerShell指令, 這個指令是透過查詢檔案的最後寫入日期來做依據,只要超出一定的時間就會將檔案移除或移動。   以下面這一個我在D磁碟區所建立的Temp資料夾為例,裡面有三個不同的檔案。 其中有一個Word文件是已經超過7天的文件,我希望超出7天的檔案可以被自動移除。 首先我們可以透過下列指令來檢查,這三個檔案的最後寫入日期 Get-ChildItem D:\Temp -Recurse 並透過下列指令將超過7天的檔案來進行移除的動作 $Today = Get-Date $Days = “-7” $TargetFolder = “D:\Temp” $LastWrite = $Today.AddDays($Days) Get-ChildItem $TargetFolder -Recurse | Where {!$_.PSIsContainer}| where {$_.LastWriteTime -le "$LastWrite"} | Remove-Item 之後在回到D:\Temp的資料夾中,就可以看到原本那一個超過7天的Word檔案已經被移除。 參考資料 Using the Get-ChildItem Cmdlet

Tags: ,

PowerShell指令

PowerShell 研究 伺服器維運-Windows Firewall設定

by Eddie 24. November 2014 09:06
這幾天在朋友的FB看到一句話,心裡還蠻有感覺的 他說「企業的IT人員最終目標 : 最終讓自已沒有工作.什麼都要自動化」 這也是最近一直在研究的工作,透過指令減輕自己的負擔,讓大多數的工作可以優化。 防火牆一直是伺服器維運的重點,而Windows Firewall則會本篇說明的主要對象       1. 啟用目前以有的規則,以下面的指令為例,     會啟用「遠端桌面 – 使用者模式 (TCP-In)」這個防火牆規則,     並且設定只有「192.168.0.100」的IP才能連線。     不過要知道完整的防火牆顯示名稱才會設定成功。     由於防火牆規則很多,要記住全部的防火牆名稱不太可能,     所以建議可以以新建的規則來取代目前以存在的規則。       Set-NetFirewallRule -DisplayName "遠端桌面 – 使用者模式 (TCP-In)"     –RemoteAddress "192.168.0.100 " -Enabled True           2. 新增防火牆規則的語法如下     New-NetFireWallRule     –DisplayName ‘ Remote Desktop Service(TCP-In)’ :防火牆規則的顯示名稱     –direction Inbound :設定是在輸入或輸出規則     –Protocol TCP :設定通訊協定類型     –RemotePort 3389 :設定指定的Port     –RemoteAddress 192.168.0.100 :限定只能用特定IP連線      -Profile any (Private, Public, Domain) 選擇讓私人,公開或者網域的連線可以套用這個規則,                                                                                    或者設定Any讓全部的連線都可以使用。       -Progarm “應用程式路徑” 限定只能用特定應用程式才能使用這個Port。       優點是可以不用記住目前在Windows 防火牆中的規則名稱,     可以自訂服務內容,缺點是需要輸入較多的設定。 參考網頁:http://technet.microsoft.com/zh-tw/LIBRARY/jj554908.aspx                  :http://technet.microsoft.com/zh-tw/LIBRARY/jj573834.aspx

Tags: ,

PowerShell指令

PowerShell 指令分享 – 快速建立Hyper-V虛擬機器

by Eddie 7. November 2014 11:41
    在實務上目前大多數所遇到的客戶伺服器都是使用虛擬機器來建立,     而目前如果有購買Windows Server 2012 Standard的授權的話,     每台Server都可以有兩台Hyper-V虛擬機器的授權,     如果是Datacenter版本的授權的話則是不受限制。       這幾年使用Hyper-V來建立虛擬機器的情況也越來越多,     所以今天來分享一下如何用指令建立Hyper-V的虛擬機器,     並且可以自訂電腦名稱、VHDX存放位置、RAM大小、     磁碟空間大小、設定檔與快照的位置。       指令如下: New-VM –Name “TestVM”–MemoryStartupBytes 4096MB –NewVHDPath F:\Hyper-V\TestVM\TestVM.vhdx –NewVHDSizeBytes 100GB -Path F:\Hyper-V\TestVM   New-VM –Name “TestVM” 這個是開始建立新的虛擬機器, -Name的參考請帶入虛擬機器的設定名稱。   –MemoryStartupBytes 4096MB 透過 –MemoryStartupBytes 可以設定虛擬機器的記憶體大小, 單位則是以MB為主。   –NewVHDPath F:\Hyper-V\TestVM\TestVM.vhdx 這個-NewVHDPath的參數則是可以指定虛擬機器硬碟的存放位置, 目前格式只能使用vhdx,輸入舊的vhd格式則是會報錯   –NewVHDSizeBytes 100GB 而-NewVHDSizeBytes的參數則是可以設定虛擬硬碟的容量大小,單位以GB為主。   -Path F:\Hyper-V\TestVM 而為了未來的管理,建議指定虛擬機器的設定檔與快照檔案的存放位置, 透過-Path這個參數可以指定這兩個檔案所存放的位置。       參考文件:     微軟授權三秒教     Create a New Virtual Machine with PowerShell     TechNet New-VM

Tags: ,

PowerShell指令

伺服器維運 - 硬碟空間檢視

by Eddie 3. October 2014 16:59
      在接下一些伺服器維運工作���後,常有客戶想知道硬體運作的狀況       比如說:硬碟的I/O、CPU的平均使用量,硬碟空間等等的資訊       這些資訊當然都可以從UI介面上透過設定還顯示       但不僅麻煩也需要花上一點時間,我今天分享的是透過PowerShell指令來顯示本機的磁碟資訊       包括了硬碟數量、磁區代號、總空間、剩餘空間、硬碟類型等資訊。   PoWerShell指令如下: gwmi Win32_LogicalDisk -Filter "DriveType=3" | select Name, FileSystem,FreeSpace,BlockSize,Size | %{$_.BlockSize=(($_.FreeSpace)/($_.Size))*100;$_.FreeSpace=($_.FreeSpace/1GB);$_.Size=($_.Size/1GB);$_} | Format-Table Name, @{n='FS';e={$_.FileSystem}}, @{n='Free, Gb';e={'{0:N2}'-f $_.FreeSpace}}, @{n='Free,%';e={'{0:N2}'-f $_.BlockSize}}, @{n='Capacity ,Gb';e={'{0:N3}' -f $_.Size}} –AutoSize        不過上述的動作也只是檢查目前硬碟空間的剩餘資訊而已        最終還需要系統可以自動化的發出警告或通知        這才是硬體維運的目標,所以透過下面的PowerShell指令        我設定為只要有硬碟空間小於百分之10的情況下,以SMTP Server寄信通知收件者   指令如下 $mythreshold = 10 $freespace = gwmi Win32_LogicalDisk -Filter "DriveType=3" | select Name, FileSystem,FreeSpace,BlockSize,Size ForEach($item in $freespace) { $item.BlockSize=(($item.FreeSpace)/($item.Size))*100 $item.FreeSpace=($item.FreeSpace/1GB) $item.Size=($item.Size/1GB) if ($item.BlockSize -lt $mythreshold){ $from = "ithelp@athentek.com" $to = "ithelp@miniasp.com" $subject = "Low Disk Space!" $body = "Free Space Remaining: " + "<p></p>磁碟總容量(GB):" + $item.size + "<p></p>剩餘空間(GB):" + $item.FreeSpace + "<p></p>磁區:" + $item.name + "<p></p>剩餘百分比:" + $item.BlockSize +"%" $smtpServer = "192.168.2.3" Send-MailMessage -From $from -to $to -Subject $subject -Body $body -SmtpServer $smtpServer -BodyAsHtml -Encoding UTF8 } }   參考文件 Win32_LogicalDisk class Chkdsk method of the Win32_LogicalDisk class

Tags: ,

PowerShell指令

關於我們

這裡是由一群熟悉 Microsoft IT 技術的工程師所共同分享技術文章的部落格,除了定期分享工作上的技術經驗,我們也提供專業的技術顧問諮詢服務,有任何疑難雜症都歡迎與我們聯絡!

  • 陳冠龍(Owen)
  • 02-2322-2480 # 33
  • 陳昌賢(Mars)
  • 02-2322-2480 # 16
  • 有任何的建議或問題,請來信 ithelp-azure@miniasp.com

※ 學習資源:
    2016/3/9 - 你所不知道的 Microsoft Azure 雲端採購技巧
    (講者:多奇數位技術總監 - Will 保哥)

最新消息

企業上雲端會是未來趨勢

微軟主打 2 種公有雲平台

Office 365 & Azure

有興趣皆可來電 or E-Mail 詢問

Calendar

<<  April 2018  >>
MoTuWeThFrSaSu
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

View posts in large calendar