วิธีส่งเสริมให้ผู้ดูแลระบบ Windows เลือกใช้งานสคริปต์ [ปิด]


26

เมื่อฉันทำงานเป็นผู้ดูแลระบบในงานแรกของฉันฉันผิดหวังที่กระบวนการดูแลระบบของเรากับเซิร์ฟเวอร์ Windows เป็นชุดของจุดและคลิก เราไม่สามารถเทียบได้กับระดับประสิทธิภาพกับเซิร์ฟเวอร์ Unix ที่มีกลุ่มเชลล์สคริปต์เพื่อทำงานให้เป็นจำนวนมากโดยอัตโนมัติ ในไม่ช้าฉันก็อ่านเกี่ยวกับ WSH และADSIและไม่เสียเวลาในการเรียนรู้ว่าระบบอัตโนมัติมากแค่ไหนที่ฉันสามารถทำได้ด้วยการเขียนสคริปต์

แม้ว่าจะมีปัญหาใหญ่ - เกือบจะไม่มีเพื่อนร่วมงาน Windows ของฉันที่สนใจเรียนรู้การเขียนสคริปต์จริงๆ ดูเหมือนว่าพวกเขาจะมีความสุขกับการคลิกเมาส์ด้วยตนเองและไม่เคยตื่นเต้นกับการใช้สคริปต์ในการทำงานแทนพวกเขา ฉันพยายามโน้มน้าวให้พวกเขาหยิบทักษะการเขียนสคริปต์แม้จะมีประสิทธิภาพเพิ่มขึ้นอย่างชัดเจน ฉันออกจากงานนั้นเพื่อหาอาชีพพัฒนาซอฟต์แวร์เต็มเวลาหลังจากนั้น

เกือบทศวรรษในการทำงานในสภาพแวดล้อมที่หลากหลายและลูกค้าที่แตกต่างกันฉันยังคงพบว่าผู้ดูแลระบบ Windows ส่วนใหญ่มี "อารมณ์" ทั่วไปที่พวกเขาจะหลีกเลี่ยงการเขียนสคริปต์ให้มากที่สุด แม้จะมีระดับที่เพิ่มขึ้นของการเข้าถึงเทคโนโลยีเซิร์ฟเวอร์ Windows ที่เปิดขึ้นสำหรับการเขียนสคริปต์และระบบอัตโนมัติ ฉันเกือบจะแน่ใจว่าผู้ดูแลระบบส่วนใหญ่เป็นผู้ดูแลระบบอย่างแม่นยำเพราะพวกเขาเกลียดการปฏิบัติหน้าที่การเขียนโปรแกรมทุกชนิด มีวิธีใดบ้างในการกระตุ้นและกระตุ้นผู้ดูแลระบบว่าการเขียนสคริปต์สามารถช่วยพวกเขาได้จริงในระยะยาว

คำตอบ:


21

ในฐานะผู้ดูแลระบบ Unix และ Windows ที่ทำสคริปต์ Unix จำนวนมากและแทบจะไม่มีสคริปต์ Windows ฉันบอกได้เลยว่ามันเป็นส่วนหนึ่งเนื่องจากความอึดอัดอย่างเหลือเชื่อของยูทิลิตี้การเขียนสคริปต์และ API ของ Windows และความยากลำบาก (อาจไม่ชัดเจน คำที่ดีขึ้น) ของการทำงานสิ่งต่าง ๆ จากระยะไกลบนเครื่อง Windows

ฉันหมายถึง WTF นี่คืออะไร?

Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

ส่วนหนึ่งของปัญหาผมคิดว่าก็คือว่ามีเป็น API ที่ ภายใต้ระบบปฏิบัติการ Unix ผู้ดูแลระบบส่วนใหญ่ใช้สคริปต์ระบบอัตโนมัติของยูทิลิตีบรรทัดคำสั่งที่ใช้อยู่แล้ว ใน Windows คุณต้องใช้ API นี้ที่ไม่คุ้นเคยในทุกระดับ ตัวอย่างเช่น "การแอบอ้าง" หมายถึงอะไร นี่เป็นแนวคิดเล็กน้อยสำหรับผู้ดูแลระบบ Unix ซึ่งมีแนวโน้มที่จะใช้ sudo และ su และคุ้นเคยกับสคริปต์ setuid แล้ว แต่ผู้ดูแลระบบ Windows ไม่น่าจะคุ้นเคยกับสิ่งเหล่านี้ พวกเขาอาจรู้เกี่ยวกับ "runas" (หรือตัวเลือก GUI ที่เทียบเท่า) แต่พวกเขามีแนวโน้มที่จะเข้าสู่ระบบในฐานะผู้ดูแลระบบเมื่อพวกเขาต้องการทำสิ่งที่ผู้ดูแลระบบ -y

และเอกสารเกี่ยวกับการเขียนสคริปต์ใน Windows นั้นน่าสังเวช สำหรับสิ่งหนึ่งมันเป็น "ภาษาตีความ" มากกว่าสคริปต์อีกครั้งเพราะพวกเขาใช้ API (ไม่คุ้นเคย) และไม่ใช่คำสั่งที่พวกเขาคุ้นเคยอยู่แล้ว แต่ฉันไม่คิดว่าฉันเคยพบสิ่งใดที่มีประโยชน์ในเอกสารของ Microsoft ที่ไม่ได้นำไปสู่การหาคนที่ทำบางสิ่งบางอย่างใกล้เคียงกับสิ่งที่ฉันต้องการซึ่งชี้ให้ฉันในทิศทางที่ถูกต้อง ไม่มีที่ไหนดูเหมือนจะมีรายการของสิ่งที่คุณสามารถทำได้ มันเหมือนกับที่คุณต้องคุ้นเคยกับ Windows internals เพื่อที่จะทำสิ่งพื้นฐานที่สุด

