Powershell System.Management.Automation和System.Runtime.Remoting程序集

我在C#应用程序中添加了程序集引用(System.Management.Automation和System.Runtime.Remoting),并在项目中使用了powershell接口。 但是在代码的遵从过程中,我得到了一个错误 “类型或命名空间名称'Remoting' 命名空间中不存在 “系统、管理、自动化” 类型或命名空间名称“PowerShell” 找不到 C:\WINDOWS\assembly\GAC\U MSIL\System.Management.Automation\1.0.0\U

最后一个“的过滤器ID”;启动事件“;从PowerShell中的事件日志

我需要从事件日志中筛选上次“启动事件”的ID 我通过运行psloglist-accepteula-n1-s-o“MicrosoftWindowsKernelGeneral”-i12-t获得它我重定向到一个文件,只需过滤第一个数字块,然后再过滤;在第二行,如下面的示例所示 系统登录\fdu00008415005: 107604;制度;微软Windows内核;信息;FDU00008415005 您可以,请,帮助我在powershell中编写吗?您可能可以使用get-WinEventcmdlet获取值

Powershell 确定是否已成功调用connect msolservice

我正在PowerShell中编写一个Office 365帮助工具,我想这是一个我找不到答案的简单问题。如何判断由Connect MsolService创建的连接是否存在并处于活动状态?一定有办法知道,因为其他cmdlet可以检查,我只是不知道那是什么方法,而且我也没有运气找到它。Connect MsolService连接后返回一个对象,据我所知,没有添加新变量。也许您可以通过运行其中一个模块命令并根据命令的执行结果来确定: Get-MsolDomain -ErrorAction Silently

在Powershell中获取ADFS令牌

我们有一个ADFS 2.0环境,用于将Active Directory域与Office 365联合 最近我们遇到了一个问题,集群停止响应,这反过来破坏了我们所有用户的电子邮件/日历访问。由于我们目前没有对ADFS进行任何监控,我正在尝试编写一个PowerShell脚本,该脚本将定期尝试对我们的ADFS群集进行身份验证,并获得一个有效令牌,类似于testexchangeconnectivity.com上的SSO测试 看起来令牌实际上是由 /adfs/services/trust/2005/user

如何让Powershell运行SH脚本

有人能告诉我如何让Powershell运行.sh脚本吗?当我运行此命令时,它一直试图在记事本中打开所需的文件: .\update-version.sh 123 我已将.SH添加到PATHEXT环境变量中,并将Microsoft.PowerShell_profile.ps1目录添加到Path环境变量中。PowerShell脚本有一个.ps1扩展名(以及其他受支持的扩展名,如psm1、psd1等),它将不会运行除此之外的其他扩展名。。SH是针对linux系统的,不是?你们不使用cygwin来运行这

PowerShell:如何强制以数组而不是对象的形式获取结果

若我有两个或更多的结果,我得到$x作为数组,但若我只有一个结果,那个么得到$x作为对象。如何使它更正确,始终接收数组-空、一个元素或一些元素?尝试$x=@(获取aduser) @()语法强制结果为数组此外,您可以使用$x=[array]get aduser我在循环中使用索引值时遇到了同样的问题。我通过换衣服把它修好了 $result = Get-ADUser -Filter $filter 到 顺便说一句,这个问题中的其他解决方案并不是实现这一目标的最佳方式,原因在他们的评论中已经说明。 更好

如何在windows powershell上运行get-vm命令

我尝试在windows powershell上运行get-vm命令。它正在引发此异常: 脚本中的错误:术语“Get VM”未被识别为的名称 cmdlet、函数、脚本文件或可操作程序。请检查 名称的拼写,或者如果包含路径,请验证路径 是正确的,请重试。“ 但我在system center powershell上运行了相同的命令,它运行成功。但我需要在windows powershell上运行。我可以在windows powershell上运行它吗?导入VMM管理单元。System Center的P

Powershell 运行Quest cmdlet parallel并将输出保存到文件中

我是Powershell的新手,在并行运行代码方面没有什么问题。我当前的代码是按顺序工作的,但到目前为止,使其并行运行的每一次尝试都失败了。以下是我的计划: 我需要查询多个域控制器(我使用Quest cmdlet中的get-qaduser等)来收集我需要的所有信息。由于我目前正在通过另一个域控制器联系一个域控制器,因此脚本运行了很长时间。我的想法是使用PS3.0的新工作流功能,但显然不允许我将结果导出到文件中 工作脚本(按顺序): 以下是我迄今为止所尝试的: Just an excerpt -

在PowerShell中构建GUI应用程序

