首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Invoke-Command调用脚本时,在PowerShell中获取脚本目录

使用Invoke-Command调用脚本时,在PowerShell中获取脚本目录可以使用以下方法:

  1. 使用$PSScriptRoot变量获取脚本目录

在PowerShell中,$PSScriptRoot变量表示当前脚本的目录路径。因此,可以使用$PSScriptRoot变量获取脚本目录。

例如,在远程计算机上运行本地脚本时,可以使用以下命令:

代码语言:powershell
复制
Invoke-Command -ComputerName remote-computer -FilePath C:\local-script.ps1 -ArgumentList $PSScriptRoot

在本地脚本中,可以使用$PSScriptRoot变量获取脚本目录,如下所示:

代码语言:powershell
复制
$scriptDir = $PSScriptRoot
  1. 使用Get-Location命令获取脚本目录

在PowerShell中,可以使用Get-Location命令获取当前工作目录。因此,可以在脚本中使用Get-Location命令获取脚本目录。

例如,在远程计算机上运行本地脚本时,可以使用以下命令:

代码语言:powershell
复制
Invoke-Command -ComputerName remote-computer -FilePath C:\local-script.ps1 -ArgumentList (Get-Location).Path

在本地脚本中,可以使用Get-Location命令获取脚本目录,如下所示:

代码语言:powershell
复制
$scriptDir = (Get-Location).Path

需要注意的是,在远程计算机上运行脚本时,需要将脚本目录作为参数传递给远程计算机。在本地脚本中,可以使用$PSScriptRoot或Get-Location命令获取脚本目录,并将其传递给远程计算机。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【shell脚本】$ 在shell脚本中的使用

shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数的参数个数 $* 传递给脚本或函数的所有参数 $@ 传递给脚本或函数的所有参数 $?...上个命令的退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" "...)包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数