ไม่ใช่ว่าสคริปต์ Unix มักจะดูเหมือนเป็นสัญญาณรบกวนสาย แต่ผู้ดูแลระบบ Unix สามารถเริ่มต้นด้วยสคริปต์ที่ไม่ทำอะไรเลยนอกจากรันคำสั่งง่ายๆที่เขารู้อยู่แล้ว ("ฉันต้องเรียกใช้คำสั่งทั้งสามนี้อย่างต่อเนื่องหากฉันใส่ไว้ในไฟล์ด้วยกันฉันสามารถทำได้ในคำสั่งเดียว!") จากนั้นเขาก็สามารถพัฒนาได้ในภายหลังเมื่อเขาคุ้นเคยกับสถานการณ์ ในทางกลับกันไม่มีวิธีใดที่ผู้ดูแลระบบสคริปต์จะ "ลงชื่อเข้าใช้เซิร์ฟเวอร์ในฐานะผู้ดูแลระบบคลิกที่เริ่ม→การตั้งค่า→แผงควบคุมดับเบิลคลิกที่ระบบคลิกที่แท็บชื่อคอมพิวเตอร์ ฯลฯ " ใช่สิ่งที่เขาพยายามที่จะได้รับอาจถูกนำเสนอผ่าน API ที่ไหนสักแห่ง แต่ไม่มีทางที่เขาจะพบว่าเพิ่มขึ้น

ดังนั้นเพื่อตอบคำถาม "เราจะให้ผู้ดูแลระบบ Windows ใช้งานสคริปต์มากขึ้นได้อย่างไร" คำตอบก็คือทำให้สคริปต์มนุษย์ต่างดาวน้อยลง ฉันจะรู้ได้อย่างไร

สุจริตคำตอบอยู่ในมือของ Microsoft ไม่มีเหตุผลที่พวกเขาไม่สามารถใช้ยูทิลิตีบรรทัดคำสั่งทำทุกอย่างที่ทำผ่าน GUI ได้ (มีจริง ๆ แล้วมีอยู่มากมายที่นั่นตอนนี้ แต่พวกเขาไม่ได้โฆษณาพวกเขามีเอกสารไม่ดีและพวกเขาก็ไม่สอดคล้องกัน) นอกจากนี้ยังมีเหตุผลที่ไม่มีคำใบ้ใน GUI เกี่ยวกับอะไร ปุ่มนั้นใช้งานได้จริง มีเคล็ดลับเครื่องมือที่แสดงวัตถุ API ที่กำลังแก้ไข หรือเอกสารในหน้าต่างวิธีใช้

ไม่มีปัญหาในการป้องกันผู้ใช้จาก internals แต่ Windows ดูเหมือนจะออกไปเพื่อซ่อน internals เหล่านั้นอย่างแข็งขันแม้จากผู้ที่ต้องการค้นหาพวกเขา


16
ตรงกันข้าม WTF ใช่หรือไม่ ls -1 *old* | awk '{print "mv "$1" "$1}' | sed s/old/new/2 | sh
squillman

4
จุดที่ดีเกี่ยวกับความจริงที่ว่าการเขียนสคริปต์ windows - โดยเฉพาะอย่างยิ่ง VB เป็นที่น่าอึดอัดใจมากจนกว่าคุณจะเริ่มคิดออก PowerShell ได้รับการปรับปรุงให้ดีขึ้นอย่างต่อเนื่องทำให้การดูแลระบบเป็นมิตรกับผู้ใช้มากขึ้น มันใกล้กับ Bash scripting มากกว่า VBS
Zypher

2
BTW- เพียงแค่การเล่นปีศาจสนับสนุน :) WMI น่าเกลียด ...
squillman

1
ฮ่า ๆ. อันดับแรกใครจะทำเช่นนั้น? lsประการที่สองผู้ดูแลระบบเป็นอย่างน้อยคุ้นเคยกับ ประการที่สามฉันจะพิจารณาsedและawkค่อนข้างสูงและแน่นอนในเวทีเดียวกันกับ Windows API ที่ฉันกำลังพูดถึง ที่สามและครึ่งในขณะที่บางคำสั่ง Unix สคริปต์มีความซับซ้อนคุณไม่จำเป็นต้องเริ่มต้น & mdash; คุณสามารถทำสิ่งต่าง ๆ อย่างง่าย ๆ เพียงแค่มีรายการคำสั่งที่คุณคุ้นเคยกับ & mdash; ในขณะที่ถ้าคุณต้องการทำทุกอย่างกับ Windows คุณจะมีช่วงการเรียนรู้ขนาดใหญ่นี้ก่อน อย่างไรก็ตามการปรับปรุงคำตอบ
wfaulk

3
ฉันชอบวิธีที่เมื่อคุณทำบางอย่างใน GUI ใน Exchange 2007 มันเพิ่งสร้างสคริปต์ PowerShell และเรียกใช้
Richard Gadsden

8

