Tôi có một số chức năng tôi muốn tải theo mặc định khi tôi mở một quyền hạn quản trị. Có bất cứ điều gì tương đương để nói .bashrc
hoặc .profile
tôi có thể sử dụng để tự động nhập các tập lệnh khi tôi khởi động trình bao không?
Tôi có một số chức năng tôi muốn tải theo mặc định khi tôi mở một quyền hạn quản trị. Có bất cứ điều gì tương đương để nói .bashrc
hoặc .profile
tôi có thể sử dụng để tự động nhập các tập lệnh khi tôi khởi động trình bao không?
Câu trả lời:
Bài viết được đề cập trong bình luận của jehad giải thích rằng có một số nơi PowerShell có thể tải một hồ sơ, đó là những gì bạn muốn. Bạn có thể muốn một người dùng cho bảng điều khiển PowerShell bình thường. Đường dẫn mà PowerShell sẽ kiểm tra tệp đó được đưa ra trong $profile
biến. Bạn có thể tạo tập tin đó và thư mục chứa nó bằng lệnh này:
New-Item $profile -Type File -Force
Nó tạo một tệp được gọi Microsoft.PowerShell_profile.ps1
trong một thư mục được gọi WindowsPowerShell
trong thư mục Tài liệu của bạn. Sau đó, bạn có thể mở nó bằng một trình soạn thảo văn bản:
notepad $profile
Mọi thứ trong đó sẽ được chạy bất cứ khi nào bạn khởi chạy bảng điều khiển PowerShell, bất kể bạn có nâng cao hay không. Tôi đã sử dụng bài viết khác này để tạo ra một hàm (mà bạn có thể sử dụng như một lệnh ghép ngắn) để kiểm tra xem phiên bản PowerShell hiện tại có được nâng lên không. Đặt cái này trong tập tin hồ sơ mới của bạn:
Function Test-Elevated {
$wid = [System.Security.Principal.WindowsIdentity]::GetCurrent()
$prp = New-Object System.Security.Principal.WindowsPrincipal($wid)
$adm = [System.Security.Principal.WindowsBuiltInRole]::Administrator
$prp.IsInRole($adm)
}
Chức năng đó có thể được sử dụng trong trải nghiệm PowerShell thông thường của bạn, nhưng bạn cũng có thể sử dụng nó để chỉ chạy nội dung trong tập lệnh hồ sơ của mình khi bạn đang chạy cao:
If (Test-Elevated) {
echo "Be careful!"
} Else {
echo "Eh, do whatever."
}
Vì tệp này chứa mã sẽ được tự động chạy ngay cả trong phiên bản PowerShell quản trị, bạn không muốn các chương trình đang chạy không có điều kiện có quyền truy cập ghi vào nó. Tôi đề nghị thay đổi ACL của nó để chỉ cung cấp quyền truy cập đọc tài khoản người dùng của bạn trong khi vẫn cho phép quản trị viên kiểm soát hoàn toàn. (Tính kế thừa sẽ phải bị vô hiệu hóa trước tiên.) Sau đó, bạn chỉ có thể chỉnh sửa tập lệnh từ các chương trình nâng cao.
Microsoft.PowerShell_profile.ps1
có thể được thay đổi thành chỉ profile.ps1
? Trong bài viết đầu tiên, nó xuất hiện dưới dạng$Home\[My ]Documents\WindowsPowerShell\Profile.ps1