Articles of PowerShell的

如何在Windowsbatch file中运行PowerShell脚本

如何在Windows批处理脚本中embedded与PowerShell脚本相同的文件? 我知道这种事情在其他情况下是可能的: 将SQLembedded到使用sqlcmd的批处理脚本中,并在文件开始处巧妙地安排了goto和注释 在具有程序名称的* nix环境中,您希望在脚本的第一行中注释脚本,例如#!/usr/local/bin/python 。 可能没有办法做到这一点 – 在这种情况下,我将不得不从启动脚本调用单独的PowerShell脚本。 我考虑的一个可能的解决scheme是回显PowerShell脚本,然后运行它。 不这样做的一个很好的理由是,尝试这样做的部分原因是要使用PowerShell环境的优势, 而不必担心例如转义字符 我有一些不寻常的限制,希望find一个优雅的解决scheme。 我怀疑这个问题可能是这个品种的诱饵反应:“你为什么不尝试解决这个不同的问题呢?” 只要说这些是我的约束,对此感到遗憾。 有任何想法吗? 是否有巧妙的注释和转义字符的组合,使我能够实现这一点? 关于如何实现这个的一些想法: 行尾的一个克拉^是一个延续 – 就像Visual Basic中的下划线一样 和号&通常用于分隔命令echo Hello & echo World在单独的行中产生两个回波 %0会给你正在运行的脚本 所以这样的事情(如果我能做到的话)会很好: # & call powershell -psconsolefile %0 # & goto :EOF /* From here on in we're running nice juicy powershell code */ Write-Output "Hello World" 除… […]

在Windows上git:“错误:稀疏结帐离开工作目录没有条目”

我有错误: “error: Sparse checkout leaves no entry on the working directory” 当试图build立一个在Windows上的git稀疏结帐。 在研究这个问题之后,我已经回答了我自己的问题,并在网上find了完整的答案。

如何获取正在运行的进程的进程ID,如任务pipe理器中所示

我正在学习PowerShell,并试图看看如何使用variables和函数。 我想为所有正在运行的记事本实例打印出PID,基本上在“任务pipe理器”的“详细信息”选项卡下的“PID列”中显示的是什么。 我写了下面的代码 $cmd = { param($abc) Write-Host $abc } $processes = Get-Process -Name notepad | Select -ExpandProperty ID foreach ($process in $processes) { Start-Job -ScriptBlock $cmd -ArgumentList $process } 我得到以下结果。 Id Name PSJobTypeName State HasMoreData Location Command — —- ————- —– ———– ——– ——- 50 Job50 BackgroundJob Running True localhost … 52 Job52 BackgroundJob […]

如何从升级的PowerShell控制台以非pipe理员身份运行进程?

也许有办法用Start-Process cmdlet来做到这一点,我找不到? 我在StackOverflow上find的其他相关的Q / A如this , this和this都给出了一个用自定义的C#代码做的解决scheme。 我的问题是具体的,是否有任何直接的方法在PowerShell中做到这一点? 即你在一个提升的PS控制台,并希望以非pipe理员的身份运行一个进程。

列出所有用户在非域系统上的最后一次Windows密码更改

对于连接到AD域控制器的系统,我已经find了这个问题的答案。 但是,这个问题适用于无法连接到域控制器的独立系统。 基本上,气隙系统。 简短而又甜蜜:有没有办法列出每个用户最后一次将非密码空间系统(Windows 7或10)的Windows密码更改为batch file或PowerShell脚本? 我知道,净用户{用户名} | find/我“密码上次设置”将一次为他们做。 然而,每台机器运行多次会很繁琐,而且我们有超过60个这种types的系统。 所以我一直在寻找一种方法来做到这一点,如果可能的话。 作为一个警告,我们没有select在PowerShell中为此安装activedirectory模块。 另外,由于大多数系统都是Windows 7,我们无法访问Windows 10中可用的Bash命令行工具。 任何和所有这方面的帮助表示赞赏。

在批处理脚本中获取Powershellvariables值

我想在批处理脚本中获取导出的powershellvariables的值。 以下是示例脚本。 sample.ps1 $myname="user1" sample.bat @echo on FOR /F "delims=" %%i IN ('powershell . "D:\sample.ps1"; (Get-Variable myname).value') DO SET VAL=%%i echo %VAL% pause 执行sample.bat时,我总是得到错误。 .value') was unexpected at this time. 但是,如果我在PowerShell中执行如下,我能够得到正确的输出。 . "D:\sample.ps1"; (Get-Variable myname).value 我想知道如何在批处理脚本中绕过Get-Variable命令的圆括号。 或者想知道任何其他方式来获取批处理脚本中导出的powershellvariables的值。

Powershell任务计划程序停滞运行

我试图testing一个简单的powershell脚本与任务调度,状态显示运行,但PowerShell的控制台从来没有出现。 我的ps1脚本只包含两个简单的命令: DIR 暂停 这是我的设置: 一般 运行用户是否login(检查) 以最高特权运行(检查) 操作 行动:开始一个程序 程序/脚本:C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe 添加参数(可选):-file E:\ iQ_Schedule \ Untitled1.ps1 此安装程序在其他计算机上运行(Windows 10),但不会在此(Windows Server 2012 R2)上。 我不知道为什么。

删除Powershell中file2中存在的行

我有一个file1.txt包含: 一号线 2号线 3号线 4号线 我想从file1.txt中删除另一个file2.txt中存在的所有行: 3号线 2号线 结果应该是: 一号线 4号线 我试图使用这个命令,但它只有在file2.txt中有一行时才起作用: Get-Content C:\file1.txt | Where-Object {$_ -notmatch $(get-content C:\file2.txt)} 注意:我不想比较两个文件,看它们是否相同。 任何想法? 我很新的PowerShell。

如何获得LAN上的活动IP地址,MAC地址和NetBIOS名称列表?

如何获得LAN上的活动IP地址,MAC地址和NetBIOS名称列表? 我想为局域网上的每台主机获取NetBIOS名称,IP和MAC地址 ,最好不必走到每一台PC上,并自己记下这些东西。 如何使用Windows Script Host / PowerShell /做什么?

如何在Windows 10 Enterprise上作为shellreplace运行应用程序

我需要在运行Windows 10 Enterprise的计算机上创build一个特殊帐户。 此帐户将直接在login时启动应用程序而不是默认shell,退出应用程序应强制重新启动计算机。 我可以使用configuration控制台和lockingfunction在Windows 8.1 Embedded Industry Pro上轻松完成此操作。 现在,在Windows 10上,我尝试关注technet上的两个教程WESL_UserSetting,并在Windows 10专业版,企业版或教育版上设置自助服务 terminal 但是,这两个教程都不起作用。 我已经设法执行在他们描述的脚本,但他们没有任何效果(我已经修改它们,所以他们不删除壳集)。 最后,我已经结束了以下代码: $COMPUTER = "localhost" $NAMESPACE = "root\standardcimv2\embedded" $ACCOUNT_NAME = "cmp" $ShellLauncherClass = [wmiclass]"\\$COMPUTER\${NAMESPACE}:WESL_UserSetting" $NTUserObject = New-Object System.Security.Principal.NTAccount($ACCOUNT_NAME) $NTUserSID = $NTUserObject.Translate([System.Security.Principal.SecurityIdentifier]).Value $NTUser_Shell = Get-WmiObject -namespace $NAMESPACE -computer $COMPUTER -class WESL_UserSetting | where {$_.Sid -eq $NTUserSID} if ($NTUser_Shell) { "`Custom shell already […]