ให้งานที่สามารถทำได้จริงผ่านสคริปต์เท่านั้นตัวอย่างเช่นฉันเคยเขียนสคริปต์การสร้างหลายร้อยโฟลเดอร์และการอนุญาตที่กำหนดเองสำหรับแต่ละโฟลเดอร์และต้องอัปเดตทุกวัน หากพวกเขาทำสิ่งนี้ด้วยตนเองมันจะเป็นงานของพวกเขาเอง สคริปต์ซึ่งใช้ CACLS เหนือสิ่งอื่นใดเพื่อรีเซ็ตสิทธิ์ตามผลลัพธ์ของไฟล์ข้อความที่มีการคั่นคั่นใช้เวลาประมาณหนึ่งวันถึงจะสมบูรณ์แบบ (สคริปต์ขั้นพื้นฐานใช้เวลาประมาณหนึ่งชั่วโมง)

เมื่อคุณเริ่มเห็นสิ่งที่คุณสามารถทำได้กับการเขียนสคริปต์มันอาจเป็นชัยชนะครั้งใหญ่


+1 จุดที่ดีมีหลายสิ่งที่ไม่สามารถทำได้โดยการชี้และคลิก
squillman

ใช่สคริปต์ที่ฉันเขียนย้อนกลับไปในสมัยนั้นโดยอัตโนมัติคือการสร้างไดเรกทอรีการอนุญาต DACLs การตั้งค่าไซต์ IIS ฯลฯ แต่เพื่อนร่วมงานของฉันไม่ได้รับแรงบันดาลใจจากสิ่งนั้น ใช้เวลาหนึ่งในสองเดือนทั้งหมดเพื่อเรียนรู้วิธีเขียนฟังก์ชันสคริปต์เพื่อส่งคืนวันที่ในรูปแบบสตริง
icelava

PS อย่างที่คุณทราบห้ามใช้ CACLS ใช้ XCACLS หรือ ACL ที่สืบทอดมา
Richard Gadsden

5

ฉันเคยจ้างผู้ดูแลระบบคนหนึ่งทันทีที่ปฏิเสธที่จะทำ 'รายการ' ฉันพยายามแสดงให้เขาเห็นวิธีในการเป็นผู้นำ สิ่งที่ดีที่สุดที่ฉันจะทำได้จากเขาคือใช้รหัสที่มีอยู่ & แก้ไขการกำหนดตัวแปรหรือชื่อโฮสต์ ฯลฯ เพื่อให้งานสำเร็จลุล่วง บางคนไม่ใส่ใจกับการเขียนโปรแกรมดังนั้นคุณต้องลดอุปสรรคให้กับพวกเขา

Microsoft กำลังทำเรื่องนี้ ใน SQL Server มันเป็นไปได้ที่จะคลิกสิ่งใน Management Studio GUI และทิ้งสคริปต์ t-sql ของสิ่งที่คุณเพิ่งทำ นี่เป็นสิ่งที่ยอดเยี่ยมโดยเฉพาะอย่างยิ่งสำหรับการเขียนโปรแกรมแบบเอียง windows sysadmin

ฉันสังเกตเห็นว่า System Center Virtual Machine Manager มีคุณสมบัติสคริปต์มุมมองเดียวกันยกเว้นจะมีสคริปต์ PowerShell ออกมา ฉันคิดว่าสายผลิตภัณฑ์อื่น ๆ อีกมากมายกำลังแนะนำสิ่งนี้เช่นกัน

วิธีจูงใจผู้ดูแลระบบให้เป็นสคริปต์? การโทรที่ยากลำบากผู้ดูแลระบบที่ดีคือผู้ดูแลระบบที่ขี้เกียจและนั่นหมายถึงผู้ดูแลระบบที่จะใช้สคริปต์ให้มากที่สุด ผู้ดูแลระบบที่มีเวลาคลิกสิ่งต่าง ๆ ไม่ได้ผลมากนัก! เกินผู้ดูแลระบบของคุณด้วยงานมากว่าพวกเขาไม่มีทางเลือกนอกจากสคริปต์


คุณกล้าโทรหาฉันขี้เกียจได้ยังไง! โอ้รอ ...
squillman

6
ความเกียจคร้านเป็นคุณธรรมสำหรับผู้ดูแลระบบ!
Nick Kavadias

Helllllll ใช่แล้ว!
squillman

2
จากประสบการณ์ของฉันผู้ดูแลระบบส่วนใหญ่ยังคงทำงานเกินกำลังต่อไปเมื่อคลิกด้วยตนเองและใช้เวลานานกว่าที่จะทำงานให้เสร็จ :-) ฉันคิดว่ามันมีความขี้เกียจหลายประเภทบางคนขี้เกียจที่จะคิดและแค่อยากคลิกอย่างเฉื่อยชา; บางคนขี้เกียจคลิกและคิดว่าจะลดลง
icelava

เมื่อถึงจุดที่คุณแสดงให้พวกเขาเห็นว่าคุณสามารถเปลี่ยนงานของพวกเขาด้วยรหัสบางอย่างพวกเขาร้องไห้จากความอับอายและเปลี่ยนวิธีการของพวกเขา ... หรือพวกเขาไม่ได้ในกรณีที่คุณยิงพวกเขา
Nick Kavadias

4

