-
Notifications
You must be signed in to change notification settings - Fork 0
/
Microsoft.PowerShell_profile.ps1
68 lines (58 loc) · 2.07 KB
/
Microsoft.PowerShell_profile.ps1
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
56
57
58
59
60
61
62
63
64
65
66
67
68
function Invoke-Process{
$file, [System.Array]$arguments = $args;
$psi = new-object System.Diagnostics.ProcessStartInfo $file;
$psi.Arguments = $arguments;
$psi.Verb = 'runas';
$psi.WorkingDirectory = Get-Location;
[System.Diagnostics.Process]::Start($psi);
}
Set-Alias sudof Invoke-Process
##############################
#.SYNOPSIS
#管理者権限で実行する関数群
#
#.DESCRIPTION
#Linuxのsudoのような、管理者権限で実行するための関数と、依存関数と、エイリアス。
#
#.EXAMPLE
#sudo New-Item -Type SymbolicLink -Name hoge -Target fuga
#
#.NOTES
#Pause関数の参考リンク https://qiita.com/twinkfrag/items/f3ecf79b68ea09eadec2
#Invoke-CommandRunAs,StartRunAs関数の参考リンク https://qiita.com/twinkfrag/items/3afb9032fd73eabe09be
##############################
function Pause
{
if ($psISE) {
$null = Read-Host 'Press Enter Key...'
}
else {
Write-Host "Press Any Key..."
(Get-Host).UI.RawUI.ReadKey("NoEcho,IncludeKeyDown") | Out-Null
}
}
function Invoke-CommandRunAs
{
$cd = (Get-Location).Path
$commands = "Set-Location $cd; Write-Host `"[Administrator] $cd> $args`"; $args; Pause; exit"
$bytes = [System.Text.Encoding]::Unicode.GetBytes($commands)
$encodedCommand = [Convert]::ToBase64String($bytes)
Start-Process powershell.exe -Verb RunAs -ArgumentList "-NoExit","-encodedCommand",$encodedCommand
}
Set-Alias sudo Invoke-CommandRunAs
function Start-RunAs
{
$cd = (Get-Location).Path
$commands = "Set-Location $cd; (Get-Host).UI.RawUI.WindowTitle += `" [Administrator]`""
$bytes = [System.Text.Encoding]::Unicode.GetBytes($commands)
$encodedCommand = [Convert]::ToBase64String($bytes)
Start-Process powershell.exe -Verb RunAs -ArgumentList "-NoExit","-encodedCommand",$encodedCommand
}
Set-Alias su Start-RunAs
# Chocolatey profile
$ChocolateyProfile = "$env:ChocolateyInstall\helpers\chocolateyProfile.psm1"
if (Test-Path($ChocolateyProfile)) {
Import-Module "$ChocolateyProfile"
}
# Scoop profile
fnm env --use-on-cd | Out-String | Invoke-Expression