sql - 通过 PowerShell 获取 SQL 命名实例名称
问题描述
我有一个 SQL 作业(除其他外)操作以 SQL 命名实例命名的文件夹中的一些文件。
这是 SQL 作业中的相关代码:
EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId,
@step_name=N'Do Stuff',
@step_id=1,
等等等等等等...
@os_run_priority=0, @subsystem=N'PowerShell',
@command= $dir = "\\SomeNetworkLocation\" + $env:computername
#do stuff with $dir
所以这部分,$dir = "\\SomeNetworkLocation\" + $env:computername
,抓取计算机名称并制作我的文件位置的完整路径,这对我的大多数服务器都非常有用。我遇到的问题是我的一些服务器是命名实例,因此提取服务器名称还不够好,因为它只返回命名实例的第一部分。我需要它$env:computername + '_' + $MyInstance
以某种方式得到。SQL 上命名实例的格式是MyServer\MyInstance
,如果有帮助的话......
有没有办法通过 PowerShell 提取此作业所在的实例的名称?
解决方案
如果您使用的是 SQL 作业,则可以通过使用SQL Server 代理令牌获取实例名称以及服务器名称来查找服务器实例。
作为一个起点,我认为你可以摆脱:
@os_run_priority=0, @subsystem=N'PowerShell',
@command= $dir = "\\SomeNetworkLocation\" + $(ESCAPE_DQUOTE(A-SRV)) + "_" + $(ESCAPE_DQUOTE(INST))
#do stuff with $dir
我会亲自设置一个接受参数的 PowerShell 脚本,-Server
因为ServerInstance
默认实例始终是 MSSQLSERVER,您可能需要添加一两行来处理它。
推荐阅读
- arrays - React Native 数组背景
- python - How do I activate button click with the Enter key in Tkinter?
- python - 在 BeautifulSoup python 中打印相同的名称、价格和链接
- c# - 断点未命中 get 语句
- office-js - 在 iOS 或 Android Outlook 插件上确定 `accountType == office365`
- php - php-ffi:返回类型 const char* 是一个字符串
- php - 调用未定义的方法 Omnipay\Quickpay\Message\Notification::send()
- firebase - 退货清单
来自 Firestore 颤振 - javascript - NextJS Image 组件没有响应我的内联 CSS
- java - 通过 String.toCharArray() 对字符串进行迭代在一种情况下提高了性能,但在另一种类似情况下则恶化了