ฉันเห็นด้วยอย่างสุดใจกับโพสต์ของคุณ น่าเสียดายที่ฉันไม่คิดว่าจะมีสิ่งใดที่สามารถทำได้โดยไม่ได้รับการสนับสนุนจากฝ่ายบริหารและกระบวนการในการบังคับใช้สคริปต์ เมื่อมีทางเลือกผู้คนมักจะไปกับสิ่งที่คุ้นเคยและอะไรที่ง่าย บางครั้งสิ่งนี้อาจดูเหมือนเป็นจุดลบ แต่มีบางครั้งที่ความเรียบง่ายและความคุ้นเคยเป็นบวก

ในอีกด้านหนึ่งระบบ Windows มีความหมายโดยนัยว่าง่าย / ง่ายในขณะที่ระบบ Unix / Linux นั้นยากกว่าและให้อภัยน้อยกว่า ดังนั้นใครจะโทษผู้ดูแลระบบที่ใช้แนวต้านน้อยที่สุด? ในขณะที่คุณหรือฉันหรือคนอื่น ๆ จำนวนมากอาจรับรู้ถึงพลังของการเขียนสคริปต์ในที่สุดผู้คนก็จะได้เรียนรู้ทางเดียวหรือทางอื่น โดยปกติแล้วผู้ดูแลระบบที่มีส่วนร่วมในการเขียนสคริปต์เรียนรู้วิธีการที่ยาก ฉันชอบทำงานอย่างชาญฉลาดคนอื่น ๆ อาจชอบทำงาน

มีวิธีใดบ้างในการกระตุ้นและกระตุ้นผู้ดูแลระบบว่าการเขียนสคริปต์สามารถช่วยพวกเขาได้จริงในระยะยาว

ฉันเคยคิดว่าคุณสามารถกระตุ้นผู้คน แต่ความจริงก็คือถ้าคุณไม่รับผิดชอบพวกเขาความน่าจะเป็นของ "แรงจูงใจ" ที่ประสบความสำเร็จนั้นต่ำมาก ทัศนคติของฉันในวันนี้คือ: ผู้ที่ต้องการเรียนรู้ฉันจะช่วย อย่าเป็นพนักงานขายสำหรับผลิตภัณฑ์ที่ไม่มีใครต้องการโดยไม่คำนึงว่าพวกเขาต้องการมัน เมื่อคุณช่วย / สอนคนเพียงคนเดียวที่มีแรงบันดาลใจ (ไม่ว่าด้วยเหตุผลใดก็ตาม) พวกเขาจะเป็นตัวเร่งให้เกิดการเปลี่ยนแปลง ไม่ใช่คุณ. แค่สองเซ็นต์ของฉัน


1
+1 คุณสามารถนำม้าไปในน้ำ ...
squillman

2
... แต่คุณไม่สามารถทำให้เขาเล่นสกีน้ำได้
osij2is

@squillman: คุณพูดในสิ่งที่ฉันคิด สิ่งที่ฉันทำคือ: ถ้าคุณมีทักษะที่คนอื่นขาดให้ใช้เพื่อทำการตลาดด้วยตัวคุณเองและก้าวไปข้างหน้า (สิ่งที่มีความหมายกับคุณ) การช่วยเหลือผู้อื่นให้ก้าวไปข้างหน้านั้นเป็นสิ่งที่น่าชื่นชมอย่างแน่นอน แต่คุณไม่สามารถลากพวกเขาเตะและกรีดร้องได้
Evan Anderson

@Evan: คุณคิดว่าการสอนผู้เรียนที่เต็มใจนั้นขัดแย้งกับ "ทำการตลาดและก้าวไปข้างหน้า" หรือไม่? หากหนึ่งในผู้ดูแลระบบ Windows ต้องขอความช่วยเหลือจากฉัน (สคริปต์อย่างชาญฉลาด) ฉันลังเลที่จะทำเช่นนั้น แต่ในที่สุดการทำงานเป็นทีมไม่ได้หมายความว่าจะช่วยพวกเขาได้หรือไม่ แค่อยากรู้ที่จะอ่านความคิดของคุณ
osij2is

1
@ osij2is: ฉันมีความผิดในการช่วยเหลือ "ผู้เรียนที่เต็มใจ" ให้มากเกินไปจนฉันได้สูญเสีย "โอกาส" บางอย่างในการเรียกเก็บเงินเป็นชั่วโมง ๆ ทำเงินได้มากขึ้น ฯลฯ หนึ่งใน "ภารกิจ" ในชีวิตของฉันคือการพัฒนา การใช้คอมพิวเตอร์อย่างนั้นในที่สุดมันอาจทำให้ชีวิตของใครบางคนดีขึ้น หากใครบางคนมาหาฉันด้วยความปรารถนาอย่างแรงกล้าที่จะเรียนรู้ฉันมีความสุขมากกว่าที่จะผ่านสิ่งที่ฉันสามารถ ต้องบอกว่าถ้า "แก้ไข" ด้วยการถ่ายโอนความรู้เป็นสิ่งที่ฉันต้องการก็สามารถทำได้เช่นกัน บางครั้งมันทำให้ฉันเศร้าไม่ได้ที่จะสามารถที่จะ "สอนให้คนไปตกปลาเป็น" แต่ถ้าว่าสิ่งที่สถานการณ์เรียกร้องให้ ...
อีวานเดอร์สัน

2