在Powershell中构建GUI应用程序是否有一个与Sapien Powershell Studio相当的免费软件?好的,我找到了解决方案: Powershell studio有一个名为PrimalFormsCE的免费社区版 您可以构建GUI应用程序,然后导出到Ps1,编辑代码。。。 真是个好工具

Powershell base64解码使用unix base64编码的文件

我不喜欢powershell编码(更喜欢python)。 虽然我需要一个脚本将在unix上创建的base64文件更改回binairy: echo notepad.exe | base64 > exe.b64 今天,我在运行中编写了一些代码,从末尾删除了“\r\n”,但无法将结果归档。它总是将整数打印到文件中,而不是二进制文件。这里可能有一些经验丰富的管理员可以用一行程序完成这项工作 我正在寻找一些可以运行为: b64_2bin.ps exe.b43 notepad.exe 把原始的记事

Powershell 广告中的批量用户

我正在尝试使用下面的脚本使用PowerShell创建批量用户,但我在下面遇到一个错误。请帮忙 剧本: Import-Module ActiveDirectory Import-Csv "C:\Scripts\bulkadusers.csv" | ForEach-Object { $userPrincinpal = $_."samAccountName" + "@sigusa.net" New-ADUser -Name $_.Name ` -Path $_."ParentOU" ` -Sam

Powershell 调用sqlcmd详细输出到文件的语法是什么?

我目前有: (invoke-sqlcmd -inputfile (Join-Path $FileDirectory $FileName) -ServerInstance $ServerName -verbose) > $OutFileName 我得到的输出是: VERBOSE: Changed database context to 'BLUELABEL' 我试图使用详细输出写入Join Path函数指定的文件 我做错了什么 (使用PowerShell V3) 我确实找到了这个问题的答

Powershell';运行空间';不从Powershell控制台运行

我试图理解为什么此代码将在Powershell ISE中运行,而不是从Powershell控制台运行 function close-window (){ # close $hash.window.Dispatcher.Invoke("Normal",[action]{ $hash.window.close() }) # clean up $powershell.EndInvoke($handle) | Out-Null $runspace.Close()

Powershell 日期时间比较不';不匹配

我想将从xml文件中获取的日期与文件的“lastwritetime”进行比较。Powershell ISE对两者显示相同,但my if不返回true。我尝试了一些datetime演员,但这也没有帮助 我的XML: <meta> <log path="D:\tomcat.log"> <lastwrite>08/03/2015 13:44:09</lastwrite> </log> </meta>

在powershell中为每个循环获取附加字符的AdUsers

我正在尝试获取(一行)答案以获取用户列表(基于get aduser的过滤器),然后使用该列表对其名称的扩展版本进行搜索匹配-例如,我有: 乌瑟拉 用户B 用户管理员 UserBAdmin 并希望查找(当用户A被禁用时)UserAAdmin。这看起来很简单,但无论我做什么尝试,我似乎都不能将SAMACCOUNTNAME与like或equals语句一起使用 Get-ADUser -Filter {Enabled -eq $false} -Properties sAMAccountName | F

Powershell 检查组织单位中计算机的注册表值

正在从OU中的计算机收集有关手动添加和未手动添加的邮箱的信息 我很确定我需要瞄准的蜂巢是: HKCU:\Software\Microsoft\Office\15.0\Outlook\Profiles\Outlook 我正在寻找以下值: @示例 如果该值存在,我希望它将该值与附加的用户名一起输出到日志文件。如果它不存在,我想输出到一个日志文件也 测试注册表值是正确的方法吗 如何获取OU中计算机的值 很抱歉,所有的问题-仍在学习中 首先,你的代码在哪里?第二,你说的“是手动添加的,而不是手动添加的”

Azure PowerShell将无法连接

我已按照MS说明下载并安装Azure Powershell: 使用Windows Powershell ISE运行以下命令: 登录AzureRmAccount 这将返回错误: Login-AzureRmAccount : The 'Login-AzureRmAccount' command was found in the module 'AzureRM.Profile', but the module could not be loaded. For more information, r

Powershell 如何在远程计算机上调用命令引发的异常中保留ScriptStackTrace?

我正在编写一个Powershell脚本,它执行构建/部署过程中的一个步骤,需要在远程计算机上运行一些操作。脚本相对比较复杂,因此如果在远程活动期间发生错误,我需要脚本中发生错误的详细堆栈跟踪(在已经生成的日志之上) 问题出现在调用命令从远程计算机中继终止异常时丢失堆栈跟踪信息。如果在本地计算机上调用脚本块: Invoke-Command -ScriptBlock { throw "Test Error"; } 返回所需的异常详细信息: Test Error At C:\ScriptTe

Powershell 使用remove ADGroupMember从多个组中删除用户和组

希望有人能给我指出正确的方向。我也坦率地承认,可能有更好、更有效的方法来完成我在这里所做的工作,但我的目标是让这项工作发挥作用,并理解我做错了什么,因此,如果可能的话,我希望对我的代码进行更正,而不是从头开始写东西 所以,我的目标是:我在广告中列出了所有具有相似名称格式的组。我正在尝试创建这些组的数组,并删除不是特定组成员的任何用户以及不是特定组成员的任何组 例如,WAS MyAdmins和NYC MyAdmins是两个组名。他们有一些应该留下来的用户,也可能有一些应该留下来的组。他们还有需要删

Powershell 停止AzureVM:在服务中找不到部署

我想在Azure中停止并取消分配Windows VM 在PowerShell中,我使用以下命令: Stop-AzureVM - ServiceName [servicename] - Name [machinename] - Force 但是,我在PowerShell中收到以下错误消息: 警告:“在服务[servicename]中未找到部署 可能有什么问题?故障排除步骤: 虚拟机是否已处于关闭或解除分配状态 您是否有多个订阅。如果是,请使用以下cmdlet选择正确的订阅,然后尝试停止VM: S

Powershell 设置通过引用传递的数组变量

我在一个函数中有一个数组对象变量[ref]$InsertColHeadName=@(),然后用参数([ref]$InsertColHeadName)调用另一个函数。在调用的函数中,我尝试引用param([ref]$InsertColHeadName)+=expression中的参数集。表达式返回一个字符串。我在行中放置了一个断点,并尝试使用单引号强制字符串,例如:([ref]$InsertColHeadName)+='xyz' 我试着在谷歌上搜索,但似乎找不到合适的解决方案 我得到以下错误: M

Powershell 如果不存在,请创建多个文件夹

我正在尝试直到生成PS脚本,直到从.csv文件创建多个文件夹。 这给了我一些问题 这是我的密码 $Folders = Import-Csv C:\Scripts\NewFolders\NewFolders.csv ForEach ($Folder in $Folders) { If(!(Test-Path $Folder.Path\$Folder.Folder)) } New-Item -ItemType Directory -Force -Path $Folder.Path\$Fo

如何强制powershell重新加载自定义模块?

我已经创建了一个模块“ActiveDirectory.psm1”,其中包含powershellv5中的一个类。我正在另一个名为“test.ps1”的文件中导入该模块,然后从类中调用一个方法 test.ps1包含以下内容: using module '\\ser01\Shared\Scripts\Windows Powershell\modules\ActiveDirectory\ActiveDirectory.psm1' Set-StrictMode -version Latest; $AD

TFS API使用powershell创建发行版

我正在尝试使用powershell将生成排队并创建发布。我能够成功地将构建排队,但不幸的是,没有为发布触发连续部署 我希望我可以在powershell脚本中完成这两项工作,这将允许我发布应用程序。我正在使用TFS 2015更新3 我一直在这里发表一篇文章: 总之,在执行以下操作时: 调用api以返回发布列表 执行发布列表的查询并返回基于id的 关于发布名称 设置发布定义id 调用api以返回特定的发布定义信息 设置工件的别名 设置工件id 设置ReleaseUri 为工件构造Json字符串 使

批处理脚本未调用Powershell

我有一个在管理模式下调用Powershell文件的批处理脚本。我不久前发现了这段代码,从那以后,它一直非常有效: PowerShell -NoProfile -ExecutionPolicy Bypass -Command "& {Start-Process PowerShell -ArgumentList '-NoProfile -ExecutionPolicy Bypass -File %PSFile%' -Verb RunAs}"; 不过这次,我从另一个程序调用了批处理脚本。这

VST将变量传递到Azure PowerShell脚本参数

我有多个Azure PowerShell任务,我想在其中传递变量。目前,我正在传递带有脚本参数的变量,如屏幕截图所示: 脚本参数的问题是,如果有更改,我必须在每个进程中编辑它们。是否可能只有一个变量可以链接到多个流程? 我已经看过了,但无论我如何编辑我的脚本,它们都不起作用。该主题也没有解释变量是否应该放入流程变量或队列构建变量中。 以下是我尝试自动化的脚本: param ( [Parameter(Mandatory)] [String]$NewFileLocation

签署PowerShell脚本时出现问题

我正试着签一份简单的剧本给我的学生看。当我在记事本中创建的脚本上签名时,我使用Set-Authicodeignature得到一个未知错误。当我在尝试登录后查看脚本时,记事本显示一个签名块。当我尝试运行它时,它说PowerShell说脚本没有签名。我使用的是AllSigned的executionpolicy。有什么建议吗?如果我将executionpolicy设置为Unrestricted,脚本运行良好 对于Set AuthenticodeSignature中的错误,您的字符编码可能不在UTF-8

Powershell 添加AzureRmServiceFabricClusterCertificate以错误结束';不能同时添加和删除证书;

我尝试滚动服务结构群集的群集证书。因此,我尝试使用以下命令注入新的自签名二级证书: Add-AzureRmServiceFabricClusterCertificate -ResourceGroupName $configuration.ResourceGroupName -Name $clusterName -SecretIdentifier $certificateVaultUrl_Secondary 错误详细信息 环境 AzureRM 5.0.1 Powershell 5.0.1058

Powershell 如何让get ChildItem处理具有非中断空间的路径

我有以下适用于大多数文件的代码。输入文件(FoundLinks.csv)是一个UTF-8文件,每行有一个文件路径。我需要处理的是特定驱动器上文件的完整路径 $inFiles = @() $inFiles += @(Get-Content -Path "C:\Users\sw_admin\FoundLinks.csv") foreach ($inFile in $inFiles) { Write-Host("Processing: " + $inFile) $objFile =

提取powershell中文件的所有数字签名

我正在寻找答案,但没有找到有用的东西。我想知道如何提取特定文件的所有数字签名证书。我试图使用以下命令- Get-AuthenticodeSignature 'my\path\to\file' .SignerCertificate" 此命令查找文件的一个证书,即使它有多个证书。如何使用PowerShell查找文件的所有证书 如果有任何帮助,我们将不胜感激。您能否发布一个包含多个证书的文件示例,以便我们可以尝试复制该问题?例如,TeamViewer.exe就是一个文件。它有两个签名,我希望提取这两

使用PowerShell脚本查找过去的日期

我目前正在编写一个PowerShell脚本,该脚本将审核Active Directory用户并查找过期的用户。日期以“MM/dd/yyyy”格式保存在人力资源部的CSV文件中。我正在尝试编写一个脚本,将今天的日期与CSV文件中的日期进行比较。如果CSV中的日期超过当前日期,则需要禁用该用户 例如: $today = getdate -format "MM/dd/yyyy" $expiration = $_.'Expiration Date' if ($today -ge $expiratio

传递凭据以使用PowerShell在远程计算机上运行批处理脚本

我一直在编写一个脚本,该脚本将在计算机列表中循环,卸载旧的AV软件(如果有),并安装新的AV软件(如果没有)。该脚本通过执行两个文件来实现这一点:一个是批处理脚本(称为Sophos Installation.bat),该脚本将检查是否存在旧的AV软件,并运行我们新的AV供应商的竞争对手删除工具。完成后,批处理脚本将静默地启动可执行文件以安装我们的新AV软件。另一个文件将只删除旧的AV软件,因为我的环境中有一些计算机同时具有这两种软件。以下是脚本: #Variables that store th

Powershell 启用Windows Office功能(OneNote Office标准版2013)

对此已经研究了一段时间,但还没有找到一个好的解决方案。有些用户使用OneNote,但大多数用户甚至没有安装OneNote。我们正在寻找一种方法来启用OneNote并在所有机器上安装(考虑powershell或msi文件)。我们有一个我们想要使用的托管安装分发服务器(KACE SMA)。我似乎找不到可运行的msi或脚本来启用OneNote for Office Standard 2013。有没有人能做到这一点/如有任何提示,将不胜感激。谢谢 我认为OneNote现在可以作为独立安装免费提供 检查

Powershell Set ADUser:名称引用无效

尝试在下面运行Powershell命令时出错: Set-ADUser -Identity suser -Add @{msExchDelegateListLink='CN=Customer Care,OU=Onlinetenent.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NMPR19A04,DC=PROD,DC=OUTLOOK,DC=COM'} Set-ADUser : The name reference is

使用PowerShell或Windows批处理在目录和子目录中查找最近创建的文件

我有30个不同的文件夹,我需要迭代通过,在每一个有一个日志文件夹,其中,是文本文件。我在寻找最新的一个,我需要用首选名称将其复制到新位置(例如2020-03-28.txt.FolderServerName1,其中附加变量FolderServerName1标识它来自哪个服务器) 上面的文章非常有用,但我想我需要另一个嵌套循环,我正在语法上努力解决这个问题 非常感谢你 此文件复制任务可通过以下方式完成: @echo off setlocal EnableExtensions DisableDela

Powershell 如何仅获取dir和subdir中的最新文件?

我现在又在与powershell搏斗。 I仅需要提取该目录(包括子目录)中的最新目录日期和文件日期 Get-ChildItem -Path P:\ -Force -Recurse | select -Property fullName, LastWriteTime, LastAccessTime | Export-Csv "C:\path\to\.csv" -NoTypeInformation 有了这段代码,我只能得到那个目录中的所有内容,但它的容量超过了7TB,这让我

Powershell 为什么$host.UI.RawUI.ReadKey()方法捕获未真正按下的Enter键?

我想在PowerShell 7中编写一个函数,以等待用户按某个键或某个组合键(如Alt+Ctrl+D)。我可以选择两个选项:.NETCore中的Console.ReadKey()方法和PowerShell中的$host.UI.RawUI.ReadKey()方法 我已经测试了这两种方法。Console.ReadKey()方法工作得很好,但是$host.UI.RawUI.ReadKey()方法有一个奇怪的行为:它将捕获一个未真正按下的“回车”键(键代码:13) 代码(在.ps1脚本文件中,用于测试该

Powershell 自动生成短文件名的简便方法

我有一个非常旧的车载收音机,当USB fash驱动器在FAT16或FAT32中格式化时,它可以播放音乐,但它按短8.3文件名而不是长文件名对文件进行排序。 我想播放分成多个文件的有声读物,但Windows有时会生成f***格式的8.3文件名。 下面是包含Internet1.mp3到Internet7.mp3的文件夹的dir/x输出示例: Short Long 30.12.2020 15:59 2.186.8

如何让脚本通过Powershell为所选目录中的所有子文件夹运行?

我已经写了一个脚本来转换和调整项目的图片大小。它为目录集转换和调整大小,但我还想涵盖子目录中的文件。如何让此脚本在所选目录中的所有子目录中运行 $refdate = (Get-Date).AddDays(-1).Date $dir = "DIRECTORY" <# Converting .jpg to .webp #> <# Deletes all .webp files of recently changed .jpg files #> $jpeg

Powershell 如果正确使用函数,如何使用?

下面的函数返回一个结果,但当我在IF语句中指定值时,它只返回我在-eq值中输入的“Yes” function GetRemoteLogonStatus ($computer = 'localhost') { if (Test-Connection $computer -Count 2 -Quiet) { try { $user = $null $user = gwmi -Class win32_computersystem -ComputerNam

Powershell 从JAR中删除文件

我正在尝试从文件夹及其子文件夹中的所有JAR中删除扩展名为.RSA的文件,以解决以下错误: 签名者信息与其他类的签名者信息不匹配 一模一样 以下是我的脚本: echo off For /R C:\Users\user\.m2\repository\ %%G IN (*.jar) do ( Echo "%%~dpG" cd "%%~dpG" jar xvf "%%~nxG" META-INF/"%%~

如果PowerShell中的“上一个”为空,则指定值

PowerShell中是否有方法对变量进行简单的短路评估,以获取第一个值或第二个值(如果第一个值为空) 就像在JS中: let x = ''; let y = '1'; let z = x || y; // '1' 如果理解正确,请检查中的答案,这是一个短路评估,但专门用于$null值?如果它是一个空字符串,那么就没有办法了?@AleksandarIvanov没有使用一个二进制/短路运算符$c=if(-not$a){$b}else{$a}

Powershell System.Management.Automation.MethodInvocationException

我有个小问题 我尝试使用Powershell从FTP服务器下载文件并将其存储在Cifs共享上 我的代码如下所示(首先我得到FTP上所有文件的列表,然后我使用名称通过文件流下载) 但我的问题是,我得到了以下例外 PSMessageDetails : Exception : System.Management.Automation.MethodInvocationException: Exception calling ".ctor" with

powershell递增值,并每次为同一对象提供相同的值

我有监控软件的脚本,我想监控失败或成功的windows计划任务 Powershell脚本如下所示: #Monitor windows tasks for checkmk raw 1.6.0 #Last update: 31.05.2021 $tasks = Get-ScheduledTask | Get-ScheduledTaskInfo | Select TaskName,LastRunTime,LastTaskResult #CHECKMK states #$OK = "0 M

来自PowerShell的意外结果

我期待PowerShell的结果如下,但这出乎我的意料。我如何纠正它? 期待 FriendlyName | MediaType| PSComputerName| Serial Number ------------ | --------- |-------------- | ------------- ST500DM002-1BD142| 3 | ABCD-IT | 6CR4160X2H Samsung SSD 250GB|