首頁 美術繪圖 | 美術設計 | 熱門標籤 | 首選 | 首頁宣傳 | 近期作品 論壇: 發表 | 美術工作 | 美術比賽 | 展覽活動 | 美術相關 | 一般討論 | 美術同好 CG 討論 :: Photoshop | Painter | 3D 行動 | AMP

【 立即註冊 】 : 更改個人資料 : : 登入

會員名稱: 登入密碼: 保持登入
Type(Type) 所有的發表文章

前往頁面 ←上一頁  1 ... 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 ... 558  下一頁→

[center]Alice Misa Photoshop Basic Drawing[/center]
##DIV##

[center]
[h1]畫圖的好朋友 - ALICE MISA 繪圖基礎多元教學 Photoshop Basic[/h1]


[hr]
See Also
更多「同人」相關作品 :: More "FanArt" Related Artworks


更多「Photoshop」相關作品 :: More "Photoshop" Related Artworks

[hr]
我也有新書發表、新產品發表、個人畫展、插畫畫展、美術展、畢業展/聯合展想要發佈?
[hr]
[h1]More Art/Comic Books by Members :: 更多會員出版品[/h1]
HC浩里斯: Alice Misa 畫圖的好朋友
直人Blue: 奇幻電繪通 PS + PT
s3001: 動畫場景設計:空間、造型、色調、光線
s3001: Photoshop Books
阿德: Flash動畫好設計:創作/角色/場景/分鏡與動畫特效
莊博文: 聖劍ONLINE 公式設定資料集
Krenz: CG電繪講座:動漫職人的構思╳線稿╳上色
張三: ComicStudio 4.0 奇幻技(中文版/碁峰)
蒙其: Painter X 中文版彩繪新世界(附光碟)
宏達廣二: Painter插畫設計精粹(附CD&DVD)
AKRU: 柯普雷的翅膀(漫畫)
汽球人: 顧人怨的一天(漫畫)
阿德: Flash動畫創作基礎必修課
黑青郎君: 霹靂爆笑江湖:黑青Q版漫畫書
有馬拓也: 死神少女
[hr]
Hoelex34 - http://vovo2000.com/paintbbs/art/hoelex34/
直人Blue - http://vovo2000.com/paintbbs/art/edwardBlue/
Po-wen - http://vovo2000.com/artist/theartofpowen/
Krenz - http://vovo2000.com/artist/Krenz/
張三 - http://vovo2000.com/artist/asungo/
蒙其 - http://vovo2000.com/artist/wanhsienwei/
AKRU - http://vovo2000.com/artist/AKRU/
汽球人 - http://vovo2000.com/artist/kyzylhum/
阿德 - http://vovo2000.com/artist/mavoland/
宏達廣二 - http://vovo2000.com/artist/maclulala/
黑青郎君 - http://vovo2000.com/artist/antaria/
有馬拓也 - http://vovo2000.com/artist/Takuya/
S3001 - http://vovo2000.com/artist/s3001/

[/center](2011-12-09 23:34)

[h1] 書Fun一下[/h1]

簡章索取: http://xor.tw/+44lql
活動主旨: http://acc.nctu.edu.tw/gallery/1203_joint_exhibit/introduction.htm
徵件方式: http://acc.nctu.edu.tw/gallery/1203_joint_exhibit/competition.htm
作品參考: http://acc.nctu.edu.tw/gallery/1203_joint_exhibit/sample.htm
得獎名單(2012/3/27公告): http://acc.nctu.edu.tw/gallery/1203_joint_exhibit/list.htm


壹、活動源起
本活動原為新竹市校園美展,而後參加聯合美展的單位逐步由新竹市的三所院校增加為五校─中華大學、玄奘大學、交通大學、清華大學以及新竹教育大學。九二年因中央大學、明新科技大學與陽明大學的加入,成為跨地域之八所大專院校聯展。九三年新增中國科技大學,而陽明大學暫時退出,聯合美展的規模仍維持八校聯展。九五年中原大學加入,展覽規模擴大為九校聯展。九六年有親民技術學院(已改名亞太創意技術學院)及育達商業技術學院相繼加入,中原大學暫時退出;九七年由中央大學主辦,中原大學再次加入,成為橫跨桃、竹、苗的十一校聯展,在九八年間有南亞技術學院與元培科技大學加入,使得美展更為盛大,亦使本展覽成為橫跨桃、竹、苗三縣市的跨校聯展。
本屆(2012年)十二校聯展將由元培科技大學主辦,再次邀集桃、竹、苗三縣市的十二所大專院校一同共襄盛舉,且在元培科技大學揭開序幕。



貳、活動主旨
2012十二校跨校聯展為桃、竹、苗地區大專院校的年度創意盛事,參與的學校有桃園縣的中原大學、中央大學、南亞技術學院;新竹縣的明新科技大學、中國科技大學;新竹市的交通大學、清華大學、中華大學、玄奘大學、元培科技大學,以及苗栗縣的育達商業技術學院與亞太創意學院等十二校。
本次聯合展覽活動將匯集、串聯起桃、竹、苗地區的十二所大專院校,藉由主辦學校策劃具開創性與前瞻性的展覽主題,鼓勵學生進行創意發想,並將想法付諸實踐,展現莘莘學子之生命力與創造力,為當前的生活提出反思與建議。同時,藉此同台演繹,達到校際、學校與社區,以及創作者與觀賞者之間的交流,激發更多的可能性。

【展覽主題】「書fun一下」-創意手工繪本

每一年,桃、竹、苗地區大專院校透過不同主題、形式的藝術創作聯展來交流,這幾年經歷攝影、短片等現代媒材創作發想,這次讓我們反璞歸真,重新體會手工實作的樂趣,以創意手工繪本方式(不限材質,尺寸限邊長180公分以內,以利運送、展覽),鼓勵參展者發揮想像力,運用各種不同的媒材及技法,創作屬於自己的獨特故事、校園特色或生活點滴等主題,進行創意發想的藝術創作。



【送件報名繳交】

作品一件
表現形式為手工繪本,頁數不拘,不限材質與創作方式,不論是立體造型、複合媒材等形式均可。
材料請自行採購。為俾利運輸,作品限邊長180cm以內。展出時可讓觀眾自由翻閱。
光碟(封面註明作者姓名),內容包含如下:
報名表電子檔(包括作者簡歷、創作理念300字以內)
作品圖檔三張以上(封面、不同內頁或不同角度拍攝)
作者人像照圖檔一張
報名表紙本:各欄資料需填寫清楚齊全。


【收件方式】

請於2012年3月5日(一)至3月12日(一)每日上午10:00~下午5:00,請檢附作品、報名表、光碟繳至交大圖書館B1藝文空間服務台。


【退件方式】

請於2012年5月9日(週三)至5月11日(週五)上午10:00~下午5:00,至交大藝文空間櫃臺領取。作品若逾期未領,主辦單位不負保管之責任。


【展覽方式】

第一階段:交大校內預展
時間:2012年3月16日(週五)~3月25日(週日)
展出地點:交大國際會議廳前廳(圖書館B1)
(凡報名交件者,作品即可參加交大校內預展)第二階段:十二校聯合展出
時間:2012年4月23日(週一)~5月4日(週五)
開幕活動:2012年4月23日(週一)早上10:30
展出地點:元培科技大學光宇藝術中心(新竹市元培街306號光瀚樓5F)
(各校前十名最佳人氣作品於元培聯合展出)


【投票獎勵】

參與投票者中將抽出20名贈送精美禮品,歡迎大家踴躍參與投票(每人限投一票)。


【獎勵方式】

校內展出期間,設置投票箱,自展區中選出10件最佳人氣作品。票選前十名可獲得獎狀一只、獎金1000元,及榮獲校外展覽資格。
於前十名中遴選「特優獎」一名,可獲得獎狀一只、獎金1500元。

【得獎名單】

前十名人氣作品及投票者中獎名單將於2012年4月9日(一)公布至本活動網站。


【簡章索取】

下載報名簡章:doc檔、pdf檔,或親至圖書館B1藝文空間索取


【洽詢電話】03-5131233

【備註】

參展送件者可蓋藝文護照展覽章,投票者填妥展覽學習單後,可蓋藝文護照展覽章(2011-12-09 18:41)

會員若有於合作廠商販售之作品,
請到
http://vovo2000.com/phpbb2/viewtopic-32614.html

留下資訊,方便集中整理,進行首頁宣傳、輪撥宣傳(2011-12-07 12:20)

[center]科幻人物設計[/center]
##DIV##
[center]
[h1]遊戲人物設定、奇幻設計 - Luenkulo's Game Char/Game Art Design[/h1]
艾坦莉爾_完成 Ada leah
反派_薇埃魅‧蒂瑟_完成 Viavei‧Tissir
艾塞克‧馮‧維斯帕西安_完成 Aise Ke - von - Vespa Xi'an
馬丁‧霍克_完成 Martin - Hawk
龍 巨龍練習 - Dragon Practices
[hr]
More! Luenkulo's(Kuen Kulo) Artworks:
http://vovo2000.com/paintbbs/art/luenkulo/
http://vovo2000.com/artist/luenkulo/
[hr]
See Also Related...

「人設」相關創作 :: "Char Design" Artworks Illustration



「戰鬥」相關創作 :: "Fighting/Battle" Artworks Illustration



「龍」相關創作 :: "Dragon" Artworks Illustration



「刀」創作 :: "Blade" Related Design/Artworks



[/center](2011-12-06 23:17)

[h1]Foam Roller 放鬆[/h1]

[影片/動畫]

[影片/動畫](2011-12-04 21:54)

[h1]躺姿伸展髂脛束[/h1]

[影片/動畫](2011-12-04 15:04)

[h1]IT Band 伸展運動[/h1]
[影片/動畫]
[影片/動畫](2011-12-04 14:53)