มนต์ที่ฉันไปคือ "ทำงานอย่างชาญฉลาดไม่ยาก" การทำกระบวนการใด ๆ เกินสองสามครั้งหมายความว่าโดยปกติแล้วคุณจะสามารถเขียนสคริปต์เพื่อให้มันทำโดยอัตโนมัติด้วยการคลิกเมาส์, bash script หรือวิธีอื่น ๆ วิธีที่ฉันเห็นมันเป็นการส่วนตัวที่ทำให้ฉันมีอิสระที่จะทำงานที่สำคัญกว่าซึ่งไม่ใช่ "การใช้แรงงาน" ของการบริหารระบบ

ผู้ที่ต้องการหลีกเลี่ยงการเขียนสคริปต์อาจมีหลายสิ่งวิ่งผ่านหัวของพวกเขา บางทีพวกเขาอาจสนุกกับอินเตอร์เฟส GUI และไม่ต้องการเรียนรู้บรรทัดคำสั่งหรือการเขียนโปรแกรม บางทีพวกเขาคิดว่าการเขียนสคริปต์บางอย่างพวกเขาก็ลดความสำคัญของตนเองลงไป ไม่ว่าจะด้วยวิธีใดก็ตามนี่ไม่ใช่พนักงานประเภทที่ฉันต้องการและไม่เต็มใจที่จะทำสคริปต์ประเภทใด ๆ แสดงให้เห็นว่าพวกเขาเป็นคนงานประเภทใด ฉันอยากจะแก้ปัญหามากกว่าผู้ดูแลระบบ "โง่"

เท่าที่ให้กำลังใจและสร้างแรงจูงใจแก่พวกเขาฉันจะบอกว่าทำตามที่คุณทำแสดงผลกำไรที่ได้จากการผลิตและวิธีที่จะทำให้งานของพวกเขาง่ายขึ้น สำหรับบางคนการเป็นผู้ดูแลระบบ Windows เป็นเพียงการชำระเงินและเป็นการยากที่จะกระตุ้นให้พวกเขาก้าวข้ามความคิดแบบจุดและคลิกที่ทำงานให้กับพวกเขามาตลอด 10 ปีที่ผ่านมา


ความทรงจำที่ดีใน "การแก้ปัญหา"; ผู้คนจำนวนมากที่ฉันพบแค่ต้องการหนังสือคู่มือการสอนที่บอกพวกเขาว่าต้องทำอย่างไรกับปัญหาที่อาจเกิดขึ้นได้ พวกเขาไม่ต้องการคิดเกี่ยวกับสิ่งที่เกิดขึ้น เพียงแค่เข้าไปในขั้นตอนที่ 1 ถึง 23 เพื่อแก้ไขปัญหานี้
icelava

ฉันมักจะเรียกคนเหล่านั้นว่า "ผู้กดปุ่ม" เช่นคนทำงานปกสีฟ้าในอนาคต George Jetson
wfaulk

2

มีปัญหาสองสามข้อที่คุณต้องเอาชนะคุณพูดถึงเรื่องนี้ว่าผู้ดูแลระบบจำนวนมากไม่ต้องการมีส่วนร่วมในการเขียนโปรแกรมแม้แต่ในระดับต่ำเช่นเดียวกับการเขียนสคริปต์ อีกอันเกี่ยวข้องกับสิ่งนี้และนี่เป็นเรื่องของการควบคุม เมื่อผู้ดูแลระบบทำงานด้วยตนเองพวกเขารู้ว่าเกิดอะไรขึ้นในแต่ละขั้นตอน ผู้ดูแลระบบหลายคนอาจรู้สึกว่าการแทนที่สิ่งนี้ด้วยสคริปต์ทำให้พวกเขาสูญเสียการควบคุมกระบวนการโดยเฉพาะอย่างยิ่งหากพวกเขาไม่เข้าใจการเขียนสคริปต์และไม่ได้เขียนสคริปต์ (และไม่ต้องการเขียน)

ฉันคิดว่านี่เป็นปัญหาของผู้ดูแลระบบ Windows มากกว่า Unix เนื่องจากการเขียนสคริปต์เป็นส่วนสำคัญของการดูแลระบบ Unix เป็นเวลานานและโดยทั่วไปแล้วสิ่งที่ผู้ดูแลระบบ Unix เรียนรู้จากจุดเริ่มต้นคือการบริหาร Windows และ GUI โดยธรรมชาติ ness นำไปสู่กระบวนการที่ดำเนินการด้วยตนเองมากขึ้นและการเขียนสคริปต์สามารถดูผิดธรรมชาติได้

น่าเสียดายที่การได้รับนักพัฒนามาจากโคกนี้เป็นการต่อสู้ที่ยากลำบาก เพื่อให้ผู้ดูแลระบบยังคงรู้สึกว่าตนเป็นผู้ควบคุมพวกเขาจำเป็นต้องเข้าใจสิ่งที่สคริปต์กำลังทำอยู่และจำเป็นต้องเข้าใจและเรียนรู้วิธีสคริปต์อย่างแท้จริงและวิธีเดียวที่คุณจะให้พวกเขาทำเช่นนี้คือถ้าพวกเขา เข้าใจจริงๆว่าสคริปต์สามารถทำอะไรกับพวกเขาได้

ทุกอย่างดีมากบอกว่ามันจะทำให้สิ่งต่าง ๆ เร็วขึ้นทำให้ชีวิตง่ายขึ้น ฯลฯ แต่คุณสามารถพิสูจน์มันได้หรือไม่ หางานที่พวกเขาเกลียดที่พวกเขาต้องทำอย่างสม่ำเสมอและพยายามทำให้เป็นอัตโนมัติ หากคุณสามารถทำงานที่น่ากลัวนี้และทำให้เป็นสคริปต์คลิกเพียงครั้งเดียวพวกเขาจะรักคุณ แต่ที่สำคัญกว่านั้นพวกเขาอาจเห็นประโยชน์ของการใช้สคริปต์