6.2K20
  • 在 Shell 脚本中调用另一个 Shell 脚本的三种方式

    来调用 foo.sh 这个脚本,比如如果是 foo.sh 在当前目录下,就是 ....被调用的脚本与父脚本在同一个 Shell 内执行。但是使用 exec 调用一个新脚本以后, 父脚本中 exec 行之后的内容就不会再执行了。...所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用。 其实从命名上可以感知到其中的细微区别,下面通过两个脚本来体会三种调用方式的不同: 第一个脚本,我们命名为 1.sh: #!...exec 在同一个 Shell 内执行,但是父脚本中 exec 行之后的内容就不会再执行了 source 在同一个 Shell 中执行,在被调用的脚本中声明的变量和环境变量, 都可以在主脚本中进行获取和使用...参考: 在shell脚本中调用另一个脚本的三种不同方法(fork, exec, source)

    4.4K20

    Shell-alias在Shell脚本中的使用

    概述 在shell中开启alias 实际操作 概述 众所周知,shell脚本使用的是非交互式方式,在非交互式模式下alias扩展功能默认是关闭的,此时虽然可以定义alias别名,但是shell不会将alias...---- 在shell中开启alias 使用shell内置命令shopt命令来开启alias扩展选项。...默认是打开的,在非交互式模式下是关闭的,但可以用可shopt来将其开启 shopt -s expand_aliases ---- 实际操作 在我们的项目中某个模块的双机启动脚本(root用户下操作),...其中应用的启停使用了alias建立的同义词来操作,如果想要在脚本中使用,必须开启同义词才。...项目启动中会依赖一些环境变量,所以双机启动脚本中需要显式的引入.bash_profile文件。 所以我们将 开启alias的命令放在 .bash_profile中。

    2.3K10

    Windows: 使用PowerShell管理Hyper-V虚拟机

    使用 Invoke-Command 运行脚本或命令 配合使用 PowerShell Direct 和 Invoke-Command 非常适合需要在虚拟机上运行一个命令或一个脚本但在这一点之外无需继续与虚拟机进行交互的情况...使用 New-PSSession 和 Copy-Item 复制文件 注意: PowerShell Direct 仅支持 Windows 版本 14280 及更高版本中的持久性会话 在编写用于跨一个或多个远程计算机协调操作的脚本时...由于持久性会话具有持久性,在会话中创建的或传递给会话的任何变量将跨多个调用被保留。有多种工具可用于持久性会话。...在此示例中,我们将使用 New-PSSession和 Copy-Item 在主机和虚拟机之间移动数据。 8.1....警告: 14500 之前的版本中存在一个 Bug。如果不使用 -Credential 标志显式指定凭据,来宾操作系统中的服务将崩溃,并且将需要重新启动。如果你遇到此问题,可在此处获取解决方法说明。

    42410

    在Excel中调用Python脚本,实现数据自动化处理

    虽然Excel对小规模数据场景来说是刚需利器,但它面对大数据时就会有些力不从心。...三、玩转xlwings 要想在excel中调用python脚本,需要写VBA程序来实现,但对于不懂VBA的小伙伴来说就是个麻烦事。...但xlwings解决了这个问题,不需要你写VBA代码就能直接在excel中调用python脚本,并将结果输出到excel表中。...如果你想把文件创建到指定文件夹里,需要提前将命令行导航到指定目录。 创建好后,在指定文件夹里会出现两个文件,就是之前说的.xlsm和.py文件。...xlsm文件相同位置查找相同名称的.py文件  2、调用.py脚本里的main()函数 我们先来看一个简单的例子,自动在excel表里输入['a','b','c','d','e'] 第一步:我们把.py

    4K20

    在windows程序中嵌入Lua脚本引擎--使用VS IDE编译Luajit脚本引擎

    就是本系列文章中讨论的:在程序中嵌入Lua脚本引擎。(转载请指明出于breaksoftware的csdn博客)         首先简要介绍下Lua。它是巴西里约热内卢某高校发明的一种轻量级脚本语言。...编译         在http://luajit.org/install.html#windows里有详细的说明,我们只要在使用VS的Command Prompt中定位到src目录,然后执行msvcbuild.bat...于是我们要在Buildvm工程的Pre-Build Event中设置(将元目录的*.dasc文件拷贝到Buildvm工程目录下,因为只有这个工程需要使用到它) $(OutDir)\MiniLua.exe...我们将dynasm文件夹拷贝到和这两个项目同等级的目录下(LuaProject\dynasm),在Buildvm工程中引用这些文件。        ...Buildvm也是辅助程序,在它生成后,要使用它再生成一些文件。

    2.8K20

    渗透技巧 | Bypass Powershell执行策略的N种方式

    1.是Windows原生的2.可以调用Windows API3.无文件执行命令4.可以逃避Anti-Virus的检测(这个其实现在还比较敏感了)5.被大多数程序加入白名单中,标记为可信的6.有许多开源的渗透工具集...windows为powershell设计了一个名为Execution Policy,即执行策略的东西来决定哪些类型的PowerShell脚本可以在系统中运行。...Get-ExecutionPolicy 获取影响当前会话的所有执行策略 Get-ExecutionPolicy -List 这些策略中的每一个都可以应用于不同的范围来控制受它们影响的人,范围是: •...当直接运行该脚本在Restricted(限制)执行策略的机器上时,会出现“此系统禁止运行脚本”的错误。...0x04 使用Invoke-Command或Invoke-Expression命令 Invoke-Command 通过交互式PowerShell控制台执行。

    4.2K20

    PowerShell5.X与WMI的集成 专题系列分享 第一部分

    众所周知,在windows10以及Windows Server2016的平台当中,PowerShell5.x已经能够去获取到系 统当中大部分的信息,但有时候仍有一些信息需要借助于调用WMI的类来完成...在windows平台中,我们有了WMI这个基本组件之后, 我们就可以编写脚本或者编写相应的代码去获取到系统当中我们想去获取的任何信息(包括操作系 统的信息、软件、硬件、网卡、磁盘以及应用程序的信息等等)...WMI在windows中首次出现的时候是在NT时代,至今已有二十多年的发展史。反观PowerShell是在 2008年出现的,所以至今也就十余年历史。...在一些情况中,如果powershell本身提供的命令能 够去获取相应的信息,那也可以使用powershell的方式来完成相应的操作,但是如果powershell对 某些操作没有相关的命令支持,这时便可以通过...powershell调用WMI的方法去获取相关的信息。

    88220

    如何使用Ketshash检测可疑的特权NTLM连接

    该工具可以基于下列信息来实现其功能: 1、受监控计算机上的安全事件日志(登录事件); 2、活动目录中的身份验证事件;  工具要求  该工具的使用要求用户账号拥有下列权限: 1、访问远程计算机的安全事件日志...; 2、活动目录的读取权限(标准域账户); 3、计算机在同一时间同步,否则会影响结果; 4、至少安装并配置好PowerShell 2.0;  工具下载  该工具是一个PowerShell脚本,因此我们只能在支持...在Windows版本10和Server 2016上,应在事件查看器中启用“Microsoft Windows LSA/操作”。...但是我们可以在Detect-PTHMultithreaded之前使用Invoke-Command调试: Invoke-Command -ScriptBlock $detectPTHScriptBlock...(向右滑动,查看更多) 将$TargetComputer从[array]修改为[string],这样就可以在脚本块中使用断点来调试了。

    85150

    windows: 通过普通域用户凭据远程修改其他用户密码

    在企业的IT环境中,密码管理是日常运维工作的一项基本任务。通常,修改用户密码需要管理员权限,但在特定的场景下,可能需要允许普通用户修改其他用户的密码。...本文将介绍一个独特的PowerShell脚本解决方案,该方案通过普通用户凭据远程登录服务器,并成功修改了其他用户的密码。 1....为实现此目的,我们设计了一个PowerShell脚本,该脚本能够通过普通用户的凭据远程登录服务器,并修改其他用户的密码。 2....脚本解析 以下是实现该任务的PowerShell脚本: # 部分1:密码修改 $username = "wang\w" $password = ConvertTo-SecureString "3" -AsPlainText...cmdlet,脚本远程连接到指定的服务器,并在ScriptBlock中执行密码修改操作。

    72540

    使用 Bash 脚本从 SAR 报告中获取 CPU 和内存使用情况

    如果超过 28,那么日志文件将放在多个目录中,每月一个。 要将覆盖期延长至 28 天,请对 /etc/sysconfig/sysstat 文件做以下更改。...在本文中,我们添加了三个 bash 脚本,它们可以帮助你在一个地方轻松查看每个数据文件的平均值。...脚本 1:从 SAR 报告中获取平均 CPU 利用率的 Bash 脚本 该 bash 脚本从每个数据文件中收集 CPU 平均值并将其显示在一个页面上。...2:从 SAR 报告中获取平均内存利用率的 Bash 脚本 该 bash 脚本从每个数据文件中收集内存平均值并将其显示在一个页面上。...3:从 SAR 报告中获取 CPU 和内存平均利用率的 Bash 脚本 该 bash 脚本从每个数据文件中收集 CPU 和内存平均值并将其显示在一个页面上。

    1.9K30

    有些人嘴巴真严,10个Powershell命令,为啥不告诉我!

    凭借其不断扩展的命令列表(称为 cmdlet),PS 已准备好帮助配置 Windows 中的几乎所有设置。...然而,当出现连接问题时,在排除与IP相关的错误后,DNS通常是罪魁祸首。...它将指示设备正在使用哪些 DNS 服务器来执行在多个适配器上配置的地址解析。Set-DnsClientServerAddress cmdlet 允许将指定的 DNS 服务器添加到网络配置中。 8....刷新 DNS 缓存 Clear-DnsClientCache DNS 缓存有助于将经常使用的 DNS 解析记录存储在设备本地,允许设备读取该记录,而不是每次请求记录时都执行查找。...但是,通过利用 Invoke-Command,您可以通过调用 ipconfig 命令远程(或通过脚本)执行释放和/或续订。 10.

    8710

    PowerShell 降级攻击的检测与防御

    翻译作者:myh0st 在第一部分中,我提供了 PowerShell 的高级概述及其对网络的潜在风险。...Powershell 降级攻击 在之前的博客文章中,我谈到要尽可能避免使用 PowerShell v2,因为它提供了不记录日志的功能,理想情况下应该部署 PowerShell v5.x 或更高版本,因为它提供了更好的日志记录功能...因此,在网络上下载任何恶意脚本内容都有可能在造成伤害之前终止运行。 散弹枪方法 通过上面的方式无法满足所有需求,比如通过快捷方式调用 PowerShell V2 而不是命令行。...,因为 powershell 的执行好都是很短的时间,在使用 powershell V2 出发终止时,正常的 powershell 进程很大可能不会同时存在。...*CommandLine=.*([^`]*`){2,}[^`]*.*$ 上述表达式可以在 PowerShell 事件 ID 800 事件中使用,并且每次执行涉及 2 个或更多反向标记的命令时都会触发。

    2.3K00
    领券