[center]眼淚哭泣[/center]
##DIV##
[center]
[h1]「眼淚」「哭泣」相關美術創作 - Cry/Sob & Tears Artworks[/h1]
哭過 哭過就好了 - After Crying
cry alice 一個人愛莉絲般哭泣 - Alice's Tears
Cry girl 小姑娘別哭 - Don't Cry Baby
Cry 哭泣的男孩 - The Boy in Tears
照片 006512 哭泣 - Crying
img080拷貝 <改變的勇氣> - Encourage to Change
SKMBT_C45011021008461拷貝 令人憂鬱的夢境 - Tears in my Dream
愛哭的小魚 愛哭的小魚 - Crying Fish
98 眼淚 - Tears Dropping
cry-75 少女之淚 - Girl's Tears
[hr]
More! Cry & Tears Artworks:
哭泣: [url]http://vovo2000.com/tags/哭泣/[/url]
眼淚: [url]http://vovo2000.com/tags/淚/[/url]
[hr]
See Also Related...
[url=http://vovo2000.com/tags/微笑/]
「微笑」相關創作 :: "Smile" Artworks Illustration
[/url]

[url=http://vovo2000.com/tags/憂鬱/]
「憂鬱」相關創作 :: "Feeling Blue" Artworks Illustration
[/url]


「生氣」相關創作 :: "Mad / Angry" Artworks Illustration


[url=http://vovo2000.com/tags/歡樂/]
「歡樂」創作 :: "Delightful" Artworks Illustration

[/url]

[/center](2011-12-04 00:30)

[h1]IT Band 髂脛壓力束帶[/h1]
[影片/動畫]

[h1]Knee Strap 膝蓋壓力束帶[/h1]
[影片/動畫]
[影片/動畫]

[h1]ITBS Knee Tapping 髂脛束膝蓋肌內效紮貼[/h1]
[影片/動畫]
[影片/動畫]
[影片/動畫](2011-11-28 21:54)

[h1]膝蓋外側疼痛:髂脛束磨擦症候群/跑者膝 IT Band Syndrome[/h1]

參考資料 英文 Wiki
1. http://en.wikipedia.org/wiki/Iliotibial_band_syndrome
2. http://www.youtube.com/
3. 個人痛苦經驗



[h1]髂脛束症候群 症狀[/h1]

NOTE:
因為髂脛束會隨著膝蓋彎曲產生變化,所以疼痛的部位「感覺上會移動」
- 容易於「長跑者、慢跑者」身上,所以又稱為「跑者膝 (Runner's Knee)」
- 大量騎單車也容易產生此症狀;
- 武術訓練(如:大量前踢、旋踢),若沒有熱身足夠或者過量,也會有此症狀
- 足球、籃球、手球等需要長時間跑步的球類運動


1. 輕微症狀:跑完、騎車完膝蓋外側有感覺悶悶、短期腫脹、異於平常的感覺,但是不會疼痛

2. 疼痛症狀:跑完、騎車完膝蓋外側彎曲 15度 ~ 90 度就會疼痛,伸直或 180 度疼痛感稍微緩解(請考慮就醫)

3. 嚴重症狀:跑完、騎車完膝蓋外側連伸直或者靜止都會痛(請儘速就醫)



[h1]如何緩解 IT Band 髂脛束發炎症候群[/h1]

1. 休息:休息、休息、休息。

2. 看醫生:復健科、骨科、運動傷害科。

3. 使用壓力束帶:固定 IT Band。

4. 冰敷、熱敷、按摩、緩和的伸展。


[h1]如何預防 IT Band 髂脛束膝蓋外側疼痛[/h1]

1. 當有任何「膝蓋外側疼痛症狀」時,立即停止低跑步、騎車、踢技訓練;必要的話,休息一週觀察 + 就醫。

2. 跑步之前,熱敷膝蓋外側 + 大腿外側 + 緩和伸展

3. 跑步之前,先「走」 0.5 ~ 1 公里作為暖身。

4. 早上起床後,進行膝蓋外側、大腿外側的熱敷 + 緩和伸展

5. 必要的話,跑步完之後,對膝蓋外側 + 大腿外側進行適當的冰敷,

6. 避免在崎嶇不平的道路、陡峭的下坡、沒有彈性的路徑上跑步

7. 若確定自己是扁平足,或者有跑步姿勢的問題,建議先修正。

8. 修正跑步姿勢後,請檢查鞋底,看是否已經有「不均勻」的磨損(如:外側磨損特別嚴重);若有,請考慮替換。

9. 如果是跑操場 or 公園等短繞圈路徑,可嘗試人多時跑逆時針,沒人時跑順時針。

10. 若不能減低里程或時間(很想跑阿!),可考慮「減低速度」和「降低步伐(膝蓋彎曲)的程度」;當然前提是「已經不痛了」。

11. 避免劇烈的腿部重量訓練(如:槓鈴深蹲、啞鈴深蹲、印度深蹲

12. 避免劇烈的「踢技」武術訓練(如:500 支前踢 + 500 支側踢 + 500 支迴旋);「型」的側踢上,盡量先做足熱身。

13. 跑步時使用壓力束帶,固定膝蓋髕骨;跑完之後立刻解開

14. 使用肌肉內效貼布協助髂脛束

15. 有空進行其他的運動(緩和的),逐漸加強並平衡髂腰部、核心肌群、腿部肌肉,避免有某些肌肉特別強,也有可能加速此症狀發生。

16. 使用 Foam Roller 釋放 IT Band 壓力(2011-11-28 12:43)

[center]女裙[/center]
##DIV##
[center]
[h1]「裙」服裝插畫、裙女孩、「裙」插圖 - "Skirt Girl" Artworks[/h1]
紅色膨裙女 紅裙澎澎女 - Red Skirt
Yantin-CG-03 單純白色裙 - White Skirt
南瓜魔女1280 南瓜裙:萬聖節賀圖 - Pumpking Skirt
元素使 元素使 - Blue Skirt Sorceress
迷-女-裙 迷-女-裙 - Mini Skirt
作品06 膨裙少女 - Tutu Skirt
pinknoise3 粉紅色噪音:扮裝歌女的演唱 - Skirt Rack
招生海報送印 舞蹈社團海報:華麗的西班牙裙 - Spanish Skirt
DSC01960a 摺紙藝術:愛心天使 - Paper Art "Angel"
調整大小時裝-002 記得綠羅裙 - Green Silk Skirt
[hr]
[h1]More "Skirt" Artworks :: 更多「裙」相關創作圖片[/h1]
「裙」: http://vovo2000.com/tags/%B8%C8/
[hr]

See Also Related...
[h1]旗袍服飾 :: "Cheongsam" Artworks[/h1]
旗袍

[h1]牛仔服裝 :: "Cowboy/Cowgirl Suit"[/h1]
牛仔

[h1]女僕服裝 :: Maid Suit[/h1]
女僕

[/center](2011-11-27 20:33)

GoDaddy 4GH Linux Hosting: 8 Cores Xeon L5609 CPU + 48GB Memory

CPU: Total 8 Cores @ 1.87GHz
http://ark.intel.com/products/47928/Intel-Xeon-Processor-L5609-%2812M-Cache-1_86-GHz-4_80-GTs-Intel-QPI%29

Memory: 48 GB DDR3 (Free = 40 GB)
Load-Average: 3~5
CPU Utilization: 60~70%

Linux OS: Linux version 2.6.18-238.19.1.el5PAE (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-50)) #1 SMP Fri Jul 15 08:15:44 EDT 2011


[h1]4GH CPU: 2*4 Cores Xeon L5609 1.87GHz[/h1]
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 1
siblings : 4
core id : 0
cpu cores : 4
apicid : 32
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3724.33

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 0
siblings : 4
core id : 0
cpu cores : 4
apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3724.06

processor : 2
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 0
siblings : 4
core id : 1
cpu cores : 4
apicid : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3724.06

processor : 3
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 0
siblings : 4
core id : 9
cpu cores : 4
apicid : 18
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3724.05

processor : 4
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 0
siblings : 4
core id : 10
cpu cores : 4
apicid : 20
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3724.06

processor : 5
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 1
siblings : 4
core id : 1
cpu cores : 4
apicid : 34
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3723.99

processor : 6
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 1
siblings : 4
core id : 9
cpu cores : 4
apicid : 50
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3723.99

processor : 7
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU L5609 @ 1.87GHz
stepping : 2
cpu MHz : 1862.165
cache size : 12288 KB
physical id : 1
siblings : 4
core id : 10
cpu cores : 4
apicid : 52
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx pdpe1gb rdtscp lm constant_tsc nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm [8]
bogomips : 3723.97

[h1]4GH Memory: 48 GiB (DDR3)[/h1]
MemTotal: 49916668 kB
MemFree: 38993312 kB
Buffers: 33760 kB
Cached: 6973076 kB
SwapCached: 0 kB
Active: 7568920 kB
Inactive: 2595708 kB
HighTotal: 49404388 kB
HighFree: 38962708 kB
LowTotal: 512280 kB
LowFree: 30604 kB
SwapTotal: 8388600 kB
SwapFree: 8388600 kB
Dirty: 3252 kB
Writeback: 8 kB
AnonPages: 3157664 kB
Mapped: 52736 kB
Slab: 436264 kB
PageTables: 270952 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 33346932 kB
Committed_AS: 115417844 kB
VmallocTotal: 116728 kB
VmallocUsed: 40372 kB
VmallocChunk: 60104 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 2048 kB

[h1]4GH Hosting: Uptime[/h1]
1950220.20 1218280.86

[h1]Hosting Loading Average[/h1]
2.99 3.93 4.84 2/1649 6414(2011-11-27 12:35)

引言回覆:
我的版子是用AUROII在巨匠買的0.0


沒聽過的板子

1. 去找巨匠修吧,如果他們願意幫忙。

2. 不然直接連絡原廠
=> http://www.bravod.com/zh_TW/contactus.asp(2011-11-23 20:54)

[h1]迷離幻境:張燕翔新媒體藝術展[/h1]

[hr]
展覽簡介:

張燕翔將現實世界唾手可得的影像,透過新奇的科學技術重新改造,營造出前所未有的迷離幻境,宛如美麗新世界,有奇花異卉,也有太空奇景;又宛如糾結現實與幻想的夢境,充滿驚奇與探險。

張燕翔以高超的科技與獨特的美學素養駕馭無拘無束的奇思異想,創造獨領風騷的新媒體藝術,當今能像他跨科技與藝術領域者不多,而能夠鑽研出深入淺出的理論 與實踐方法,作品又富有當代藝術精神者更少。十多年來,張燕翔的新媒體藝術參加許多國內外重要藝術展,並獲得許多卓越獎項。

此次來台首展將呈現四個系列作品:數位攝影、數學藝術、互動藝術、試驗影像藝術,是他近年來最精彩的系列精華。
藝術家簡介:

張燕翔是一位富有藝術素養的科技人,也是富有科技才能的藝術家。1998年畢業於中國科技大學化學系,現任該校人文學院科技傳播系副教授,兼數字文化中心主任,也是國際美術協會、中國攝影家協 會會員。

張燕翔在數位藝術、3D動畫與虛擬實境技術、電腦三維藝術、新媒體藝術設計上均取得重要成就,參加多次當代藝術展覽,並應邀到香港城市大學、日本電氣通信大學、俄羅斯國家當代藝術中心講學及展覽。2010年其作品由全球千件作品脫穎而出,獲得倫 敦Art Now Global 2 國際藝術展第二名。


展期: 2011.11.22~12.20(可蓋藝文護照展覽章~)

展覽地點: 交大藝文空間

開幕茶會: 11.22(二)12:00pm (備有茶點,歡迎自由參加~)

經典通識教育講座: 11.23(三)13:30–15:20pm
  講 題:「新媒體藝術:當代科技與藝術的創意融合」
  地 點:交大圖書館B1浩然國際會議廳
  主講人:藝術家 張燕翔

導賞網址: http://acc.nctu.edu.tw/gallery/1111_zhang

辦理單位:
主辦單位:交通大學藝文中心
贊助單位:交通大學校友會、財團法人交大思源基金會
設備贊助:琉璃奧圖碼科技股份有限公司
開放時間:星期一~星期五 10:00 AM - 07:00 PM; 星期六~星期日 10:00 AM - 05:00 PM
洽詢電話:( 03 ) 513 - 1233
展場地址:新竹市大學路 1001 號 交通大學圖書館 B1 藝文空間(2011-11-21 15:26)

哈,有點像。(2011-11-20 01:52)

作品可發表於
http://vovo2000.com/paintbbs/(2011-11-19 16:31)

[h1]Simulate iOS HandHeld Browser @ Safari 5 Desktop[/h1]

Ref:: #developer">http://www.apple.com/safari/features.html#developer

[hr]
1. Preferences --> Advanced

2. Enable "Show Develop Menu in Menu Bar"

3. Then, Enter "Develop" @ Menu Bar,
Choose User Agent "Safari iOS"

4. Choose Safari iOS 4.3.3 @ iPhone, iPod, iPad

[hr]
1. 偏好設定 --> 進階

2. 選取「顯示開發人員」選單

3. 開發人員 --> 使用者代理程式

4. 選取要模擬的瀏覽器 Safari iOS 4.3.3 @ iPhone, iPod, iPad(2011-11-19 16:26)

[center]Office Artwork[/center]
##DIV##
[center]
[h1]"Warriors / Fighters" Drawing/Artworks/Illustration[/h1]
自我練習-30(狂戰士) 拷貝 炎之狂戰士 - Frenzy Flame Warrior
試畫(小圖) 中國風女戰士 - Chinese Warrior
諸神之戰 諸神之戰web-女戰士 - Female Warrior
新風格第一版宣傳用600 人物造形-戰士 - Warrior Char Design
戰士 戰士 - Hawk Fighter
tatibana 立花誾千代 - Tachibana Ginchiyo
舊作品集錦1 人物:戰士與法師 - Warriors & Wizards
黑靈-800 Dark Elf Warrior
21 戰士:魔闇騎士 - Dark Blader
cow_knight 牛角戰士 - Horn Girl Warrior
[hr]
[h1]More "Warrior" Artworks[/h1]
戰士: http://vovo2000.com/tags/%BE%D4%A4h/
Fighters: http://vovo2000.com/tags/fighter/
Warriors: http://vovo2000.com/tags/warrior/

[h1]See Also Related...[/h1]
[h2]「騎士」 :: "Knight" Artworks[/h2]


[h1]更多「職業類別」美術創作 :: More Professions/Experts Artworks[/h1]
上班族 Office Lady/Men
醫生 Doctors
舞者 Dancers
刺客 Assassins
畫家 Painters
海盜 Pirates

[/center](2011-11-19 01:03)

[h1]PowerShell 指令 Alias[/h1]
代碼:

CommandType     Name                                                                    Definition
-----------     ----                                                                    ----------
Alias           ac                                                                      Add-Content
Alias           asnp                                                                    Add-PSSnapin
Alias           clc                                                                     Clear-Content
Alias           cli                                                                     Clear-Item
Alias           clp                                                                     Clear-ItemProperty
Alias           clv                                                                     Clear-Variable
Alias           cpi                                                                     Copy-Item
Alias           cpp                                                                     Copy-ItemProperty
Alias           cvpa                                                                    Convert-Path
Alias           diff                                                                    Compare-Object
Alias           epal                                                                    Export-Alias
Alias           epcsv                                                                   Export-Csv
Alias           fc                                                                      Format-Custom
Alias           fl                                                                      Format-List
Alias           foreach                                                                 ForEach-Object
Alias           %                                                                       ForEach-Object
Alias           ft                                                                      Format-Table
Alias           fw                                                                      Format-Wide
Alias           gal                                                                     Get-Alias
Alias           gc                                                                      Get-Content
Alias           gci                                                                     Get-ChildItem
Alias           gcm                                                                     Get-Command
Alias           gdr                                                                     Get-PSDrive
Alias           ghy                                                                     Get-History
Alias           gi                                                                      Get-Item
Alias           gl                                                                      Get-Location
Alias           gm                                                                      Get-Member
Alias           gp                                                                      Get-ItemProperty
Alias           gps                                                                     Get-Process
Alias           group                                                                   Group-Object
Alias           gsv                                                                     Get-Service
Alias           gsnp                                                                    Get-PSSnapin
Alias           gu                                                                      Get-Unique
Alias           gv                                                                      Get-Variable
Alias           gwmi                                                                    Get-WmiObject
Alias           iex                                                                     Invoke-Expression
Alias           ihy                                                                     Invoke-History
Alias           ii                                                                      Invoke-Item
Alias           ipal                                                                    Import-Alias
Alias           ipcsv                                                                   Import-Csv
Alias           mi                                                                      Move-Item
Alias           mp                                                                      Move-ItemProperty
Alias           nal                                                                     New-Alias
Alias           ndr                                                                     New-PSDrive
Alias           ni                                                                      New-Item
Alias           nv                                                                      New-Variable
Alias           oh                                                                      Out-Host
Alias           rdr                                                                     Remove-PSDrive
Alias           ri                                                                      Remove-Item
Alias           rni                                                                     Rename-Item
Alias           rnp                                                                     Rename-ItemProperty
Alias           rp                                                                      Remove-ItemProperty
Alias           rsnp                                                                    Remove-PSSnapin
Alias           rv                                                                      Remove-Variable
Alias           rvpa                                                                    Resolve-Path
Alias           sal                                                                     Set-Alias
Alias           sasv                                                                    Start-Service
Alias           sc                                                                      Set-Content
Alias           select                                                                  Select-Object
Alias           si                                                                      Set-Item
Alias           sl                                                                      Set-Location
Alias           sleep                                                                   Start-Sleep
Alias           sort                                                                    Sort-Object
Alias           sp                                                                      Set-ItemProperty
Alias           spps                                                                    Stop-Process
Alias           spsv                                                                    Stop-Service
Alias           sv                                                                      Set-Variable
Alias           tee                                                                     Tee-Object
Alias           where                                                                   Where-Object
Alias           ?                                                                       Where-Object
Alias           write                                                                   Write-Output
Alias           cat                                                                     Get-Content
Alias           cd                                                                      Set-Location
Alias           clear                                                                   Clear-Host
Alias           cp                                                                      Copy-Item
Alias           h                                                                       Get-History
Alias           history                                                                 Get-History
Alias           kill                                                                    Stop-Process
Alias           lp                                                                      Out-Printer
Alias           ls                                                                      Get-ChildItem
Alias           mount                                                                   New-PSDrive
Alias           mv                                                                      Move-Item
Alias           popd                                                                    Pop-Location
Alias           ps                                                                      Get-Process
Alias           pushd                                                                   Push-Location
Alias           pwd                                                                     Get-Location
Alias           r                                                                       Invoke-History
Alias           rm                                                                      Remove-Item
Alias           rmdir                                                                   Remove-Item
Alias           echo                                                                    Write-Output
Alias           cls                                                                     Clear-Host
Alias           chdir                                                                   Set-Location
Alias           copy                                                                    Copy-Item
Alias           del                                                                     Remove-Item
Alias           dir                                                                     Get-ChildItem
Alias           erase                                                                   Remove-Item
Alias           move                                                                    Move-Item
Alias           rd                                                                      Remove-Item
Alias           ren                                                                     Rename-Item
Alias           set                                                                     Set-Variable
Alias           type                                                                    Get-Content





[h1]PowerShell Commandlet 常用參數[/h1]

代碼:


    參數           描述
    ---------      --------------------------------------------------

    Verbose        Boolean (布林值)。產生與作業有關的詳細資訊,就好像追蹤記錄或
                   交易記錄。只有用在產生詳細資訊資料的 cmdlet 中,此參數才有
                   效用。

    Debug          Boolean (布林值)。產生與作業有關的�{式�]計層級詳細資料。只有
                   用在產生偵錯資料的 cmdlet 中,此參數才有效用。

    ErrorAction    Enum (列舉)。決定 cmdlet 在錯誤發生時該如何回應。其值為:
                   Continue [預�]值]、Stop、SilentlyContinue、Inquire。

    ErrorVariable  String (字串)。指定變數用於儲存命令在處理期間傳回的錯誤。此
                   變數會隨 $error 一同傳播。

    OutVariable    String (字串)。指定變數用於儲存命令在處理期間傳回的輸出。

    OutBuffer      Int32 (整數)。決定在呼叫管線中的下一個 cmdlet 命令前,要放入
                   緩衝區的物件數目。


    除了一般參數外,會變更系統狀態的 cmdlet 還支援下列兩個參數。

    參數          描述
    ---------     -------------------------------------------------------

    WhatIf        Boolean (布林值)。說明執行命令時將會發生何種情況,但不會實際
                  執行命令。

    Confirm       Boolean (布林值)。在執行任何修改系統的動作前,提示使用者出示
                  權限。




[h1]PowerShell 關連性陣列(Associative Array)[/h1]

關聯陣列提供用於儲存多重索引鍵/值配對的資料結構。例如,個人的姓名就像是索引
鍵,而個人的出生日期則像是值。關聯陣列提供的結構可儲存姓名和出生日期的
集合,其中每個姓名都有對應的出生日期。可以將關聯陣列想像成兩欄的表格,
第一欄是索引鍵,第二欄則是值。

關聯陣列與 PowerShell 中的標準陣列類似,但並非依索引編號來參照陣列的內容,而
是依索引鍵來參照關聯陣列中的資料元素。PowerShell 會依據索引鍵從關聯陣列傳回
對應的值。

PowerShell 使用雜湊表資料型別藉以儲存關聯陣列的內容,原因在於這種資料結構提
供快速的搜尋機制。這一點極為重要,因為關聯陣列的主要用途正是提供高效率的
搜尋機制。

在關聯陣列中,您可以使用異質資料型別。例如,關聯陣列可建立成包含整數、
Cmdlet 呼叫和字串,三者各自指定不同的索引鍵。

關聯陣列的語法如下:

代碼:

       $<�}列名稱> = @{<索引鍵1 = 項目1>; <索引鍵2 = 項目2>;...}


建立與初始化關聯陣列的方式大致如同建立與初始化標準陣列。然而,關聯陣列還必
須符合下列要求:

* 關聯陣列中的每個值應指定標籤。

* 陣列內容的外面應附加 @ 記號。

* 包含空格的索引鍵或值應置於單引號或雙引號中。

例如,若要建立名稱為 $phone 的關聯陣列,且包含 Kim Akers、Ken Myers 和 Greg
Chapman 的電話號碼,請在 PowerShell 命令提示字元輸入下列單行命令:

代碼:

       $phone = @{'Kim Akers' = '(425) 555-0183'; 'Ken Myers' =
       '(425) 555-0184'; 'Greg Chapman' = '(425) 555-0185'}


若要顯示陣列的內容,請輸入下列命令:

代碼:

       $phone


執行此命令之後的輸出結果如下:

代碼:

   索引鍵                         值
   ------------------------------ --------------
   Ken Myers                      (425) 555-0184
   Greg Chapman                   (425) 555-0185
   Kim Akers                      (425) 555-0183



您可以使用數種方法選擇所要顯示的元素。不論是句號標記法或陣列標記法皆可。例
如,下列兩個命令都會顯示 Greg Chapman 索引鍵的電話號碼:

代碼:

        $phone.'Greg Chapman'
        $phone['Greg Chapman']


索引鍵和值只有包含空格時才必須加上引號 (單引號或雙引號),否則就不需要引號。
例如,下列單行命令不需要引號:

代碼:

        $phone = @{Kim_Akers = 4255550183; Ken_Myers = 4255550184;
        Greg_Chapman = 4255550185}


然而,若您打算將索引鍵的關聯值儲存成字串常值,則應將值置於單引號或雙引號中。
例如,假設您使用下列命令建立 $phone 關聯陣列:

代碼:

        $phone = @{Kim_Akers = 425-555-0183; Ken_Myers =
        425-555-0184; Greg_Chapman = 425-555-0185}


輸入 $phone 之後的輸出結果會變成這樣:

代碼:

    索引鍵                         值
    ------------------------------ -----
    Kim_Akers                      -313
    Greg_Chapman                   -315
    Ken_Myers                      -314


由於指定的值沒有加上單引號或雙引號,PowerShell 會將各個值解譯為整數,並將連
字號解譯為減法運算子 (例如,425-555-0183 = -313)。使用下列命令即可避免此
問題:

代碼:

        $phone = @{Kim_Akers = '425-555-0183'; Ken_Myers =
        '425-555-0184'; Greg_Chapman = '425-555-0185'}


上述幾個範例示範了包含同質資料型別的關聯陣列。使用 GetType 方法可確認關聯陣
列屬於 hashtable (雜湊表) 資料型別,如下所示:

代碼:

        $phone.GetType()


若要檢查關聯陣列中個別元素的資料型別,請使用下列其中一種方法,呼叫 $phone 關
聯陣列同時指定索引鍵:

代碼:

        $phone.Kim_Akers.GetType()
        $phone['Kim_Akers'].GetType()


關聯陣列可以包含不同的資料型別組合,如以下範例所示:

代碼:
       
        $hashMix = @{Key1 = 1; Key2 = Get-ChildItem ; Key3 =
        "testing"}


在此範例中,Key1 包含整數,Key2 包含 Cmdlet 的執行結果,且 Key3 包含字串。(2011-11-16 16:38)

[h1]PowerShell 特殊字元/逸出字元 "`"[/h1]

抑音符號 (`) 字元是 PowerShell 逸出字元。這個字元的按鍵通常位於 Qwerty 鍵盤
的左上角,與波狀符號 (~) 共用同一個按鍵。` 字元的用途依其用法不同而異。
下列清單說明這個字元運用在 PowerShell 各種不同環境中的意義:

* 位於變數前面時,表示下一個字元應傳遞給呼叫端命令而不得替換。以下範例示範,
若包含在雙引號中的變數名稱前面沒有加上 ` 字元,會產生何種結果:

代碼:

       $a = "Ken Myer"
       Write-Host "Hello, $a"


此命令的輸出為:

代碼:

       Hello, Ken Myer


對照之下,以下範例示範,若包含在雙引號中的變數名稱前面加上 ` 字元,會產生何
種結果:

代碼:

       $a = "Ken Myer"
       Write-Host "Hello, `$a"


此命令的輸出為:

代碼:

       Hello, $a


* 用於指令碼的行尾時 (亦即其後已無其他字元),` 符號是做為接續字元。它將指示
PowerShell 繼續從下一行讀取命令。您可藉此撰寫簡潔且更容易判讀的多行程式碼。
下列指令檔示範,如何使用 ` 字元做為行接續字元:

代碼:

       $a = Get-ChildItem
       foreach ($file in $a){
       Write-Host $file.name $file.CreationTime`
         $file.LastAccessTime $file.LastWriteTime
       }


此範例中的 ` 字元會將 Write-Host 命令接續成一體,所以 $file 變數的四個屬性將
一併顯示於主控台。請注意,若您想要從命令列輸入上述指令碼,而不是將其內容
寫入指令檔,則務必確定命令區塊的左括號與 foreach 陳述式位於同一行,正如範例
所示。

* 用於引號內部時,` 字元表示下一個字元應解譯為特殊字元。例如,`n 代表
「新行」字元,將使 PowerShell 從該字元所在位置起始另一新行;`t 則代表定位
字元,會將下一個字元對齊下一欄的左邊,預設欄寬為八個字元。

PowerShell 能夠辨識下列特殊字元:

`0 Null
`a 警示
`b 退格鍵
`n 新行字元
`r 換行字元
`t 水平定位字元
`' 單引號
`" 雙引號

警示 (`a) 字元會將鈴聲或嗶聲信號傳送到電腦的喇叭上。您可藉此通知使用者,在
執行特定命令或指令碼之後即將某些發生狀況。下列命令會將兩聲嗶聲信號傳送到
本機電腦的喇叭上:

代碼:

        for($i = 0; $i -le 1; $i++){Write-Host `a}


在命令中加上退格鍵 (`b) 字元會將游標往左移一個字元。這和鍵盤上的退格鍵不同,
並不會清除前一個字元。以下範例在 Write-Host 命令寫入單字 "backup" 後隨即
傳送兩個退格鍵信號。

代碼:

        Write-Host "backup`b`bout"


此命令的輸出如下:

代碼:

        backout


新行 (`n) 字元會在 `n 後面插入換行。以下範例示範,如何在 Write-Host 命令中使
用 `n 字元:

代碼:

        Write-Host "Line-0`n Line-1`n Line-2`n"



在命令中加上換行 (`r) 字元相當於按下換行鍵。這和退格鍵字元 (`b) 很像,但會
移除 `r 字元前面的一整行。以下範例示範實際情況:

Write-Host "請靜觀其變`r刪除此處之前的全部內容。"

此命令的輸出為:

刪除此處之前的全部內容。

水平定位 (`t) 字元會在輸出中加入定位點。定位點預設為 8 個空格。以下範例會在
各欄之間加入兩個定位點:

代碼:

    Write-Host "tab1 `t`t tab2 `t`t tab3"



下列特殊字元不是供螢幕輸出使用,而是供印表機輸出執行下列作業:

`f 換頁字元
`v 垂直定位字元


[h1]PowerShell 簽署與執行原則[/h1]
PowerShell 執行原則藉由判斷 PowerShell 載入組態檔與執行指令碼的狀況,為指令
碼執行環境提供安全性。

"Restricted" (受限制) 是最安全的原則,此為預設值。此原則允許執行個別命令,
但不允許執行指令碼。

每當執行原則禁止 PowerShell 載入檔案或執行指令碼時,便會出現警告說明限制。

「載入擴充型別資料檔時發生錯誤:」
「載入格式資料檔時發生錯誤:」

若要載入檔案或允許指令碼執行,請變更執行原則。


變更執行原則
------------------------------
您可以變更電腦上的 PowerShell 執行原則。變更將立即生效並一直保留到下次變更為止。
只有系統管理員才能變更原則。

若要變更執行原則,請輸入:

Set-ExecutionPolicy <原則名稱>

例如,

Set-ExecutionPolicy RemoteSigned

若此命令成功,PowerShell 將顯示命令提示字元, 但不會出現成功訊息。如果命令失敗,
PowerShell 就會顯示錯誤訊息,並回復為原先的執行原則。


若要檢視 PowerShell 執行原則,請輸入:

Get-ExecutionPolicy

若此命令沒有成功,可能是因為您所輸入的原則名稱不正確。請檢查名稱然後再試一次。如
果您沒有執行此命令的權限,請洽詢系統管理員。


POWERSHELL 執行原則
------------------------------

PowerShell 執行原則包括:

Restricted (受限制)
- 預設執行原則。
- 允許執行個別命令,但無法執行指令碼。

AllSigned (全已簽署)

- 可以執行指令碼。
- 所有的指令碼和組態檔都必須有受信任發行者的數位簽章,包括本機電腦上撰寫
的指令碼在內。
- 執行來自受信任發行者的指令碼之前會出現提示。
- 執行已簽署但居心不良的指令碼會有風險。

RemoteSigned (遠端簽署)
- 可以執行指令碼。
- 從網際網路下載的指令碼和組態檔都必須有受信任發行者的數位簽章 (包括由電
子郵件程式和立即訊息程式所下載)。
- 從本機電腦執行的指令碼不需要數位簽章。
- 執行來自受信任發行者的指令碼之前不會出現提示。
- 執行已簽署但居心不良的指令碼會有風險。

Unrestricted (沒有限制)
- 可以執行未經簽署的指令碼。
- 可以執行從網際網路下載的指令碼和組態檔 (包括由 Microsoft Outlook、
Outlook Express 和 Windows Messenger 所下載),但執行之前會出現警告
表示檔案來自網際網路。
- 執行居心不良的指令碼會有風險。


執行未經簽署的指令碼 (REMOTESIGNED 執行原則)
-------------------------------------------------------

如果 PowerShell 執行原則設為 RemoteSigned,PowerShell 就不會執行從網際網路下載而
未經簽署的指令碼 (包括由電子郵件程式和立即訊息程式所下載)。

若您嘗試執行已下載的指令碼,PowerShell 將顯示下列錯誤訊息:

C:\remote.ps1 檔案無法載入。C:\remote.ps1 檔案未經數位簽署。這個指令碼將不
會在系統上執行。如需詳細資訊,請參閱 "Get-Help about_signing"。
在執行指令碼之前,請先檢查其程式碼,確定您信任該指令碼。指令碼的效力等同於任何
的可執行程式。

執行未經簽署的指令碼:

1. 將指令檔儲存至電腦。
2. 按一下 [開始],再按一下 [我的電腦],然後瀏覽到剛才儲存的指令檔。
3. 以滑鼠右鍵按一下指令檔,再按一下 [內容]。
4. 按一下 [解除封鎖]。


從網際網路下載的指令碼若已經過數位簽署,但您尚未信任其發行者,PowerShell 會顯示
下列訊息:

要執行來自這個不受信任發行者的軟體嗎? C:\remote_file.ps1 檔案是由 CN=<發行者
名稱> 所發行。這個發行者在您的系統上並不受信任。只可執行來自受信任發行者
的指令碼。

[V] 永不執行 [D] 不要執行 [R] 執行一次 [A] 永遠執行 [?] 說明 (預設為 "D"):

若您信任該發行者,請選取 [執行一次] 或 [永遠執行]。如果不信任發行者,則選取
[永不執行] 或 [不要執行]。一旦選取 [永不執行] 或 [永遠執行],PowerShell 日後
將不再提示您確認該發行者。

簽署指令碼的方法
-----------------------------------------

您可以簽署自己撰寫的指令碼,也可以簽署來自其他來源的指令碼。簽署任何指令碼之前,
請先檢查當中的每個命令,以確認執行上安全無虞。

如需有關如何簽署指令檔的詳細資訊,請在 PowerShell 命令列輸入:

Get-Help Set-AuthenticodeSignature


若要為指令碼加上數位簽章,您必須使用程式碼簽署憑證簽署指令碼。適合簽署指令檔的
憑證有兩種:

-- 由憑證授權單位建立的憑證:

支付費用後,公眾憑證授權單位會先確認您的身分,再核發程式碼簽署憑證給您。
若向具有公信力的憑證授權單位購得憑證,您就能將指令碼分享給其他 Windows
電腦的使用者,因為他們的電腦會信任該憑證授權單位。

-- 由您自己建立的憑證:

您可以建立「自我簽署憑證」,將您的電腦當成建立憑證的授權單位。這種憑證是
免費的,並可讓您在自己的電腦上撰寫、簽署及執行指令碼,但是其他電腦並不
信任您的電腦,因而可能不允許執行指令碼。

若要建立自我簽署憑證,請確定您的憑證已啟用加強私密金鑰保護。這可防止惡意
程式以您的名義簽署指令碼。如需相關指示,請參閱本主題最後一節。


建立自我簽署憑證
------------------------------------------------------------
您可以使用 MakeCert.exe 工具建立自我簽署憑證,此工具隨附於 Microsoft .NET
ramework SDK (1.1 及以後的版本) 與 Microsoft Platform
DK。

使用 MakeCert 建立憑證:

在 SDK 命令提示字元視窗中,執行下列命令。

第一個命令會為您的電腦建立本機憑證授權單位。第二個命令則透過憑證授權單位產
生個人憑證:

makecert -n "CN=PowerShell Local Certificate Root" -a sha1 `
-eku 1.3.6.1.5.5.7.3.3 -r -sv root.pvk root.cer `
-ss Root -sr localMachine

makecert -pe -n "CN=PowerShell User" -ss MY -a sha1 `
-eku 1.3.6.1.5.5.7.3.3 -iv root.pvk -ic root.cer

MakeCert 將會提示您輸入私密金鑰密碼。


確認已正確產生憑證:

在 PowerShell 命令提示字元輸入:
get-childitem cert:\CurrentUser\My -codesigning

此命令使用 PowerShell 憑證提供者檢視憑證的相關資訊。

若已確實建立憑證,輸出結果將顯示憑證指紋,當中包含 PowerShell 使用者的驗證資
料,顯示畫面大致如下:


目錄: Microsoft.PowerShell.Security\Certificate::CurrentUser\My

指紋 主體
---------- -------
4D4917CB140714BA5B81B96E0B18AAF2C4564FDF CN=PowerShell User ]


簽署指令碼
-------------

建立自我簽署憑證之後,您就可以簽署指令碼。如果執行原則設為 AllSigned,簽署指令
碼將允許您在自己的電腦上執行指令碼。

下列範例指令碼 sign-file.ps1 用於簽署指令碼。不過,若您使用 AllSigned 執行原則,
就必須先簽署 sign-file.ps1 才能執行該指令檔。

若要使用這個指令碼,請將下列文字複製到文字檔,並將檔案命名為 sign-file.ps1。

(請確定指令檔不是以 .txt 為副檔名。如果文字編輯器自行加上 .txt,請將檔名置於引
號中,例如 "sign-file.ps1")。


## sign-file.ps1
## 簽署檔案
param([string] $file=$(throw "請指定檔名。"))
$cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]
Set-AuthenticodeSignature $file $cert


若要簽署 sign-file.ps1,請在 PowerShell 命令提示字元輸入:

$cert = @(Get-ChildItem cert:\CurrentUser\My -codesigning)[0]

Set-AuthenticodeSignature sign-file.ps1 $cert


簽署指令碼之後,您就可以在本機電腦上執行已簽署的指令碼。不過,其他電腦若將
PowerShell 執行原則設為必須有來自受信任授權單位的數位簽章,則這些電腦將無法執行
該指令碼。如果您試圖執行,PowerShell 會回報下列錯誤:

C:\remote_file.ps1 檔案無法載入。憑證的簽章無法驗證。
位於 行:1 字元:15

+ .\ remote_file.ps1 <<<<

如果您執行了別人所撰寫的指令碼以致 PowerShell 顯示上述訊息,則可將該檔案視同任何
未經簽署的指令碼比照辦理。請檢查其程式碼,若決定信任即可加以簽署然後執行。

為憑證啟用加強私密金鑰保護
---------------------------------------------------------

如果您的電腦上有私人憑證,惡意程式或許就能夠以您的名義簽署指令碼,進而授權
PowerShell 執行這些指令碼。

若要防止程式以您的名義自動簽署,請使用憑證管理員工具 (Certmgr.exe) 將簽署憑證匯
出為 .pfx 檔案。憑證管理員隨附於 Microsoft .NET Framework SDK、
Microsoft Platform SDK 與 Internet Explorer 5.0 及以後的版本。

匯出憑證:

1. 啟動憑證管理員 (此為 GUI 工具)。

2. 選取由 "PowerShell Local Certificate Root" 所核發的憑證。

3. 按一下 [匯出] 以啟動 [憑證匯出精靈]。

4. 選取 [是,匯出私密金鑰] 然後按一下 [下一步]。

5. 選取 [啟用加強保護]。

6. 輸入密碼,再輸入相同密碼進行確認。

7. 以 .pfx 為副檔名輸入檔案名稱。

8. 按一下 [完成]。


重新匯入憑證:

1. 啟動憑證管理員 (此為 GUI 工具)。

2. 按一下 [匯入] 以啟動 [憑證匯入精靈]。

3. 瀏覽到執行匯出程序時建立的 .pfx 檔案所在位置。

4. 在 [密碼] 頁面上選取 [啟用加強私密金鑰保護],然後輸入匯出過程中
指定的密碼。

5. 選取 [個人] 憑證存放區。

6. 按一下 [完成]。

[h1]PowerShell 程式區塊[/h1]

以下是指令碼區塊的幾個例子:

此範例利用迴圈找出副檔名為 *.txt 的每個檔案,然後將檔案的完整名稱和長度寫入
主控台。

代碼:

       foreach ($file in Get-ChildItem c:\techdocs\*.txt)
       {
           Write-Host $file.fullname $file.length
       }


此範例將 if 陳述式放在 foreach 迴圈內以形成巢狀結構。

代碼:

       foreach ($file in Get-ChildItem c:\techdocs\*.txt)
       {
           if ($file.length -ge 100)
           {
               Write-Host $file.name - $file.length 個位元組
           }
           else
           {
               Write-Host $file.name - "檔案小於 100 個位元組。"
           }
       }



將指令碼區塊指定給變數
您可以將指令碼區塊指定給變數,如下所示:

代碼:

       $a = {Write-Host $file.fullname $file.length}


使用 & 即可執行指令碼區塊變數,如下所示:

代碼:

       foreach ($file in Get-ChildItem c:\techdocs\*.txt) {&$a}

       Write-Host $file.fullname $file.length



函數和篩選器

代碼:

       function text_files
       {
           Get-ChildItem c:\techdocs\*.txt
       }



[h1]PowerShell 函數與變數範圍[/h1]
PowerShell 基於控制變數與函數的可存取性,會限制這兩種元素的可用範疇。此限制
稱為範圍,且 Windows PowerShell 將強制幾個範圍設定規則,以免您不小心更動到
已在其他地方建立的變數或函數。

範圍的基本規則如下:若您沒有明確要求,就只能在變數建立之處的範圍內讀取或變更
變數 且若要在其他範圍內讀取變數,則該範圍必須是建立在變數或函數建立之處的
範圍內。Windows PowerShell 初次啟動時的範圍是全域範圍。每當您執行指令碼、
呼叫函數或啟動新的 Windows PowerShell 執行個體,便會建立一個新範圍。子範圍
(建立在另一範圍內的範圍) 可以讀取父系範圍內所建立的變數,但除非明確指出
範圍的名稱,否則無法變更父系範圍內的變數,。

例如,$home 變數的初始設定是 $env:HOMEDRIVE + $env:HOMEPATH。
由於這是該變數在 Windows PowerShell 啟動時的初始值 (依 profile.ps1 檔案中的
設定),因此此值隸屬於全域範圍。接著您可以建立並執行下列指令碼:

"`$home 的初始值為 $home"
$home="c:\"
"`$home 的新值為 $home"

執行上述指令碼將顯示下列資訊:

$home 的初始值為 C:\Documents and Settings\JoeUser
$home 的新值為 c:\

但是,若您結束指令碼,然後在命令列輸入 $home,便會顯示下列資訊:

C:\Documents and Settings\JoeUser

這是因為當指令碼指定新值給 $home 變數時,會在指令碼的範圍內建立新變數,且指
定變數值的動作是變更新變數而非全域變數。在指令碼內對該變數進行任何的後續
參照,都將參照區域變數,而非父系範圍內的變數。一旦結束指令碼,$home 就不
再參照指令碼所建立的變數,而是參照全域變數。如前所述,參照變數時若明確就
可以變更父系範圍變數的值。Windows PowerShell 提供三種變數範圍識別標籤:
區域 (local)、全域 (global) 和指令碼 (script)。

區域範圍始終都是目前的範圍。每當您執行函數或指令碼,或是啟動新的 Windows
PowerShell 執行個體,便會建立一個新的區域範圍。您可以在區域範圍內讀取或變更
該範圍內定義的變數,但在其子範圍內只能讀取而無法變更這些變數。父系範圍既
無法讀取也不能變更其子範圍內所定義的變數。

全域範圍是在 Windows PowerShell 啟動時建立的範圍。子範圍只能變更全域範圍內
已將變數名稱明確標示為 global 的變數,但任何子範圍皆可讀取全域變數 (即使
沒有加上 global 標籤),除非子範圍使用了相同的變數名稱 (就像本主題稍早的範例
那樣)。

指令碼範圍是在指令碼執行時建立的範圍,一旦指令碼結束就不復存在。例如,撰寫
指令碼時若在函數內部使用 script 標籤,您即可存取指令碼在函數外面建立的變數。

若要參照其他範圍內的變數 (或確保變數參照隸屬於適當範圍),請在變數名稱前面加
上範圍標籤,兩者之間以冒號 (:) 分隔。下列指令碼示範如何只用範圍標籤,就能

$var = "init"
function changevar {
'在函數中 $var 的初始設定是 "'+$var+'"'
$var = "function"
'在函數中 $var 如今已設定為 "'+$var+'"'
$script:var = "script"
'在函數中 $var 目前仍設定為 "'+$var+'";'
'但在指令碼範圍內,$var 如今已設定為 "'+$script:var+'"'
}
changevar
'在指令碼中 $var 如今已設定為 "'+$var+'"'

執行上述指令碼將產生以下結果:

在函數中 $var 的初始設定是 "init"
在函數中 $var 如今已設定為 "function"
在函數中 $var 目前仍設定為 "function";但在指令碼範圍內,$var 如今已設定為
"script"
在指令碼中 $var 如今已設定為 "script"

指令碼起初呼叫 changevar 函數時,$var 的設定值是指令碼在函數定義前面所設定的
值。當函數指定新值給 $var 時,在函數的範圍內就會建立一個新變數。函數只要在
參照 $var 時明確指出指令碼範圍的名稱,即可變更 $var 的值而不會影響到建立於
指令碼範圍內的 $var 變數。單僅使用 global 標籤,指令碼就能指定全域變數的值,
或將函數的可用性改為全域性,如以下範例所示:

代碼:

    $global:home = "c:\user\home"
    function global:prompt {(Get-Location).path + '>'}


變數若標示為 private (私用),就表示不能在目前的區域範圍外使用該變數。

代碼:

        $variable = 3
        function a
        {
            $variable
            $private:variable = "__"
            $variable
            b
        }
       
        function b
        {
            $variable
        }
        $variable
        a
        $variable


執行上述指令碼會輸出以下結果:

代碼:
   
        3
        3
        __
        3
        3


函數 'a' 中所使用的 private 標籤意味著 $variable 只有在函數 'a' 中才會設定為
「__」。如果沒有 private 標籤,輸出結果會變成這樣:

3
3
__
__
3

如今函數 'a' 會為函數 'b' 中的 $variable 設定新值。

和變數一樣,函數及篩選器定義也受制於範圍界限。這可確保函數及篩選器定義指令
碼不致於取代父系範圍內的同名函數,除非定義中明確使用 global 關鍵字。您也
可以使用 local、script 和 private 標籤來控制函數及篩選器的範圍。如需有關建立
函數的詳細資訊,請輸入 Get-Help about_Function。

除了使用 global 標籤從指令碼指定全域範圍的變數值,或是定義函數或篩選器之外,
您也能用所謂「句號標記來源」(Dot Source) 指令碼的方式執行指令碼。也就是說,
若在指令碼名稱前面加上一個句號再空一格,其效果就如同在命令提示字元逐行
輸入指令碼一樣,因此 Windows PowerShell 將會執行指令碼。這樣一來,指令碼
所做的變更就會在全域範圍生效,而非僅限於指令碼範圍。

[h1]PowerShell 環境變數[/h1]

環境變數儲存著作業系統環境的相關資訊。這些資訊包括作業系統路徑、作業系統使
用的處理器數目,以及暫存資料夾的位置等詳細資料。

環境變數所儲存的資料可供作業系統及其他程式使用。例如,"windir" 環境變數包含
了 Windows 安裝目錄的位置。程式只要查詢此變數的值,即可得知 Windows 作業
系統檔案所在位置。


WINDOWS POWERSHELL ENVIRONMENT 提供者
Windows PowerShell 環境提供者讓您可在 Windows PowerShell 中,從看似檔案系統
磁碟機的 Windows PowerShell 磁碟機 Env: 存取 Windows 環境變數。

例如,若要切換到 Windows PowerShell Env: 磁碟機,請輸入:

set-location env:

接著,若要顯示 Windows PowerShell Env: 磁碟機的內容,請輸入:

get-childitem

您可以從任何其他 Windows PowerShell 磁碟機切換到 Windows PowerShell Env: 磁
碟機來檢視環境變數,也可以進入 Windows PowerShell Env: 磁碟機來檢視和變更
環境變數。


環境變數物件
在 Windows PowerShell 中,每個環境變數都是以物件表示,也就是
System.Collections.DictionaryEntry 類別的執行個體。

每個 DictionaryEntry 物件中的字典索引鍵即是環境變數的名稱,而字典值則是變數
的值。

若要在 Windows PowerShell 中顯示環境變數,請先取得代表變數的物件,然後顯示物
件屬性的值。使用與 DictionaryEntry 物件關聯的各種方法即可在 Windows
PowerShell 中變更環境變數。

若要在 Windows PowerShell 中顯示代表環境變數之物件的屬性和方法,請使用
Get-Member cmdlet。例如,若要顯示 Windows PowerShell Env: 磁碟機上所有
物件的方法和屬性,請輸入:

get-item -path env:* | get-member


顯示環境變數
您可以使用 Windows PowerShell 項目 cmdlet (*-Item) 顯示及變更環境變數的值。
由於環境變數沒有子項目,Get-Item 和 Get-Childitem 會產生相同的輸出。

參照環境變數時,請輸入 "Env:" 磁碟機名稱再加上變數的名稱。例如,若要顯示
COMPUTERNAME 環境變數的值,請輸入:

代碼:
   
       get-childitem env:computername


若要顯示所有環境變數的值,請輸入:

代碼:

        get-childitem env:


根據預設,Windows PowerShell 會依擷取的順序顯示環境變數。若要讓環境變數的清
單依變數名稱排序,請將 Get-Childitem 命令的輸出傳送給 Sort-Object cmdlet。
例如,您可從任何 Windows PowerShell 磁碟機輸入:

代碼:

        get-childitem env: | sort name



您也可以使用 Set-Location cmdlet 進入 Windows PowerShell Env: 磁碟機。

代碼:

        set-location env:


一旦您已位於 Windows PowerShell Env: 磁碟機,路徑即可省略 "Env:" 磁碟機
名稱。例如,若要顯示所有的環境變數,請輸入:

代碼:

        get-childitem


若要從 Windows PowerShell Env: 磁碟機內部顯示 COMPUTERNAME 變數的值,
請輸入:

代碼:

        get-childitem computername


您也可以不使用 cmdlet,而改用 Windows PowerShell 運算式剖析器顯示及變更環境
變數的值。若要顯示環境變數的值,請使用下列語法:

代碼:

         $env:<變數名稱>


例如,若要顯示 Windir 環境變數的值,請在 Windows PowerShell 命令提示字元
輸入:

代碼:

         $env:windir


在這個語法中,貨幣符號 ($) 表示變數,磁碟機名稱 "env:" 則表示環境變數。

變更環境變數

在 Windows PowerShell 中變更環境變數時,所做的變更只會影響目前工作階段,就如
同使用 Windows 的 Set 命令或是 Unix 的 Setenv 命令。為使變更永久生效,變更
作業必須在登錄中進行。

您也必須擁有變更變數值的權限。若您沒有足夠的權限而試圖變更值,命令就會失敗
且 Windows PowerShell 將顯示錯誤。

您可以不使用 cmdlet,而改用下列語法變更變數的值:

代碼:

        $env:<變數名稱> = "<新值>"


例如,若要將 ";c:\temp" 附加到 Path 環境變數的值後面,請使用下列語法:

代碼:

        $env:path = $env:path + ";c:\temp"   


您也可以使用項目 cmdlet 如 Set-Item、Remove-Item 和 Copy-Item 變更環境變數的
值。例如,若要使用 Set-Item cmdlet 將 ";c:\temp" 附加到 Path 環境變數的
值後面,請使用下列語法:

代碼:

      set-item -path env:path -value ($env:path + ";c:\temp")


在此命令中,新值置於括號中,所以會解譯為一個單位。



[h1]PowerShell Regular Expression[/h1]

PowerShell 支援下列規則運算式字元:

代碼:

        格式     邏輯                             範例
        -------- -------------------------------- -----------------------
        值       與原始值任何一處的若干字元       "book" -match "oo"
                 完全相符
        .        任何單一字元相符                 "copy" -match "c..y"
        [值]     至少與括號中的某個字元相符       "big" -match "b[iou]g"
        [範圍]   至少與範圍內的某個字元相符。     "and" -match "[a-e]nd"
                 可使用連字號 (-) 表示連續
                 字元
        [^]      與不在括號中的任何字元相符       "and" -match "[^brt]nd"
        ^        與?#125;頭的字元相符                 "book" -match "^bo"
        $        與結尾的字元相符                 "book" -match "ok$"
        *        與前一個字元的零個或更多例項相符 "baggy" -match "g*"
        ?        與前一個字元的零個或一個例項相符 "baggy" -match "g?"
        \        與逸出字元的下一個字元相符       "Try$" -match "Try\$"


PowerShell 支援 .NET 規則運算式可用的字元類別

代碼:
   
        格式     邏輯                            範例
        -------- ------------------------------- -----------------------
        \p{name} 與 {name} 所指定之具名字元類別  "abcd defg" -match "\p{Ll}+"
                 中的任何字元相符。支援的名稱?#93;
                 括 Unicode 群組和區塊範圍。
                 例如 Ll、Nd、Z、IsGreek、
                 IsBoxDrawing。
        \P{name} 與未?#93;含在 {name} 所指定之群組  1234 -match "\P{Ll}+"
                 及區塊範圍內的文字相符
        \w       與任何文字字元相符。相當於      "abcd defg" -match "\w+"
                 Unicode 字元類別 [\p{Ll}\p{Lu}  (此例與 abcd 相符)
                 \p{Lt}\p{Lo}\p{Nd}\p{Pc}]。
                 若使用 ECMAScript 選項
                 指定 ECMAScript 相容行為,
                 則 \w 相當於 [a-zA-Z_0-9]。
        \W       與任何非文字字元相符。相當於     "abcd defg" -match "\W+"
                 Unicode 類別 [^\p{Ll}            (此例與空格相符)
                 \p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]
        \s       與任何空白字元相符。相當於       "abcd defg" -match "\s+"
                 Unicode 字元類別
                 [\f\n\r\t\v\x85\p{Z}]
        \S       與任何非空白字元相符。相當於    "abcd defg" -match "\S+"
                 Unicode 字元類別
                 [^\f\n\r\t\v\x85\p{Z}]
        \d       與任何十進位數字相符。相當於     12345 -match "\d+"
                 Unicode 的 \p{Nd} 以及非
                 Unicode 的 [0-9]
        \D       與任何非數字相符。相當於         "abcd" -match "\D+"
                 Unicode 的 \P{Nd} 以及非
                 Unicode 的 [^0-9]



PowerShell 支援 .NET 規則運算式可用的數量詞,以下是幾個常見的數量詞範例

代碼:

       格式     邏輯                            範例
       -------- ------------------------------- -----------------------
       *        指定零次或多次相符;例如 \w*    "abc" -match "\w*"
                或 (abc)*。相當於 {0,}
       +        與前幾個字元的重複例項相符      "xyxyxy" -match "xy+"
       ?        指定零次或一次相符;例如 \w?    "abc" -match "\w?"
                或 (abc)?。相當於 {0,1}
       {n}      指定恰好 n 次相符;             "abc" -match "\w{2}"
                例如 (pizza){2}
       {n,}     指定至少 n 次相符;             "abc" -match "\w{2,}"
                例如 (abc){2,}
       {n,m}    指定至少 n 次,但不             "abc" -match "\w{2,3}"
                超過 m 次相符


上表中顯示的所有比對範例均評估為 true。

請注意,規則運算式的逸出字元與 PowerShell 的逸出字元並不相同。規則運算式的
逸出字元是反斜線 "\"。


[h1]PowerShell Call-by-Reference[/h1]

您可以使用參照變數型別,讓方法能夠變更傳給它的變數值。

物件若與 "[ref]" 型別相關聯,便會傳回該物件的參照。將參照運用在方法時,方法
則可參照傳給它的物件。如果物件在方法中發生變更,當控制權交還給呼叫端方法
時,這些變更將轉化為變數值的變更。

若要使用參照,則參數必須是參照變數。如果不是,就會發生 InvalidArgument 例外
狀況。

方法呼叫中的參數必須符合方法所要求的型別。

範例:

代碼:

   PS> function swap([ref]$a,[ref]$b)
   >> {
   >>     $a.value,$b.value = $b.value,$a.value
   >> }

   PS> $a = 1
   PS> $b = 10
   PS> $a,$b
   1
   10
   PS> swap ([ref]$a) ([ref]$b)
   PS> $a,$b
   10
   1

   PS C:\ps-test> function double
   >> {
   >>     param ([ref]$x) $x.value = $x.value * 2
   >> }

   PS C:> $number = 8
   PS C:> $number
   8
   PS C> double ([ref]$number)
   PS C> $number
   16


變數必須是參照變數。

PS C:\ps-test> double $number
double : 引數中必須是參照型別。
位於第 1 行,第 7 個字元
+ double <<<< $number

[h1]PowerShell 結果輸出導向[/h1]

根據預設,PowerShell 會將命令輸出導向到 PowerShell 顯示畫面。但是,您可以覆
蓋這種預設行為,將輸出導向到文字檔以擷取結果供日後使用。

若要將命令的結果寫入文字檔,您必須在命令結尾加上大於 (>) 符號和檔案名稱。例
如,下列命令會將 Get-ChildItem 命令的結果寫入文字檔:

代碼:

       Get-ChildItem c:\windows\system > c:\techdocs\results.txt


當您執行此命令時,輸出將隨即傳送到 c:\techdocs 目錄下的 results.txt 檔案,而
畫面上則不會顯示輸出。如果指定的檔案不存在,就會先建立檔案然後將輸出寫入
該檔案。如果檔案已存在,輸出將以新內容取代檔案中任何既有的內容。

若您不想取代既有輸出檔的內容,則可使用兩個大於 (>>) 符號將輸出附加至既有內
容,如以下範例所示:

代碼:

       Get-ChildItem c:\windows\system >> c:\techdocs\results.txt


此命令會將新的輸出附加到任何既有的內容後面,所以不會刪除既有的內容。


[h1]PowerShell 提供者[/h1]
Windows PowerShell 提供者是 .NET 程式,會將特殊資料存放區內的資料提供給
Windows PowerShell 環境使用,因此您可以輕易地檢視和管理這些資料。

提供者所公開的資料將呈現於磁碟機上,就像硬碟一樣。您可以使用提供者支援的任
何內建 cmdlet 來管理提供者磁碟機上的資料,也可以自訂專為操控資料而特別設計的
cmdlet。

提供者也能為內建 cmdlet 加入「動態參數」。這些參數僅供 cmdlet 用於處理提供
者資料。


內建提供者
Windows PowerShell 隨附一組內建提供者,可用於存取下列幾種不同的資料存放區:

提供者 資料存放區
----------------- ------------------------------------------
Alias Windows PowerShell 別名
Certificate 數位簽章所使用的 X509 憑證
Environment Windows 環境變數
FileSystem 檔案系統磁碟機、目錄和檔案
Function Windows PowerShell 函數
Registry Windows 登錄
Variable Windows PowerShell 變數

您也可以自行建立 Windows PowerShell 提供者,或安裝由他人所開發的提供者。若
要列出 Windows PowerShell 工作階段可用的提供者清單,請輸入
"Get-PsProvider"。


安裝及移除提供者
Windows PowerShell 提供者會傳遞到 Windows PowerShell 嵌入式管理單元,後者則
是編譯成 DLL 檔案的 .NET 程式。嵌入式管理單元可包含提供者和 cmdlet。

若要使用提供者的功能,您必須先安裝嵌入式管理單元並將其新增至 Windows
PowerShell 主控台。如需相關指示,請參閱 About_PsSnapins。

您無法解除安裝提供者,只能從目前主控台移除提供者的 Windows PowerShell 嵌入式
管理單元。進行移除後,將會移除嵌入式管理單元的全部內容,包括 cmdlet 在內。

若要從目前主控台移除提供者,請使用 Remove-PsSnapin cmdlet。這個 cmdlet 並不
會卸載或解除安裝提供者,只不過您已無法在主控台上使用該提供者。

您也可以使用 Remove-PsDrive cmdlet 從目前主控台移除任何磁碟機。磁碟機上的資
料將不受影響,但目前主控台工作階段已無法使用該磁碟機。


檢視提供者
若要找出系統上的 Windows PowerShell 提供者,請輸入:
Get-PsProvider

顯示畫面上會列出內建提供者,還有您已新增至主控台的提供者。

代碼:

        名稱                 功能                             磁碟機
        ----                 ------------                     ------
        Alias                ShouldProcess                    {Alias}
        Environment          ShouldProcess                    {Env}
        FileSystem           Filter、ShouldProcess            {C、D、Z}
        Function             ShouldProcess                    {Function}
        Registry             ShouldProcess                    {HKLM、HKCU}
        Variable             ShouldProcess                    {Variable}
        Certificate          ShouldProcess                    {cert}



檢視提供者資料
提供者的主要優點在於,以使用者熟悉且一致的方式公開資料。用於呈現資料的模型
是檔案系統磁碟機。

您可以檢視、瀏覽和修改提供者所公開的資料,就像使用硬碟上的資料一樣。因此若
要使用提供者,您務必知道提供者支援的磁碟機名稱。

磁碟機會列示在 Get-PsProvider 的預設畫面上,但您亦可使用 Get-PsDrive cmdlet
取得提供者磁碟機的相關資訊。例如,若要找出 Function 磁碟機的所有屬性,
請輸入:

get-psdrive Function | format-list *

您可以比照使用檔案系統磁碟機的方式,檢視和瀏覽提供者磁碟機上的資料。

若要檢視提供者磁碟機的內容,請使用 Get-Item 或 Get-Childitem cmdlet。先輸入
磁碟機名稱再加上冒號 (:)。例如,若要檢視 Alias 磁碟機的內容,請輸入:

get-item alias:

在路徑中加入磁碟機名稱後,即可從其他磁碟機來檢視和管理任何磁碟機上的資料。例
如,若要從其他磁碟機來檢視 HKLM: 磁碟機上的 HKLM\Software 登錄機碼,請輸入:

get-childitem hklm:\software

如需切換磁碟機,請使用 Set-Location cmdlet。指定磁碟機路徑時記得加上冒號。例
如,若要將您的位置變更為 Cert: 磁碟機的根目錄,請輸入:

代碼:

        set-location cert:


接著輸入下列命令即可檢視 Cert: 磁碟機的內容:

代碼:

        get-childitem


再次提醒您,磁碟機名稱記得加上冒號 (:)。

瀏覽階層式資料
您可以比照使用硬碟的方式來瀏覽提供者磁碟機。如果資料排列方式為項目中包含項
目的階層,請使用反斜線 (\) 表示子項目。格式如下:

磁碟機:\位置\下層位置\...

例如,若要將您的位置變更為 cert:\CurrentUser 憑證存放區,請使用
Set-Location 命令,像這樣:

代碼:

        set-location cert:\CurrentUser


您也可以使用相對位置參照。句號 (.) 代表目前位置。例如,如果目前位置為
HKLM:\Software\Microsoft 登錄機碼,而您想要列出
HKLM:\Software\Micrsoft\PowerShell 機碼的子機碼清單,請使用下列命令:

代碼:

        get-childitem .\PowerShell



尋找動態參數
動態參數是為 cmdlet 參數,只有提供者磁碟機上的 cmdlet 方可使用。這些參數為
cmdlet 增添極具價值的功能。

例如,當 Get-Item 和 Get-Childitem 用於處理來自 Cert: 磁碟機的資料時,就會加
入 CodeSigningCert 參數。

如需提供者支援的動態參數清單,請參閱提供者的 "About" 檔案。


[h1]PowerShell 物件屬性[/h1]
PowerShell 使用所謂「物件」的結構化資訊集合,來表示資料存放區中的項目或是
電腦的狀態。例如,當您在 PowerShell 中存取檔案時,處理的對象並非實際檔案
而是 FileInfo 物件,這種物件係做為檔案的 Proxy。

大多數的物件都有一組關聯的屬性。屬性是與物件相關聯的資料,指定了物件的特定
狀態。也就是說,每個屬性描述了物件的某特定層面。例如,FileInfo 物件包含
Length 屬性,以描述此物件所代表之檔案的大小。

如需檢視特定物件的關聯屬性清單,您可以使用 Get-Member Cmdlet。不過,使用這
個 Cmdlet 的前提是物件必須既已存在,可能是由變數來代表的形式,或是沿管線
向下傳遞的物件。例如,假設您已指定字串值給 $a 變數,即表示該變數與字串
物件相關聯。若要檢視此物件的屬性清單,請在 PowerShell 命令提示字元輸入
下列命令:

代碼:

        Get-Member -inputobject $a -membertype property


如果您想查看沿管線向下傳遞的物件相關屬性,請在管線中使用 Get-Member 命令,如
以下範例所示:

代碼:

        Get-ChildItem c:\final.txt | Get-Member -membertype property


請注意 final.txt 檔案必須位於 C: 磁碟機的根目錄,否則此範例將無法運作。

PowerShell 物件也可以包含所謂的附註屬性,這種特殊屬性係承襲自 PowerShell 環
境。附註屬性提供了一般屬性所沒有的其他物件相關資訊。例如,PsIsContainer
附註屬性指出項目是否為容器。

若要檢視特定物件的附註屬性清單,請將 NoteProperty 值做為引數指定給
-MemberType 參數,如以下範例所示:

代碼:
       
        Get-ChildItem c:\final.txt | Get-Member -membertype NoteProperty


存取物件屬性最常用的方式是在物件參照 (例如變數或運算式) 後面指定參數名稱。物
件參照和屬性之間必須以句號分隔。

例如,下列命令顯示 final.txt 檔案的大小 (位元組):

代碼:

        (Get-ChildItem c:\techdocs\final.txt).length


Get-ChildItem 命令會傳回與 final.txt 檔案相關聯的 FileInfo 物件。這種物件包
含 length 屬性,因此您可以透過該屬性存取檔案的大小。

您也可以透過與變數相關聯的物件來存取屬性,如以下範例所示:

代碼:

        $a = (Get-ChildItem c:\techdocs\final.txt)
        Write-Host $a.fullname $a.length $a.lastwritetime


第一行程式碼建立並宣告 $a 變數,作法是將此變數的值設定為 Get-ChildItem
Cmdlet 處理 c:\techdocs 目錄下的 final.txt 檔案後所傳回的結果。第二行程式碼
則傳回與此物件相關聯的三個屬性的值。FullName 屬性傳回檔案的完整路徑
名稱。Length 屬性傳回檔案的位元組大小。LastWriteTime 屬性傳回檔案
更新的日期和時間。如您所見,重複使用變數可以存取物件的各種屬性。

[h1]PowerShell PipeLine 命令管線[/h1]
PowerShell 允許您將兩個以上的命令組合成單一自訂命令,而建立所謂的管線作業。
在管線中鏈結命令後,命令之間彼此傳遞的資料即為物件。第一個命令會將傳回
的一或多個物件沿管線向下傳遞給第二個命令。第二個命令會先處理這些物件,
再將新物件或修改後的物件傳遞給第三個命令。這種情形將持續發生,直到管線
中的每個命令都已執行完成。

若要鏈結命令以組合成單一管線,請依命令的執行順序指定每個命令。命令之間必須
以管線符號 (|) 分隔,也就是垂直線。命令的執行順序為由左至右,以單次作業方式
沿管線向下傳遞所需的物件。

以下範例示範如何將命令組合成單一管線:

代碼:

        Get-ChildItem *.txt | where {$_.length -gt 100} |
        Format-Table name, length


第一個命令 (Get-ChildItem *.txt) 從目前工作位置擷取所有的文字檔。此命令將每
個檔案的相關資料以物件型式傳遞給第二個命令 (where {$_.length -gt 100})。
第二個命令則擷取這些物件,然後依據 length 屬性來篩選物件。接著此命令會將
length 值大於 100 位元組的每個物件,沿管線向下傳遞給第三個命令
(Format-Table name)。第三個命令收到這些物件後,將以表格格式顯示檔案
的名稱。

請注意在第二個命令中,length 屬性前面加上了 $_ 變數。這個變數是由
PowerShell 自動建立,用於儲存目前的管線物件。依此推論,您可以使用這個
變數呼叫管線物件的屬性 (變數名稱和屬性名稱之間必須以句號分隔)。

為了能在管線中鏈結命令,接收端 Cmdlet 的相應參數必須能夠接受管線輸入。如需
判斷參數是否接受管線輸入,您可以使用 Get-Help 命令擷取特定 Cmdlet 的相關
資訊。

藉由此命令所傳回的資訊,即可判斷相應的參數是否接受管線輸入。接受管線輸入的
參數其 "Accepts pipeline input?" 設定必須顯示為 True 值。以
Where-Object Cmdlet 為例,接受管線輸入的相應參數為 ScriptToApply。

如果相應參數不接受管線輸入,您就必須改採其他對策以達到所想要的結果。通常最
好的辨法是將命令寫成指令碼,並使用參數在命令之間傳遞資料。例如,您可以將
上述的 Get-ChildItem 範例改寫成 foreach 迴圈,如下列指令碼所示:

代碼:

        $a = Get-ChildItem *.txt
        foreach ($file in $a)
        {
            if ($file.length -gt 100)
            {
                Write-Host $file.name
            }
        }


此範例將 Get-ChildItem 命令傳回的結果儲存至 $a 變數,接著在 foreach 迴圈中使
用該變數反覆檢查檔案資訊。如您所見,像 foreach 這類流程控制陳述式正適合用
來存取不便透過管線傳遞的資訊。所幸 Where-Object Cmdlet 和 Format-Table
Cmdlet 都支援接受管線輸入的參數,因而使用參數在命令之間傳遞資料是最
簡單的方式。

[h1]PowerShell 路徑語法[/h1]
透過 PowerShell 提供者可進行存取的資料存放區內所有的項目皆可由路徑名稱加以唯
一識別。路徑名稱的組成包含項目名稱、項目所在位置的容器和子容器,以及用於
存取容器的 PowerShell 磁碟機。

在 PowerShell 中,路徑名稱分為兩種類型:完整和相對。完整路徑名稱是由構成路
徑的所有元素組成。下列語法顯示了完整路徑名稱中的元素:

[<提供者>::]<磁碟機>:[\<容器>[\<子容器>...]]\<項目>

<提供者> 預留位置是指用於存取資料存放區的 PowerShell 提供者。例如,
FileSystem 提供者可用於存取電腦上的檔案和目錄。這個語法元素為選擇性,
且其實根本不必指定,因為所有提供者的磁碟機名稱絕不會重複。

<磁碟機> 預留位置是指特定的 PowerShell 提供者支援的 PowerShell 磁碟機。以
PowerShell FileSystem 提供者為例,PowerShell 磁碟機對應到系統上所設定的
Windows 磁碟機。例如,假設您的系統有 A 磁碟機和 C 磁碟機,FileSystem
提供者就會在 PowerShell 中建立相同的磁碟機。

指定磁碟機之後,您必須指定任何含有項目的容器和子容器。容器必須依其現存於資
料存放區內的階層順序來指定。也就是說,您必須先指定父容器,再指定該父容器
中的子容器,依此類推。此外,每個容器前面必須加上反斜線 (附註:為與其他的
PowerShell 能夠相容,PowerShell 允許使用正斜線)。

指定容器和子容器之後,您還必須提供項目名稱,且名稱前面加上反斜線。例如,位
於 c:\windows\system32 目錄下的 shell.dll 檔案,其完整路徑名稱如下:

代碼:

        c:\windows\system32\shell.dll


在此情況下將透過 C 磁碟機存取容器,且最父容器是 Windows,子容器是
System32 (位於 Windows 容器中),而項目則是 shell.dll。

有時候您不需要指定完整路徑名稱,而可改用相對路徑名稱。相對路徑名稱是以目前
工作位置為基準。PowerShell 允許您以項目相對於目前工作位置的位置來指定
項目。指定相對路徑名稱時可以使用特殊字元。下表說明這些特殊字元,並提供
相對路徑名稱和完整路徑名稱的範例。這份表格將以目前工作位置設定為
c:\windows 的情況為例。

符號 描述 相對路徑 完整路徑
------ -------------------------- ---------------- --------------------
代碼:
   
    .      目前工作位置               .\system         c:\windows\system
    ..     目前工作位置的上一層       ..\program files c:\program files
    \      目前工作位置的磁碟機根目錄 \program files   c:\program files
    [無] 沒有特殊字元                 system           c:\windows\system


在命令中使用路徑名稱時,不論是使用完整路徑名稱或相對路徑名稱,輸入名稱的方式
都一樣。例如,假設您的目前工作目錄是 c:\windows。下列 Get-ChildItem 命令會
擷取 c:\techdocs 目錄下的所有項目:

代碼:

        Get-ChildItem \techdocs


反斜線表示應該使用目前工作位置的磁碟機根目錄。由於工作目錄是 c:\windows,磁
碟機根目錄就是 C。正因 techdocs 目錄位於根目錄,您只需要指定反斜線即可。

使用下列命令也能達到同樣的結果:

Get-ChildItem c:\techdocs

無論使用完整路徑名稱或相對路徑名稱,路徑名稱都很重要,因為這項資訊不僅識別
項目的位置,更能唯一識別項目而與位於其他容器中的同名項目做區隔。例如,假設
您有兩個名稱同為 results.txt 的檔案,其中一個檔案位於 c:\techdocs\jan 目錄,
另一個檔案位於 c:\techdocs\feb 目錄。
藉由第一個檔案的路徑名稱
(c:\techdocs\jan\results.txt)
和第二個檔案的路徑名稱
(c:\techdocs\feb\results.txt),
您就能清楚分辨這兩個檔案。




[h1]PowerShell 物件方法(method)語法[/h1]
PowerShell 使用所謂「物件」的結構化資訊集合,來表示資料存放區中的項目或是
電腦的狀態。例如,當您在 PowerShell 中存取檔案時,處理的對象並非實際檔案而
是 FileInfo 物件,這種物件係做為檔案的 Proxy。

大多數的物件都包含方法。方法是一組指令,指定了可透過物件來執行的特定動作。例
如,FileInfo 物件所包含的 CopyTo 方法即可用於複製此物件所代表的檔案。

如需檢視特定物件的方法清單和方法定義,您可以使用 Get-Member Cmdlet。不過,
使用 Cmdlet 的前提是物件必須以下列幾種形式存在:以變數來代表的形式、將某個
命令指定為 Get-Member 命令的引數而建立的物件,或是沿管線向下傳遞的物件。
例如,假設您已指定字串值給 $a 變數,即表示該變數與字串物件相關聯。若要檢視
此物件的方法清單,請在 PowerShell 命令提示字元輸入下列命令:

代碼:

       Get-Member -inputobject $a -membertype method


如果您想查看沿管線向下傳遞的物件相關方法與方法定義,請在管線中使用
Get-Member 命令,如以下範例所示:

代碼:

       Get-ChildItem c:\final.txt | Get-Member -membertype method


呼叫方法最常用的方式是在物件參照 (例如變數或運算式) 後面指定方法名稱。物件
參照和方法之間必須以句號分隔。此外,方法名稱後面必須立即加上括號,將您要
傳遞給方法的引數含括在內。

即使方法簽名碼表示不必傳遞任何引數,仍然需要加上左右括號。

例如,下列命令使用 GetType() 方法傳回與 $a 字串物件相關聯的資料型別:

代碼:

       $a.GetType()


GetType() 方法將傳回任意物件的資料型別,而變數則始終代表物件。物件的型別取
決於儲存在該變數中的資料型別而定。

PowerShell 中所執行的每個動作都和物件有關,不論是宣告變數乃至於將命令整併為
單一管線都一樣。因此,方法可運用在各種不同的情況。例如,您可以使用方法對
屬性值採取動作,如下列命令所示:

代碼:

       (Get-ChildItem c:\final.txt).name.ToUpper()


在此範例中,所呼叫的 ToUpper 方法其所屬物件是與 name 屬性相關聯的字串物件
(請注意 final.txt 檔案必須存在於 c: 磁碟機的根目錄中,否則此範例將無法運
作)。name 屬性其實是由 Get-ChildItem 命令所傳回之 FileInfo 物件的屬性之一。
這不僅展露 PowerShell 的物件導向本質,更印證了您可以對任何可存取的物件
呼叫其方法。

若將 Get-ChildItem 命令輸出儲存至變數,也能達到和前述範例相同的結果,如以下
範例所示:

代碼:

       $a = (Get-ChildItem c:\final.txt).name
       $a.ToUpper()


此命令將 Get-ChildItem 命令傳回的檔案名稱儲存至變數,且同樣使用了與該變數相
關聯之字串物件的 ToUpper() 方法。

在某些情況下,方法必須經由引數指引以執行其本身的動作。例如,FileInfo 物件所
包含的 MoveTo() 方法可將檔案從某位置移到另一位置。此方法必須以引數指定
檔案的目標位置。下列命令示範如何加上這個引數:

代碼:

      (Get-ChildItem c:\final.txt).MoveTo("c:\techdocs\final.txt")


Get-ChildItem 命令傳回代表 final.txt 檔案的 FileInfo 物件,然後使用該物件的
MoveTo 方法啟動動作,並指定檔案的新位置。

如需得知某個方法的相關引數,請查閱對應的方法定義。方法定義包含一或多個方法
簽名碼 (在 .NET Framework 中也稱為多載)。方法簽名碼則包含方法的名稱,以及
呼叫方法時必須提供的參數 (零個或以上)。在 Get-Member Cmdlet 顯示畫面中,每個
方法簽名碼與其前一個簽名碼之間以逗號分隔。例如,FileInfo 類別的 CopyTo 方法
包含下列兩個方法簽名碼:

代碼:

      1. CopyTo(String destFileName)
      2. CopyTo(String destFileName, Boolean overwrite)


第一個方法簽名碼接受要將來源檔案複製過去的目的檔名 (包含路徑)。以下範例使用
第一個 CopyTo 方法將 final.txt 複製到 c:\bin 目錄中:

代碼:

      (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt")


如果該檔案已存在於目的地位置,CopyTo 方法就會失敗,且 PowerShell 將回報下列
錯誤:

以 "1" 引數呼叫 "CopyTo" 時發生例外狀況: 檔案 'c:\bin\final.txt' 已經存在。

使用第二個方法簽名碼時,除了傳遞如同第一種情況的目的檔名之外,還必須傳遞
布林值指定是否覆寫目的地位置上存在的同名檔案,如以下範例所示:

代碼:

      (Get-ChildItem c:\final.txt).CopyTo("c:\bin\final.txt", $true)


每次傳遞布林值時都必須使用 $true 變數,此為 PowerShell 自動建立的變數。
$true 變數中包含布林值 "true" (如您預期,$false 變數中則包含布林值
"false")。


[h1]PowerShell 函數語法[/h1]

函數一種具名的程式碼區塊,您可以在 Windows PowerShell 命令中予以參照。只要
呼叫函數名稱,就會執行函數內部的程式碼,就如同您輸入了函數的程式碼區塊一樣。
函數可以接受匯入值 (您呼叫函數時所指定的引數) 或是透過目前管線傳遞給函數
的值。函數所傳回的值則可指定給變數,或是傳遞給其他函數或 cmdlet。

Windows PowerShell 支援兩種函數:一般函數和篩選器。這兩種函數的主要差別在於
處理的方式。當您呼叫一般函數時,傳入函數的物件會繫結到 $input 自動變數,
並等待從管線收到所有的輸入後才解除封鎖而開始執行。這可確保函數先收到全部
所需的資料,然後才開始處理資料。

然而,篩選器會立即處理收到的資料 (以便即時採取篩選動作)。每當從管線收到內送
物件後就會呼叫篩選器,而不是等待所有的輸入都到齊。篩選器透過 $_ 自動變數
接收來自管線的每個物件,且其指令碼區塊將處理每個物件。

若要建立一般函數或篩選器,必須指定幾個必要元素。您也可以指定選擇性元素。下
列語法顯示構成函數定義的各種元件:

代碼:

       function function_name
       {
       
       }
       
       filter filter_name
       {
       
       }


下表說明函數定義中的每個元素:

代碼:

   元素              描述                                        是否必要
   ----------------- ------------------------------------------- ---------
   function | filter 務必指定的關鍵字,兩者擇其一                是
   範圍類型:         指定範圍以覆蓋預?#93;範圍                      否
   名稱              函數或篩選器的名稱                          是
   { }               大括號用以含括參數定義和指令碼區塊          是
   param(參數清單)   param 關鍵字?#91;上括號用以含括參數清單。否
                     清單中?#93;含以逗號分隔的參數名稱。
                     或者,參數名稱前面亦可?#91;上資料型別名稱
                     (置於方括號中)
   指令碼區塊        函數或篩選器運作的邏輯                      是

   最基本的函數定義只?#93;含?#125;頭的關鍵字 (function 或 filter)、函數或篩選器的
   名稱,以及指令碼區塊 (置於大括號中)。以下定義,定義了只?#93;含必要元素
   的一般函數:


代碼:

       function small_files
       {
           Get-ChildItem c:\ | where { $_.length -lt 100
               -and !$_.PSIsContainer}
       }


此定義建立了名稱為 small_files 的函數。最外圍大括號中的指令碼區塊下達命令呼
叫 Get-ChildItem cmdlet。這個 cmdlet 的輸出接著傳送給 Where-Object cmdlet,
以選取檔案大小 (length 屬性) 小於 100 個位元組而且不是容器的物件。

建立函數之後,您即可在 Windows PowerShell 命令中呼叫函數名稱,進而執行函數的
指令碼區塊,如以下範例所示:

代碼:

       small_files


執行此命令會傳回小於 100 個位元組的檔案。

建立篩選器的做法與建立一般函數幾乎完全相同。以下範例定義了名稱為 process_c
的篩選器。

代碼:

       filter process_c
       {
           $_.processname -like "c*"
       }


在此定義中,指令碼區塊內的程式碼可供 Where-Object 命令用於篩選資料。例如,
下列命令會執行 Get-Process cmdlet,然後將處理序物件傳送給
Where-Object cmdlet。

代碼:

       Get-Process | where { process_c }


此命令傳回的資料包含了名稱以字母 c 開頭的所有處理序。

使用參數
函數最實用的功能之(2011-11-16 16:38)

前往頁面 ←上一頁  1 ... 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 ... 558  下一頁→