การเขียนสคริปต์ด้วยผลตอบรับที่ดีอาจมีการควบคุมแบบโต้ตอบเล็กน้อย - สิ่งที่ใช้งานง่าย ^^
Oskar Duveborn

1
ฉันเริ่มเรียนรู้ Perl ทันทีที่ฉันรู้ว่าฉันสามารถทำงานประจำวันที่น่ากลัวและน่ารังเกียจเป็นพิเศษได้โดยอัตโนมัติ ไม่ได้มองย้อนกลับไปตั้งแต่
Twirrim

ประเด็นของฉันคือ "งานที่น่ากลัว" เหล่านี้ทั้งหมดที่พวกเขาต้องการทำด้วยตนเอง :-)
icelava

กระสอบพวกเขาจำนวนมากและแทนที่พวกเขาด้วยผู้ดูแลระบบคนเดียวนั่นคือ uber-scripter ฉันจะถูกกว่า
Nick Kavadias

2

[ถอนหายใจ] นี่เป็นวิธีที่แพร่หลายเกินไปในโลกของ Windows แม้ว่าฉันจะถามคำถามของคุณเกี่ยวกับคนส่วนใหญ่ที่ไม่อยากสังหรณ์และเรียนรู้การเขียนสคริปต์ สิ่งที่ยิ่งใหญ่ที่สุดที่ฉันเคยทำในอาชีพดูแลระบบคือการเรียนรู้ VB และ Perl ซึ่งนำไปสู่ ​​VBS ซึ่งนำไปสู่สิ่งอื่น ๆ มากมาย

หากการแสดงให้พวกเขาใช้ไม่ได้เป็นแรงจูงใจหนึ่งในเคล็ดลับที่ฉันชอบใช้คือการแสดงข้อความที่ละเอียดอ่อนต่อหน้าผู้บริหาร :) เรียกมันว่าดูดถ้าคุณต้องการ แต่มันก็ไม่ได้ แสดงประโยชน์ของผู้มีอำนาจตัดสินใจมักจะเริ่มแพร่กระจายผ่านกลุ่ม อย่ากระตุกเรื่องนี้

ในหมายเหตุที่ละเอียดกว่านี้มันยาก (ถ้าไม่เป็นไปไม่ได้) ที่จะเปลี่ยนใคร นำโดยตัวอย่าง!


5
"คุณรู้อะไรฉันแน่ใจว่าฉันสามารถสคริปต์ที่ดังนั้นเราจึงไม่ต้องใช้กำลังคนที่ดำเนินการนั้น" คำพูดที่ทรงพลังต่อการจัดการ :)
Twirrim

1
ฉันเชื่อเสมอว่าเฉพาะในโลกของ Windows ที่ใครบางคนสามารถเรียกตัวเอง (หรือตัวเอง) ผู้ดูแลระบบที่ไม่มีความรู้ด้านการเขียนโปรแกรม ความคิดเห็นอื่นที่คุณสามารถนำไปใช้ได้คือ "ทำไมคุณถึงทำสิ่งนั้นด้วยตนเองนั่นคือสิ่งที่เรามีคอมพิวเตอร์สำหรับ"
John Gardeniers

น่าเสียดายเนื่องจากฉันได้พัฒนาอาชีพและให้คำปรึกษามาอย่างยาวนานผู้ดูแลที่ฉันพบในตอนนี้ส่วนใหญ่เป็นลูกค้าของฉัน ฉันไม่เคยมีโอกาสที่จะทำให้พวกเขาดูไม่ดีในหน้าของการจัดการของพวกเขาหรือนำไป :-)
icelava

1

คำถามนี้เป็นเรื่องส่วนตัว ในขณะที่ฉันเห็นด้วยกับประสิทธิภาพและการควบคุมที่เพิ่มมากขึ้นที่สคริปต์ให้ไว้ทำไมต้องเป็นเอกสาร เหตุใดคุณจึงต้องการสนับสนุนให้ผู้คนใช้งานสคริปต์เพียงเพราะคุณต้องการใช้งาน ทำไมไม่ให้คนเลือกใช้เครื่องมือที่พวกเขาชอบและชอบ?

คำถามนี้ยังแสดงให้เห็นถึงอคติทั่วไปที่มีอยู่ในโลกไอที: ถ้าฉันไม่เขียนสคริปต์ฉันต้องไม่ฉลาดหรือดีเท่ากับคนที่ทำสคริปต์และนั่นก็ผิด ฉันรู้จักผู้คนมากมายที่สามารถเขียนสคริปต์ได้ดีกว่าฉัน แต่พวกเขาไม่สามารถ subnet เพื่อช่วยชีวิตของพวกเขาหรือหาวิธีเรียกใช้การติดตามเครือข่ายหรือกำหนดค่าเซิร์ฟเวอร์ SQL ให้ใช้ AWE หรือไม่รู้ว่าจะบูตอะไร ไฟล์ ini สำหรับ ฯลฯ ฯลฯ


2
ควรสนับสนุนให้ใช้สคริปต์เพราะเป็นวิธีปฏิบัติที่ดีที่สุดที่ได้รับการพิสูจน์แล้ว (ไม่มีการพูดถึงเรื่องนี้ว่าเป็นหน้าที่และฉันไม่คิดว่ามันเป็นนัย) ฉันไม่ได้เห็นอคติ "คุณไม่ฉลาด" แต่ฉันไม่สงสัยเลยว่ามันมีอยู่จริง ฉันได้อย่างง่ายดายจะยกเลิกคนเหล่านั้นเป็นคนโง่ ...
squillman

2
มันเป็นเรื่องส่วนตัวอย่างไร อย่างที่คุณพูดการเขียนสคริปต์ช่วยเพิ่มประสิทธิภาพ ไม่มีอะไรผิดปกติกับเครื่องมือหรือกระบวนการทางธุรกิจที่เพิ่มประสิทธิภาพ แน่นอนว่าไม่มีอะไรผิดพลาดกับผู้ร่วมงานที่พยายามส่งเสริมให้ผู้อื่นพัฒนาทักษะที่จะทำให้พวกเขาดีขึ้นผู้ดูแลระบบ
ไบรอัน

3
@squillman ที่บอกว่ามันเป็นแนวปฏิบัติที่ดีที่สุดและไม่ใช่ตัวตน การปฏิบัติที่ดีที่สุดสำหรับฉันอาจไม่ใช่สำหรับคุณ มีการศึกษาที่ระบุว่า บริษัท 90% พิจารณาว่าการเขียนสคริปต์เป็นแนวปฏิบัติที่ดีที่สุด @Brian: ใครบอกว่าทำให้ผู้ดูแลระบบดีขึ้น? เพื่อนร่วมงานของฉันสามารถสคริปต์ แต่ไม่สามารถเครือข่ายย่อยในขณะที่ฉันสามารถเครือข่ายย่อย แต่ไม่สามารถสคริปต์ดังนั้นใครจะดีกว่า ไม่มีเจตนาผิดเพียงเล่นผู้สนับสนุนของปีศาจที่นี่
joeqwerty

3
@Joeqwerty: การเขียนสคริปต์มีประสิทธิภาพเมื่อเทียบกับจุดและคลิกเนื่องจากการเขียนสคริปต์ (อย่างถูกต้อง) สามารถทำงานได้มากขึ้นในเวลาที่น้อยลงและแม่นยำยิ่งขึ้นกว่ามนุษย์ที่ต่ำต้อยที่เราสามารถทำได้ด้วยตนเอง บางทีวลีควรเป็น: "การเขียนสคริปต์เป็นวิธีปฏิบัติที่ดีกว่า " การโต้แย้งของคุณ (ผู้สนับสนุนของปีศาจ) เป็นเรื่องส่วนตัวมากกว่าการอ้างสิทธิ์ "วิธีปฏิบัติที่ดีที่สุดสำหรับฉันอาจไม่ใช่สำหรับคุณ" นั่นอาจเป็นจริง แต่นั่นไม่ได้หมายความว่าไม่ใช่วิธีปฏิบัติที่ดีที่สุด อาจหมายถึงคุณไม่สามารถหรือไม่รู้วิธีการ นั่นเป็นปัญหาที่แตกต่างในตัวของมันเอง
osij2is

2
แต่ความคิดเห็นของคุณผิด ;) อย่างจริงจังแม้ว่าฉันคิดว่าการหลีกเลี่ยงการเขียนสคริปต์ก็เหมือนการหลีกเลี่ยงการรู้วิธีการ subnet ไม่มีใครดี ฉันหมายความว่าถ้าคุณเห็นด้วยว่าการเขียนสคริปต์เพิ่มประสิทธิภาพและการควบคุมทำไมคุณถึงเถียงว่าเราควรปฏิบัติต่อผู้ที่หลีกเลี่ยงมันอย่างเท่าเทียมกัน? ถ้าคุณจะจ้างคนที่จะไถนาของคุณคุณจะจ้างคนที่มีรถแทรคเตอร์หรือวัวกับผู้ชายหรือไม่?
wfaulk

1

สุจริตคุณสามารถนำม้าลงน้ำ แต่คุณไม่สามารถทำให้เขาดื่ม

ฉันเข้ามาเป็น SysAd ใน Marine Corps เมื่อประมาณ 10 ปีที่แล้วซึ่งมีช่องว่างที่กว้างระหว่างการเป็นผู้ดูแลและเป็น Coder การเป็น Coder มักจะหมายความว่าคุณติดธุระกับเว็บไซต์โครงการสัตว์เลี้ยงของ CO (ทำให้งานจริงของคุณเสร็จน้อยลง ... )

ด้วยเหตุนี้ฉันจึงต่อต้านการเรียนรู้ที่จะเขียนโค้ด แต่เมื่อฉันตัดสินใจที่จะลองมันฉันก็จะระเบิด

ลองวาดการใช้สคริปต์ AD / LDAP เพื่อหลอกล่อพวกเขา (ฉันคิดว่ามันสามารถเข้าถึงได้ง่ายกว่าการติดต่อกับ WMI) กำหนดความก้าวหน้าของงานพูดว่า "ให้ชื่อผู้ใช้และที่อยู่อีเมลของ คนในกลุ่ม XYZ "

ฉันเขียนรหัสบิตนี้เพื่อค้นหาผู้ใช้ทั้งหมดที่ไม่ได้เป็นสมาชิกของกลุ่มที่ระบุ: https://github.com/gwaldo/LDAP-Inverse-Group-Membership-Report

เท่าที่ทรัพยากรลองดู Microsoft Scripting Guys (ที่มีบทความและแบบฝึกหัดที่ยอดเยี่ยม) และ Scriptomatic2 ซึ่งฉันชอบขุดลงใน WMI


0

คำถามต่อไป: ทำไมพวกเขาควรสคริปต์ ที่จะเป็นตัวกำหนดคำตอบ

สมมุติว่าคุณใช้สคริปต์เพราะมีประสิทธิภาพมากกว่า ในกรณีนี้คุณสามารถแสดงให้ทุกคนเห็นหรือจัดการกับวิธีที่มีประสิทธิภาพมากขึ้นในการจัดการระบบและรอให้พวกเขาใช้ประโยชน์จากสิ่งนั้นในการลดต้นทุน

ใครบางคนที่มีอำนาจสามารถมอบอำนาจสคริปต์โดยกำหนดให้มีสคริปต์ในการจัดการสิ่งต่าง ๆ ส่วนใหญ่ สิ่งนี้จะทำงานได้ดีขึ้นอยู่กับหลายสิ่ง; หากเพียงแค่ระบุว่าสคริปต์นั้นมีแนวโน้มที่จะยังคงไม่เพียงพอและล้าสมัยในขณะที่ผู้ดูแลระบบทำงานได้ตามปกติ

นอกจากนี้ยังมีคำถามว่าสิ่งนี้มีผลกระทบต่อคุณอย่างไร มันรบกวนคุณหรือชีวิตของคุณจะดีขึ้นหรือไม่ถ้าเพื่อนร่วมงานของคุณดูแลสิ่งที่เขียนไว้?


ผลกระทบหลักคือผู้ดูแลระบบเสียเวลาในการทำงานซ้ำหลายครั้งด้วยตนเองบนเครื่องหลายเครื่อง - การหยุดซ่อมบำรุงอีกต่อไป - ซึ่งอาจส่งผลต่อกำหนดการพัฒนาของเรา (ไม่เคยเพียงพอ)
icelava

1
และอย่าลืมว่างานที่ทำด้วยมือนั้นเกิดข้อผิดพลาดได้ง่าย
John Gardeniers

0

จริง ๆ แล้วฉันมีความคิดอื่น ในความสัมพันธ์กับความจริงที่ว่าจูเนียร์ผู้ดูแลระบบของ Windows จะใช้ในการปฏิสัมพันธ์ GUI บางทีมันอาจจะช่วยถ้าคุณเริ่มต้นพวกเขามีปฏิสัมพันธ์สคริปต์ GUI กับสิ่งที่ชอบAutoIt สิ่งนี้จะช่วยให้พวกเขาเข้ามาใกล้ประตูเกี่ยวกับการเขียนสคริปต์ในขณะที่ยังคงให้พวกเขาใช้เครื่องมือที่พวกเขารู้อยู่แล้วแทนที่จะทิ้งเครื่องมือที่มีอยู่แล้วและทำให้พวกเขาเรียนรู้เครื่องมือและสคริปต์ใหม่ในเวลาเดียวกัน

จากนั้นเมื่อพวกเขาคุ้นเคยกับแนวคิดการเขียนสคริปต์โดยทั่วไปแล้วพวกเขาสามารถไปยังการเขียนสคริปต์ที่ไม่ใช่ GUI ได้ แม้ว่าจะไม่ได้ แต่การคลิกปุ่มอัตโนมัติอาจยังคงเป็นการประหยัดเวลาได้มาก


0

ฉันได้กำหนดสคริปต์เป็น "เอกสารที่เหมาะกับคุณ"

ผู้จัดการ: ใช้เวลานับไม่ถ้วนในการสร้างเอกสารที่ผู้เรียนคนแรกสามารถเข้าใจได้ซึ่งจะค้างเมื่อสิ้นสัปดาห์เพื่อให้เพื่อนร่วมงานของคุณคลิกเพื่อคลิกผ่าน Task-X

พนักงาน: ฉันมีสคริปต์ที่ทำงาน Task-X ฉันสามารถให้พวกเขาได้

ผู้จัดการ: แน่นอนหลังจากที่คุณทำเอกสารที่ฉันเพิ่งขอเสร็จให้บันทึกสคริปต์ของคุณด้วยแผนภูมิการไหล


0

ฉันได้กำหนดสคริปต์เป็น "เอกสารที่เหมาะกับคุณ"

ผู้จัดการ: ใช้เวลานับไม่ถ้วนในการสร้างเอกสารที่ผู้เรียนคนแรกสามารถเข้าใจได้ซึ่งจะค้างเมื่อสิ้นสัปดาห์เพื่อให้เพื่อนร่วมงานของคุณคลิกเพื่อคลิกผ่าน Task-X

พนักงาน: ฉันมีสคริปต์ที่ทำงาน Task-X ฉันสามารถให้พวกเขาได้

ผู้จัดการ: แน่นอนหลังจากที่คุณทำเอกสารที่ฉันเพิ่งขอเสร็จให้บันทึกสคริปต์ของคุณด้วยแผนภูมิการไหล

อย่าลืมว่าเอกสารควรอยู่ในเอกสาร MS Word เพื่อให้การอ่านจากเซิร์ฟเวอร์ยุ่งยากขึ้น


ฉันลืมข้อกำหนดนั้นไป
Nathan Hartley
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.